Mario_Bacardi
Ученик
Здраствуйте, эта система хороша тем, что она делает такие действия: после команды /delacc [nickname] надо подтвердить/отменить удаление, после того как вы удалили аккаунт в файл "delacc.log" будет такая запись" [ Дата действия ] [ Время действия ] Nickname удалил аккаунт игроку Test". И так, приступим.
Ко всем new
В public OnPlayerConnect
Ко всем командам ( команда на ZCMD )
И теперь создадим stock, в любое место мода ( желательно в конец )
Теперь в папке "scriptfiles" создайте новую папку "delacc".
Автор: Sam_Grand ( Это я, просто я ник сменил )
Ко всем new
PHP:
new delac[MAX_PLAYER_NAME];
PHP:
delac[playerid] = 0;
PHP:
CMD:delacc(playerid, params[])
{
if(Player[playerid][pAdmin] < 4) return 1;
new string[256];
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(sscanf(params,"s",params[0])) return SendClientMessage(playerid, COLOR_FADE4, "Используйте: /delacc [Ник игрока]");
format(string,sizeof(string),"players/%s.ini",params[0]); // Путь к папке где хранятся аккаунты
if(!fexist(string))
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Данного аккаунта не найдено"); // Проверка на то есть ли аккаунт или нет
return 1;
}
delac[playerid] = 1;
SendMes(playerid,0x66cc00AA,"Ник: %s, чтобы удалить аккаунт введите /ydelacc, для отмены /ndelacc",params[0]);
return 1;
}CMD:ydelacc(playerid, params[])
{
if(delac[playerid] == 0) return SendMes(playerid, COLOR_FADE4, "Вы не удаляли аккаунт");
if(sscanf(params,"s",params[0])) return SendClientMessage(playerid, COLOR_FADE4, "Используйте: /ydelacc [Ник игрока]");
new string[228];
format(string,sizeof(string),"players/%s.ini",params[0]); // Путь к папке где хранятся аккаунты
if(!fexist(string))
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Данного аккаунта не найдено");
return 1;
}
fremove(string);
delac[playerid] = 0;
new atext[228];
new lax[MAX_PLAYER_NAME];
GetPlayerName(params[0],lax,sizeof(lax));
new s[MAX_PLAYER_NAME];
GetPlayerName(playerid,s,sizeof(s));
format(atext,sizeof(atext),"Вы успешно удалили аккаунт %s",params[0]);
SendClientMessage(playerid,0x66cc00AA,atext);
format(atext,sizeof(atext),"[A] %s удалил аккаунт с ником: %s",s,params[0]);
SendClientMessage(playerid,COLOR_FADE4,atext);
DelAcc("delacc.log",string);
SCM(params[0],0xFF0000AA,"Ваш аккаунт был удалён за нарушение правил сервера");
Kick(params[0]);
return true;
}
CMD:ndelacc(playerid, params[])
{
if(delac[playerid] == 0) return SendMes(playerid, COLOR_FADE4, "Вы не удаляли аккаунт");
new string[228];
if(sscanf(params,"s",params[0])) return SendClientMessage(playerid, COLOR_FADE4, "Используйте: /ndelacc [Ник игрока]");
format(string,sizeof(string),"players/%s.ini",params[0]); // Путь к папке где хранятся аккаунты
if(!fexist(string))
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Данного аккаунта не найдено"); // Проверка на то есть ли аккаунт или нет
return 1;
}
delac[playerid] = 0;
new atext[228];
new lax[MAX_PLAYER_NAME];
GetPlayerName(params[0],lax,sizeof(lax));
format(atext,sizeof(atext),"Вы успешно отменили удаление аккаунта %s",params[0]);
SendClientMessage(playerid,0x66cc00AA,atext);
return true;
}
PHP:
stock DelAcc(const file[],params[])
{
new write[256],minute,second,hour,day,month,year,playerid;
new lax[MAX_PLAYER_NAME];
GetPlayerName(params[0],lax,sizeof(lax));
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
gettime(hour,minute,second);
getdate(year,month,day);
format(write, sizeof(write), "delacc/%s",file);
new File:hFile = fopen(write, io_append);
format(write, sizeof(write), "[%d.%02d.%02d | %02d:%02d:%02d] %s удалил аккаунт игроку %s\r\n",day,month,year,hour,minute,second,name,lax);
for(new i; i < strlen(write); i ++) fputchar(hFile, write[i], false);
fclose(hFile);
}
Автор: Sam_Grand ( Это я, просто я ник сменил )
