Перейти к содержанию

Лидеры


Популярный контент

Показан контент с высокой репутацией 07/09/2019 во всех областях

  1. 1 балл
    вы допустили ошибку и пропустили " вот я исправил static const GetPrefixColor[15][7] = {"","FF0000","FF0000","FF0000","FFBB00","0011FF","0011FF","0011FF","0011FF","00E910","00E910","00E910","00E910","BB27E8","FFBB00"};
  2. 0 баллов
    Здравствуйте с вам как всегда 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 Я: Немного изменил инструкцию чтобы было понятно новичкам (В прочем как и всегда)
×

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

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