d4server
发表于 2010-6-10 12:29:24
我有个插件可以做到玩家CMD下载与玩家自动下载达到一样的效果,玩家CMD下载东西照样可以下载,但对服务器没有一点影响,服务器的PING一点没有面,变的是玩家的PING
ghost4.12
发表于 2010-6-10 12:31:33
本帖最后由 ghost4.12 于 2010-6-10 12:48 编辑
R版
你可以看下这个问题
不知道有没有利用价值
我发现这些通过这些简单的代码测试
玩家链接服务器的时候 玩家与服务器之间的数据发送
服务器控制台发送的数据say 内容显示次数都不一样
say 3333333 在玩家进入和退出的时候都会执行很多次
会不会与你的补丁检测有些联系 导致误判public client_connect ( id )
{
server_cmd("say 1111111")
return PLUGIN_CONTINUE
}
public client_putinserver ( id )
{
server_cmd("say 2222222")
return PLUGIN_CONTINUE
}
public client_command(id)
{
server_cmd("say 3333333", id)
return PLUGIN_HANDLED
} 这是控制台的信息
Rulzy
发表于 2010-6-10 13:17:57
client_command 肯定会执行很多次了,因为每一条客户端命令都会执行一次 client_command ,而玩家连接过程中是要发送几次命令的,进入游戏后也会发送几次命令的。
Rulzy
发表于 2010-6-10 13:21:22
本帖最后由 Rulzy 于 2010-6-10 13:24 编辑
procedure C_ClientCommand(Player: Pointer); cdecl;
var
Command: string;
Index, UserID: Integer;
AuthID: string;
BanTime: Integer;
begin
Command:=LowerCase(gEngFuncs.pfnCmd_Argv(0));
if Command='dlfile' then
begin
Index:=gEngFuncs.pfnIndexOfEdict(Player);
if (Index>=1) and (Index<=gpGlobals.maxClients) and gPlayers.InGame then
begin
UserID:=gEngFuncs.pfnGetPlayerUserId(Player);
AuthID:=gEngFuncs.pfnGetPlayerAuthId(Player);
BanTime:=Trunc(gEngFuncs.pfnCVarGetFloat('antidlfile_bantime'));
if BanTime<0 then
begin
LogPrint('Kicked "%s<%d><%s><>" (address "%s") due to using "cmd dlfile" command.',
.Name, UserID, AuthID, gPlayers.Address]);
gEngFuncs.pfnClientPrintf(Player, print_console, 'You have been kicked due to using "cmd dlfile" command.'#10);
gEngFuncs.pfnServerCommand(PChar(Format('kick #%d'#10, )));
gEngFuncs.pfnServerExecute;
end else begin
LogPrint('Banned "%s<%d><%s><>" (address "%s") due to using "cmd dlfile" command.',
.Name, UserID, AuthID, gPlayers.Address]);
gEngFuncs.pfnClientPrintf(Player, print_console, 'You have been banned due to using "cmd dlfile" command.'#10);
gEngFuncs.pfnServerCommand(PChar(Format('kick #%d'#10, )));
gEngFuncs.pfnServerExecute;
gEngFuncs.pfnServerCommand(PChar(Format('wait; addip %d %s; wait; writeip;'#10, .Address])));
end;
gpMetaGlobals.mres:=MRES_SUPERCEDE;
Exit;
end;
end;
gpMetaGlobals.mres:=MRES_IGNORED;
end;这是判断代码。只有玩家执行了 dlfile 命令,才有可能被踢的啊。如果说有误踢,可能在于判断gPlayers.InGame上,而没有使用 dlfile 命令的,又怎么会被踢呢?实在想不通。
ghost4.12
发表于 2010-6-10 13:26:55
哦明白了
其实R版 已经能捕获dlfile 已经很好了
只是不明白为什么会误踢呢?
ghost4.12
发表于 2010-6-10 13:29:06
是不是可以把 kick by console换成 让客户端自己 disconnect 呢?
Rulzy
发表于 2010-6-10 13:33:59
对了,单机建主,使用 metamod,不加载任何插件(addons/metamod/plugins.ini中没有加载任何插件),为什么不能选择队伍呢?有谁知道吗?我找了几个版本,客户端版本号都是2056。不知道大家使用的是什么版本的呢?使用 metamod 是否正常?另外问一下,为什么一定要使用 cstrike.exe ,而不用 hlds.exe 来建主呢?
wenwen
发表于 2010-6-10 13:36:08
支持!不急慢慢做!我用www的那个版本!
Rulzy
发表于 2010-6-10 13:37:14
是不是可以把 kick by console换成 让客户端自己 disconnect 呢?
ghost4.12 发表于 2010-6-10 13:29 http://www.dt-club.net/forum/images/common/back.gif也可以,不过可能效果没这么好,因为玩家自己断开连接,时间上要比从服务器上踢出要慢。与玩家的连接断开越快,对服务器的影响越小。
ghost4.12
发表于 2010-6-10 13:41:58
我有时候AMXX代码写错了也会导致不能选择队伍
进去就一直在定角落动不了
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15