|
玩家名字前缀战队标签插件(flag_name_new.amxx)的功能就是可以在玩家的名字前面加上一个标签,即让服务器里所有的CT玩家名字前都加上BLUE这个标签,让所有的T玩家名字前都加上RED这个标签。(呵呵,这样一来就比较符合标准的比赛形式了。)但我觉得还有两个地方需要完善:
1. 比如我在当警察,名字为[BLUE]X-man,阵亡后我换队伍当匪徒(或者自杀后换做匪徒),但这时我的名字却依然是[BLUE]X-man,直到下一局开始时名字才会变成[RED]X-man.因此能不能改成这样:玩家换队伍之后,名字的前缀也立即会变成其相应队伍的标签,而不必等到下一局开始时才换上队伍标签?
2. 还有一个问题就是:当服务器的人数不平衡时,我们知道一般过两局之后就会自动调整的.比如这时一个名字叫[BLUE]ABC的CT被服务器自动弹过去当T了(或者被OP强制弹过去当T了),我们可以发现他的名字依然会是[BLUE]ABC,而不是[RED]ABC,所以我觉得这里还需要继续完善一下.
[PHP]#include <amxmodx>
#include <amxmisc>
#define PLUGIN_NAME "Flag Name"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
server_cmd("mp_limitteams 1")
register_logevent("join_team",3,"1=joined team","2=CT","2=TERRORIST")
}
public join_team()
{
new log[64],name[32],team[16]
read_logargv(0,log,63)
read_logargv(2,team,15)
parse_loguser(log,name,31)
new id=get_user_index(name)
AddTag(id,team);
}
public AddTag(id,team[])
{
new temp[6],name[32],tag[32]
get_user_info(id,"name",name,31)
copy(temp,5,name)
if(equal(team,"CT"))
{
if(equal(temp,"[CHM]"))
{
return;
}else if(contain(temp,"[MOD]")!=-1){
copy(temp,5,name);
if(equal(temp,"[MOD]"))
format(tag,31,"[CHM] %s",name[6]);
}else{
format(tag,31,"[CHM] %s",name);
}
set_user_info(id,"name",tag)
}
if(equal(team,"TERRORIST"))
{
if(equal(temp,"[CHM]"))
{
format(tag,31,"[MOD] %s",name[6]);
}else if(contain(temp,"[MOD]")!=-1){
copy(temp,5,name)
if(equal(temp,"[MOD]"))
return;
}else{
format(tag,31,"[MOD] %s",name);
}
set_user_info(id,"name",tag)
}
}
public client_infochanged(id)
{
new oldname[32],newname[32],team[16]
get_user_name(id,oldname,31)
get_user_info(id,"name",newname,31)
if(!equal(oldname,newname))
get_user_team(id,team,15);
AddTag(id,team)
}[/PHP] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注个册吧
×
|