• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Пропажа транспорта у других при выходе игрока

xcry

Новичок
Суть проблемы: При выходе игрока удаляется транспорт который ему принадлежит, кроме фракционного, при этом совершенно случайно может пропасть транспорт и у других игроков, причем происходит это совершенно случайно. Определенно проблема в OnPlayerDisconnect, но конкретно в чем проблема - так и не понял.

Буду благодарен если хоть кто-то откликнется и предложит свои варианты решения, если нет - имеется тема в столе заказов, пока никто не написал


PHP:
//Непосредственно удаление транспорта при выходе
if(IsValidVehicle(veh_info[playerid][v_vehicle]))
    {
        DestroyVehicleEx(veh_info[playerid][v_vehicle]);
        veh_info[playerid][v_vehicle] = INVALID_VEHICLE_ID;
        DeleteGelik(playerid);
    }
//DeleteGelik (удаление обьектов, если присутствуют)
stock DeleteGelik(playerid)
{
    for(new i = 0; i < 10; i++)
    {
        if(IsValidDynamicObject(gelik[playerid][i]))
        {
            DestroyDynamicObject(gelik[playerid][i]);
        }
    }
}
// Чуть ниже в OnPlayerDisconnect обнаружил такую строчку, выполняет точно такую же функцию как и DeleteGelik
for(new i = 0; i < 9; i++) if(IsValidDynamicObject(gelik[playerid][i])) DestroyDynamicObject(gelik[playerid][i]);

//DestroyVehicleEx
stock DestroyVehicleEx(vehicleid)
{
    if(Iter_Contains(valid_vehicles, vehicleid))
        Iter_Remove(valid_vehicles, vehicleid);
   
    foreach(new i : Player)
    {
        if(vehicleid == caridhouse[i] && PlayerInfo[i][pMercedes][GetPVarInt(i,"CarNomer")] == 1)
        {
            DeleteGelik(i);
            break;
        }
    }
    VEHICLE[vehicleid-1][vTurbo] = 0;
    VEHICLE[vehicleid-1][vStyle] = 0;
    if(IsValidDynamicObject(VEHICLE[vehicleid][vObject]))
        DestroyDynamicObject(VEHICLE[vehicleid][vObject]);
   
    foreach(new i : Player)
    {
        if(vehicleid == veh_info[i][v_vehicle])
        {
            if(IsValidDynamic3DTextLabel(veh_info[i][v_label]))
            {
                DestroyDynamic3DTextLabel(veh_info[i][v_label]);
                break;
            }
        }
    }
    return DestroyVehicle(vehicleid);
}
 
Последнее редактирование:
Сверху Снизу