Перейти к содержанию
Авторизация  
Na'Vi

Система смены NonRp ника

Рекомендуемые сообщения

Na'Vi

Здравствуйте с вам как всегда Na'Vi и сегодня я хотел бы выложить системку смены NonRp ника


 


Цену можете изменить на свою


 


А сейчас я подробно распишу как вшить команду в любой мод!


 


Начнём!


 


1. Подключаем командный процессор DC_CMD


 


2. Создаём переменные



new WantNickChange[MAX_PLAYERS][MAX_PLAYER_NAME];
new changenam[128];
new ChangeNickr[MAX_PLAYERS];

3. В ваше меню оно у вас либо /mn либо /mm добавляем



if(PlayerInfo[playerid][pMoney] if(ChangeNickr[playerid] == 1) return SCM(playerid,0xFF4500FF,"[Ошибка]: Вы уже изменяли свое имя. Что-бы сменить еще раз,необходимо перезайти.");
SPD(playerid,34,DIALOG_STYLE_INPUT,"{1E90FF}Изменить имя","{FF4500}Внимание!\n{008000}Использование оскорбительного ника - Warn/Ban\n\n{1E90FF}Введите новый ник:","Сменить", "Отмена");

4. В Public OnDialogResponse: добавляем



if(dialogid == 34) // Свой ИД диалога,в моём случае это 34 ID
{
if(response) // Если игрок нажал ОК
{
new string[256];
if(!strlen(inputtext)) return SPD(playerid,34,DIALOG_STYLE_INPUT,"{1E90FF}Изменить имя","{FF4500}Внимание!\n{008000}Использование оскорбительного ника - Warn/Ban\n\n{1E90FF}Введите новый ник:","Сменить","Отмена");
format(string,sizeof(string),"%s.ini",inputtext); // Ищем аккаунт
if(fexist(string)) // Если аккаунт найден то
{
SCM(playerid,0xFF4500FF,"[Ошибка]: Ник уже зарегестрирован."); // Выводим сообщение
SPD(playerid,34,DIALOG_STYLE_INPUT,"{1E90FF}Изменить имя","{FF4500}Внимание!\n{008000}Использование оскорбительного ника - Warn/Ban\n\n{1E90FF}Введите новый ник:","Сменить","Отмена"); // И заного выводим диалог
return 1;
}
format(WantNickChange[playerid],MAX_PLAYER_NAME,"%s",inputtext);
format(string,sizeof(string),"[A] %s[%d] отправил заявку на смену ника %s | Что-бы одобрить напишите /setname %d", sendername2(playerid),playerid,(inputtext),playerid); // Форматируем
ABroadCast(0xAAAAAAFF,string,1); // Выводим текст админам
ABroadCast(0xAAAAAAFF,"[A] Если-же Вы отказываете ему в смени имени,дайте ему об этом знать через /ans",1); // Выводим текст админам.
format(string,sizeof(string),"[Смена-Ника]: Ваша заявка успешно отправлена,ожидайте ее расмотрения. Желаемый ник: {1E90FF}%s",(inputtext)); // Форматируем
SCM(playerid, 0xFF4500FF, string); // Выводим текст
return 1;
}
}

5. Создаём саму команду



CMD:setname(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] if(PlayerInfo[playerid][pDuty] == 0) return SCM(playerid,0xFF4500FF,"[A] Вы не можете использовать команды. Авторизуйтесь в Админ.Панели {1E90FF}/duty [Пароль]"); // Проверка на авторизацию админа
new newname[64],idx,giveplayerid,stringo[128];
tmp = strtok(params[0], idx); // Делаем пробел после /setname. Т.е след.строка это ID
if(!strlen(tmp)) return SCM(playerid, 0xFF4500FF, "[Ошибка]: Укажите ID. | /setname [ID]"); // Если мы не указали ИД игрока.
giveplayerid = ReturnUser(tmp); // Присваиваем ИД игрока к giveplayerid
if(giveplaerid != INVALID_PLAYER_ID) // Если giveplayerid не равен не правильному ид,то продолжаем.
{
new length = strlen(params[0]);
while ((idx {
idx++;
}
{
format(stringo,sizeof(stringo),"%s.ini",newname); // Открываем папку с аккаунтами
if(fexist(stringo)) return SCM(playerid,0xFF4500FF,"[Ошибка]: Ник уже зарегестрирован."); // Если ник уже зарегестрирован,то не даём пройти дальше.
if(strlen(WantNickChange[giveplayerid]) if(ChangeNickr[giveplayerid] == 1) return SCM(playerid,0xFF4500FF,"[Ошибка]: Игрок уже менял имя. Что-бы сменить еще раз,ему необходимо перезайти."); // Если игрок сменил и не перезашёл.
format(changenam,sizeof(changenam),"%s",WantNickChange[giveplayerid]);
format(stringo,sizeof(stringo),"%s.ini",WantNickChange[giveplayerid]);
SCM(params[1],0x008000FF,"[Смена-Ника]: Администрация дала одобрение на смену Вашего имени."); // Выводим текст
SCM(params[1],0x008000FF,"[Смена-Ника]: Что-бы зайти под новым ником,смените его в окне SA:MP."); // ВЫводим текст
ChangeName(giveplayerid); // Вызываем паблик смены ника
format(stringo,sizeof(stringo),"[A] Администратор %s[%d] дал одобрение на смену имени.",sendername2(playerid),playerid); // Форматируем
ABroadCast(0xAAAAAAFF,stringo,1); // Выводим админам с 1-ого ЛВЛа.
PlayerInfo[giveplayerid][pMoney] -= 50000; // Снимаем игроку 50.000$
}
}
return 1;
}

В конец мода добавляем



forward ChangeName(playerid);
public ChangeName(playerid) // Паблик смены ника
{
new plnamep[MAX_PLAYER_NAME],string[128],password[64];
ChangeNickr[playerid] = 1;
GetPlayerName(playerid,plnamep,sizeof(plnamep));
SetPlayerName(playerid, changenam);
format(string,sizeof(string),"%s.ini",plnamep);
fremove(string);
format(string,sizeof(string),"[Смена-Ника]: Игрок {1E90FF}%s[%d] {008000}сменил имя на {1E90FF}%s",plnamep,playerid,changenam);
SCMALL(0x008000FF,string);
new PlayerName[MAX_PLAYER_NAME], account[128];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
format(account,sizeof(account),"%s.ini", PlayerName);
new iniFile = ini_createFile(account);
if(iniFile {
iniFile = ini_openFile(account);//
}
if(iniFile >= 0)
{
ini_setString(iniFile, "Пароль",password);
ini_setInteger(iniFile, "Money", GetPlayerMoney(playerid));
ini_setInteger(iniFile,"Kills", PlayerInfo[playerid][pKills]);
ini_setInteger(iniFile,"Deaths", PlayerInfo[playerid][pDeaths]);
ini_setInteger(iniFile,"Skin", PlayerInfo[playerid][pSkin]);
ini_setInteger(iniFile,"VIP", PlayerInfo[playerid][pVIP]);
ini_setInteger(iniFile,"Admin", PlayerInfo[playerid][pAdmin]);
ini_closeFile(iniFile);
}
return 1;
}

В конец мода также добавляем



stock sendername2(playerid)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof pName);
return pName;
}

Автор:xDimasx


 


Я: Немного изменил инструкцию чтобы было понятно новичкам (В прочем как и всегда)


Изменено пользователем Na'Vi
  • Sad 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.