22.06.2014, 05:43
This is mine, you'd have to edit it to suit your system though:
pawn Code:
CMD:setname(playerid, params[])
{
if(PlayerData[playerid][AdminLevel] < 4) return SendUnathorizedMessage(playerid);
new target, string[126], oldname[126], newname[126], newname2[126];
if(sscanf(params, "us[126]", target, newname)) return SendClientMessage(playerid, C_SYNTAX, "Syntax:{FFFFFF} /setname [player id/part of name] [new name]");
if(gIsPlayerLoggedIn[playerid] == 0) return SendPlayerNotSpawnedMessage(playerid);
format(string, sizeof(string), "/accounts/%s.ini", newname);
if(fexist(string)) return SendClientMessage(playerid, C_SYNTAX, "Error:{FFFFFF} That user-account already exists.");
format(oldname, sizeof(oldname), "%s", GetPlayersName(target));
SetPlayerName(target, newname);
format(newname2, sizeof(newname2), "%s", RemoveUnderScore(target));
for(new i = 1; i < sizeof(HouseData); i++) {
if(strcmp(oldname, HouseData[i][Owner], true) == 0)
{
strmid(HouseData[i][Owner], newname2, 0, strlen(newname2), 255);
}
}
for(new i = 1; i < sizeof(BusinessInfo); i++) {
if(strcmp(oldname, BusinessInfo[i][Owner], true) == 0)
{
strmid(BusinessInfo[i][Owner], newname2, 0, strlen(newname2), 255);
}
}
yinifrename(oldname, newname2);
format(string, sizeof(string), "* An admin changed your name from %s to %s", oldname, newname2);
SendClientMessage(target, C_CYAN, string);
format(string, sizeof(string), "* You changed %s's name to %s.", oldname, newname2);
SendClientMessage(playerid, C_CYAN, string);
format(string, sizeof(string), "/accounts/%s.ini", oldname);
fremove(string);
return 1;
}
stock yinifrename(oldname[], newname[])
{
if(!fexist(oldname)) return 1;
new string[128], File:older, File:newer;
older = fopen(oldname, io_read);
newer = fopen(newname, io_write);
while(fread(older, string))
{
StripNewLine(string);
format(string, sizeof(string), "%s\r\n", string);
fwrite(newer, string);
}
fclose(older);
fclose(newer);
fremove(oldname);
return 1;
}