Если Вы нашли ответ на вопрос, пожалуйста, пометьте необходимый ответ лучшим (галочка сбоку от сообщения) и поблагодарите автора этого ответа поднятием репутации (плюс в нижней правой части сообщения). Спасибо.
Подробнее:
FAQ по форуму
Как пометить ответ лучшим

Вопросы

Помогите сделать выдачу админ прав через диалоги, а именно что бы не ID надо было ввести а ник

Если надо команда по выдачи админ прав:

Спойлер

CMD:setadmin(playerid, params[])
{
	if(GetString(GetName(playerid), NGA1) || GetString(GetName(playerid), NGA2) || GetString(GetName(playerid), NGA3))
    {
    if(PI[playerid][pAdmin] < 7) return SendClientMessage(playerid, -1, "Вы не Разроботчик/Заместитель сервера!");
    {
      	new string[256];
        if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
        new playername[24], admin_level;
        if(sscanf(params, "s[24]i", playername, admin_level)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /setadmin [ник игрока] [уровень админа]");
        if(admin_level != 0 && PI[playerid][pAdmin] < 8) return SendClientMessage(playerid, -1, "Вы не можете назначать новых администраторов, вы можете только снимать их. Для этого используйте: /setadmin Nick_Name 0");
        if(strfind(params[0], "_", true) == -1) return SCM(playerid,COLOR_RED,"Вписывать необходимо НИК игрока, а не ID. Повторите попытку..");
        format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", playername);
        mysql_tquery(dbHandle, string, "SetAdmin", "isi", playerid, playername, admin_level);
    }
  }
    return 1;
}
ALTX:setadmin("/admin","/makeadmin");

 

 

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


Ссылка на сообщение

9 ответов на этот вопрос

  • 0

@Daniil Roslyakov ну вот вместо основного кода сделайте отправку диалога, а весь основной код перенести в действие диалога с правкой строки sscanf. Получится так: 

if(sscanf(inputtext, "p<,>s[24]i", ...) return ...

там где точки будет также, как и в самой команде. 

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


Ссылка на сообщение
  • 0

@DEST А как сделать что бы тут надо была ник, а не ID? (Что писать за место playerid?)
 

ShowPlayerDialog(playerid, 1056, DIALOG_STYLE_INPUT, "Выдача наказания", "Введите ID игрока", "Далее", "Выйти");

 

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


Ссылка на сообщение
  • 0

@Daniil Roslyakov диалог вывести вам надо вот так: 

ShowPlayerDialog(playerid, ID-dialog, DIALOG_STYLE_INPUT, "Выдача админ-прав", "Введите в окошко ник и через запятую уровень администратора", "Ввод", "Отмена");

И диалог будет оформлен следующим образом: 

case ID-dialog: 
{
	if(!response) return true; 
	//основной код из команды с замененной строкой sscanf
	return true; 
}

 

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


Ссылка на сообщение
  • 0

@DEST Я хочу что бы выдавал диалог и там идет к примеру:
- Снять администратора
- Админ
тыры, тыры...

Отредактировано пользователем Daniil Roslyakov

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


Ссылка на сообщение
  • 0

@Daniil Roslyakov ну значит так и сделайте. Скелет самого сложного я вам дал. 

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


Ссылка на сообщение
  • 0

@DEST только не понятно, как сделать на ник?
 

Спойлер

		case 1056:
		{
			if(!response) return true;
			if(!strval(inputtext)) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Вы не ввели ID", "Окей", "");
			id[playerid] = strval(inputtext);
			if(!IsPlayerConnected(id)) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Такого игрока не существует!", "Окей", "");
			ShowPlayerDialog(playerid, 1057, DIALOG_STYLE_LIST, "Выберите выдать/снять", "- Снять с поста администратора\n- Назначить на 'Мл.Модератор'\n- Назначить на 'Модератор'\n- Назначить на 'Ст.Модератор'\n- Назначить на 'Мл.Администратор'\n- Назначить на 'Администратор'\n- Назначить на 'Ст.Администратор'\n- Назначить на 'Заместитель сервера'", "Продолжить", "Отмена");
			return true;
		}

 

 

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


Ссылка на сообщение
  • 0
Спойлер


		case 1056:
		{
			if(!response) return true;
			if(!strler(inputtext)) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Вы не ввели nick", "Окей", "");
			SetPVarString(playerid, "name", inputtext); 
			if(!IsPlayerConnected(id)) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Такого игрока не существует!", "Окей", "");
			ShowPlayerDialog(playerid, 1057, DIALOG_STYLE_LIST, "Выберите выдать/снять", "- Снять с поста администратора\n- Назначить на 'Мл.Модератор'\n- Назначить на 'Модератор'\n- Назначить на 'Ст.Модератор'\n- Назначить на 'Мл.Администратор'\n- Назначить на 'Администратор'\n- Назначить на 'Ст.Администратор'\n- Назначить на 'Заместитель сервера'", "Продолжить", "Отмена");
			return true;
		}

 

И в самом 1057 диалоге вместо id[playerid] нужно использовать аргумент из PVar'a. В начало 1057 диалога: 
 

new name[24]; 
GetPVarString(playerid, "name", name, sizeof(name)); 

И вместо id[playerid] уже использовать name. 

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


Ссылка на сообщение
  • 0

@DEST Как это решить?
 

Спойлер

		case 1056:
		{
			if(!response) return true;
			if(!strler(inputtext)) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Введите ник игрока!", "Окей", "");
			SetPVarString(playerid, "name", inputtext);
			if(!IsPlayerConnected(id)) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Такого игрока не существует!", "Окей", "");
			ShowPlayerDialog(playerid, 1057, DIALOG_STYLE_LIST, "Выберите выдать/снять", "- Снять с поста администратора\n- Назначить на 'Мл.Модератор'\n- Назначить на 'Модератор'\n- Назначить на 'Ст.Модератор'\n- Назначить на 'Мл.Администратор'\n- Назначить на 'Администратор'\n- Назначить на 'Ст.Администратор'\n- Назначить на 'Заместитель сервера'", "Продолжить", "Отмена");
			return true;
		}

 

Спойлер

J:åðâåð TimePlay RolePlayîä ñåðâåðà\gamemodes\timeplay.pwn(9747) : error 017: undefined symbol "strler"
J:åðâåð TimePlay RolePlayîä ñåðâåðà\gamemodes\timeplay.pwn(9749) : error 017: undefined symbol "id"
Pawn compiler 3.10.20150531     Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

 

 

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


Ссылка на сообщение
  • 0

@Daniil Roslyakov strler заменить на strlen , опечатался. 

Строку 9749 удалить. 

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


Ссылка на сообщение
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

  • Похожий контент

    • От Illya_Zaxatniy
      Доработка мода Samp-Rp
      Скачать файл Привет, у меня давно валяется данный мод который дорабатывался мною в 22  году, решил его выставить на продажу, поскольку деньги - не лишние.
       
      Ниже прикрепляю лог доработок а также айпи адрес для теста
      также к моду(после приобретения) прилагается список багов, найденных, они не значительные но имеются
       
      лог доработок: 
      1. Вырезана /alevel 2. Теперь чат администрации для всех общий 3. Вырезана команда /serverbonus 4. Теперь администрация от 8 уровня не отображается в /admins и при авторизации в панели администратора 5. Убрал бонус 6. Теперь при авторизации в панели администратора не пишет что ввёл неверный пароль 7. Переписал регистрацию 8. Теперь проверка на блокировку идёт при заходе на сервер, не после ввода пароля 9. Переписал авторизацию 10. Адрес электронной почты при регистрации теперь проверяется по всем параметрам 11. Реферальная система при регистрации теперь проверяет ник или промокод 12. Сделал выбор скинов на текстдравах 13. Переписал /makeleader в диалог (+ теперь выдаются женские скины) 14. Вырезана /fractionid 15. Вырезан ограничитель скорости 16. Теперь при выдаче предупреждения или бане указывается фракция и ранг игрока (Если он состоит в организации) 17. Теперь командой /spawn можно спавнить других игроков 18. Отредактирована команда /recon 19. Вырезан анти-БХ 20. Переписана команда /invite (+ добавлены женские скины) 21. Из главного меню вырезана система слива денег 22. Сделана система телепорта по метке на карте для администрации 23. Переписал систему навигатора (/gps) 24. Переписал /tp (Теперь он работает через навигатор) 25. /mute теперь выдаётся по минутам 26. Добавил команду /tmute для администрации с 1 уровня - просмотр времени до снятия мута у игрока 27. Изменена команда /pm 28. Для начала гонок и пейнтбола теперь достаточно 2 участников 29. Убрана команда ахелп, будет написана новая 30. Теперь в команде присон надо указывать причину 31. Добавлена команда /forum для оповещения об открытия заявок на лидерство на форуме 32. Новый логотип 33. Добавлена команда /rmute для выдачи бана репорта 34. Написана система для тестеров     АЙПИ ДЛЯ ТЕСТА И ПАРОЛЬ: IP 195.18.27.226:1235 PASSWORD : 1   ДЛЯ СВЯЗИ ВК: https://vk.com/iilyazaxodnoy       Добавил Illya_Zaxatniy Добавлено 30.12.2024 Категория Моды Автор @illyazaxodnoy  
    • От Illya_Zaxatniy
      Привет, у меня давно валяется данный мод который дорабатывался мною в 22  году, решил его выставить на продажу, поскольку деньги - не лишние.
       
      Ниже прикрепляю лог доработок а также айпи адрес для теста
      также к моду(после приобретения) прилагается список багов, найденных, они не значительные но имеются
       
      лог доработок: 
      1. Вырезана /alevel 2. Теперь чат администрации для всех общий 3. Вырезана команда /serverbonus 4. Теперь администрация от 8 уровня не отображается в /admins и при авторизации в панели администратора 5. Убрал бонус 6. Теперь при авторизации в панели администратора не пишет что ввёл неверный пароль 7. Переписал регистрацию 8. Теперь проверка на блокировку идёт при заходе на сервер, не после ввода пароля 9. Переписал авторизацию 10. Адрес электронной почты при регистрации теперь проверяется по всем параметрам 11. Реферальная система при регистрации теперь проверяет ник или промокод 12. Сделал выбор скинов на текстдравах 13. Переписал /makeleader в диалог (+ теперь выдаются женские скины) 14. Вырезана /fractionid 15. Вырезан ограничитель скорости 16. Теперь при выдаче предупреждения или бане указывается фракция и ранг игрока (Если он состоит в организации) 17. Теперь командой /spawn можно спавнить других игроков 18. Отредактирована команда /recon 19. Вырезан анти-БХ 20. Переписана команда /invite (+ добавлены женские скины) 21. Из главного меню вырезана система слива денег 22. Сделана система телепорта по метке на карте для администрации 23. Переписал систему навигатора (/gps) 24. Переписал /tp (Теперь он работает через навигатор) 25. /mute теперь выдаётся по минутам 26. Добавил команду /tmute для администрации с 1 уровня - просмотр времени до снятия мута у игрока 27. Изменена команда /pm 28. Для начала гонок и пейнтбола теперь достаточно 2 участников 29. Убрана команда ахелп, будет написана новая 30. Теперь в команде присон надо указывать причину 31. Добавлена команда /forum для оповещения об открытия заявок на лидерство на форуме 32. Новый логотип 33. Добавлена команда /rmute для выдачи бана репорта 34. Написана система для тестеров     АЙПИ ДЛЯ ТЕСТА И ПАРОЛЬ: IP 195.18.27.226:1235 PASSWORD : 1   ДЛЯ СВЯЗИ ВК: https://vk.com/iilyazaxodnoy      
    • От Mason
      Всех Приветствую! У меня есть вот такая дверь, мне нужно сделать так чтобы она открывалась на кнопку, дело в том что я знаю про функцию MoveObject и даже попытался сделать так чтобы она открывалась, но когда я захожу в игру и нажимаю на кнопку то ничего не происходит.
      На всякий случай прикладываю код