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