Проблема с удалением.
#8

> когда кто-то сказал про оптимизацию циклов
- Маза, только не бомби
- АААААААААААААААААААААААААААААААААААА
PHP код:
#define MAX_PLAYER_PRIVATE_VEHICLES (3)
if(PlayerLogged[playerid] == true) {
    new 
vehicleid;
    for(new 
0MAX_PLAYER_PRIVATE_VEHICLES; ++i) {
        
vehicleid PI[playerid][cCarId][i];
        if(
vehicleid != INVALID_VEHICLE_ID) {
            if(
VehicleLabel[vehicleid] != INVALID_3DTEXT_ID) { // мы тут не в идеальном мире живём вообще-то
                
DestroyDynamic3DTextLabel(VehicleLabel[vehicleid]);
                
VehicleLabel[vehicleid] = Text3D:INVALID_3DTEXT_ID;
            }
            
DestroyVehicle(vehicleid);
            
PI[playerid][cCarId][i] = INVALID_VEHICLE_ID;
        }
    }

И вот так (не проверял)
PHP код:
stock LoadMyCar(playerid) { 
    new 
count_car 0//new count_car[MAX_PLAYERS] = 0; // вот это кек
    
for(new 0MAX_PLAYER_PRIVATE_VEHICLES; ++i) { 
        if(
PI[playerid][cModel][i] > && PI[playerid][cX][i] == 0.0 && PI[playerid][cY][i] == 0.0 && PI[playerid][cZ][i] == 0.0) {
            ++
count_car;    
        } 
    } 
    if(
count_car 0) { 
        
SendClientMessage(playeridCOLOR_ORANGE, !"Один из Ваших автомобилей не был припаркован после выхода с сервера, и поэтому он был заспавнен на парковке у Анашана"); 
        
SendClientMessage(playeridCOLOR_ORANGE, !"Найдите его на карте с помощью (/findcar) и припаркуйте (/park)"); 
    }
    new 
vehicleidmodelid;
    new 
enumid_NumberPlate[MAX_PLAYER_PRIVATE_VEHICLES] = {cNumber1cNumber2cNumber3};
    new 
enumid_Color[MAX_PLAYER_PRIVATE_VEHICLES] = {cColor1cColor2cColor3};
    for(new 
homecarslot 0homecarslot MAX_PLAYER_PRIVATE_VEHICLES; ++homecarslot) {
        
vehicleid PI[playerid][cCarId][homecarslot];
        
modelid PI[playerid][cModel][homecarslot];
        if(
PI[playerid][cModel][homecarslot] > 0) {
            if(
vehicleid != INVALID_VEHICLE_ID) {
                if(
VehicleLabel[vehicleid] != INVALID_3DTEXT_ID) {
                    
DestroyDynamic3DTextLabel(VehicleLabel[vehicleid]);
                    
VehicleLabel[vehicleid] = INVALID_3DTEXT_ID;
                }
            }
            
DestroyVehicle(vehicleid); 
            
PI[playerid][cCarId][homecarslot] = INVALID_VEHICLE_ID
        }
        new 
Float:carPosX PI[playerid][cX][homecarslot],
            
Float:carPosY PI[playerid][cY][homecarslot],
            
Float:carPosZ PI[playerid][cZ][homecarslot],
            
Float:carAnglePI[playerid][cFa][homecarslot],
            
colorid1 PI[playerid][enumid_Color[homecarslot]][0],
            
colorid2 PI[playerid][enumid_Color[homecarslot]][1]
        ;
        if(
carPosX == 0.0 && carPosY == 0.0 && carPosZ == 0.0) {
            new 
random(sizeof(SalonRandSpawn));
            
carPosX SalonRandSpawn[r][0];
            
carPosY SalonRandSpawn[r][1];
            
carPosZ SalonRandSpawn[r][2];
            
carAngleSalonRandSpawn[r][3];
        }
        
vehicleid CreateVehicle(modelidcarPosXcarPosYcarPosZcarAnglecolorid1colorid290000);
        
PI[playerid][cCarId][homecarslot] = vehicleid;
        if(
vehicleid != INVALID_VEHICLE_ID) { // мир не идеален, надо проверять
            
TuneCar(playerid);
            
PI[playerid][cLock][homecarslot] = 1
            
CarDoors(PI[playerid][cCarId][homecarslot], PI[playerid][cLock][homecarslot]); 
            
Fuel[vehicleid] = PI[playerid][cFuel][homecarslot]; 
            
SetVehicleHealth(vehicleid1000); 
            
Engine[vehicleid] = false
            
Lights[vehicleid] = false;
            
IsLocked[vehicleid] = PI[playerid][cLock][homecarslot] & 1;
            if(
strcmp(PI[playerid][enumid_NumberPlate[homecarslot]], "Транзит"true64) != 0) { 
                
format(totalstringsizeof(totalstring), "%s"PI[playerid][enumid_NumberPlate[homecarslot]]); 
                
VehicleLabel[vehicleid] = CreateDynamic3DTextLabel(totalstring0xFFFFFFFF00040.0,INVALID_PLAYER_IDvehicleid1); 
                
//Attach3DTextLabelToVehicle(VehicleLabel[vehicleid], vehicleid, 0, 0, 0.1); 
            
} else { 
                
VehicleLabel[vehicleid] = CreateDynamic3DTextLabel("Транзит"0xFFFFFFFF00040.0,INVALID_PLAYER_IDvehicleid1); 
                
//Attach3DTextLabelToVehicle(VehicleLabel[vehicleid], vehicleid, 0, 0, 0.1); 
            
}
        }
    }
    return 
true

Скажи честно, ты заебался, когда писал одни и те же строки кода (или копипастил и выискивал где изменить значения)?
Хз поможет или нет, но видеть предыдущий индусо-код не в кайф.
особенно
pawn Код:
new count_car[MAX_PLAYERS] = 0;
// когда используется в функции только count_car[playerid]
Я бы мог вам помочь вам исправлении всех косяков, но, боюсь, что придётся сесть на зарплату, хех.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)