Zilot
Умник
Написал проверку на количество игроков на авто в зоне для своей гоночной системы,
чтобы гонка не начиналась если на старте стоит 1 игрок.
Но проблема в том, что когда я 1 на сервере, команда работает правильно все условия выполняются без ошибок.
Как заходит второй игрок, когда он не в зоне, а я ввожу команду, мне пишет, "Неизвестная команда".
Когда он заходит на старт, ввожу команду, гонка начинается, показывает что в зоне 2 игрока находится.
Но гонка начинается почему-то только для меня, хотя стоит цикл, чтобы начиналась для всех.
Причем у 2 игрока, почему то не проверяется условие IsPlayerInAuto(rc,getthecar), нагло игнорируется
и к ZonePlayers прибавляет единицу. Тоесть он может просто подойти к старту без машины, хотя проверка
такая есть и засчитается что в зоне 2 игрока.
Вот команда:
Вот проверка:
У меня есть только предположение, может где-то в части кода return 1 не хватает,
поскольку когда игрок не в зоне, выдает "Неизвестная команда", а так кто знает помогите.
Много вариантов перепробовал, все равно то же самое. Return 1 добавлял по разному,
было что даже "Неизвестная команда" больше не появлялась, но команда по прежнему неправильно работала.
чтобы гонка не начиналась если на старте стоит 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 добавлял по разному,
было что даже "Неизвестная команда" больше не появлялась, но команда по прежнему неправильно работала.
Последнее редактирование:
