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]);
}
Helló! Van egykis gond az eggyik kis rendszeremmel... Nem menti a pénzt hiába minden jól van.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.
Pénz
Ö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];
Ö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. :)
Ö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!
Ö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.