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

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



10 posts in this topic

Помогите сделать выдачу админ прав через диалоги, а именно что бы не 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");

 

 

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites

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

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

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

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

 

Share this post


Link to post
Share on other sites

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

Edited by Daniil Roslyakov

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@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;
		}

 

 

Share this post


Link to post
Share on other sites
Спойлер


		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. 

Share this post


Link to post
Share on other sites

@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.

 

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Andy
      By Andy
      Приветик, Кто нибудь вкурсе можно ли как-то реализовать систему знакомств аналогичную GTA 5 RP проектам,
      Кто не знает :

      Изначально у игрока все люди 'Незнакомцы',
      Если пожать друг другу руку, то вместо 'Незнакомец' над головой отобразится ник игрока.

      Я отключил ники игроков на сервере и добавил кастомные через 3D Text прикрепленный к игроку, на этом всё и закончилось, можно ли как-то сделать сохранение/загрузку и отображение ников у знакомых людей?