Szerző Téma: Nem menti el a szerver a boltban levö pénzt.  (Megtekintve 1147 alkalommal)

Nem menti el a szerver a boltban levö pénzt.
« Dátum: 2016. Február 12. - 14:17:22 »
0 Show voters
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
  • [boltPenz1]);

    dini_IntSet(file,\"BoltPenz2\",BoltInfo
  • [boltPenz2]);

    dini_IntSet(file,\"BoltPenz3\",BoltInfo
  • [boltPenz3]);

    printf(\"Boltpenz: %d\",BoltInfo
  • [boltPenz1]);

    printf(\"Boltpenz: %d\",BoltInfo
  • [boltPenz2]);

    printf(\"Boltpenz: %d\",BoltInfo
  • [boltPenz3]);

}
}
retrun 1;
}

Nem elérhető kos

  • 292
    • Profil megtekintése
Nem menti el a szerver a boltban levö pénzt.
« Válasz #1 Dátum: 2016. Február 12. - 22:41:13 »
0 Show voters
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:

Nem menti el a szerver a boltban levö pénzt.
« Válasz #2 Dátum: 2016. Február 13. - 09:03:09 »
0 Show voters
Leirnád nekem ennek a mentését?Kérlek mert igy nem értem..

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Nem menti el a szerver a boltban levö pénzt.
« Válasz #3 Dátum: 2016. Február 13. - 10:21:26 »
0 Show voters
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.

Nem menti el a szerver a boltban levö pénzt.
« Válasz #4 Dátum: 2016. Február 13. - 10:33:23 »
0 Show voters
Idézetet írta: kos date=1455313273\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59512\" data-ipsquote-contentclass=\"forums_Topic
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 :) )

Nem elérhető kos

  • 292
    • Profil megtekintése
Nem menti el a szerver a boltban levö pénzt.
« Válasz #5 Dátum: 2016. Február 13. - 22:05:25 »
0 Show voters
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
  • [boltPenz1][/quote]
    mert az x érték végig fut 0 1 2 re....
    és így nem lesz jó az érték :D
     
    enum BoltAdatok
    {
            BoltPenz[3]
    }
    BoltInfo
  • [boltPenz]
  • = dini_Int(file,\"BoltPenz\"x\"\");

 
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]
    • = 0;

  •  
    de ha így sem értetted meg.. amit nem hinnék, akkor írj rám és megírom neked  :innocent:
    « Utoljára szerkesztve: 2016. Február 13. - 22:52:48 írta kos »

    Nem menti el a szerver a boltban levö pénzt.
    « Válasz #6 Dátum: 2016. Február 14. - 07:20:36 »
    0 Show voters
    Idézetet írta: kos date=1455397525\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59512\" data-ipsquote-contentclass=\"forums_Topic
    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.

    Nem elérhető kos

    • 292
      • Profil megtekintése
    Nem menti el a szerver a boltban levö pénzt.
    « Válasz #7 Dátum: 2016. Február 15. - 00:25:53 »
    0 Show voters
    Ez fura nekem 1 el mentette mindig o.O elnézést akkor :) kocsimentésnél nekem sajnos -1 el volt ez jó.  :nugget:

    Nem elérhető Kovacs_Richard

    • 1743
    • HRP Fejlesztő
    • Discord: Kovacs_Richard#0321
      • Profil megtekintése
      • Hun Role Play Web
    Nem menti el a szerver a boltban levö pénzt.
    « Válasz #8 Dátum: 2016. Február 15. - 01:14:00 »
    0 Show voters
    #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.?
    Régóta nem tevékenykedem, mint SA-MP scripter.
    HRP Fejlesztő.

    Nem menti el a szerver a boltban levö pénzt.
    « Válasz #9 Dátum: 2016. Február 15. - 08:15:26 »
    0 Show voters
    En ugy akartam hogy mind a 3 uzletnek mentse a penzet de valamer nm jo..

    Nem menti el a szerver a boltban levö pénzt.
    « Válasz #10 Dátum: 2016. Február 15. - 10:02:57 »
    0 Show voters
    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
    • [boltPenz]);

                printf(\"Boltpenz %d: %d\", x, BoltInfo
    • [boltPenz]);

            }
        }
    return 1;
    }

     
    eszerint szerkesztgesd a kódod.. szerintem.

     

    SimplePortal 2.3.7 © 2008-2024, SimplePortal