commit 87f8ac21ca6d2d086984dfc39b1869dc51ecd36f
Author: Vitasic <[email protected]>
Date: Tue Jun 26 15:43:38 2012 +0400Add Fake Players
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 966eae5..3f4e3fb 100755
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -274,8 +274,17 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket & recv_data)
bool receiverIsPlayer = AccountMgr::IsPlayerAccount(receiver ? receiver->GetSession()->GetSecurity() : SEC_PLAYER);
if (!receiver || (senderIsPlayer && !receiverIsPlayer && !receiver->isAcceptWhispers() && !receiver->IsInWhisperWhiteList(sender->GetGUID())))
{
+ // If Fake WHO List system on then show player DND
+ if (sWorld->getBoolConfig(CONFIG_FAKE_WHO_LIST))
+ {
+ sWorld->SendWorldText(LANG_NOT_WHISPER);
+ return;
+ }
+ else
+ {
SendPlayerNotFoundNotice(to);
return;
+ }
}if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT) && senderIsPlayer && receiverIsPlayer)
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 11f0857..dfc4b6a 100755
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -356,8 +356,40 @@ void WorldSession::HandleWhoOpcode(WorldPacket & recv_data)++displaycount;
}
-
- data.put(0, displaycount); // insert right count, count displayed
+
+ if (sWorld->getBoolConfig(CONFIG_FAKE_WHO_LIST) && displaycount < 49)
+ {
+ // Fake players on WHO LIST 0, 1, 2, 3, 4, 5 6
+ QueryResult result = CharacterDatabase.Query("SELECT guid,name,race,class,level,zone,gender FROM characters WHERE online>1 AND level > 3");
+ if (result)
+ {
+ do
+ {
+ Field *fields = result->Fetch();
+
+ std::string pname = fields[1].GetString(); // player name
+ std::string gname; // guild name
+ uint32 lvl = fields[4].GetUInt32(); // player level
+ uint32 class_ = fields[3].GetUInt32(); // player class
+ uint32 race = fields[2].GetUInt32(); // player race
+ uint32 pzoneid = fields[5].GetUInt32(); // player zone id
+ uint8 gender = fields[6].GetUInt8(); // player gender
+
+ data << pname; // player name
+ data << gname; // guild name
+ data << uint32(lvl); // player level
+ data << uint32(class_); // player class
+ data << uint32(race); // player race
+ data << uint8(gender); // player gender
+ data << uint32(pzoneid); // player zone id
+
+ if ((++matchcount) == 49)
+ break;
+ } while (result->NextRow());
+ }
+ }
+
+ data.put(0, matchcount); // insert right count, count displayed
data.put(4, matchcount); // insert right count, count of matchesSendPacket(&data);
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 8a6b4cd..518effd 100755
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -667,6 +667,7 @@ void World::LoadConfigSettings(bool reload)
m_bool_configs[CONFIG_ALLOW_TWO_SIDE_WHO_LIST] = ConfigMgr::GetBoolDefault("AllowTwoSide.WhoList", false);
m_bool_configs[CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND] = ConfigMgr::GetBoolDefault("AllowTwoSide.AddFriend", false);
m_bool_configs[CONFIG_ALLOW_TWO_SIDE_TRADE] = ConfigMgr::GetBoolDefault("AllowTwoSide.trade", false);
+ m_bool_configs[CONFIG_FAKE_WHO_LIST] = ConfigMgr::GetBoolDefault("Fake.WHO.List", false);
m_int_configs[CONFIG_STRICT_PLAYER_NAMES] = ConfigMgr::GetIntDefault ("StrictPlayerNames", 0);
m_int_configs[CONFIG_STRICT_CHARTER_NAMES] = ConfigMgr::GetIntDefault ("StrictCharterNames", 0);
m_int_configs[CONFIG_STRICT_PET_NAMES] = ConfigMgr::GetIntDefault ("StrictPetNames", 0);
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index f566ece..0d430bf 100755
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -100,6 +100,7 @@ enum WorldBoolConfigs
CONFIG_ALLOW_TWO_SIDE_WHO_LIST,
CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND,
CONFIG_ALLOW_TWO_SIDE_TRADE,
+ CONFIG_FAKE_WHO_LIST,
CONFIG_ALL_TAXI_PATHS,
CONFIG_INSTANT_TAXI,
CONFIG_INSTANCE_IGNORE_LEVEL,
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index 9f0ad53..40a04a1 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -1601,6 +1601,14 @@ AllowTwoSide.Trade = 0TalentsInspecting = 1
+# Fake.WHO.List
+# Add fake players to fill in WHO LIST (who is online list, "O" button) if there is less then
+# 49 real players online (need to set online=2 in character database in order to work)
+# Default: 0 (disabled)
+# 1 (enabled)
+
+Fake.Who.List = 0
+
#
###################################################################################################
T端带数据库查询的假人系统
时间: 2024-10-08 14:32:54
T端带数据库查询的假人系统的相关文章
《结对-自然语言进行数据库查询系统-设计文档》
二〇一七年九月十四日十点一刻少两分钟 关于结对编程的设计文档: 题目:自然语言进行数据库查询系统 编程语言:C# 数据库:MySql ,其他逐渐扩展 软件所要实现的功能: 用户打开软件之后可以连接到数据库,并且通过自然语言进行数据库的查询,例如我想知道小明的学号,如果在数据库中查询需要输入 select ID from 学生表 where name = "小明"才能实现,我们要做的是,输入查询小明的学号,软件就可以将自然语言转换成sql语句进行数据库的查询. 所要实现的功能: 1.进行
《结对-自然语言进行数据库查询系统-开发环境搭建过程》
二〇一七年九月十四日晚上十点半多了一分钟 题目:自然语言进行数据库查询系统 编程语言:C# 数据库:MySql ,其他逐渐扩展 环境理论支持windows的所有版本(如果现在仍然有95,98,2000这样的系统那我也没办法了,没实际测试过...) 编译器使用:Visual Studio 2015 数据库使用:MySql数据库(计划未来支持更多) 环境搭建过程:因为环境较为特殊不需要特别搭建哈....
好947 Mybatis 配置resultMap 带参数查询Map 注意selectOne数据库返回结果一条数据库 否则会报错
//TMD 写几个demo 还有大站采集 <a target=_blank href="http://hao947.com/" target="_blank">好947</a> 映射配置文件 <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 --> <RESULTMAP id=BaseResultMap type="person"><pre name="c
SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用.下面的知识多是自己总结,有一些参考了MSDN. sp_help 有时候想尽快查出数据库对象的相关信息,这个存储过程就很有用了.使用它可以查询出整个数据库中所有对象的相关信息.直接运行sp_help结果如下图1,
【试水CAS-4.0.3】第04节_CAS服务端通过数据库认证用户
本文源码下载:http://download.csdn.net/detail/jadyer/8911139 /** * @see ------------------------------------------------------------------------------------------------------------------------ * @see CAS服务端通过数据库认证用户 * @see 实现方式有两种,一是自己写数据库获取用户名密码再认证的类,一是借助C
转载 50种方法优化SQL Server数据库查询
原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷
第九十九天上课 PHP TP框架 数据库查询和增加
在Model文件夹下创建模型,文件命名规则 : 表名Model.class.php <?php namespace Home\Model; use Think\Model; class yonghuModel extends Model { } 实例化数据库的三种方法 //调用Model文件夹下的模型 public function shujuku1() { $yonghu=new \Home\Model\yonghuModel; //实例化自己创建的Model,(注意路径书写完整) var_d
数据库查询服务框架
原本是为了验证前面的通信框架,在不知不觉的2个月中,越写越大. 既然写了就简单介绍下 数据库查询,主要是客户端发送sql语句到服务端,服务端查询完成以后将数据返回 客户端DBClientManager类中封装了一般的sql查询方法,按照c#的方式封装的,只需要调用不同的方法则返回不同的数据: 一般的查询均返回DBResult对象,里面的Result字段对应返回数字,表结构DataTableJson对象: 当然也可以返回sqldatareader对象,其原理是分步返回而已 构造的存储结构是按照列存
《万能数据库查询分析器》实现使用SQL语句直接高效地访问文本文件
<万能数据库查询分析器>实现使用SQL语句直接高效地访问文本文件 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要 用SQL语句来直接访问文本文件?是在做梦吗? 本文详细地介绍了"万能数据库查询分析器",中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>在 文本文件处理方面非常强大的功能,你可以直接用SQL语句来访问这些文本文件,访问250万条记录的文件的复杂的关联操作,也不过用时59秒钟.需要注意