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: Zalakaka45 - 2013. április 16. - 17:25:20

Cím: Pénz mentése
Írta: Zalakaka45 - 2013. április 16. - 17:25:20
Helló! Van egykis gond az eggyik kis rendszeremmel... Nem menti a pénzt hiába minden jól van.
 
 On Player Connect....
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Pénz\", \"0\");
            dini_IntSet(Betolt, \"Pénz\", Info[playerid][Penz]);
       }
       else
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Pénz\");
       }

 

OnPlayerDisconnect...
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(!dini_Exists(Ment)){}
    else
        {
                dini_IntSet(Ment, \"Pénz\", Info[playerid][Penz]);
    }
Cím: Pénz mentése
Írta: Dfoglalo - 2013. április 16. - 17:27:44
Idézetet írta: Zalakaka45 date=1366125920\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"36244\" data-ipsquote-contentclass=\"forums_Topic
Helló! Van egykis gond az eggyik kis rendszeremmel... Nem menti a pénzt hiába minden jól van.
 
Pénz

 

Ha más nem is, de ez biztosan hiba: sose használj ékezetes betûket dinivel (se mással, ahol adatokat kérdezel le, vagy bármi más ami nem magyar)! Írd át Penz-re.
Cím: Pénz mentése
Írta: ZyZu. - 2013. április 16. - 18:05:36
http://sampforum.hu/index.php?topic=27568.0
Cím: Pénz mentése
Írta: Time - 2013. április 16. - 20:29:20
Szerintem érdemesebb \'\'Money\'\' ra át írni, vagy tévedek ???
Cím: Pénz mentése
Írta: Red-Eye - 2013. április 16. - 20:39:34
Ömm attól hogy ez jónak tûnik attól még máshol hibák lehetnek benne szóval amik ehhez a \'Info[playerid][Penz]\' -hez kapcsolódnak azokat a részeket is kérnénk, arigatou goseimas  :smokin:
Cím: Pénz mentése
Írta: Norby - 2013. április 16. - 21:38:31
Mentésnél használhatnál: GetPlayerMoney(playerid);
Lehet az lesz a baj, hogy a változónak nem adsz értéket vagyis a pénzt.
Cím: Pénz mentése
Írta: Zalakaka45 - 2013. április 17. - 13:47:07
Idézetet írta: Red-Eye date=1366137574\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"36244\" data-ipsquote-contentclass=\"forums_Topic
Ömm attól hogy ez jónak tûnik attól még máshol hibák lehetnek benne szóval amik ehhez a \'Info[playerid][Penz]\' -hez kapcsolódnak azokat a részeket is kérnénk, arigatou goseimas  :smokin:
 

enum Informacio
{
Admin,
Pontok,
Rendor,
Penz,
}
new Info[MAX_PLAYERS][informacio];
new Betolt[128];
new Ment[128];

 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Penz\", \"0\");
            dini_IntSet(Betolt, \"Penz\", Info[playerid][Penz]);
       }
       else
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(!dini_Exists(Ment)){}
    else
        {
                dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
    }
return 1;
}[/code]
A mappa megvan csinálva! Regisztrációs rendszer van, az jól mûködik!
Cím: Pénz mentése
Írta: Dfoglalo - 2013. április 17. - 17:33:57
Idézetet írta: Zalakaka45 date=1366199227\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"36244\" data-ipsquote-contentclass=\"forums_Topic


Ömm attól hogy ez jónak tûnik attól még máshol hibák lehetnek benne szóval amik ehhez a \'Info[playerid][Penz]\' -hez kapcsolódnak azokat a részeket is kérnénk, arigatou goseimas  :smokin:
 

enum Informacio
{
Admin,
Pontok,
Rendor,
Penz,
}
new Info[MAX_PLAYERS][informacio];
new Betolt[128];
new Ment[128];

 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Penz\", \"0\");
            dini_IntSet(Betolt, \"Penz\", Info[playerid][Penz]);
       }
       else
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(!dini_Exists(Ment)){}
    else
        {
                dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
    }
return 1;
}[/code]
 
[/quote]
(A [ code = pawn ] -ot lehagytad véletlenül, szerintem gyorsan szerkeszd át, mielõtt egy Moderátor rád szólna)
 

A mappa megvan csinálva! Regisztrációs rendszer van, az jól mûködik!
 
[/quote]
Tehát akkor azt írtad, hogy van regisztrációs rendszer. Ez esetben létezik már a fájl, tehát ez a rész itt nem kell.
 
 if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Penz\", \"0\");
            dini_IntSet(Betolt, \"Penz\", Info[playerid][Penz]);
       }

 
Átírtam neked a helyes kódra, és elméletileg mûködnie is kéne.
 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(dini_Exists(Betolt))
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(dini_Exists(Ment))
   {
      dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
   }     
return 1;
}

 
Fontos: az alap pénz mutató nem fogja mutatni a pénzt, mivel arra nincs betöltve. Használ saját, akár Forintot író pénz dobozt (TextDraw-al megoldva), vagy pedig simán töltsd be az alap, $-os dobozra a lekérdezett pénzt, a GivePlayerMoney függvény segítségével. Ha az utóbbi megoldást választod, ahhoz itt van a kód is:
 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(dini_Exists(Betolt))
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
                GivePlayerMoney(playerid, Info[playerid][Penz]);
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(dini_Exists(Ment))
   {
      dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
   }     
return 1;
}

 
Remélem segítettem. :)
Cím: Pénz mentése
Írta: Zalakaka45 - 2013. április 17. - 20:13:06
Idézetet írta: Dfoglalo date=1366212837\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"36244\" data-ipsquote-contentclass=\"forums_Topic


 

