搜索
查看: 3107|回复: 8

[求助]解决最先杀敌插件与中文ID的冲突

[复制链接]
发表于 2008-10-27 18:02:08 | 显示全部楼层 |阅读模式 来自 中国–广东–中山
服务器使用了老友记中文ID插件
以下代码,当最先杀敌的玩家是中文ID的话,CS服务端马上报错并崩溃,但最先杀敌的玩家是英文ID则一切正常。经测试,问题出在
show_hudmessage(0, " %s 最先杀敌,奖励10000",p_name)
这行上,猜测是当中文ID时,get_user_name取出的字符串是UTF-8码,而show_hudmessage()函数不能直接支持,不知对否。
请问该如何解决?谢谢!
[PHP]
#include <amxmod>
#include <csstats>

new g_round

public plugin_init()
{
        register_plugin("First Shot","1.0","ahcat")
        register_event("DeathMsg", "hook_death", "a")
        register_logevent("hook_roundstart",2,"0=World triggered","1=Round_Start")
        g_round = 0
}

public hook_death()
{
        if (g_round!=0)
        return PLUGIN_HANDLED
        new Killer = read_data(1)
        new Victim = read_data(2)
        if(!Killer || get_user_team(Killer)==get_user_team(Victim))
        return PLUGIN_HANDLED
        set_user_money(Killer,10000+get_user_money(Killer))
        new p_name[32]
        get_user_name(Killer,p_name,31)
        set_hudmessage(100,100,255,0.03, 0.31, 0, 6.0, 10.0)
        show_hudmessage(0, " %s 最先杀敌,奖励10000",p_name)
        g_round = 1
        return PLUGIN_HANDLED
}

public hook_roundstart()
{
        g_round = 0
}  
[/PHP]
发表于 2008-10-27 19:22:02 | 显示全部楼层 来自 中国–福建–漳州

回复: [求助]解决最先杀敌插件与中文ID的冲突

这些语句本身没什么大问题。不过建议把 return PLUGIN_HANDLED 修改为 return PLUGIN_CONTINUE

在CS插件中,基本上都是使用UTF8编码的。
回复

使用道具 举报

 楼主| 发表于 2008-10-28 12:35:59 | 显示全部楼层 来自 中国–广东–中山

回复: [求助]解决最先杀敌插件与中文ID的冲突

谢谢大R的回复.可是搞不懂为什么只要是中文ID的玩家最先杀死敌人的那一瞬间.服务端就马上崩溃.
回复

使用道具 举报

发表于 2008-10-28 17:48:03 | 显示全部楼层 来自 中国–福建–漳州

回复: [求助]解决最先杀敌插件与中文ID的冲突

估计是其他插件的问题。
回复

使用道具 举报

 楼主| 发表于 2008-10-29 12:42:26 | 显示全部楼层 来自 中国–广东–中山

回复: [求助]解决最先杀敌插件与中文ID的冲突

R大,将除了中文ID及最先杀敌奖励插件.其他所有第三方插件都关了..问题仍旧...郁闷了.呵呵.
回复

使用道具 举报

发表于 2008-10-29 12:51:32 | 显示全部楼层 来自 中国–广西–百色–那坡县

回复: [求助]解决最先杀敌插件与中文ID的冲突

Post by hotbadman
R大,将除了中文ID及最先杀敌奖励插件.其他所有第三方插件都关了..问题仍旧...郁闷了.呵呵.
应该是这种情况:用中文ID的玩家杀人或被人杀时服务器会卡,服务器使用中文ID的玩家多时可能会崩溃,不知道是服务器硬件不够好还是什么?..................
回复

使用道具 举报

发表于 2008-10-30 11:05:53 | 显示全部楼层 来自 中国–浙江–杭州

回复: [求助]解决最先杀敌插件与中文ID的冲突

插件越多娱乐越强,麻烦也多多.
回复

使用道具 举报

 楼主| 发表于 2008-11-4 19:00:06 | 显示全部楼层 来自 中国–广东–中山

回复: [求助]解决最先杀敌插件与中文ID的冲突

Post by 心静如水
应该是这种情况:用中文ID的玩家杀人或被人杀时服务器会卡,服务器使用中文ID的玩家多时可能会崩溃,不知道是服务器硬件不够好还是什么?..................


不是这种情况.
不开杀敌奖励插件的话.20个玩家全中文ID也没事.
开了杀敌奖励插件.服务器里就2个玩家,一个中文ID,一个英文ID.只要中文ID的把对方杀了.hlds就马上弹出某某内存地址不能read的错误提示.并进程崩溃.但如果是英文ID把中文ID的杀了.也没事.
回复

使用道具 举报

发表于 2008-11-4 22:02:22 | 显示全部楼层 来自 中国–四川–成都

回复: [求助]解决最先杀敌插件与中文ID的冲突

我用的是西门的中文ID,没有这个问题!
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表