Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Проверка на количество игроков на авто в зоне

Статус
В этой теме нельзя размещать новые ответы.

Zilot

Умник
Написал проверку на количество игроков на авто в зоне для своей гоночной системы,
чтобы гонка не начиналась если на старте стоит 1 игрок.
Но проблема в том, что когда я 1 на сервере, команда работает правильно все условия выполняются без ошибок.
Как заходит второй игрок, когда он не в зоне, а я ввожу команду, мне пишет, "Неизвестная команда".
Когда он заходит на старт, ввожу команду, гонка начинается, показывает что в зоне 2 игрока находится.
Но гонка начинается почему-то только для меня, хотя стоит цикл, чтобы начиналась для всех.
Причем у 2 игрока, почему то не проверяется условие IsPlayerInAuto(rc,getthecar), нагло игнорируется
и к ZonePlayers прибавляет единицу. Тоесть он может просто подойти к старту без машины, хотя проверка
такая есть и засчитается что в зоне 2 игрока.

Вот команда:
PHP:
if(strcmp(cmdtext,"/startrace", true) == 0 || strcmp(cmdtext, "/sr", true) == 0)
{
	if(pLogged[playerid]==1)
	{
	    if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != RC_BIGRINGLV)
	    {
      	 SendClientMessage(playerid,COLOR_WHITE,"Вы не в гоночном чекпоинте");
	    }
	    else
   	 {
           OnPlayerRacingReady(playerid);
		   format(rstring,128,"В гонке участвует %d игрока(ов)",ZonePlayers[playerid]);
		   SendClientMessage(playerid,COLOR_GREY,rstring);
	       if(ZonePlayers[playerid] < 2)
	       {
	          SendClientMessage(playerid,COLOR_RED,"Вы не можете участвовать один в гонке");
              ZonePlayers[playerid] = 0;
	       }
		   else
		   {
			  for(new src = 0; src < MAX_PLAYERS; src++)
			  {
				 if(IsPlayerConnected(src))
				 {
					if(IsPlayerInCheckpoint(src) != 0 || getCheckpointType(src) == RC_BIGRINGLV)
					{
					   if(IsPlayerInAuto(src,getthecar))
					   {
						 gRacer[src] = 2;
						 gTrack[src] = RCBIGRINGLV;
						 gProgress[src] = 0;
						 SetCheckpoint(src, 0);
						 SetCameraBehindPlayer(src);
						 SendClientMessage(src, COLOR_YELLOW, "<> Гонка началась! <>");
						 gCountdown[src] = 5;
						 TogglePlayerControllable(src, 0);
						 ZonePlayers[playerid] = 0;
                       }
				    }
      	       }
		      }
		   }
	   }
	}
	else
	{
	SendClientMessage(playerid,COLOR_RED,"Вы не авторизованы на сервере");
	}
	return 1;
}
Вот проверка:
PHP:
public OnPlayerRacingReady(playerid)
{
    getthecar = GetPlayerVehicleID(playerid);
    for(new rc = 0; rc < MAX_PLAYERS; rc++)
	{
		if(IsPlayerConnected(rc))
		{
		    if(IsPlayerInCheckpoint(rc) != 0 || getCheckpointType(rc) == RC_BIGRINGLV)
		    {
			    if(IsPlayerInAuto(rc,getthecar))
			    {
			    	ZonePlayers[playerid]++;
       		 }
		    }
		}
	}
}
У меня есть только предположение, может где-то в части кода return 1 не хватает,
поскольку когда игрок не в зоне, выдает "Неизвестная команда", а так кто знает помогите.
Много вариантов перепробовал, все равно то же самое. Return 1 добавлял по разному,
было что даже "Неизвестная команда" больше не появлялась, но команда по прежнему неправильно работала.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу