Проблема с ситсемой транспорта.
#1

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

Вот код который я сделал , но почему то ид тачек сбиваются , просьба помочь , и даже бывает удаляються при выходе созданые т.с.

PHP Code:
    foreach(new iPlayer)
    {
        if(
PI[i][cCarId][0] == PI[playerid][cCarId][0] && PI[playerid][cCarId][0] != INVALID_VEHICLE_ID)
        {
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][0]]);
            
DestroyVehicle(PI[playerid][cCarId][0]);
        
        }
        if(
PI[i][cCarId][1] == PI[playerid][cCarId][1] && PI[playerid][cCarId][1] != INVALID_VEHICLE_ID)
        {
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][1]]);
            
DestroyVehicle(PI[playerid][cCarId][1]);
            
PI[playerid][cCarId][1] = INVALID_VEHICLE_ID;
        }
        if(
PI[i][cCarId][2] == PI[playerid][cCarId][2] && PI[playerid][cCarId][2] != INVALID_VEHICLE_ID)
        {
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][2]]);
            
DestroyVehicle(PI[playerid][cCarId][2]);
            
        }
    } 
Помогите пожалуйста
Reply
#2

Quote:
Originally Posted by Artem_Loginov
View Post
При большом онлайне , когда игроки выходят удаляються и их машины и другие чужие , но почему я так и не пойму.

Вот код который я сделал , но почему то ид тачек сбиваются , просьба помочь , и даже бывает удаляються при выходе созданые т.с.

PHP Code:
    foreach(new iPlayer)
    {
        if(
PI[i][cCarId][0] == PI[playerid][cCarId][0] && PI[playerid][cCarId][0] != INVALID_VEHICLE_ID)
        {
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][0]]);
            
DestroyVehicle(PI[playerid][cCarId][0]);
        
        }
        if(
PI[i][cCarId][1] == PI[playerid][cCarId][1] && PI[playerid][cCarId][1] != INVALID_VEHICLE_ID)
        {
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][1]]);
            
DestroyVehicle(PI[playerid][cCarId][1]);
            
PI[playerid][cCarId][1] = INVALID_VEHICLE_ID;
        }
        if(
PI[i][cCarId][2] == PI[playerid][cCarId][2] && PI[playerid][cCarId][2] != INVALID_VEHICLE_ID)
        {
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][2]]);
            
DestroyVehicle(PI[playerid][cCarId][2]);
            
        }
    } 
Помогите пожалуйста
Вызываете из OnPlayerDisconnect? - Зачем тогда вам итератор i?
Reply
#3

PHP Code:

    
foreach(new iPlayer
    { 
        if(
PI[i][cCarId][0] == PI[playerid][cCarId][0] && PI[playerid][cCarId][0] != INVALID_VEHICLE_ID
        { 
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][0]]); 
            
DestroyVehicle(PI[playerid][cCarId][0]); 
            
PI[playerid][cCarId][0] = INVALID_VEHICLE_ID
         
        } 
        if(
PI[i][cCarId][1] == PI[playerid][cCarId][1] && PI[playerid][cCarId][1] != INVALID_VEHICLE_ID
        { 
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][1]]); 
            
DestroyVehicle(PI[playerid][cCarId][1]); 
            
PI[playerid][cCarId][1] = INVALID_VEHICLE_ID
        } 
        if(
PI[i][cCarId][2] == PI[playerid][cCarId][2] && PI[playerid][cCarId][2] != INVALID_VEHICLE_ID
        { 
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][2]]); 
            
DestroyVehicle(PI[playerid][cCarId][2]); 
            
PI[playerid][cCarId][2] = INVALID_VEHICLE_ID
             
        } 
    } 
Reply
#4

Quote:
Originally Posted by CamperGTA
View Post
PHP Code:

    
foreach(new iPlayer
    { 
        if(
PI[i][cCarId][0] == PI[playerid][cCarId][0] && PI[playerid][cCarId][0] != INVALID_VEHICLE_ID
        { 
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][0]]); 
            
DestroyVehicle(PI[playerid][cCarId][0]); 
            
PI[playerid][cCarId][0] = INVALID_VEHICLE_ID
         
        } 
        if(
PI[i][cCarId][1] == PI[playerid][cCarId][1] && PI[playerid][cCarId][1] != INVALID_VEHICLE_ID
        { 
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][1]]); 
            
DestroyVehicle(PI[playerid][cCarId][1]); 
            
PI[playerid][cCarId][1] = INVALID_VEHICLE_ID
        } 
        if(
PI[i][cCarId][2] == PI[playerid][cCarId][2] && PI[playerid][cCarId][2] != INVALID_VEHICLE_ID
        { 
            
DestroyDynamic3DTextLabel(VehicleLabel[PI[playerid][cCarId][2]]); 
            
DestroyVehicle(PI[playerid][cCarId][2]); 
            
PI[playerid][cCarId][2] = INVALID_VEHICLE_ID
             
        } 
    } 
Всё тот же вопрос, что и задавал Mutha_X: зачем цикл на всех игроков, если нужно удалить автомобили игрока, который выходит с сервера?
Reply
#5

+ ко всему сказанному
Quote:

PI[playerid][cCarId][0]

Ты хранишь ид машины на сервере, или ID в базе данных?
Если ид БД, то конечно удаляется машина другого..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)