Szép napot!
Segítséget kérnék!
A készülő szerveremhez úgy döntöttem, hogy a gadmin adminrendszert fogom használni. Csupán az a gondom vele, hogy a pénz egyszerűen lenullázza. A pénzt sikeresen menti SQL táblázatba viszont spawnoláskor amikor spawnolok egyszerűen lenullázódik az összeg. Hozzátenném nem értek annyira az SQL-hoz. Belenéztem az OnPlayerSpawn alá is semmi gyanús ok. Viszont, hogy ha a pénz betöltést oda rakom tökéletesen működik csak ugye minden spawn után odaadja a jelenlegi mentett pénzt. Változóval és hasonlókkal meg nem akarok szórakozni. Itt egy PWN a bejelentkezéses pénzbetöltésről.
if(dialogid == DIALOG_LOGIN)
{
if(! response)
{
#if defined FORCE_REGISTER
GameTextForPlayer(playerid, \"~r~~h~~h~~h~Goodbye\", 5000, 1);
DelayKick(playerid);
#else
new string[156];
format(string, sizeof(string), \"guest%i%i_%s\", random(1000), playerid, ReturnPlayerName(playerid));
SetPlayerName(playerid, string);
gUser[playerid][u_logged] = false;
gUser[playerid][u_guest] = true;
GameTextForPlayer(playerid, \"~g~~h~~h~~h~Üdvözöllek Vendég\", 5000, 1);
#endif
}
else
{
if(strlen(inputtext) < 4 || strlen(inputtext) > 35)
{
new string[156];
format(string, sizeof(string), \"\"LIGHT_BLUE\"Ez a felhasznlónév (\"RED\"%s \"LIGHT_BLUE\") már regisztrálva van!\\nKérlek add meg a jelenlegi jelszót a továbblépéshez!\", ReturnPlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Bejelentkező felület\", string, \"Belép\", \"Kihagy\");
return SendClientMessage(playerid, COLOR_FIREBRICK, \"ERROR: Hibás jelszó! A jelszó 4 és 35 karakter közötti karatkerből áll!.\");
}
if(BUD::CheckAuth(ReturnPlayerName(playerid), inputtext))
{
new userid = BUD::GetNameUID(ReturnPlayerName(playerid));
BUD::MultiGet( userid,
\"iiiiiiiii\",
\"admin\", gUser[playerid][u_admin],
\"vip\", gUser[playerid][u_vip],
\"kills\", gUser[playerid][u_kills],
\"deaths\", gUser[playerid][u_deaths],
\"score\", gUser[playerid][u_score],
\"money\", gUser[playerid][u_money],
\"hours\", gUser[playerid][u_hours],
\"minutes\", gUser[playerid][u_minutes],
\"seconds\", gUser[playerid][u_seconds]
);
BUD::SetIntEntry(userid, \"logged\", 1);
SetPlayerScore(playerid, gUser[playerid][u_score]);
GivePlayerMoney(playerid, gUser[playerid][u_money]);
SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen bejelentkeztél!\");
PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
new string[156];
format(string, sizeof(string), \"~g~~h~~h~~h~Üdvözöllek~n~~g~~h~~h~~h~%s\", ReturnPlayerName(playerid));
GameTextForPlayer(playerid, string, 5000, 1);
gUser[playerid][u_attempts] = 0;
gUser[playerid][u_logged] = true;
}
else
{
new string[156];
SendClientMessage(playerid, COLOR_FIREBRICK, \"Hibás jelszót adtál meg..\");
#if MAX_LOGIN_ATTEMPTS > 0
gUser[playerid][u_attempts]++;
if(gUser[playerid][u_attempts] >= MAX_LOGIN_ATTEMPTS)
{
format(string, sizeof(string), \"* %s[%d] lecsatlakozott a szerverről! [Hibás bejelektezés]\", ReturnPlayerName(playerid), playerid);
SendClientMessageToAll(COLOR_RED, string);
DelayKick(playerid);
return 1;
}
format(string, sizeof(string), \"WARNING: Még %i/\"#MAX_LOGIN_ATTEMPTS\" próbálkozásod van a bejelentkezéshez!.\", gUser[playerid][u_attempts]);
SendClientMessage(playerid, COLOR_STEEL_BLUE, string);
#endif
format(string, sizeof(string), \"\"LIGHT_BLUE\"Ez a felhasznlónév (\"RED\"%s \"LIGHT_BLUE\") már regisztrálva van!\\nKérlek add meg a jelenlegi jelszót a továbblépéshez!\", ReturnPlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Bejelentkező felület\", string, \"Belép\", \"Kihagy\");
}
}
}
Hogy tudom megoldani, hogy tökéletesen működjön és ne nullázódjon a pénz bejelentkezés utánr?
Dupla hozzászólás automatikusan összefûzve. ( [time]2016. március 06. 17:26:20[/time] )
Megcsináltam azóta, a kérés tárgytalan.