Вопросы

При спавне игрок получает сообщение "Вы отошли слишком далеко от арендованного вами транспорта".

 

Спойлер

@OnVehicleArendUpdate();
@OnVehicleArendUpdate()
{
    foreach(new i : Player)
    {
        if(!gPlayerLogged[i]) continue;
        if(GetPVarInt(i, "arendkey") == -1continue;
        new rc = GetPVarInt(i, "arendkey");
        if(ArendInfo[rc][aPlayerID] != i)
        {
            SetPVarInt(i, "arendkey", -1);
            continue;
        }
        if(!IsPlayerInVehicle(i, ArendInfo[rc][aID]))
        {
            new Float:x, Float:y, Float:z;
            GetVehiclePos(ArendInfo[rc][aID], x, y, z);
            if(!IsPlayerInRangeOfPoint(i, 2000.0, x, y, z) && GetPlayerVirtualWorld(i) == 0 && GetPlayerInterior(i) == 0)
            {
                SendClientMessage(i, COLOR_WHITE, "Вы отошли слишком далеко от арендованного вами транспорта");
                ArendInfo[rc][aPlayerID] = INVALID_PLAYER_ID;
                SetVehicleToRespawn(ArendInfo[rc][aID]);
                ToggleLock(ArendInfo[rc][aID], 0);
                SetPVarInt(i, "arendkey", -1);
                continue;
            }
        }
    }
}

 

 

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


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

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

  • 1

Пробуй обнулять переменные в энумераторе при дисконнекте игрока. При коннекте то же самое.
Если нет обнуления данных переменных при коннекте/дисконнекте, то значение переменной присвоится другому игроку, который зашел под тем же ID.

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


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

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

  • Похожий контент

    • Sten Developer
      От Sten Developer
      Объясню всю ситуацию, пишу систему смерти игрока но она не работает. Решил по приколу написать туда обычный вывод текста SCM(playerid, COLOR_RED, "Вы умерли");
      Но однако после смерти текст не выводиться. Не работает абсолютно все. Кто знает как решить эту проблему?