Ömm attól hogy ez jónak tûnik attól még máshol hibák lehetnek benne szóval amik ehhez a \'Info[playerid][Penz]\' -hez kapcsolódnak azokat a részeket is kérnénk, arigatou goseimas  :smokin:
 

enum Informacio
{
Admin,
Pontok,
Rendor,
Penz,
}
new Info[MAX_PLAYERS][informacio];
new Betolt[128];
new Ment[128];

 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Penz\", \"0\");
            dini_IntSet(Betolt, \"Penz\", Info[playerid][Penz]);
       }
       else
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(!dini_Exists(Ment)){}
    else
        {
                dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
    }
return 1;
}[/code]
 
[/quote]
(A [ code = pawn ] -ot lehagytad véletlenül, szerintem gyorsan szerkeszd át, mielõtt egy Moderátor rád szólna)
 

A mappa megvan csinálva! Regisztrációs rendszer van, az jól mûködik!
 
[/quote]
Tehát akkor azt írtad, hogy van regisztrációs rendszer. Ez esetben létezik már a fájl, tehát ez a rész itt nem kell.
 
 if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Penz\", \"0\");
            dini_IntSet(Betolt, \"Penz\", Info[playerid][Penz]);
       }

 
Átírtam neked a helyes kódra, és elméletileg mûködnie is kéne.
 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(dini_Exists(Betolt))
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(dini_Exists(Ment))
   {
      dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
   }     
return 1;
}

 
Fontos: az alap pénz mutató nem fogja mutatni a pénzt, mivel arra nincs betöltve. Használ saját, akár Forintot író pénz dobozt (TextDraw-al megoldva), vagy pedig simán töltsd be az alap, $-os dobozra a lekérdezett pénzt, a GivePlayerMoney függvény segítségével. Ha az utóbbi megoldást választod, ahhoz itt van a kód is:
 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(dini_Exists(Betolt))
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
                GivePlayerMoney(playerid, Info[playerid][Penz]);
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(dini_Exists(Ment))
   {
      dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
   }     
return 1;
}

 
Remélem segítettem. :)
 
[/quote]
Most meg az a baj, csináltam egy kódot hogy /penz és akkor a játékba ad 5000 dollár, beirom /penz, ott kijelzi hogy megadta de viszont mikor kilépek, akk má nem menti le a Karakterek mappába!
Cím: Pénz mentése
Írta: Dfoglalo - 2013. április 17. - 20:26:12
Idézetet írta: Zalakaka45 date=1366222386\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"36244\" data-ipsquote-contentclass=\"forums_Topic


 

 

Ömm attól hogy ez jónak tûnik attól még máshol hibák lehetnek benne szóval amik ehhez a \'Info[playerid][Penz]\' -hez kapcsolódnak azokat a részeket is kérnénk, arigatou goseimas  :smokin:
 

enum Informacio
{
Admin,
Pontok,
Rendor,
Penz,
}
new Info[MAX_PLAYERS][informacio];
new Betolt[128];
new Ment[128];

 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Penz\", \"0\");
            dini_IntSet(Betolt, \"Penz\", Info[playerid][Penz]);
       }
       else
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(!dini_Exists(Ment)){}
    else
        {
                dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
    }
return 1;
}[/code]
 
[/quote]
(A [ code = pawn ] -ot lehagytad véletlenül, szerintem gyorsan szerkeszd át, mielõtt egy Moderátor rád szólna)
 

A mappa megvan csinálva! Regisztrációs rendszer van, az jól mûködik!
 
[/quote]
Tehát akkor azt írtad, hogy van regisztrációs rendszer. Ez esetben létezik már a fájl, tehát ez a rész itt nem kell.
 
 if(!dini_Exists(Betolt))
         {
            dini_Create(Betolt);
            dini_Set(Betolt, \"Penz\", \"0\");
            dini_IntSet(Betolt, \"Penz\", Info[playerid][Penz]);
       }

 
Átírtam neked a helyes kódra, és elméletileg mûködnie is kéne.
 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(dini_Exists(Betolt))
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(dini_Exists(Ment))
   {
      dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
   }     
return 1;
}

 
Fontos: az alap pénz mutató nem fogja mutatni a pénzt, mivel arra nincs betöltve. Használ saját, akár Forintot író pénz dobozt (TextDraw-al megoldva), vagy pedig simán töltsd be az alap, $-os dobozra a lekérdezett pénzt, a GivePlayerMoney függvény segítségével. Ha az utóbbi megoldást választod, ahhoz itt van a kód is:
 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
        format(Betolt, sizeof(Betolt), \"Karakterek/%s.ini\",nev);
        if(dini_Exists(Betolt))
       {
                Info[playerid][Penz] = dini_Int(Betolt,\"Penz\");
                GivePlayerMoney(playerid, Info[playerid][Penz]);
       }
return 1;
}
public OnPlayerDisconnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(Ment, sizeof(Ment), \"Karakterek/%s.ini\",nev);
    if(dini_Exists(Ment))
   {
      dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
   }     
return 1;
}

 
Remélem segítettem. :)
 
[/quote]
Most meg az a baj, csináltam egy kódot hogy /penz és akkor a játékba ad 5000 dollár, beirom /penz, ott kijelzi hogy megadta de viszont mikor kilépek, akk má nem menti le a Karakterek mappába!
 
[/quote]
Azért, mert nem a Penz tárolóhoz adod hozzá, hanem csak ahhoz az alap pénz mutató dobozhoz. A disconnecthez írd:
 
dini_IntSet(Ment, \"Penz\", GetPlayerMoney(playerid));

 
a
 
dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);

 
után, tehát
 
dini_IntSet(Ment, \"Penz\", Info[playerid][Penz]);
dini_IntSet(Ment, \"Penz\", GetPlayerMoney(playerid));

 
-et írj.