Код:
CMD:setname(playerid, params[])
{
new string[128], giveplayerid, name[MAX_PLAYER_NAME];
new playername[MAX_PLAYER_NAME];
if(sscanf(params, "us[24]", giveplayerid, name)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setname [playerid/partofname] [newname]");
if(IsPlayerConnected(giveplayerid))
{
if(PlayerInfo[playerid][pAdmin] >= 4)
{
if(AdminDuty[playerid] != 1 && PlayerInfo[playerid][pAdmin] < 5)
{
SendClientMessage(playerid,COLOR_WHITE, "Anda bukan Admin On-Duty. Untuk mengakses CMD anda harus On-Duty. Ketik /aduty untuk On-Duty.");
return 1;
}
if(AdminDuty[giveplayerid] == 1)
{
SendClientMessage(playerid,COLOR_WHITE, "You can't use /setname on an on-duty admin.");
return 1;
}
if(strfind(params, "_", false) == -1)
return SendClientMessage(playerid, COLOR_GREY, "The name must include an underscore ('_').");
if(!doesAccountExist(name))
{
new
newname[MAX_PLAYER_NAME + 10];
GetPlayerName(giveplayerid, playername, sizeof(playername));
format(newname, sizeof(newname), "users/%s.ini", name);
if(PlayerInfo[giveplayerid][pHouse] != INVALID_HOUSE_ID && strcmp(playername, HouseInfo[PlayerInfo[giveplayerid][pHouse]][hOwner], true) == 0)
{
strmid(HouseInfo[PlayerInfo[giveplayerid][pHouse]][hOwner], name, 0, strlen(name), 255);
format(string, sizeof(string), "House owner: %s\nLevel: %d\nID: %d",HouseInfo[PlayerInfo[giveplayerid][pHouse]][hOwner],HouseInfo[PlayerInfo[giveplayerid][pHouse]][hLevel],PlayerInfo[giveplayerid][pHouse]);
UpdateDynamic3DTextLabelText(HouseInfo[PlayerInfo[giveplayerid][pHouse]][hTextID], COLOR_HOUSEGREEN, string);
}
if(PlayerInfo[giveplayerid][pHouse2] != INVALID_HOUSE_ID && strcmp(playername, HouseInfo[PlayerInfo[giveplayerid][pHouse2]][hOwner], true) == 0)
{
strmid(HouseInfo[PlayerInfo[giveplayerid][pHouse2]][hOwner], name, 0, strlen(name), 255);
format(string, sizeof(string), "House owner: %s\nLevel: %d\nID: %d",HouseInfo[PlayerInfo[giveplayerid][pHouse]][hOwner],HouseInfo[PlayerInfo[giveplayerid][pHouse]][hLevel],PlayerInfo[giveplayerid][pHouse]);
UpdateDynamic3DTextLabelText(HouseInfo[PlayerInfo[giveplayerid][pHouse2]][hTextID], COLOR_HOUSEGREEN, string);
}
if(PlayerInfo[giveplayerid][pDonator] >= 1)
{
new string2[128];
format(string2, sizeof(string2), "[DONATOR NAMECHANGES] %s has changed their name to %s.", GetPlayerNameEx(giveplayerid), name);
Log("logs/donatornames.log", string2);
}
format(string, sizeof(string), " Your name has been changed from %s to %s.", GetPlayerNameEx(giveplayerid), name);
SendClientMessage(giveplayerid,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\"",GetPlayerNameEx(playerid),GetPlayerNameEx(giveplayerid),name);
Log("logs/stats.log", string);
format(string, sizeof(string), "AdmCmd: %s changed \"%s\"s name to \"%s\"",GetPlayerNameEx(playerid),GetPlayerNameEx(giveplayerid),name);
ABroadCast(COLOR_LIGHTRED, string, 1);
SetPlayerName(giveplayerid, name);
PlayerInfo[giveplayerid][pInt] = GetPlayerInterior(giveplayerid);
if(GetPVarType(giveplayerid, "tabbedVW") != 0) {
PlayerInfo[giveplayerid][pVW] = GetPVarInt(giveplayerid, "tabbedVW");
} else PlayerInfo[giveplayerid][pVW] = GetPlayerVirtualWorld(giveplayerid);
GetPlayerIp(giveplayerid, PlayerInfo[giveplayerid][pIP], 32);
GetPlayerPos(giveplayerid, PlayerInfo[giveplayerid][pPos_x], PlayerInfo[giveplayerid][pPos_y], PlayerInfo[giveplayerid][pPos_z]);
GetPlayerFacingAngle(giveplayerid, PlayerInfo[giveplayerid][pPos_r]);
OnPlayerStatsUpdate(giveplayerid);
format(newname, sizeof(newname), "users/%s.ini", playername);
fremove(newname);
if(doesAccountExist(playername)) // If it doesn't get removed, blank the file with write io and check its length when a player attempts to authenticate (it'll be 0)
{
new File: BlankTheFile = fopen(newname, io_write);
SendClientMessage(playerid, COLOR_GRAD2, "The old account couldn't be removed completely (it's been blanked for future use).");
fclose(BlankTheFile);
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "This name is already registered.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "You're not authorised to use this command.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "No Such Player");
}
return 1;
}
Код:
CMD:setadmin(playerid, params[])
{
if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] >= 5)
{
new
iAdminValue,
iTargetID;
if(sscanf(params, "ui", iTargetID, iAdminValue))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setadmin [playerid/partofname] [level]");
}
else if(IsPlayerConnected(iTargetID))
{
if(AdminDuty[iTargetID] != 0)
{
SendClientMessage(playerid, COLOR_WHITE, "That admin is currently on-duty. They must go off-duty in order for you to set their admin level.");
return 1;
}
if(iAdminValue > 5) return SendClientMessageEx(playerid, COLOR_GREY, "Admin levels cannot be above 5.");
new szMessage[47 + (MAX_PLAYER_NAME * 2)];
format(szMessage, sizeof(szMessage), "AdmCmd: %s has set %s to Level %d Admin.", GetPlayerNameEx(playerid), GetPlayerNameEx(iTargetID), iAdminValue);
ABroadCast(COLOR_LIGHTRED,szMessage, 5);
PlayerInfo[iTargetID][pAdmin] = iAdminValue;
format(szMessage, sizeof(szMessage), "You have been made a Level %d Administrator by %s.", iAdminValue, GetPlayerNameEx(playerid));
SendClientMessage(iTargetID, COLOR_LIGHTBLUE, szMessage);
/*if(PlayerInfo[iTargetID][pHelper] >= 1) {
// PlayerInfo[iTargetID][pHelper] = 0;
//PlayerInfo[iTargetID][pAcceptReport] = 0;
}*/
if(iAdminValue == 0)
{
format(PlayerInfo[iTargetID][pAdminName], MAX_PLAYER_NAME, "0");
PlayerInfo[playerid][pFactionMod] = 0;
PlayerInfo[playerid][pGangMod] = 0;
PlayerInfo[playerid][pBanAppealer] = 0;
}
}
else SendClientMessage(playerid, COLOR_GRAD2, "Invalid player specified.");
}
else SendClientMessage(playerid, COLOR_GRAD1, "Anda tidak diizinkan untuk menggunakan perintah ini!");
return 1;
}
Код:
format(string, sizeof(string), "AdmCmd: %s has been banned, reason: Teleport hacking.", GetPlayerNameEx(playerid));
ABroadCast(COLOR_LIGHTRED, string, 5);
PlayerInfo[playerid][pBanned] = 3;
new playerip[32];
GetPlayerIp(playerid, playerip, sizeof(playerip));
format(string, sizeof(string), "AdmCmd: %s (IP:%s) was banned, reason: Teleport hacking.", GetPlayerNameEx(playerid), playerip);
PlayerInfo[playerid][pBanned] = 3;
Log("logs/ban.log", string);
new ip[32];
GetPlayerIp(playerid,ip,sizeof(ip));
AddBan(ip);
Kick(playerid);
TotalAutoBan++;
}
return 1;
}