22.06.2014, 04:16
I need changename command which can be done only by admins level 3 please someone give me
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;
}
CMD:setname(playerid,params[]) {
if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
new tmp[128], tmp2[128], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(isnull(tmp) || isnull(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
new player1 = strval(tmp), length = strlen(tmp2), string[128];
if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
CMDMessageToAdmins(playerid,"SETNAME");
format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
PlayerInfo[playerid][God] = 0;
SetPlayerHealth(player1, 100);
SetPlayerName(player1, tmp2);
return OnPlayerConnect(player1);
} else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
} else return SendClientMessage(playerid,red,"ERROR: Server Unknown Command.");
}