Szerző Téma: Új pénznemmel kapcsolatos kérés/kérdés  (Megtekintve 2083 alkalommal)

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #15 Dátum: 2012. Május 08. - 09:39:19 »
0 Show voters
Ezt építsd be a scriptbe:
 
#include <a_samp>
#include <dini>
new eMoneys[MAX_PLAYERS];
new bool:Spawned[MAX_PLAYERS];
#define eFile \"eMoney/%s.ini\"
stock LoadeMoney(playerid)
{
new file[100];
format(file,100,eFile,pName(playerid));
if(!dini_Exists(file))
{
    CreateeMoney(playerid);
}
else
{
    eMoneys[playerid] = dini_Int(file,\"eMoney\");
}
return 1;
}
stock CreateeMoney(playerid)
{
new file[100];
format(file,100,eFile,pName(playerid));
if(!dini_Exists(file))
{
       dini_Create(file);
       dini_IntSet(file,\"eMoney\",0);
}
return 1;
}
stock SaveeMoney(playerid)
{
    new file[100];
format(file,100,eFile,pName(playerid));
if(!dini_Exists(file))
{
    CreateeMoney(playerid);
}
else
{
    dini_IntSet(file,\"eMoney\",0);
}
return 1;
}
stock pName(playerid)
{
new name[24];
GetPlayerName(playerid,name,24);
return name;
}
public OnPlayerConnect(playerid)
{
Spawned[playerid] = false;
eMoneys[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid)
{
SaveeMoney(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(Spawned[playerid] == false) LoadeMoney(playerid);
return 1;
}

 
És az eMoney[playerid] változót fogod módosítani ha történik valami.

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #16 Dátum: 2012. Május 08. - 17:06:59 »
0 Show voters
Ohh, nagyon köszönöm a válaszod, tényleg kösz szépen. :) A Pluszt dobtam :)
És illetve, ezt majd hogyan használhatom föl majd a gyakorlatban, vagyis tudnál írni egy példát, ha van még erõd rám? :D Például a fölváltásnál, hogy mely sorokat írjuk fel oda(elég 1 helyre is, csak), illetve ha például egy EM-es parancs van, ott hogyan kell. Elég, csak egy példát is írnod(ha persze akarsz segíteni), mert azután már érteni fogom, hogy mi-hogy van. Ha ezt még leírnád nekem, akkor örök hálám. ;)
« Utoljára szerkesztve: 2012. Május 08. - 17:22:27 írta Harsanyi Alex »

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #17 Dátum: 2012. Május 08. - 17:32:53 »
0 Show voters
Idézetet írta: Harsanyi Alex date=1336489619\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21152\" data-ipsquote-contentclass=\"forums_Topic
Ohh, nagyon köszönöm a válaszod, tényleg kösz szépen. :) A Pluszt dobtam :)
 
Szívesen, de annyit még hozzáfûznék h nem a Plusz-ért segítek. :D
Éééés...
Az üzidben nem látok ilyet, de mikor idézni akartam ezt találtam:
 

És illetve, ezt majd hogyan használhatom föl majd a gyakorlatban, vagyis tudnál írni egy példát, ha van még erõd rám? :D Például a fölváltásnál, hogy mely sorokat írjuk fel oda(elég 1 helyre is, csak), illetve ha például egy EM-es parancs van, ott hogyan kell. Elég, csak egy példát is írnod(ha persze akarsz segíteni), mert azután már érteni fogom, hogy mi-hogy van. Ha ezt még leírnád nekem, akkor örök hálám. ;)
 
[/quote]
Ezt nem teljesen értem...
Ha menteni akarod az eMoney-t akkor:
 
SaveeMoney(playerid);

 
Ha betölteni:
 
LoadeMoney(playerid);

 
És ha le akarod kérdezni hogy mennyi eMoney van jelenleg a játékosnál, pl:
 
new str_[64];
format(str_,64,\"Jelenleg %d Emoney-ed van.\",eMoneys[playerid]);
SendClientMessage(playerid,0xFFFF00FF,str_);

 
Textdrawnál is az eMoneys[playerid] dolgozz:
OnFilterScriptInit vagy OnGameModeInit alá írd ezt:
 
SetTimer(\"UpdateEmoney\",1000,1);

 
És:
 
forward UpdateEmoney();
public UpdateEmoney()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
new string[128];
format(string, sizeof(string), \"EMoney: %d EM\", eMoneys);
TextDrawSetString(Ft, string);
}
return 1;
}

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #18 Dátum: 2012. Május 08. - 17:36:24 »
0 Show voters
Ja, lehet hogy értem, hát megpróbálom evvel megcsinálni, amit szeretnék, ha valami problémám akad, akkor leírom ide, esetleg szerkesztem a hozzászólást.
Nos, nagyon köszönöm az eddigi segítségedet, sokat segítettél nekem, köszönöm szépen. :)
Egyébként a CreateeMoney nem mûködik, nem készíti el a fájlt, és nem ment semmit, minden belépésnél 0-ról kezd a player.
 

