• 0
Гость Андрей

Не работает команда

Вопросы

Команда:
 

Спойлер

CMD:ahelp(playerid,params[])
{
    ShowPlayerDialog(playerid, 4,DIALOG_STYLE_LIST, "Команды администраторов" , "Команды администратора 1 уровень\nКоманды администратора 2 уровень\nКоманды администратора 3 уровень\nКоманды администратора 4 уровень\nКоманды администратора 5 уровень\nКоманды администратора 6 уровень\nКоманды администратора 7 уровень\n", "Далее","Отмена");
    return true;
}

 

 

Спойлер

	if(dialogid == 4)
	{
		if(!response) return 1;
		switch(listitem)
	{
        	case 0:
        	{
	        	new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/ahelp {FFFFFF}- Админ-Команды\n");
        	}
        	case 1:
        	{
				if(Player[playerid][pAdmin] < 2) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/cmd {FFFFFF}- \n");
        	}
        	case 2:
			{
				if(Player[playerid][pAdmin] < 3) return SendClientMessage(playerid,COLOR_WHITE,""InfoA"Недоступно");
				new stringer[495];
	     	   	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/hp {FFFFFF}- Восстановить себе здоровье\n");
			}
			case 3:
			{
				if(Player[playerid][pAdmin] < 4) return SendClientMessage(playerid,COLOR_WHITE,""InfoA"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/sethp {FFFFFF}- Установить HP игроку\n");
			}
			case 4:
			{
				if(Player[playerid][pAdmin] < 5) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/clearchat {FFFFFF}- Отчистить чат\n");
			}
			case 5:
			{
				if(Player[playerid][pAdmin] < 6) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/cmd {FFFFFF}- \n");
			}
			case 6:
			{
				if(Player[playerid][pAdmin] < 7) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/timeset {FFFFFF}- Изменить время на сервере\n");
			}
			case 7:
			{
				if(Player[playerid][pAdmin] < 8) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/setadmin {FFFFFF}- Выдать админ-права\n");
			}
			case 8:
			{
				if(Player[playerid][pAdmin] < 9) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
				stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/cmd {FFFFFF}- \n");
			}
			case 9:
			{
				if(Player[playerid][pAdmin] < 10) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	       	 	stringer[0] = EOS;
				strcat(stringer, "{FFCC00} {FFFFFF}- \n");
			}
    	}
	}

 

 

Когда вызываешь команду вылазит диалоговое окно, когда кликаешь - оно тупо скипается.

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


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

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

  • 0

Твой код ничего большего и не содержит в себе.
Да, переменную stringer ты изменяешь, только впустую.
После использования функции strcat используй функцию ShowPlayerDialog.

 

Примерное использование:

ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Команды администратора", stringer, "Закрыть", "");

 

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


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

Гость Андрей, Ну во первых Андрей, зачем вам params? И в switch у вас всего лишь 7 case будет, у вас их 10.

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


Ссылка на сообщение
  • 0
4 минуты назад, Nekit_Krut18 сказал:

Гость Андрей, Ну во первых Андрей, зачем вам params? И в switch у вас всего лишь 7 case будет, у вас их 10.

От наличия params[] в регистрации новой команды ничего критического не происходит, это не является ошибкой.

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

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


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

Гость Андрей, И вам не куда выводить текст. Либо используйте SendClientMessage(playerid, COLOR_WHITE, stringer); 

Либо же диалогом - ShowPLayerDialog( playerid, d_none, DIALOG_STYLE_MSGBOX, "{"#cBL"}Команды администрации", stringer, "Закрыть", "" ) ;

d_none - это ид диалога, можете заменить на другой свободный.

Вот замените на то, что у вас есть сейчас.

Цитата

	if(dialogid == 4)
	{
		if(!response) return 1;
		switch(listitem)
		{
        	case 0:
        	{
	        	new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/ahelp {FFFFFF}- Админ-Команды\n");
        	}
        	case 1:
        	{
				if(Player[playerid][pAdmin] < 2) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/cmd {FFFFFF}- \n");
        	}
        	case 2:
			{
				if(Player[playerid][pAdmin] < 3) return SendClientMessage(playerid,COLOR_WHITE,""InfoA"Недоступно");
				new stringer[495];
	     	   	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/hp {FFFFFF}- Восстановить себе здоровье\n");
			}
			case 3:
			{
				if(Player[playerid][pAdmin] < 4) return SendClientMessage(playerid,COLOR_WHITE,""InfoA"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/sethp {FFFFFF}- Установить HP игроку\n");
			}
			case 4:
			{
				if(Player[playerid][pAdmin] < 5) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/clearchat {FFFFFF}- Отчистить чат\n");
			}
			case 5:
			{
				if(Player[playerid][pAdmin] < 6) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/cmd {FFFFFF}- \n");
			}
			case 6:
			{
				if(Player[playerid][pAdmin] < 7) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
				new stringer[495];
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/timeset {FFFFFF}- Изменить время на сервере\n");
			}
		}
		ShowPlayerDialog( playerid, d_none, DIALOG_STYLE_MSGBOX, "{"#cBL"}Команды администрации", "Закрыть" , "");
	}

 

И всё будет нормально.

Отредактировано пользователем Nekit_Krut18
Причина: Дополнение.

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


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

@Nekit_Krut18 допустил ошибочку) Проверь ещё раз строку кода с показом диалога

	if(dialogid == 4)
	{
		if(!response) return 1;
      	new stringer[495];
		switch(listitem)
		{
            
        	case 0:
        	{
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/ahelp {FFFFFF}- Админ-Команды\n");
        	}
        	case 1:
        	{
				if(Player[playerid][pAdmin] < 2) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/cmd {FFFFFF}- \n");
        	}
        	case 2:
			{
				if(Player[playerid][pAdmin] < 3) return SendClientMessage(playerid,COLOR_WHITE,""InfoA"Недоступно");
	     	   	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/hp {FFFFFF}- Восстановить себе здоровье\n");
			}
			case 3:
			{
				if(Player[playerid][pAdmin] < 4) return SendClientMessage(playerid,COLOR_WHITE,""InfoA"Недоступно");
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/sethp {FFFFFF}- Установить HP игроку\n");
			}
			case 4:
			{
				if(Player[playerid][pAdmin] < 5) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/clearchat {FFFFFF}- Отчистить чат\n");
			}
			case 5:
			{
				if(Player[playerid][pAdmin] < 6) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/cmd {FFFFFF}- \n");
			}
			case 6:
			{
				if(Player[playerid][pAdmin] < 7) return SendClientMessage(playerid,COLOR_WHITE,"Недоступно");
	        	stringer[0] = EOS;
				strcat(stringer, "{FFCC00}/timeset {FFFFFF}- Изменить время на сервере\n");
			}
		}
		ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Команды администрации", stringer, "Закрыть" , "");
	}

 

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

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


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

@SCRIPTMAN Хмм но там все верно.

 

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


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

@Nekit_Krut18 а выводить какой текст будет в диалоге? =)

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


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

@SCRIPTMAN stringer

 

 

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


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

@Nekit_Krut18 

ShowPlayerDialog( playerid, d_none, DIALOG_STYLE_MSGBOX, "{"#cBL"}Команды администрации", "Закрыть" , "");

Посмотри свой диалог повнимательнее, и давай, прекратим заполнять тему

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

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


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

@SCRIPTMAN Извиняюсь, не заметил.

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


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

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