-
Hali!
Nem rég letöltöttem egy MySQL Regisztráció/Bejelentkezõ szkriptet,abban az alap benne volt (név,jelszó),ezt le is menti sikeresen viszont a pénzt és pontot már nem menti le.
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ezt írja a MySQL_LOG Fájl:
[12:54:32] CMySQLHandler::CMySQLHandler() - Connecting to \"localhost\" | DB: \"projectrp\" | Username: \"root\"
[12:54:32] CMySQLHandler::Connect() - Connection was successful.
[12:54:32] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[12:54:51] >> mysql_query_callback( Connection handle: 1 )
[12:54:51] Passing query SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\' | ii
[12:54:51] ProcessQueryThread(OnUserCheck) - Query was successful. (SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\')
[12:54:51] ProcessQueryThread(OnUserCheck) - Data caching enabled.
[12:54:51] CMySQLHandler::StoreResult() - Result was stored.
[12:54:51] CMySQLHandler::FreeResult() - Result was successfully free\'d.
[12:54:51] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
[12:54:51] OnUserCheck(ii) - Threaded function called.
[12:54:51] >> cache_get_data( Connection handle: 1 )
[12:54:51] ProcessTick() - The cache has been cleared.
[12:54:53] >> mysql_real_escape_string( Connection handle: 1 )
[12:54:53] CMySQLHandler::EscapeString(raptor); - Escaped 6 characters to raptor.
[12:54:53] >> mysql_query_callback( Connection handle: 1 )
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[12:54:53] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
Amikor a játékos csatlakozik
public OnUserCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)
{
//Regisztráció
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
else
{
//Bejelentkezés
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}
public OnPlayerConnect(playerid)
{
//Bejelentkez/Regisztráció
new name[MAX_PLAYER_NAME],query[1024];
GetPlayerName(playerid,name,sizeof(name));
format(query, sizeof(query), \"SELECT * FROM `user` WHERE `username` = \'%s\'\", GetName(playerid));
mysql_function_query(dbhandle, query, true, \"OnUserCheck\", \"ii\", playerid);
return 1;
}
Adatmentés:
savePlayer(playerid)
{
if(sInfo[playerid][loggedin]==0) return 1;
//Pénz,szint mentés
new query[1024];
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
mysql_function_query(dbhandle,query,false,\"\",\"\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
return 1;
}
Bejelentkezés:
public OnPasswordResponse(playerid) //Bejelentkezés
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//Jó jelszó
mysql_free_result(dbhandle);
sInfo[playerid][loggedin] = 1;
cache_get_field_content(1,\"id\",sInfo[playerid][id],dbhandle);
cache_get_field_content(4,\"level\",sInfo[playerid][level],dbhandle);
cache_get_field_content(5,\"money\",sInfo[playerid][penz],dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
//Rossz jelszó
SendClientMessage(playerid,COLOR_RED,\"Rossz jelszó!\");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}
Aki segít annak megy a + mert fontos lenne,nagyon,elõre is köszönöm szépen.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
-
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.
-
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.
Hali!
Na szóval,itt a regisztráció:
if(dialogid == DIALOG_REGISTER) //Regisztráció
{
if(response)
{
new name[MAX_PLAYER_NAME],query[1024],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Regisztráció
mysql_real_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),\"INSERT INTO user (username,password) VALUES (\'%s\',(\'%s\')) \",name,passwort);
//Beállítjuk az adatokat
sInfo[playerid][penz] = 30000;
sInfo[playerid][level] = 1;
sInfo[playerid][ruha] = 26;
SetPlayerScore(playerid, 1);
SetPlayerSkin(playerid,26);
mysql_function_query(dbhandle,query,false,\"\",\"\");
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Regisztráltál!\");
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
//Ha kevesebb mint 4 karakter
SendClientMessage(playerid,COLOR_RED,\"A Jelszónak minimum 4 karakternek kell lenni!\");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
}
else
{
Kick(playerid);
}
return 1;
}
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
-
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.[/quote]
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[/quote]
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.
[mod]Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.[/mod]
-
Igen Dfoglalo. Sikeresen lefutott a query, ami belerakta a felhasználónevet. Csak arra azt hittem, hogy a pontot is insertelni kell. Nem értek én ehhez.
-
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[/quote]
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.
Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.
[/quote]
Köszi a választ!
savePlayer callback alatt formátozom a query -t és frissítem (UPDATE-olom) benne az adatokat,de ahogy mondod hogy mindig kell frissíteni,tehát OnPlayerUpdate -nél is frissítsem ? Most nem értem kicsit amit írtál.
-
NEHOGY betedd OnPlayerUpdate alá!
Az 1mp -ben lefut vagy 60x ha nem többször.. NE csináld..
format(query,sizeof(query),\"INSERT INTO user (username,password,penz,szint) VALUES (\'%s\',(\'%s\'),\'%d\',\'%d\') \",name,passwort,penz,szint);[/quote]
Ebbe beleírtam az username,password mögé a pénz,szint -et, ezeket a sorokat hozd létre a PhPMyAdmin -ba!
penz az varchar 11 legyen, a szint pedig varchar 10 kb.
a \"penz\" és \"szint\" változót defináld te magad, azt már csak meg tudod csinálni:)
( NEM LEHET CODE TAGET TENNI, NEM LEHET BETÛT FORMÁZNI, NEKEM NEM JELENTEK MEG A FUNKCIÓK! )
Szerkesztésbe sikerült kitenni a CODE taget és formázni a szöveget amit bele írtam!
Energetic
-
Egy szóval sem mondtam ilyet, hogy OnPlayerUpdate alá tedd...
Amit pedig te írtál, Energetic1, már egyszer el lett magyarázva. Ha ott nem ad meg értéket, nem baj, mert 0 bekerülni értéknek. Annyira meg csak nem hülye, hogy ne hozott volna létre nekik mezõket...
A mentésrõl - ahol a hiba lehet - pedig még mindig nem adott forráskódot a kedves témanyitó.
-
Egy szóval sem mondtam ilyet, hogy OnPlayerUpdate alá tedd...
Amit pedig te írtál, Energetic1, már egyszer el lett magyarázva. Ha ott nem ad meg értéket, nem baj, mert 0 bekerülni értéknek. Annyira meg csak nem hülye, hogy ne hozott volna létre nekik mezõket...
A mentésrõl - ahol a hiba lehet - pedig még mindig nem adott forráskódot a kedves témanyitó.
Nem tudhatod, az ember mindenre képes . :D
Igen, tudom hogy nem mondtátok neki hogy rakja OnPlayerUpdate alá, csak õ kérdezte:)
Azért próbáltam az elõzõ válaszomat megcsinálni érthetõre, mert ahogy láttam az elõzõket nem nagyon értette.
Bocs az offért.
Energetic
-
Hali!
Nem rég letöltöttem egy MySQL Regisztráció/Bejelentkezõ szkriptet,abban az alap benne volt (név,jelszó),ezt le is menti sikeresen viszont a pénzt és pontot már nem menti le.
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ezt írja a MySQL_LOG Fájl:
[12:54:32] CMySQLHandler::CMySQLHandler() - Connecting to \"localhost\" | DB: \"projectrp\" | Username: \"root\"
[12:54:32] CMySQLHandler::Connect() - Connection was successful.
[12:54:32] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[12:54:51] >> mysql_query_callback( Connection handle: 1 )
[12:54:51] Passing query SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\' | ii
[12:54:51] ProcessQueryThread(OnUserCheck) - Query was successful. (SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\')
[12:54:51] ProcessQueryThread(OnUserCheck) - Data caching enabled.
[12:54:51] CMySQLHandler::StoreResult() - Result was stored.
[12:54:51] CMySQLHandler::FreeResult() - Result was successfully free\'d.
[12:54:51] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
[12:54:51] OnUserCheck(ii) - Threaded function called.
[12:54:51] >> cache_get_data( Connection handle: 1 )
[12:54:51] ProcessTick() - The cache has been cleared.
[12:54:53] >> mysql_real_escape_string( Connection handle: 1 )
[12:54:53] CMySQLHandler::EscapeString(raptor); - Escaped 6 characters to raptor.
[12:54:53] >> mysql_query_callback( Connection handle: 1 )
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[12:54:53] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
Amikor a játékos csatlakozik
public OnUserCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)
{
//Regisztráció
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
else
{
//Bejelentkezés
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}
public OnPlayerConnect(playerid)
{
//Bejelentkez/Regisztráció
new name[MAX_PLAYER_NAME],query[1024];
GetPlayerName(playerid,name,sizeof(name));
format(query, sizeof(query), \"SELECT * FROM `user` WHERE `username` = \'%s\'\", GetName(playerid));
mysql_function_query(dbhandle, query, true, \"OnUserCheck\", \"ii\", playerid);
return 1;
}
Adatmentés:
savePlayer(playerid)
{
if(sInfo[playerid][loggedin]==0) return 1;
//Pénz,szint mentés
new query[1024];
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
mysql_function_query(dbhandle,query,false,\"\",\"\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
return 1;
}
Bejelentkezés:
public OnPasswordResponse(playerid) //Bejelentkezés
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//Jó jelszó
mysql_free_result(dbhandle);
sInfo[playerid][loggedin] = 1;
cache_get_field_content(1,\"id\",sInfo[playerid][id],dbhandle);
cache_get_field_content(4,\"level\",sInfo[playerid][level],dbhandle);
cache_get_field_content(5,\"money\",sInfo[playerid][penz],dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
//Rossz jelszó
SendClientMessage(playerid,COLOR_RED,\"Rossz jelszó!\");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}
Aki segít annak megy a + mert fontos lenne,nagyon,elõre is köszönöm szépen.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
-
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.
-
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.
Hali!
Na szóval,itt a regisztráció:
if(dialogid == DIALOG_REGISTER) //Regisztráció
{
if(response)
{
new name[MAX_PLAYER_NAME],query[1024],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Regisztráció
mysql_real_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),\"INSERT INTO user (username,password) VALUES (\'%s\',(\'%s\')) \",name,passwort);
//Beállítjuk az adatokat
sInfo[playerid][penz] = 30000;
sInfo[playerid][level] = 1;
sInfo[playerid][ruha] = 26;
SetPlayerScore(playerid, 1);
SetPlayerSkin(playerid,26);
mysql_function_query(dbhandle,query,false,\"\",\"\");
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Regisztráltál!\");
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
//Ha kevesebb mint 4 karakter
SendClientMessage(playerid,COLOR_RED,\"A Jelszónak minimum 4 karakternek kell lenni!\");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
}
else
{
Kick(playerid);
}
return 1;
}
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
-
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.[/quote]
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[/quote]
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.
[mod]Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.[/mod]
-
Igen Dfoglalo. Sikeresen lefutott a query, ami belerakta a felhasználónevet. Csak arra azt hittem, hogy a pontot is insertelni kell. Nem értek én ehhez.
-
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[/quote]
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.
Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.
[/quote]
Köszi a választ!
savePlayer callback alatt formátozom a query -t és frissítem (UPDATE-olom) benne az adatokat,de ahogy mondod hogy mindig kell frissíteni,tehát OnPlayerUpdate -nél is frissítsem ? Most nem értem kicsit amit írtál.
-
NEHOGY betedd OnPlayerUpdate alá!
Az 1mp -ben lefut vagy 60x ha nem többször.. NE csináld..
format(query,sizeof(query),\"INSERT INTO user (username,password,penz,szint) VALUES (\'%s\',(\'%s\'),\'%d\',\'%d\') \",name,passwort,penz,szint);[/quote]
Ebbe beleírtam az username,password mögé a pénz,szint -et, ezeket a sorokat hozd létre a PhPMyAdmin -ba!
penz az varchar 11 legyen, a szint pedig varchar 10 kb.
a \"penz\" és \"szint\" változót defináld te magad, azt már csak meg tudod csinálni:)
( NEM LEHET CODE TAGET TENNI, NEM LEHET BETÛT FORMÁZNI, NEKEM NEM JELENTEK MEG A FUNKCIÓK! )
Szerkesztésbe sikerült kitenni a CODE taget és formázni a szöveget amit bele írtam!
Energetic
-
Egy szóval sem mondtam ilyet, hogy OnPlayerUpdate alá tedd...
Amit pedig te írtál, Energetic1, már egyszer el lett magyarázva. Ha ott nem ad meg értéket, nem baj, mert 0 bekerülni értéknek. Annyira meg csak nem hülye, hogy ne hozott volna létre nekik mezõket...
A mentésrõl - ahol a hiba lehet - pedig még mindig nem adott forráskódot a kedves témanyitó.
-
Egy szóval sem mondtam ilyet, hogy OnPlayerUpdate alá tedd...
Amit pedig te írtál, Energetic1, már egyszer el lett magyarázva. Ha ott nem ad meg értéket, nem baj, mert 0 bekerülni értéknek. Annyira meg csak nem hülye, hogy ne hozott volna létre nekik mezõket...
A mentésrõl - ahol a hiba lehet - pedig még mindig nem adott forráskódot a kedves témanyitó.
Nem tudhatod, az ember mindenre képes . :D
Igen, tudom hogy nem mondtátok neki hogy rakja OnPlayerUpdate alá, csak õ kérdezte:)
Azért próbáltam az elõzõ válaszomat megcsinálni érthetõre, mert ahogy láttam az elõzõket nem nagyon értette.
Bocs az offért.
Energetic