stock CreateeMoney(playerid)
{
new file[100];
format(file,100,eFile,pName(playerid));
if(!dini_Exists(file))
{
                 dini_Create(file);
                 dini_IntSet(file,\"eMoney\",0);
}
return 1;
}
« Utoljára szerkesztve: 2012. Május 08. - 18:28:06 írta Harsanyi Alex »

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #19 Dátum: 2012. Május 08. - 22:12:01 »
0 Show voters
Menteni SaveeMoney -el kell, betölteni pedig LoadeMoney -el.

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #20 Dátum: 2012. Május 08. - 22:32:48 »
0 Show voters
Na szóval, megtaláltam az egyik hibát, ami az egyik hiba volt, azt javítottam. Nos a következõ nagyobb hiba, amit észrevettem. Úgy van jelenleg, hogy ha egy X játékos megvesz 9EM-et, aztán kilép, mindent rendesen elment, aztán ha visszajön az X ember, akkor abból az állásból folytathatja, de itt jön egy nagyobb hiba, amit a tesztelés folyamán észrevettem, és az az, hogyha felmegyek egy teljesen más névvel(ami után regisztrálnom kell), akkor az az Y játékos, az X játékos által összegyûjtött EM-rõl indul, tehát ha az X játékos vett 9 EM-et, akkor az Y játékos ha belép, akkor nem az Õ összege jelenik meg, hanem az X játékosé.
Illetve a Scriptfiles mappába nem készíti el a fájlt, csak elmenti.
« Utoljára szerkesztve: 2012. Május 08. - 23:05:47 írta Harsanyi Alex »

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #21 Dátum: 2012. Május 09. - 11:41:54 »
0 Show voters
OnPlayerDisconnect:
 
SaveeMoney(playerid);
eMoneys[playerid] = 0;

 
OnPlayerConnect:
 
eMoneys[playerid] = 0;
LoadeMoney(playerid);

 
Így elvileg jó kell h legyen..

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #22 Dátum: 2012. Május 09. - 14:21:20 »
0 Show voters
Igen mûködne ez tökéletesen, DE még mindig nem hoz létre fájlt a felhasználó nevével, a Scriptfiles mappába, így semmit nem ment, és semmit nem tud betölteni, csak addig jó, amíg ki nem lépünk, aztán ha újra belépünk, akkor a 0 EM-mel kezdünk. Õszintén szólva, én sem tudom mi lehet itt a baj, elméletben mindennek tökéletesen kellene mûködnie, és fájlt is létre kéne hoznia.
Szerk1.: Nos, csak abban az esetben hoz létre fájlt, ha kitörlök valamit:
 
#define eFile \"eMoney/%s.ini\"

 --> Ezt írtad
 
#define eFile \"%s.ini\"

 --> És, csak ebben a formában hoz létre fájlt, viszont ekkor, csak létrehozza, és nem ment el semmit, pedig ezenkívül minden úgy van, ahogy leírtad nekem.
« Utoljára szerkesztve: 2012. Május 09. - 15:07:58 írta Harsanyi Alex »

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #23 Dátum: 2012. Május 09. - 19:01:36 »
0 Show voters
A scriptfiles mappába rakj egy eMoney mappát.

Új pénznemmel kapcsolatos kérés/kérdés
« Válasz #24 Dátum: 2012. Május 10. - 17:42:32 »
0 Show voters
Na igen, ezt én elnéztem, tényleg létre kellet volna hozni egy fájlt, de most nem ezen volt az igazi hangsúly, hanem az a gond, hogy még mindig nem menti el a pénzt a fájlba, egyszerûen egész végig a(z) 0 szerepel, és nem változik(csak, ha Én írom át).
Õszintén szólva, nem tudom mi lehet ennek a hibának a forrása, ha még nem unod, és ha akarsz segíteni, akkor átküldeném neked, script formájában, és Te talán jobban észre tudnád venni a hibát, mint Én, persze ezt nem kérem, csak ha van még erõd rám, nagyon megköszönném. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal