-
Sziasztok.Dinit használok és az a probléma hogy nem menti el az üzletekben levő pénzt.Miért?
#define MAX_BOLT 3
new Float:Bolt[MAX_BOLT][3] = {
{-2237.6667,130.1852,1035.5250},
{0.0,0.0,0.0},
{0.0,0.0,0.0}
};
enum BoltAdatok
{
BoltPenz1,
BoltPenz2,
BoltPenz3
}
new BoltInfo[MAX_BOLT][boltAdatok];
public OnGameModeInit()
{
for(new x=0;x<MAX_BOLT;x++)
{
format(file,sizeof(file),\"/Modom/%s.ini\",GameModeName);
if(!fexist(file))
{
dini_Create(file);
}
if(fexist(file))
{
BoltInfo
- [boltPenz1] = dini_Int(file,\"BoltPenz1\");
BoltInfo- [boltPenz2] = dini_Int(file,\"BoltPenz2\");
BoltInfo- [boltPenz3] = dini_Int(file,\"BoltPenz3\");
}
}
return 1;
}
public OnGameModeExit()
{
for(new x = 0;x<MAX_BOLT;x++)
{
format(file,sizeof(file),\"/Modom/%s.ini\",GameModeName);
if(!fexist(file))
{
dini_Create(file);
}
if(fexist(file))
{
dini_IntSet(file,\"BoltPenz1\",BoltInfo
dini_IntSet(file,\"BoltPenz2\",BoltInfo
dini_IntSet(file,\"BoltPenz3\",BoltInfo
printf(\"Boltpenz: %d\",BoltInfo
printf(\"Boltpenz: %d\",BoltInfo
printf(\"Boltpenz: %d\",BoltInfo
}
}
retrun 1;
}
-
tömb....
new Float:Bolt[MAX_BOLT][3]
szerinted ha 0ról indul h érzékelje a 0 számot? :D
x=0 // tehát az 1 2 3 lesz beolvasva de a tömb az 0 1 2... és a te első boltod a 0-án van
vagy -1ről indítsad... vagy értékváltás de nem hinném h 3 bolthoz \"for\" ciklus kéne... elég a tömbszámot beírni akkor de mind 2 esetben működni fog :yawn:
-
Leirnád nekem ennek a mentését?Kérlek mert igy nem értem..
-
Az a baj, hogy amikor bezárod a módot, és nem létezik a fájl
if(!fexist(fajl)) // Ha nem létezik a fájl
Akkor csak létrehozza, és utána bezáródik a játékmód, ezért ha nem létezik oda is rakj egy mentést.
-
tömb....
new Float:Bolt[MAX_BOLT][3]
szerinted ha 0ról indul h érzékelje a 0 számot? :D
x=0 // tehát az 1 2 3 lesz beolvasva de a tömb az 0 1 2... és a te első boltod a 0-án van
vagy -1ről indítsad... vagy értékváltás de nem hinném h 3 bolthoz \"for\" ciklus kéne... elég a tömbszámot beírni akkor de mind 2 esetben működni fog :yawn:
Ennek a kommentnek a helytállása szerintem nem meg felelő.
Ugyanis a ciklussal nincs baj: (nem hiszem hogy még ne láttál volna ilyet) Egy példa:
for(new i=0; i < MAX_PLAYERS; i++) //a nulla is lefut de a MAX_PLAYERS értéke (pl) 30 már nem, mivel nem is kéne mert ha max játékosok száma = 30, akkor csak 29 lehet a max ID-jú játékos, mivel van olyan játékos akinek az ID-je 0
Miért?
Ugye az első játékos értéke 0 az utolsóé 29, ezért 0-29 30db szám van azaz a MAX_PLAYERS értéke
Vagy tévednék, kedves? :O
(Félre ne értsd nem lehülyézzek, hiszen legalább te válaszoltál(/foglalkoztál vele), és az már több mint a semmi :) )
-
Igaz amit mondasz de ha i=0 mikor lefut ezt fogja számolni 1 2 3 4 5 6 egészen 30 ig. És igen a fexist is hiányzot :) és neki 0 tól kell mert tömb.
Mellesleg... for ciklus több mentés és x helyén 1 nél is lefut az összes szám.
Dupla hozzászólás automatikusan összefûzve. ( 2016. február 13. - 22:52:48 )
BoltInfo[0][boltPenz1] = dini_Int(file,\"BoltPenz1\");
BoltInfo[1][boltPenz2] = dini_Int(file,\"BoltPenz2\");
BoltInfo[2][boltPenz3] = dini_Int(file,\"BoltPenz3\");
ez lenne a helyes, de ha for ciklust futtatsz \"jól\" az az x= -1
akkor is rossz mert
BoltInfo
azt nem tom h az x úgy beilleszthető e de ha nem akkor ifelni kell ha 0 1 2 akkor BoltPenz1 Boltbenz2 BoltPenz3(ezek fálj nevek)
és ha indításkor létrehozod akkor nem kell leállításkor \"!fexist\"
valamint értéket is adnod kell neki... mikor nincs még létrehozva :D
/*!fexist alá*/ BoltInfo
- [boltPenz]
de ha így sem értetted meg.. amit nem hinnék, akkor írj rám és megírom neked :innocent:
-
ha for ciklust futtatsz \"jól\" az az x= -1
[hs width=500 height=300]http://oi63.tinypic.com/29enity.jpg[/hs]
hogy nekem milyen kurva igazad van..
nekem elmenti, az egyetlen probléma, hogy hülyén oldottad meg a mentést, nem adtál külön változókat a boltoknak, így mindig csak az utolsó boltod értékeit menti el a fájlba.
a másik lehetőség, hogy nem egy fájlba mented, hanem külön-külön fájlba minden boltodat.
-
Ez fura nekem 1 el mentette mindig o.O elnézést akkor :) kocsimentésnél nekem sajnos -1 el volt ez jó. :nugget:
-
#define MAX_BOLT 3
for(new x=0;x<MAX_BOLT;x++)
ez a ciklus 0-tól 2-ig fut le (0 1 2)
format(file,sizeof(file),\"/Modom/%s.ini\",GameModeName);
1 fájlba mentesz
BoltInfo
- [boltPenz1] = dini_Int(file,\"BoltPenz1\");
BoltInfo- [boltPenz2] = dini_Int(file,\"BoltPenz2\");
BoltInfo- [boltPenz3] = dini_Int(file,\"BoltPenz3\");
elvileg az utolsó üzleted adatait mentenie kellene...
Egy elméleti kérdésem lehet? miért van 3 pénze egy üzletnek?
Kassza, széf esetleg, de mi a 3.?
-
En ugy akartam hogy mind a 3 uzletnek mentse a penzet de valamer nm jo..
-
azt nem értem, hogy akkor minek csináltál egy alap 3as tömbbe még 3 változót? :D
#include <a_samp>
#include <dini>
#define MAX_BOLT 3
enum BoltAdatok {
BoltPenz,
}
new file[100],
GameModeName[6] = \"qwert\";
new BoltInfo[MAX_BOLT][boltAdatok];
new Float:Bolt[MAX_BOLT][3] = {
{-2237.6667,130.1852,1035.5250},
{0.0,0.0,0.0},
{0.0,0.0,0.0}
};
#pragma unused Bolt
public OnFilterScriptInit()
{
new string[24];
for(new x = 0; x < MAX_BOLT; x++)
{
format(file, sizeof(file), \"/Modom/%s.ini\", GameModeName);
if(!fexist(file)) dini_Create(file);
if(fexist(file))
{
format(string, sizeof(string), \"Bolt%d\", x);
BoltInfo
- [boltPenz] = dini_Int(file, string);
}
}
ASD();
return 1;
}
stock ASD() for(new x=0; x < MAX_BOLT; x++) BoltInfo- [boltPenz] = random(999);
public OnFilterScriptExit()
{
new string[24];
for(new x = 0;x<MAX_BOLT;x++)
{
format(file,sizeof(file),\"/Modom/%s.ini\",GameModeName);
if(!fexist(file)) dini_Create(file);
if(fexist(file))
{
format(string, sizeof(string), \"Bolt%d\", x);
dini_IntSet(file, string, BoltInfo
printf(\"Boltpenz %d: %d\", x, BoltInfo
}
}
return 1;
}
eszerint szerkesztgesd a kódod.. szerintem.