Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Система удаления аккаунта [MxIni] [ZCMD]

Статус
В этой теме нельзя размещать новые ответы.

Mario_Bacardi

Ученик
Здраствуйте, эта система хороша тем, что она делает такие действия: после команды /delacc [nickname] надо подтвердить/отменить удаление, после того как вы удалили аккаунт в файл "delacc.log" будет такая запись" [ Дата действия ] [ Время действия ] Nickname удалил аккаунт игроку Test". И так, приступим.

Ко всем new

PHP:
new delac[MAX_PLAYER_NAME];
В public OnPlayerConnect

PHP:
delac[playerid] = 0;
Ко всем командам ( команда на ZCMD )

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;
}
И теперь создадим stock, в любое место мода ( желательно в конец )

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);
}
Теперь в папке "scriptfiles" создайте новую папку "delacc".

Автор: Sam_Grand ( Это я, просто я ник сменил )
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу