当前位置:首页>>魔兽单机>>正文
最新的魔兽单机T端增加查询假人的代码
2017-06-28 14:15:25 作者:wowaii 来源:网络 浏览次数:0
这个是最新的TrinityCore 335端的假人系统!当你的魔兽世界中玩家人数不够的时候,可以通过这个来迷惑玩家~~~哈哈

        data << target.GetGuildName();                    // guild name
        data << uint32(lvl);                              // player level
        data << uint32(class_);                           // player class
        data << uint32(race);                             // player race
        data << uint8(gender);                            // player gender
        data << uint32(playerZoneId);                     // player zone id
 
        ++displayCount;
    }
 
+    uint32 MaxDummy = sConfigMgCore->GetIntDefault("MaxDummy", 30); //当在线人数高于30人的时候增加假人
+    uint32 DummOnOff = sConfigMgCore->GetIntDefault("Dummy.On.Off", 0); //是否开启假人系统
+    uint32 AddNumberDummy = sConfigMgCore->GetIntDefault("AddNumberDummy", 2);//假人的倍数
+    if (DummOnOff && displayCount >= MaxDummy && displayCount < 50) //少于多少人开始加假人(完美假人系统)
+    {
+        uint32 DummHowMany = sConfigMgCore->GetIntDefault("HowManyDummy", 20);
+        QueryResult result2 = LoginDatabase.PQuery("SELECT id FROM account WHERE online = 0 ORDER BY RAND() LIMIT %u", DummHowMany);//先数据库查询中没有登录的玩家账号
+        QueryResult result;
+        uint32 accid;
+        if(result2)
+        {
+                do{
+                accid = result2->Fetch()[0].GetUInt32();
+                result = CharacterDatabase.PQuery("SELECT name,race,class,level,position_x,position_y,position_z,map FROM characters WHERE account='%d' AND online=0 ORDER BY RAND() LIMIT 1",accid);//然后查询对应账号在角色库里面的一个任意角色
+                if(result)
+                {
+                    Field *fields = result->Fetch();
+                    std::string pname = fields[0].GetString();
+                    std::string str = "";
+                    str += pname;
+                    std::string gname = "";
+                   uint32 race = fields[1].GetUInt32();
+                   uint32 class_ = fields[2].GetUInt32();
+                   uint32 lvl = fields[3].GetUInt32();
+                   float m_positionX = fields[4].GetFloat();
+                   float m_positionY = fields[5].GetFloat();
+                   float m_positionZ = fields[6].GetFloat();
+                   uint32 pzoneid = fields[7].GetUInt32();
+                   //pzoneid = sTerrainMgr.LoadTerrain(pzoneid)->GetZoneId(m_positionX,m_positionY,m_positionZ);
+                   pzoneid = sMapMgr->GetZoneId(pzoneid,m_positionX,m_positionY,m_positionZ);
+                   //上面这些是获取玩家信息!这样才游戏中查询才能看到角色信息
+                   if ((matchCount++) >= sWorld->getIntConfig(CONFIG_MAX_WHO))
+                       continue;
+                   //delete result;
+                   data << str;                                  // player name
+                   data << gname;                                // guild name
+                   data << uint32(lvl);                          // player level
+                   data << uint32(class_);                       // player class
+                   data << uint32(race);                         // player race
+                   data << uint8(0);                             // new 2.4.0(正确地图位置显示)
+                    data << uint32(pzoneid);                      // player zone id(正确地图位置显示)
+                    ++displayCount;
+                }
+           }
+            while (result2->NextRow());
+        }
+    }//完美假人系统结束
+    if (matchCount > 50 && DummOnOff)
+        matchCount = matchCount * AddNumberDummy;        //这里是游戏里面超过50人了,就乘以倍数
 
    data.put(0, displayCount);                            // REPLACE right count, count displayed
    data.put(4, matchCount);                              // REPLACE right count, count of matches
 


相关报道:

[关闭] [返回顶部]


  返回首页 | 最新资讯 | 资源下载 | 魔兽图片 | 单机文档 | 技术攻略 | 玩家视频
备案号:蜀ICP备2024062380号-1
免责声明:本网站为热爱怀旧WOW的玩家们建立的魔兽世界资料网站,仅供交流和学习使用,非盈利和商用.如有侵权之处,请联系我们,我们会在24小时内确认删除侵权内容,谢谢合作。
Copyright © 2024 - 2024 WOWAII.COM Corporation, All Rights Reserved

机器人国度