public OnPlayerConnect(playerid){ new nev[MAX_PLAYER_NAME]; new file[100]; GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) return 1;}
enum pInformacio{pPenz}new pInfo[MAX_PLAYERS][pInformacio];new nev[MAX_PLAYER_NAME];new file[128];public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;}
public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;}public OnPlayerDisconnect(playerid, reason){ dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); return 1;}
public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;}public OnPlayerDisconnect(playerid, reason){ dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); return 1;} Köszi, de most én kicsit átírtam, de én egy \"komplett\" rendszert írtam, amit nem publikálnék. Igazából itt van ez a rész... Nekem teljesen így van más kód nevekkel + ugye az értéke megvan adva stb stb.. Minden király, lementi az adatot, de betöltéskor ha már létezik is az a név, akkor az éppen \"Pénz\"-t átírja 0 ára... Pl én hiába írom át 50 ezerre.. Ezt nem értem.
// Ezt nem én írtam, innen, a fórumról van. De azért mûködnie kéne, ahogy ránéztem, hiszen én is hasonlót használok.#include <a_samp>#include <zcmd>#include <sscanf2>#include <Dini>new File[128];new PW[64];new WPW[MAX_PLAYERS];public OnPlayerConnect(playerid){ format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Oké\", \"Mégse\"); } else { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad!\", \"Rendben\", \"Mégse\"); } return 1; }public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){ if(dialogid == 1) { if(!response) Kick(playerid); if(strlen(inputtext) == 0) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Rendben\", \"Mégsem\"); return 0; } format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { dini_Create(File); dini_Set(File, \"Pasword\", inputtext); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\"); } } if(dialogid == 2) { format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!response) { Kick(playerid); } format(PW, 64, \"%s\", dini_Get(File, \"Password\")); if(!strcmp(inputtext, PW, false)) { SendClientMessage(playerid, -1, \"Sikeres belépés! Nyomj a \'SPAWN\' gombra!\"); } else { WPW[playerid] ++; SendClientMessage(playerid, -1, \"Rossz jelszó!\"); if(WPW[playerid] == 3) { Kick(playerid); } ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad\", \"Oké\", \"Mégse\"); } } return 1;}stock Nev(playerid){ new Neve[MAX_PLAYER_NAME]; GetPlayerName(playerid, Neve, sizeof(Neve)); return Neve;}
public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)){} else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;}
public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;}public OnPlayerDisconnect(playerid, reason){ dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); return 1;} Köszi, de most én kicsit átírtam, de én egy \"komplett\" rendszert írtam, amit nem publikálnék. Igazából itt van ez a rész... Nekem teljesen így van más kód nevekkel + ugye az értéke megvan adva stb stb.. Minden király, lementi az adatot, de betöltéskor ha már létezik is az a név, akkor az éppen \"Pénz\"-t átírja 0 ára... Pl én hiába írom át 50 ezerre.. Ezt nem értem. Szivesen.Én úgy csinálnám, hogy írnék egy alap dialogos regisztrációt, és nem úgy lenne, hogy kapcsolódáskor hozza létre a fájlt, hanem regisztrációkor. Ha pedig már regisztrált, csak beolvasná, és csak belépne egy dialogon át. // Ezt nem én írtam, innen, a fórumról van. De azért mûködnie kéne, ahogy ránéztem, hiszen én is hasonlót használok.#include <a_samp>#include <zcmd>#include <sscanf2>#include <Dini>new File[128];new PW[64];new WPW[MAX_PLAYERS];public OnPlayerConnect(playerid){ format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Oké\", \"Mégse\"); } else { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad!\", \"Rendben\", \"Mégse\"); } return 1; }public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){ if(dialogid == 1) { if(!response) Kick(playerid); if(strlen(inputtext) == 0) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Rendben\", \"Mégsem\"); return 0; } format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { dini_Create(File); dini_Set(File, \"Pasword\", inputtext); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\"); } } if(dialogid == 2) { format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!response) { Kick(playerid); } format(PW, 64, \"%s\", dini_Get(File, \"Password\")); if(!strcmp(inputtext, PW, false)) { SendClientMessage(playerid, -1, \"Sikeres belépés! Nyomj a \'SPAWN\' gombra!\"); } else { WPW[playerid] ++; SendClientMessage(playerid, -1, \"Rossz jelszó!\"); if(WPW[playerid] == 3) { Kick(playerid); } ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad\", \"Oké\", \"Mégse\"); } } return 1;}stock Nev(playerid){ new Neve[MAX_PLAYER_NAME]; GetPlayerName(playerid, Neve, sizeof(Neve)); return Neve;} Szerkeszd át úgy, ahogy kell neked. Ha a játékos nincs még regisztrálva, akkor elõhozza a regisztrációs dialogot, ha pedig már be van, akkor elõhozza a belépés dialogot. Ha ezt használod, akkor itt a megfelelõ adat betöltés: public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)){} else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;} Elméletileg így van nálad, tehát Player mappában, a pénz a Penz sorban, szóval akkor ezt nem is kell szerkesztened. [/quote]Egyenlõre nem akarok nagyokba vágni, de azt írtad, hogy az én rendszeremnek mûködnie kéne, pedig amikor fellépek a szerverre 0 ázza a pénzt, hiába volt az elõtt nála vagy 50000... Szal valami bugos.
public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;}public OnPlayerDisconnect(playerid, reason){ dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); return 1;} Köszi, de most én kicsit átírtam, de én egy \"komplett\" rendszert írtam, amit nem publikálnék. Igazából itt van ez a rész... Nekem teljesen így van más kód nevekkel + ugye az értéke megvan adva stb stb.. Minden király, lementi az adatot, de betöltéskor ha már létezik is az a név, akkor az éppen \"Pénz\"-t átírja 0 ára... Pl én hiába írom át 50 ezerre.. Ezt nem értem. Szivesen.Én úgy csinálnám, hogy írnék egy alap dialogos regisztrációt, és nem úgy lenne, hogy kapcsolódáskor hozza létre a fájlt, hanem regisztrációkor. Ha pedig már regisztrált, csak beolvasná, és csak belépne egy dialogon át. // Ezt nem én írtam, innen, a fórumról van. De azért mûködnie kéne, ahogy ránéztem, hiszen én is hasonlót használok.#include <a_samp>#include <zcmd>#include <sscanf2>#include <Dini>new File[128];new PW[64];new WPW[MAX_PLAYERS];public OnPlayerConnect(playerid){ format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Oké\", \"Mégse\"); } else { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad!\", \"Rendben\", \"Mégse\"); } return 1; }public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){ if(dialogid == 1) { if(!response) Kick(playerid); if(strlen(inputtext) == 0) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Rendben\", \"Mégsem\"); return 0; } format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { dini_Create(File); dini_Set(File, \"Pasword\", inputtext); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\"); } } if(dialogid == 2) { format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!response) { Kick(playerid); } format(PW, 64, \"%s\", dini_Get(File, \"Password\")); if(!strcmp(inputtext, PW, false)) { SendClientMessage(playerid, -1, \"Sikeres belépés! Nyomj a \'SPAWN\' gombra!\"); } else { WPW[playerid] ++; SendClientMessage(playerid, -1, \"Rossz jelszó!\"); if(WPW[playerid] == 3) { Kick(playerid); } ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad\", \"Oké\", \"Mégse\"); } } return 1;}stock Nev(playerid){ new Neve[MAX_PLAYER_NAME]; GetPlayerName(playerid, Neve, sizeof(Neve)); return Neve;} Szerkeszd át úgy, ahogy kell neked. Ha a játékos nincs még regisztrálva, akkor elõhozza a regisztrációs dialogot, ha pedig már be van, akkor elõhozza a belépés dialogot. Ha ezt használod, akkor itt a megfelelõ adat betöltés: public OnPlayerConnect(playerid){ GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)){} else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1;} Elméletileg így van nálad, tehát Player mappában, a pénz a Penz sorban, szóval akkor ezt nem is kell szerkesztened. [/quote]Egyenlõre nem akarok nagyokba vágni, de azt írtad, hogy az én rendszeremnek mûködnie kéne, pedig amikor fellépek a szerverre 0 ázza a pénzt, hiába volt az elõtt nála vagy 50000... Szal valami bugos. [/quote]Az ettõl volt: dini_Set(file, \"Penz\", \"0\"); Én olyat használok, ahol a regisztrációval hozza létre, és csak betölti, tehát nem hozza létre belépéskor. Ezért nem tudhattam, hogy mindig átállítja 0-ra. Amit nem értek, hiszen elméletileg csak akkor kellene beállítani 0-ra, amikor nem létezik a fájl. if(!dini_Exists(file)) // Ha nem (! a tagadás) létezik a file, akkor csinálja ezeket. { dini_Create(file) // Létrehozza, dini_Set(file, \"Penz\", \"0\"); // átírja. } else // De ha létezik, { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); // beállítja a fájlban található Penz sor értékét a pPenz tárolóba, méghozzá az adott playernek. } Ez az elmélet, de valamiért átállítja mindig - ezek szerint. Alapból nem hibás a kód, tehát én sem értem a dolgot.
dini_Set(file, \"Penz\", \"0\");
if(!dini_Exists(file)) // Ha nem (! a tagadás) létezik a file, akkor csinálja ezeket. { dini_Create(file) // Létrehozza, dini_Set(file, \"Penz\", \"0\"); // átírja. } else // De ha létezik, { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); // beállítja a fájlban található Penz sor értékét a pPenz tárolóba, méghozzá az adott playernek. }