Szerző Téma: Kocsirendszer hiba  (Megtekintve 1016 alkalommal)

Kocsirendszer hiba
« Dátum: 2019. március 16. - 20:49:34 »
0 Show voters
Van egy jármű rendszerem amit DINI-ről írtam át Y_INI-re. Pawno szerint minden rendben van, de nem működik.
A rendszer nem saját.
 
Itt a betöltős része.
 

stock LoadKocsik()
{
    for(new i=1; i<MAX_VEHICLES;i++)
    {
        new vFile[32];
        format(vFile,sizeof(vFile),\"/BCRP/Kocsik/%d.ini\",i);
        if(fexist(vFile))
        {
               INI_ParseFile(vFile, \"LoadVehicle\", .bExtra = true, .extra = i);
            jmvk++;
        }
    }
    if(jmvk < 1) print(\"Nem lett jármű betöltve\");
    return 1;
}
forward LoadVehicle(vid, name[], value[]);
public LoadVehicle(vid, name[], value[])
{
    new vFile[32];
    format(vFile, sizeof(vFile),\"/BCRP/Kocsik/%d.ini\",vid);
    INI_Int(\"Tipus\",vInfo[vid][jTipus]);
    INI_Float(\"PosX\",vInfo[vid][jPosX]);
    INI_Float(\"PosY\",vInfo[vid][jPosY]);
    INI_Float(\"PosZ\",vInfo[vid][jPosZ]);
    INI_Float(\"PosAngle\",vInfo[vid][jPosRotate]);
    
    new kocsi = AddStaticVehicleEx(vInfo[vid][jTipus],vInfo[vid][jPosX],vInfo[vid][jPosY],vInfo[vid][jPosZ],vInfo[vid][jPosRotate],1,1,NINCS);
    INI_Int(\"PosInt\",vInfo[vid][jInt]);
    INI_Int(\"PosVW\",vInfo[vid][jVW]);
    INI_Int(\"Frakcio\",vInfo[vid][jFrakcio]);
    INI_Int(\"Munka\",vInfo[vid][jMunka]);
    INI_Int(\"FuelType\",vInfo[vid][jFuelType]);
    INI_Int(\"Fuel\",vInfo[vid][jFuel]);
    INI_Bool(\"Zarva\",vInfo[vid][jLocked]);
    INI_Int(\"Szin1\",vInfo[vid][jColor2]);
    INI_Int(\"Szin2\",vInfo[vid][jColor2]);
    INI_Int(\"PaintJob\",vInfo[vid][jPaintJob]);
    INI_Int(\"Comp1\",vInfo[vid][jComp1]);
    INI_Int(\"Comp2\",vInfo[vid][jComp2]);
    INI_Int(\"Comp3\",vInfo[vid][jComp3]);
    INI_Int(\"Comp4\",vInfo[vid][jComp4]);
    INI_Int(\"Comp5\",vInfo[vid][jComp5]);
    INI_Int(\"Comp6\",vInfo[vid][jComp6]);
    INI_Int(\"Comp7\",vInfo[vid][jComp7]);
    INI_Int(\"Comp8\",vInfo[vid][jComp8]);
    INI_Int(\"Comp9\",vInfo[vid][jComp9]);
    INI_Int(\"Comp10\",vInfo[vid][jComp10]);
    INI_String(\"TulajNeve\", vInfo[vid][jTulajNeve]);
    INI_Float(\"FutottKM\", vInfo[vid][jFutottKM]);
    
    new id = kocsi;
    vInfo[id][jVan] = true;
    SetVehicleInterior(id, vInfo[vid][jInt]);
    SetVehicleVirtualWorld(id, vInfo[vid][jVW]);
    if(vInfo[id][jComp1] != 0) AddVehicleComponent(id,vInfo[id][jComp1]);
    if(vInfo[id][jComp2] != 0) AddVehicleComponent(id,vInfo[id][jComp2]);
    if(vInfo[id][jComp3] != 0) AddVehicleComponent(id,vInfo[id][jComp3]);
    if(vInfo[id][jComp4] != 0) AddVehicleComponent(id,vInfo[id][jComp4]);
    if(vInfo[id][jComp5] != 0) AddVehicleComponent(id,vInfo[id][jComp5]);
    if(vInfo[id][jComp6] != 0) AddVehicleComponent(id,vInfo[id][jComp6]);
    if(vInfo[id][jComp7] != 0) AddVehicleComponent(id,vInfo[id][jComp7]);
    if(vInfo[id][jComp8] != 0) AddVehicleComponent(id,vInfo[id][jComp8]);
    if(vInfo[id][jComp9] != 0) AddVehicleComponent(id,vInfo[id][jComp9]);
    if(vInfo[id][jComp10] != 0) AddVehicleComponent(id,vInfo[id][jComp10]);
    BCRP_ChangeVehicleColor(id,vInfo[id][jColor1],vInfo[id][jColor2]);
    BCRP_ChangeVehiclePaintJob(id,vInfo[id][jPaintJob]);
    SaveVehicle(id);
    printf(\"Kocsi %d betöltve\",id);
    return 1;
}

 

 
« Utoljára szerkesztve: 2019. március 17. - 13:41:37 írta Evolved »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Kocsirendszer hiba
« Válasz #1 Dátum: 2019. március 18. - 08:10:04 »
0 Show voters
Nem értek az YINI-hez, de most kicsit utána olvastam. Nem akarok hülyeséget írni, de leírom az észrevételeimet.
 
Az első dolog amit feltűnt az, hogy a fájl elérési utat /-el kezded. Már elég rég foglalkoztam pawn-al, de úgy emlékszem azt nem nagyon szereti.
 
 
 
A másik dolog az pedig:
 

.bPassTag = true

 
lehet ezt még be kellene írnod paraméternek. Pár perces utána olvasás után találtam, szóval ez csak egy feltételezés.
 
 
 
Egyéb észrevételek:
 

for(new i=1; i<MAX_VEHICLES;i++)
    {
        new vFile[32];

 
Ezt a változót szerintem a cikluson kívülre rakd.
 
 
 

public LoadVehicle(vid, name[], value[])
{
    new vFile[32];
    format(vFile, sizeof(vFile),\"/BCRP/Kocsik/%d.ini\",vid);

 
Ezt a vFile változót feleslegesen hozod létre és formázod, itt belül nem is használod.
 
 
 

new kocsi = AddStaticVehicleEx

 
Ha jól emlékszem ha online van a játékos, akkor csak a CreateVehicle-el fogja látni a létrehozott járművet (de lehet ez csak 1000 éves dolog, mert én nagyon régen tapasztaltam ezt).
 
 
 

new id = kocsi;

 
id változó felesleges, ugyanaz, mint a kocsi változó
 
 
 

if(vInfo[id][jComp1] != 0) AddVehicleComponent(id,vInfo[id][jComp1]);
    if(vInfo[id][jComp2] != 0) AddVehicleComponent(id,vInfo[id][jComp2]);
    if(vInfo[id][jComp3] != 0) AddVehicleComponent(id,vInfo[id][jComp3]);
    if(vInfo[id][jComp4] != 0) AddVehicleComponent(id,vInfo[id][jComp4]);
    if(vInfo[id][jComp5] != 0) AddVehicleComponent(id,vInfo[id][jComp5]);
    if(vInfo[id][jComp6] != 0) AddVehicleComponent(id,vInfo[id][jComp6]);
    if(vInfo[id][jComp7] != 0) AddVehicleComponent(id,vInfo[id][jComp7]);
    if(vInfo[id][jComp8] != 0) AddVehicleComponent(id,vInfo[id][jComp8]);
    if(vInfo[id][jComp9] != 0) AddVehicleComponent(id,vInfo[id][jComp9]);
    if(vInfo[id][jComp10] != 0) AddVehicleComponent(id,vInfo[id][jComp10]);
    BCRP_ChangeVehicleColor(id,vInfo[id][jColor1],vInfo[id][jColor2]);
    BCRP_ChangeVehiclePaintJob(id,vInfo[id][jPaintJob]);

 
vInfo-nál ne id-t hanem vid-et használj
 
 
 

SaveVehicle(id);

 
miért mentesz, ha most töltötted be? :)
 
 
 

printf(\"Kocsi %d betöltve\",id);

 
itt talán a vid (vagy akár mind2 változó) értékét lenne hasznosabb kiírni
 
 
 
Hirtelen nagyjából ennyi észrevételem van csak, sok sikert :)
 
 
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal