Re: [HELP] Fix needed
PHP Code:
new enable, plTag[33][33]
static BaseDir[64], FileDir[64], FileIP[64]
new bool:tagged[33]
new bool:connectshown[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
enable = register_cvar("tag_by_ip", "1")
}
public plugin_cfg() {
get_basedir(BaseDir, CharsMax(BaseDir))
formatex(FileDir, CharsMax(FileDir), "%s/TagByIp", BaseDir)
formatex(FileIP, CharsMax(FileIP), "%s/Tag_By_Ip.cfg", FileDir)
if(!dir_exists(FileDir))
mkdir(FileDir)
if(!file_exists(FileIP))
write_file(FileIP, ";Add the beggining of Ip and prefered Tag: 127=[LOC]", -1)
}
public readfile(id) {
new Ip[16], pIp[16], Tag[33], Buffer[64]
static iFile
get_user_ip(id, pIp, CharsMax(Ip), 1)
iFile = fopen(FileIP, "rt")
while(!feof(iFile))
{
fgets(iFile, Buffer, CharsMax(Buffer));
if((Buffer[0] == ';') || (Buffer[0] == '/' && Buffer[1] == '/'))
continue
strtok(Buffer, Ip, CharsMax(Ip), Tag, CharsMax(Tag), '=', 1)
if(ipmatch(pIp, Ip))
{
tagged[id] = true
copy(plTag[id], CharsMax(Tag), Tag)
fclose(iFile)
return PLUGIN_CONTINUE
}
}
tagged[id] = false
plTag[id] = ""
fclose(iFile)
return PLUGIN_CONTINUE
}
stock bool:ipmatch(pIp[], Ip[]) {
new len
len = strlen(Ip) - 1
for(new i=0; i<=len; i++)
{
if(pIp[i] != Ip[i])
return false
}
return true
}
public client_putinserver(id) {
if(!get_pcvar_num(enable))
return PLUGIN_HANDLED
tagged[id] = false
plTag[id] = ""
readfile(id)
if(tagged[id])
{
new OldName[32], TName[64]
get_user_name(id, OldName, CharsMax(OldName))
if( (contain(OldName, plTag[id]) ==-1) && (connectshown[id] == false) )
{
format(TName, CharsMax(TName), "%s%s", plTag[id], OldName)
set_user_info(id, "name", TName)
connectshown[id] = true;
}
}
return PLUGIN_HANDLED
}
public client_disconnect(id) {
connectshown[id] = false;
tagged[id] = false
plTag[id] = ""
}
public client_infochanged(id) {
if(!get_pcvar_num(enable))
return PLUGIN_HANDLED
readfile(id)
if(tagged[id])
{
new OldName[32], TName[64], NewName[64]
get_user_name(id, OldName, CharsMax(OldName))
get_user_info(id, "name", NewName, CharsMax(NewName))
if(!equali(NewName, OldName))
{
if(contain(NewName, plTag[id]) ==-1)
{
format(TName, CharsMax(TName), "%s%s", plTag[id], NewName)
set_user_info(id, "name", TName)
}
}
}
return PLUGIN_HANDLED
}
|