Всем привет, с вами Rasr0w. Сегодня я поделюсь с вами своей функцией из мода. Она позволит удалить аккаунт игрока прямо из игры с подтверждением. Начнем.
Ко всем new:
Код
new dellacc[MAX_PLAYER_NAME];
В OnPlayerCommandText:
Код
if(strcmp(cmd, "/dellacc", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 5) // проверка на админа, если нет переменной, удаляйте
{
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
return SendClientMessage(playerid, 0xC7C7C7FF, "Используй: /dellacc [ник]");
}
format(string, sizeof(string), "players/%s.ini", tmp);
if(fexist(string))
{
format(dellacc[playerid], MAX_PLAYER_NAME, "%s", tmp); // записываем желаемый ник
new dell[256];
format(dell, 256, "{ffffff}Вы уверены в удалении {FF7626}%s?{ffffff} Чтобы подтвердить, нажмите 'Принять'", tmp);
ShowPlayerDialog(playerid, 9981, DIALOG_STYLE_MSGBOX, "{f0ff00}Удаление", dell, "Принять", "Отмена");
}
else
{
SendClientMessage(playerid, 0xADADADFF, "Аккаунта не существует");
}
return 1;
}
В OnDialogResponse:
Код
if(dialogid == 9981)
{
if(response)
{
new string[144];
format(string, sizeof(string), "players/%s.ini", dellacc[playerid]);
fremove(string);
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "[ВНИМАНИЕ] %s[%d] удалил аккаунт игрока %s", playername, playerid, dellacc[playerid]);
SendAdminMessage(0xFF0000FF, string);
SendClientMessage(GetPlayerID(dellacc[playerid]),0xFF0000FF, "Ваш аккаунт удален за нарушение правил сервера.");
return Kick(GetPlayerID(dellacc[playerid]));
}
else
{
new stri3[144];
format(stri3, 144, "Удаление аккаунта %s успешно отменено",dellacc[playerid]);
SendClientMessage(playerid,0xFF6F00FF, stri3);
dellacc[playerid] = 0;
}
}
В конец мода (у кого нет):
Код
stock SendAdminMessage(color,const strin[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(isPlayerAnAdmin(i))
{
SendClientMessage(i, color, strin);
printf("%s", strin);
}
}
}
return true;
}
Код
stock GetPlayerID(Name[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new pName2[MAX_PLAYER_NAME];
GetPlayerName(i, pName2, sizeof(pName2));
if(!strcmp(Name, pName2))
{
return i;
}
}
}
return -1;
}
Автор: я. Извиняюсь за кривую табуляцию. Мой первый урок :3Добавлено (07.08.2014, 09:59)
---------------------------------------------
Подниму чуток