GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Detrot - 2012. október 27. - 20:38:17

Cím: Autórendszer betöltés hiba
Írta: Detrot - 2012. október 27. - 20:38:17
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
Cím: Autórendszer betöltés hiba
Írta: Zsolesszka - 2012. október 27. - 21:04:04
A CarInfo változót bemásolnád hogy hoztad létre?
new CarInfo??
Cím: Autórendszer betöltés hiba
Írta: Detrot - 2012. október 27. - 21:14:43
new carinfo
{
      Ajto,
      Tipus,
      Benzin,
      Float:Allapot,
      Ar,
      Szin1,
      Szin2,
      Float:PosX,
      Float:PosY,
      Float:PosZ,
      Float:PosA
}
new CarInfo[MAX_PLAYERS][carinfo];
Cím: Autórendszer betöltés hiba
Írta: Zsolesszka - 2012. október 27. - 21:19:55
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.
Cím: Autórendszer betöltés hiba
Írta: Detrot - 2012. október 27. - 21:26:01
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
Cím: Autórendszer betöltés hiba
Írta: Zsolesszka - 2012. október 27. - 21:33:27
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.
Cím: Autórendszer betöltés hiba
Írta: Detrot - 2012. október 27. - 21:36:25
public OnGameModeInit()
{
      for(new v = 1; v <= AUTO; v++)
      {
              LoadCar(v);
      }
      ....többi cucc...
}
Cím: Autórendszer betöltés hiba
Írta: Zsolesszka - 2012. október 27. - 21:40:21
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!
Cím: Autórendszer betöltés hiba
Írta: Detrot - 2012. október 27. - 21:41:53
é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:))
Cím: Autórendszer betöltés hiba
Írta: Zsolesszka - 2012. október 27. - 22:35:27
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