Szerző Téma: Autórendszer betöltés hiba  (Megtekintve 1148 alkalommal)

Autórendszer betöltés hiba
« Dátum: 2012. október 27. - 20:38:17 »
0 Show voters
public LoadCar(vehicleid)
{
new file[128];
format(file,sizeof(file),\"/Autok/%d.ini\",vehicleid);
if(!fexist(file))
{
    dini_Create(file);
       dini_IntSet(file, \"Ajto\", 0);
       dini_IntSet(file, \"Tipus\", 0);
       dini_IntSet(file, \"Benzin\", 0);
       dini_FloatSet(file, \"Allapot\", 0);
       dini_IntSet(file, \"Ar\", 0);
       dini_IntSet(file, \"Szin1\", 0);
       dini_IntSet(file, \"Szin2\", 0);
       dini_FloatSet(file, \"PosX\", 0);
       dini_FloatSet(file, \"PosY\", 0);
       dini_FloatSet(file, \"PosZ\", 0);
       dini_FloatSet(file, \"PosA\", 0);
         printf(\"%d számú kocsi létrehozva!\", vehicleid);
}
else
{
        CarInfo[vehicleid][Ajto] = dini_Int(file,\"Ajto\");
    CarInfo[vehicleid][Tipus] = dini_Int(file,\"Tipus\");
    CarInfo[vehicleid][benzin] = dini_Int(file,\"Benzin\");
    CarInfo[vehicleid][Allapot] = dini_Float(file,\"Allapot\");
    CarInfo[vehicleid][Ar] = dini_Int(file, \"Ar\");
    CarInfo[vehicleid][szin1] = dini_Int(file, \"Szin1\");
    CarInfo[vehicleid][szin2] = dini_Int(file, \"Szin2\");
    CarInfo[vehicleid][PosX] = dini_Float(file, \"PosX\");
    CarInfo[vehicleid][PosY] = dini_Float(file, \"PosY\");
    CarInfo[vehicleid][PosZ] = dini_Float(file, \"PosZ\");
    CarInfo[vehicleid][PosA] = dini_Float(file, \"PosA\");
}
return 1;
}

 
A mód betöltésénél ezt meghívom, és megáll a mód betöltése, és az OnGameModInit nem fut tovább ennél. Ha a CarInfo[vehicleid] változók helyett mást használok, akkor mûködik, csak nekem ezekbe kellene betölteni:SSS Minden változó rendesen létre van hozva. Mi a gond?:SS

Autórendszer betöltés hiba
« Válasz #1 Dátum: 2012. október 27. - 21:04:04 »
0 Show voters
A CarInfo változót bemásolnád hogy hoztad létre?
new CarInfo??

Autórendszer betöltés hiba
« Válasz #2 Dátum: 2012. október 27. - 21:14:43 »
0 Show voters
new carinfo
{
      Ajto,
      Tipus,
      Benzin,
      Float:Allapot,
      Ar,
      Szin1,
      Szin2,
      Float:PosX,
      Float:PosY,
      Float:PosZ,
      Float:PosA
}
new CarInfo[MAX_PLAYERS][carinfo];

Autórendszer betöltés hiba
« Válasz #3 Dátum: 2012. október 27. - 21:19:55 »
0 Show voters
new CarInfo[MAX_VEHICLES][carinfo];
A MAX_PLAYERS 500 darab a MAX_VEHICLES 2000-es definíció.
Ha 499 feletti vehicleid értékkel kéred le a jármûvet invalid array hibaüzenettel jelzi a hibát (kellene) és crashel a samp, mert nincs számára lefoglalt memória cella, írd MAX_VEHICLES definícióra és úgy próbáld.

Autórendszer betöltés hiba
« Válasz #4 Dátum: 2012. október 27. - 21:26:01 »
0 Show voters
bocsii, igazából nem másoltam, hanem kézzel írtam.
Szerverbe pontosan ugy van benne hogy
 
#define AUTO 500

 
és a változó:
 
new CarInfo[AUTO][carinfo];

 
Szóval nem ez lesz a hiba:S

Autórendszer betöltés hiba
« Válasz #5 Dátum: 2012. október 27. - 21:33:27 »
0 Show voters
Pont az 500-as érték lesz a hiba amit említettem, nagy valószínûséggel.
Azt is másold be kérlek, ahogy meghívod a LoadCar public funkciót.

Autórendszer betöltés hiba
« Válasz #6 Dátum: 2012. október 27. - 21:36:25 »
0 Show voters
public OnGameModeInit()
{
      for(new v = 1; v <= AUTO; v++)
      {
              LoadCar(v);
      }
      ....többi cucc...
}

Autórendszer betöltés hiba
« Válasz #7 Dátum: 2012. október 27. - 21:40:21 »
0 Show voters
for(new v = 1; v <= AUTO; v++)

 
helyett:
 
for(new v = 0; v < AUTO; v++)

 
Az 500-as jelölésû cella nem létezik ennél a változónál new CarInfo[500].... , az 500 darab 0-tól 499 tart!

Autórendszer betöltés hiba
« Válasz #8 Dátum: 2012. október 27. - 21:41:53 »
0 Show voters
és 0-s IDjû jármû is lesz? azok nem egytõl kezdõdnek? azért gondoltam így hogy 1tõl 500ig, és akkor lesz 500db kocsi

Dupla hozzászólás automatikusan összefûzve. ( 2012. október 27. - 22:12:55 )

köszi, jó lett:))
« Utoljára szerkesztve: 2012. október 27. - 22:12:55 írta Detrot »

Autórendszer betöltés hiba
« Válasz #9 Dátum: 2012. október 27. - 22:35:27 »
0 Show voters
Nem lesz nulla id-vel jelölt autó.
500 darab jármûvet 500-as méretû változóval egy -1 megfelelõ elhelyezésével tudsz megvalósítani és ha szükséges akkor +1 elhelyezésével számodra érthetõbbé varázsolni.
A jármû azonosító tényleg 1-tõl indul de egy több cellás változó viszont nullától pl.: CarInfo[0]...
Megoldható egy kis kísérletezgetés után a dolog. :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal