|
发表于 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] |
|