Szerző Téma: Jármű rendszer bug  (Megtekintve 2455 alkalommal)

Nem elérhető Ryoto

Jármű rendszer bug
« Dátum: 2019. Április 25. - 02:36:31 »
0
Sziasztok, amikor a járművet létrehozom, akkor minden jó, lementi, de amikor be akarom tölteni akkor nem működik megfelelően.
Létrehozok 3 járművet és abból a 2.at kitörlöm.
Újraindítom a scriptet majd betöltődnek a járművek.
Betolti az 1.es fájlt sikeresen. Mivel nincs a 2.Fájl, így nem tud mit betölteni szóval nem lesz jármű. Aztán betölti a 3.Fájlt, és a jármű létrejön a 2ID-n így bebugol a jármű.
 
 
 

#include <a_samp>
#include <sscanf2>
#include <streamer>
#include <YSI\\y_ini>
#include <iZCMD>
#define       JARMUVEK_HELYE                \"FCRP/Jarmuvek/%d.ini\"
enum ENUM_JARMU_INFO
{
bool:JarmuVan,
jID,
jModelID,
jTipus,
Float: jPosX,
Float: jPosY,
Float: jPosZ,
Float: jPosA,
jColor1,
jColor2,
jTulajdonos[MAX_PLAYER_NAME],
jAr,
Float:jElet,
jPanelok,
jAjtok,
jLampak,
jKerekek
}
new JarmuInfo[MAX_VEHICLES][ENUM_JARMU_INFO];
main()
{
print(\"\\n----------------------------------\");
print(\" Blank Gamemode by your name here\");
print(\"----------------------------------\\n\");
}
public OnGameModeInit()
{
// Don\'t use these lines if it\'s a filterscript
SetGameModeText(\"Blank Script\");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
JarmuvekBetoltese();
return 1;
}
public OnGameModeExit()
{
JarmuvekMentese();
return 1;
}
stock JarmuvekMentese()
{
for(new ji=1;ji < MAX_VEHICLES;ji++)
{
   JarmuMentes(ji);
   DestroyVehicle(JarmuInfo[ji][jID]);
}
}
stock JarmuMentes(jarmuid)
{
new jFajl[35], modelid, Float:pos[4];
    if(JarmuInfo[jarmuid][JarmuVan] == false) return 0;
modelid = GetVehicleModel(jarmuid);
GetVehiclePos(jarmuid, pos[0], pos[1], pos[2]);
GetVehicleZAngle(jarmuid, pos[3]);
new panels, doors, lights, tires, Float:vElet;
GetVehicleDamageStatus(jarmuid, panels, doors, lights, tires);
GetVehicleHealth(jarmuid, vElet);
format(jFajl, sizeof(jFajl), JARMUVEK_HELYE, jarmuid);
    new INI:File = INI_Open(jFajl);
    INI_WriteInt(File, \"ModelID\", modelid);
    INI_WriteFloat(File, \"PosX\", pos[0]);
    INI_WriteFloat(File, \"PosY\", pos[1]);
    INI_WriteFloat(File, \"PosZ\", pos[2]);
    INI_WriteFloat(File, \"PosA\", pos[3]);
    INI_WriteInt(File, \"Color1\", JarmuInfo[jarmuid][jColor1]);
    INI_WriteInt(File, \"Color2\", JarmuInfo[jarmuid][jColor2]);
    INI_WriteString(File, \"Tulajdonos\", JarmuInfo[jarmuid][jTulajdonos]);
    INI_WriteInt(File, \"Ar\", JarmuInfo[jarmuid][jAr]);
    INI_WriteFloat(File, \"Elet\", vElet);
    INI_WriteInt(File, \"Panelok\", panels);
    INI_WriteInt(File, \"Ajtok\", doors);
    INI_WriteInt(File, \"Lampak\", lights);
    INI_WriteInt(File, \"Kerekek\", tires);
    INI_Close(File);
    return 1;
}
stock JarmuvekBetoltese()
{
new jarmucount;
for(new ji = 1; ji < MAX_VEHICLES; ji++)
     {
         new jFajl[35];
   format(jFajl, 35, JARMUVEK_HELYE ,ji);
   if(fexist(jFajl))
   {
      INI_ParseFile(jFajl, \"JarmuBetolt\", .bExtra = true, .extra = ji);
      JarmuBetoltes(ji);
      jarmucount++;
      printf(\"%d jármű betöltve\", jarmucount);
   }
}
}
forward JarmuBetolt(id, name[], value[]);
public JarmuBetolt(id, name[], value[])
{
JarmuInfo[id][JarmuVan] = true;
    INI_Int(\"ModelID\", JarmuInfo[id][jModelID]);
    INI_Float(\"PosX\", JarmuInfo[id][jPosX]);
    INI_Float(\"PosY\", JarmuInfo[id][jPosY]);
    INI_Float(\"PosZ\", JarmuInfo[id][jPosZ]);
    INI_Float(\"PosA\", JarmuInfo[id][jPosA]);
    INI_Int(\"Color1\", JarmuInfo[id][jColor1]);
    INI_Int(\"Color2\", JarmuInfo[id][jColor2]);
    INI_String(\"Tulajdonos\", JarmuInfo[id][jTulajdonos]);
    INI_Int(\"Ar\", JarmuInfo[id][jAr]);
    INI_Float(\"Elet\", JarmuInfo[id][jElet]);
    INI_Int(\"Panelok\", JarmuInfo[id][jPanelok]);
    INI_Int(\"Ajtok\", JarmuInfo[id][jAjtok]);
    INI_Int(\"Lampak\", JarmuInfo[id][jLampak]);
    INI_Int(\"Kerekek\", JarmuInfo[id][jKerekek]);
    return 1;
}
stock JarmuBetoltes(jarmuid)
{
    JarmuInfo[jarmuid][jID] = AddStaticVehicleEx (JarmuInfo[jarmuid][jModelID], JarmuInfo[jarmuid][jPosX], JarmuInfo[jarmuid][jPosY], JarmuInfo[jarmuid][jPosZ], JarmuInfo[jarmuid][jPosA], JarmuInfo[jarmuid][jColor1], JarmuInfo[jarmuid][jColor2], -1, 0);
SetVehicleParamsEx(jarmuid, 0, 0, 0, 0, 0, 0, 0);
UpdateVehicleDamageStatus(jarmuid, JarmuInfo[jarmuid][jPanelok], JarmuInfo[jarmuid][jAjtok], JarmuInfo[jarmuid][jLampak], JarmuInfo[jarmuid][jKerekek]);
SetVehicleHealth(jarmuid, JarmuInfo[jarmuid][jElet]);
return 1;
}
 
stock ElerhetoJarmuID()
{
for(new ji = 1; ji<MAX_VEHICLES; ji++)
{
       if(JarmuInfo[ji][JarmuVan] == false) return ji;
}
return -1;
}
stock GetName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}

 
 
« Utoljára szerkesztve: 2019. Április 25. - 02:37:11 írta Alcatraz123@ »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármű rendszer bug
« Válasz #1 Dátum: 2019. Április 25. - 07:17:35 »
0
Idézetet írta: Alcatraz123@ date=1556152591


   
       
   
   

stock JarmuBetoltes(jarmuid)
{
    JarmuInfo[jarmuid][jID] = AddStaticVehicleEx (JarmuInfo[jarmuid][jModelID], JarmuInfo[jarmuid][jPosX], JarmuInfo[jarmuid][jPosY], JarmuInfo[jarmuid][jPosZ], JarmuInfo[jarmuid][jPosA], JarmuInfo[jarmuid][jColor1], JarmuInfo[jarmuid][jColor2], -1, 0);
SetVehicleParamsEx(jarmuid, 0, 0, 0, 0, 0, 0, 0);
UpdateVehicleDamageStatus(jarmuid, JarmuInfo[jarmuid][jPanelok], JarmuInfo[jarmuid][jAjtok], JarmuInfo[jarmuid][jLampak], JarmuInfo[jarmuid][jKerekek]);
SetVehicleHealth(jarmuid, JarmuInfo[jarmuid][jElet]);
return 1;
}

   
       
   


Itt ne a jarmuid-ra hivatkozz, hanem a JarmuInfo[jarmuid][jID]-ra
 
 
 
Továbbá ha a létrehozott járművet a saját ID-ján akarod tartani, akkor hozz létre egy tömböt amiben a SA-MP-os járművekhez eltárolod a Jármű rendszeredhez tartozó ID-kat és akkor arra hivatkozol amikor adatot akarsz lekérdezni, így független lesz attól, hogy ID-n jön létre a SA-MP-os jármű.
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Jármű rendszer bug
« Válasz #2 Dátum: 2019. Április 25. - 07:37:14 »
0
-
« Utoljára szerkesztve: 2019. Április 25. - 07:38:45 írta Evolved »

Nem elérhető Ryoto

Jármű rendszer bug
« Válasz #3 Dátum: 2019. Április 25. - 07:40:39 »
0
Idézetet írta: Evolved date=1556170634


   
      -
   


Régebben létrehoztam egy másik profilt amit törölni akartam, és most véletlenül azzal írtam.
 
 
Idézetet írta: Kovacs_Richard date=1556169455


   
      Itt ne a jarmuid-ra hivatkozz, hanem a JarmuInfo[jarmuid][jID]-ra
   
   
       
   
   
      Továbbá ha a létrehozott járművet a saját ID-ján akarod tartani, akkor hozz létre egy tömböt amiben a SA-MP-os járművekhez eltárolod a Jármű rendszeredhez tartozó ID-kat és akkor arra hivatkozol amikor adatot akarsz lekérdezni, így független lesz attól, hogy ID-n jön létre a SA-MP-os jármű.
   


Tudnál egy példát erre mutatni?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármű rendszer bug
« Válasz #4 Dátum: 2019. Április 25. - 08:31:47 »
0

// Felülre
new MyVehicleIDs[MAX_VEHICLES];
//Jármű betöltés alá:
MyVehicleIDs[JarmuInfo[jarmuid][jID]] = jarmuid;
// Mentésnél meg marad ez hivatkozásként SA-MP-re járműre:
JarmuInfo[jarmuid][jID]
 
// SA-MP-s jármű események alatt pl így hivatkozhatsz:
public OnVehicleMod(playerid,vehicleid,componentid)
{
    SetVehicleHealth(vehicleid, JarmuInfo[MyVehicleIDs[vehicleid]][jElet]); // jarmuid = MyVehicleIDs[vehicleid]
    return 1;
}

 
 
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető Ryoto

Jármű rendszer bug
« Válasz #5 Dátum: 2019. Április 25. - 10:22:09 »
0
Sehogy sem sikerül nekem beleilleszteni, eltudnád küldeni nekem úgy ezt a scriptet hogy változtatsz rajta?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármű rendszer bug
« Válasz #6 Dátum: 2019. Április 25. - 10:54:55 »
0
gyakorolj menni fog az :)
 
legalább ezzel is fejlődsz
 
 
 
hol akadsz el?
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető Ryoto

Jármű rendszer bug
« Válasz #7 Dátum: 2019. Április 25. - 10:59:53 »
0
Az egésszel, beleraktam mindent ahogy írtad és akkor sem működik.
 

stock JarmuBetoltes(jarmuid)
{
MyVehicleIDs[JarmuInfo[jarmuid][jID]] = jarmuid;
    JarmuInfo[jarmuid][jID] = AddStaticVehicleEx (JarmuInfo[jarmuid][jModelID], JarmuInfo[jarmuid][jPosX], JarmuInfo[jarmuid][jPosY], JarmuInfo[jarmuid][jPosZ], JarmuInfo[jarmuid][jPosA], JarmuInfo[jarmuid][jColor1], JarmuInfo[jarmuid][jColor2], -1, 0);
SetVehicleParamsEx(jarmuid, 0, 0, 0, 0, 0, 0, 0);
UpdateVehicleDamageStatus(jarmuid, JarmuInfo[jarmuid][jPanelok], JarmuInfo[jarmuid][jAjtok], JarmuInfo[jarmuid][jLampak], JarmuInfo[jarmuid][jKerekek]);
SetVehicleHealth(jarmuid, JarmuInfo[jarmuid][jElet]);
return 1;
}


stock JarmuMentes(jarmuid)
{
new jFajl[35], modelid, Float:pos[4];
    if(JarmuInfo[jarmuid][JarmuVan] == false) return 0;
modelid = GetVehicleModel(jarmuid);
GetVehiclePos(jarmuid, pos[0], pos[1], pos[2]);
GetVehicleZAngle(jarmuid, pos[3]);
new panels, doors, lights, tires, Float:vElet;
GetVehicleDamageStatus(jarmuid, panels, doors, lights, tires);
GetVehicleHealth(jarmuid, vElet);
format(jFajl, sizeof(jFajl), JARMUVEK_HELYE, jarmuid);
    new INI:File = INI_Open(jFajl);
    INI_WriteInt(File, \"ModelID\", modelid);
    INI_WriteFloat(File, \"PosX\", pos[0]);
    INI_WriteFloat(File, \"PosY\", pos[1]);
    INI_WriteFloat(File, \"PosZ\", pos[2]);
    INI_WriteFloat(File, \"PosA\", pos[3]);
    INI_WriteInt(File, \"Color1\", JarmuInfo[jarmuid][jColor1]);
    INI_WriteInt(File, \"Color2\", JarmuInfo[jarmuid][jColor2]);
    INI_WriteString(File, \"Tulajdonos\", JarmuInfo[jarmuid][jTulajdonos]);
    INI_WriteInt(File, \"Ar\", JarmuInfo[jarmuid][jAr]);
    INI_WriteFloat(File, \"Elet\", vElet);
    INI_WriteInt(File, \"Panelok\", panels);
    INI_WriteInt(File, \"Ajtok\", doors);
    INI_WriteInt(File, \"Lampak\", lights);
    INI_WriteInt(File, \"Kerekek\", tires);
    INI_Close(File);
    return 1;
}

 
 
« Utoljára szerkesztve: 2019. Április 25. - 11:02:09 írta Alcatraz123@ »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármű rendszer bug
« Válasz #8 Dátum: 2019. Április 25. - 11:15:59 »
0
Persze, hogy nem jó, mert a betöltésnél az után rakd miután létrehozod az SA-MP-s járművet!
 
Továbbá az alatta levő SA-MP-s jármű hivatkozást is írd át
 
pl
 

SetVehicleParamsEx(jarmuid, 0, 0, 0, 0, 0, 0, 0);

 
helyett
 

SetVehicleParamsEx(JarmuInfo[jarmuid][jID], 0, 0, 0, 0, 0, 0, 0);

 
 
 
a mentésnél szintén át kell írnod ezeket a hivatkozásokat, mert a te rendszeredben lehet 8-as jármű de közben az SA-MP vehicleid meg 180 és akkor ezzel a hivatkozással találod meg, hogy a te rendszeredben mi az ID-ja és fordítva
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető Ryoto

Jármű rendszer bug
« Válasz #9 Dátum: 2019. Április 25. - 11:18:32 »
0
Szóval ez így már jó?
 

stock JarmuMentes(jarmuid)
{
new jFajl[35], modelid, Float:pos[4];
    if(JarmuInfo[jarmuid][JarmuVan] == false) return 0;
modelid = JarmuInfo[jarmuid][jModelID];
GetVehiclePos(JarmuInfo[jarmuid][jID], pos[0], pos[1], pos[2]);
GetVehicleZAngle(JarmuInfo[jarmuid][jID], pos[3]);
new panels, doors, lights, tires, Float:vElet;
GetVehicleDamageStatus(JarmuInfo[jarmuid][jID], panels, doors, lights, tires);
GetVehicleHealth(JarmuInfo[jarmuid][jID], vElet);
format(jFajl, sizeof(jFajl), JARMUVEK_HELYE, jarmuid);
    new INI:File = INI_Open(jFajl);
    INI_WriteInt(File, \"ModelID\", modelid);
    INI_WriteFloat(File, \"PosX\", pos[0]);
    INI_WriteFloat(File, \"PosY\", pos[1]);
    INI_WriteFloat(File, \"PosZ\", pos[2]);
    INI_WriteFloat(File, \"PosA\", pos[3]);
    INI_WriteInt(File, \"Color1\", JarmuInfo[jarmuid][jColor1]);
    INI_WriteInt(File, \"Color2\", JarmuInfo[jarmuid][jColor2]);
    INI_WriteString(File, \"Tulajdonos\", JarmuInfo[jarmuid][jTulajdonos]);
    INI_WriteInt(File, \"Ar\", JarmuInfo[jarmuid][jAr]);
    INI_WriteFloat(File, \"Elet\", vElet);
    INI_WriteInt(File, \"Panelok\", panels);
    INI_WriteInt(File, \"Ajtok\", doors);
    INI_WriteInt(File, \"Lampak\", lights);
    INI_WriteInt(File, \"Kerekek\", tires);
    INI_Close(File);
    return 1;
}

 
 

Nem elérhető Ryoto

Jármű rendszer bug
« Válasz #10 Dátum: 2019. Április 25. - 11:41:22 »
0
Tudnál nekem írni egy ilyen scriptet? Tanulmányoznám és ezzel növelném a tudásomat is.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármű rendszer bug
« Válasz #11 Dátum: 2019. Április 25. - 11:50:53 »
0
betöltésnél is felcserélted az 1. és a 2. sort?
 
már pár éve nem scriptelek :) de magadtól is menni fog ez
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető Ryoto

Jármű rendszer bug
« Válasz #12 Dátum: 2019. Április 25. - 11:55:35 »
0
Igen, de akkor sem működik

Nem elérhető Ryoto

Jármű rendszer bug
« Válasz #13 Dátum: 2019. Április 25. - 11:55:49 »
0
Egyébként mivel érdemes menteni?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármű rendszer bug
« Válasz #14 Dátum: 2019. Április 25. - 12:02:21 »
0
másold be most hogyan néz ki az egész
 
 
 
nem tudom mik a mai trendek én kb 10 éve scripteltem utoljára komolyabban, akkor nem használtam dinit, yini-t meg semmi ilyesmit, hanem alap SA-MP funkciókkal operáltam főleg, az első magyar GFRP szerót csináltam, nagyon segítségem sem volt
 
performancia szempontjából, ha nincs külön pluginja 1-1 ilyennek, vagy nem emittel old meg dolgokat, akkor szerintem nem nagyon tudja leverni az alap függvényeket
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal