Question

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

 

Спойлер

@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;
            }
        }
    }
}

 

 

Share this post


Link to post

1 answer to this question

  • 1

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

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • SheikhMAN
      By SheikhMAN
      Приветствую дорогие коллеги. Намучался, хочу решить одну проблему, делаю проверку на правильность введенной почты,
      и не могу правильно настроить это дело в диалоге. Кто поможет, буду очень рад. Внизу прикрепил скрипт.

      Внутри спойлера код.