Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Отдельный вопрос по /admins - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Тема закрыта

[ Pawn ]
Отдельный вопрос по /admins

#1
Пользователь офлайн   Mr_Joseph 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
 	
if (strcmp(cmd, "/admins", true) == 0)
{
      if(PlayerInfo[playerid][pLeader] >= 1)
   	  	{
			SendClientMessage(playerid, COLOR_YELLOW, "Администрация онлайн Online:");
  			for(new i = 0; i < MAX_PLAYERS; i++)
			{
				if(IsPlayerConnected(i))
     			{
     				if(PlayerInfo[i][pAdmin] >= 1)
					 {
						new ddrank[50];
						if(PlayerInfo[i][pAdmin] == 1) { ddrank = "Есть 1 ранг"; }
						else if(PlayerInfo[i][pAdmin] == 2) { ddrank = "Есть 2 ранг"; }
						else if(PlayerInfo[i][pAdmin] == 3) { ddrank = "Есть 3 ранг"; }
						else if(PlayerInfo[i][pAdmin] == 4) { ddrank = "Есть 4 ранг"; }
						else if(PlayerInfo[i][pAdmin] == 5) { ddrank = "Есть 5 ранг"; }
						else if(PlayerInfo[i][pAdmin] == 6) { ddrank = "Есть 6 ранг"; }
						GetPlayerName(i, sendername, sizeof(sendername));
						format(string, 256, "%s",ddrank);
						SendClientMessage(playerid, COLOR_WHITE, string);
					}
				}
			}
		}
	}
 	else if(PlayerInfo[playerid][pAdmin] >= 1)
	{
		SendClientMessage(playerid, COLOR_YELLOW, "Администрация Online:");
		for(new i = 0; i < MAX_PLAYERS; i++)
		{
			if(IsPlayerConnected(i))
			{
				if(PlayerInfo[i][pAdmin] >= 1)
			 	{
					new ddrank[20];
					if(PlayerInfo[i][pAdmin] == 1) { ddrank = "Помощник"; }
					else if(PlayerInfo[i][pAdmin] == 2) { ddrank = "Мл. администратор"; }
					else if(PlayerInfo[i][pAdmin] == 3) { ddrank = "Администратор"; }
					else if(PlayerInfo[i][pAdmin] == 4) { ddrank = "Ст. Администратор"; }
					else if(PlayerInfo[i][pAdmin] == 5) { ddrank = "Гл. Администратор"; }
					else if(PlayerInfo[i][pAdmin] == 6) { ddrank = "Ген. Администратор"; }
					GetPlayerName(i, sendername, sizeof(sendername));
					format(string, 256, "%s | ID:%d | %s",sendername,i,ddrank);
					SendClientMessage(playerid, COLOR_WHITE, string);
				}
			}
		}
	}


Вопрос предельно прост, не могу понять что не так в коде. Суть команды такова, при вводе ее Лидером, администраторы находящиемся на сервере отображаются как в первом случае. При вводе команды администратором, администраторы отображаются как во втором случае.
Но возникла такая проблема, что если игрок администратор - при вводе команды, ничего не происходит
Если игрок лидер и администратор, при вводе команды /admins отображение едёт как для лидера, но при вводе любой другой команды, отображение администрации онлайн идёт вместо той, что должна быть. Как пример, вводим /invite, но вместо приглашения во фракцию, высвечивается администрация онлайн.
Подскажите, в чем проблема и как можно исправить?
0

#2
Пользователь офлайн   Quentino 

  • Island
  • Вставить ник
  • Раскрыть информацию
Скобки! Мать их всемогущую. Я тебе еще в предыдущий раз написал, исправь табуляцию и наведи порядок со скобками.
0

#3
Пользователь офлайн   Mr_Joseph 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияQuentino (16 Апрель 2018 - 19:31) писал:

Скобки! Мать их всемогущую. Я тебе еще в предыдущий раз написал, исправь табуляцию и наведи порядок со скобками.


Табуляция нормальная, со скобками проблем нет. Здесь код так отображается.
0

#4
Пользователь офлайн   Quentino 

  • Island
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияMr_Joseph (16 Апрель 2018 - 20:25) писал:

Табуляция нормальная, со скобками проблем нет. Здесь код так отображается.

Я это не с воздуха взял. Мой ответ сформулирован исходя из твоего кода. Изменив позицию одной скобки код заработает. И очевидно какой...
Ну в принципе, если тебе так лучше. то можешь дальше стоять на своем..
-1

#5
Пользователь офлайн   Mr_Joseph 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Изображение

При таком раскладе, команда работает, но при вводе лидером, появляются лишние строки в соответствие 1 игрок онлайн - 1 строка.
При вводе команды администратором, появляются лишние имена обычных игроков в соответствие 1 игрок онлайн - 1 строка.

Сообщение отредактировал Mr_Joseph: 17 Апрель 2018 - 18:22

0

#6
Пользователь офлайн   Mr_Joseph 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Закрывайте, сам разобрался путём перемещения. Скобки и табуляция как уже писал выше оказались не прчием.
0

#7
Пользователь офлайн   Quentino 

  • Island
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияMr_Joseph (17 Апрель 2018 - 18:41) писал:

Закрывайте, сам разобрался путём перемещения. Скобки и табуляция как уже писал выше оказались не прчием.

Изображение
Вот твой код, это же нормальное расположение условий, верно? если введенная команда == /admins иначе если игрок администратор. Всё путем.. Выделенную скобку нужно было перенести в конец команды, как ты и сделал в посте за 18:20, но полезли новые ошибки. Так вот, баги в твоем коде это уже другая песня, а ответом на твой вопрос: "Но возникла такая проблема, что если игрок администратор - при вводе команды, ничего не происходит" есть скобка, которая неверно размещена.


К слову о твоем коде в целом, запусти кроме себя еще 2 игрока на сервер и введи команду.
Если будет одновременно 2 помощника на сервере, то меседжа что они присутствуют будет соответственно 2, но это не всё, если при этом будет еще 10 человек в сети, обычных игроков, то за каждого будет отправлено еще по сообщению.

Сообщение отредактировал Quentino: 17 Апрель 2018 - 20:05

0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Тема закрыта

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей