Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4106 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, vėl susidūriau su krovimo problema... Serverio nebecrashina, nes perrašiau kodą, bet nekrauna žaidėjo informacijos, o loge rašo, jog žaidėjas pakrautas.


 


Kodas:



stock KrautiZaideja(playerid)
{
new Str[128], xp, pinigai, skin, x, y, z, query[128];

format(query, sizeof(query), "SELECT * FROM `zaidejai` WHERE `vardas` = '%s'", GetPlayerNameEx(playerid));
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
while(mysql_fetch_row(Str))
{
sscanf(Str, "iiifff", xp, pinigai, skin, x, y, z);

SetPlayerScore(playerid, xp);
SetPlayerMoney(playerid, pinigai);
SetPlayerSkin(playerid, skin);
SetPlayerPos(playerid, x, y, z);
}
}
mysql_free_result();
printf("[gRPG.pwn]: Pakrautas žaidėjas %s!", GetPlayerNameEx(playerid));
return 1;
}

Tuomet serveris susicrashina, nes R5, R6 buginasi field_row..

 

http://i.imgur.com/FTPf9Qx.png

 

Pasirenki viską: 

"SELECT * FROM `zaidejai` WHERE `vardas` = '%s'"

Bet nori kad sscanf paimtų tik dalį to?

 sscanf(Str, "iiifff", xp, pinigai, skin, x, y, z);

Du sprendimai.

 

Pirmas būdas: pasirinkti tik tai ko nori.

SELECT xp, pinigai, skin, x, y, z FROM `zaidejai` WHERE `vardas` = '%s'

Antras būdas: pasakyti sscanf kad kiti duomenys yra, tik kad jis juos ignoruotų.

 sscanf(Str, "{is[24]s[40]}iiifff", skin, pinigai, xp, x, y, z);

* kiek pamenu naudoji senesnę sscanf versiją, nesu tikras ar joje jau yra ši galimybė.

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

(redaguota)

Pasirenki viską: 

"SELECT * FROM `zaidejai` WHERE `vardas` = '%s'"

Bet nori kad sscanf paimtų tik dalį to?

 sscanf(Str, "iiifff", xp, pinigai, skin, x, y, z);

Du sprendimai.

 

Pirmas būdas: pasirinkti tik tai ko nori.

SELECT xp, pinigai, skin, x, y, z FROM `zaidejai` WHERE `vardas` = '%s'

Antras būdas: pasakyti sscanf kad kiti duomenys yra, tik kad jis juos ignoruotų.

 sscanf(Str, "{is[24]s[40]}iiifff", skin, pinigai, xp, x, y, z);

* kiek pamenu naudoji senesnę sscanf versiją, nesu tikras ar joje jau yra ši galimybė.

Pasižiūrėsiu ar parašysiu atsakymą, jei viskas veikia, tada ačiū labai!

 

Nei vienas būdas neveikia.

Redaguota , nario HJones
(redaguota)

Reiškia kažką blogai padarei. Rodyk kaip viskas atrodo, taip pat logus. Ar man spėliot ką ne taip padarei?

Kodas:

stock KrautiZaideja(playerid)
{
        new Str[128], xp, pinigai, skin, x, y, z, query[128];

	format(query, sizeof(query), "SELECT * FROM `zaidejai` WHERE `vardas` = '%s'", GetPlayerNameEx(playerid));
    mysql_query(query);
    mysql_store_result();
    mysql_retrieve_row();
    if(mysql_num_rows() != 0)
    {
        while(mysql_fetch_row(Str))
        {
        	sscanf(Str, "{is[24]s[40]}iiifff", skin, pinigai, xp, x, y, z);

			SetPlayerScore(playerid, xp);
			SetPlayerMoney(playerid, pinigai);
			SetPlayerSkin(playerid, skin);
			SetPlayerPos(playerid, x, y, z);
		}
    }
    mysql_free_result();
    printf("[gRPG.pwn]: Pakrautas žaidėjas %s!", GetPlayerNameEx(playerid));
    return 1;
}

server_log.txt

SA-MP Dedicated Server
----------------------
v0.3z, (C)2005-2014 SA-MP Team

[17:26:15] 
[17:26:15] Server Plugins
[17:26:15] --------------
[17:26:15]  Loading plugin: mysql.so
[17:26:15] 

  > MySQL plugin R6 successfully loaded.

[17:26:15]   Loaded.
[17:26:15]  Loading plugin: sscanf.so
[17:26:15] 

[17:26:15]  ===============================

[17:26:15]       sscanf plugin loaded.     

[17:26:15]    (c) 2009 Alex "Y_Less" Cole

[17:26:15]    0.3d-R2 500 Players "dnee"

[17:26:15]  ===============================

[17:26:15]   Loaded.
[17:26:15]  Loading plugin: crashdetect.so
[17:26:15]   crashdetect v4.8.5 is OK.
[17:26:15]   Loaded.
[17:26:15]  Loaded 3 plugins.

[17:26:15] 
[17:26:15] Filterscripts
[17:26:15] ---------------
[17:26:15]   Loading filterscript 'gl_realtime.amx'...
[17:26:15]   Loaded 1 filterscripts.

[17:26:15] 

[17:26:15] ----------------------------------------
[17:26:15] [gRPG.pwn]: Serveris sėkmingai paleistas!
[17:26:15] ----------------------------------------
[17:26:15] Number of vehicle models: 0

----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3z, (C)2005-2014 SA-MP Team

[17:32:28] 
[17:32:28] Server Plugins
[17:32:28] --------------
[17:32:28]  Loading plugin: mysql.so
[17:32:28] 

  > MySQL plugin R6 successfully loaded.

[17:32:28]   Loaded.
[17:32:28]  Loading plugin: sscanf.so
[17:32:28] 

[17:32:28]  ===============================

[17:32:28]       sscanf plugin loaded.     

[17:32:28]    (c) 2009 Alex "Y_Less" Cole

[17:32:28]    0.3d-R2 500 Players "dnee"

[17:32:28]  ===============================

[17:32:28]   Loaded.
[17:32:28]  Loading plugin: crashdetect.so
[17:32:28]   crashdetect v4.8.5 is OK.
[17:32:28]   Loaded.
[17:32:28]  Loaded 3 plugins.

[17:32:29] 
[17:32:29] Filterscripts
[17:32:29] ---------------
[17:32:29]   Loading filterscript 'gl_realtime.amx'...
[17:32:29]   Loaded 1 filterscripts.

[17:32:29] 

[17:32:29] ----------------------------------------
[17:32:29] [gRPG.pwn]: Serveris sėkmingai paleistas!
[17:32:29] ----------------------------------------
[17:32:29] Number of vehicle models: 0
[17:33:53] Incoming connection: 77.79.16.135:64682
[17:33:53] [join] Harry_Jones has joined the server (0:77.79.16.135)
[17:33:58] [gRPG.pwn]: Pakrautas žaidėjas Harry_Jones!
[17:34:04] [chat] [Harry_Jones]: test
[17:34:05] [gRPG.pwn]: Išsaugotas žaidėjas Harry_Jones!
[17:34:05] [part] Harry_Jones has left the server (0:1)

debug.txt

[17:32:29]  
[17:32:29] ---------------------------
[17:32:29] MySQL Debugging activated (04/22/15)
[17:32:29] ---------------------------
[17:32:29]  
[17:32:29] >> mysql_connect( )
[17:32:29] CMySQLHandler::CMySQLHandler() - constructor called.
[17:32:29] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "grpg_serveris" | Username: "root" ...
[17:32:29] CMySQLHandler::Connect() - Connection was successful.
[17:32:29] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[17:32:29] >> mysql_ping( Connection handle: 1 )
[17:32:29] CMySQLHandler::Ping() - Connection is still alive.
[17:33:53] >> mysql_query( Connection handle: 1 )
[17:33:53] CMySQLHandler::Query(SELECT unban_laikas FROM `uzblokavimai` WHERE ip = '77.79.16.135') - Successfully executed.
[17:33:53] >> mysql_store_result( Connection handle: 1 )
[17:33:53] CMySQLHandler::StoreResult() - Result was stored.
[17:33:53] >> mysql_num_rows( Connection handle: 1 )
[17:33:53] CMySQLHandler::NumRows() - Returned 3 row(s)
[17:33:53] >> mysql_fetch_int( Connection handle: 1 )
[17:33:53] CMySQLHandler::FetchRow() - Return: 8388607
[17:33:53] >> mysql_query( Connection handle: 1 )
[17:33:53] CMySQLHandler::Query(SELECT * FROM `zaidejai` WHERE vardas = 'Harry_Jones') - Successfully executed.
[17:33:53] >> mysql_store_result( Connection handle: 1 )
[17:33:53] CMySQLHandler::StoreResult() - Result was stored.
[17:33:53] >> mysql_num_rows( Connection handle: 1 )
[17:33:53] CMySQLHandler::NumRows() - Returned 1 row(s)
[17:33:53] >> mysql_free_result( Connection handle: 1 )
[17:33:53] CMySQLHandler::FreeResult() - Result was successfully free'd.
[17:33:56] >> mysql_real_escape_string( Connection handle: 1 )
[17:33:56] CMySQLHandler::EscapeString(swx); - Escaped 11 characters to dominykas12.
[17:33:56] >> mysql_query( Connection handle: 1 )
[17:33:56] CMySQLHandler::Query(SELECT * FROM `zaidejai` WHERE vardas = 'Harry_Jones' AND slaptazodis = 'swx') - Successfully executed.
[17:33:56] >> mysql_store_result( Connection handle: 1 )
[17:33:56] CMySQLHandler::StoreResult() - Result was stored.
[17:33:56] >> mysql_num_rows( Connection handle: 1 )
[17:33:56] CMySQLHandler::NumRows() - Returned 1 row(s)
[17:33:58] >> mysql_query( Connection handle: 1 )
[17:33:58] CMySQLHandler::Query(SELECT * FROM `zaidejai` WHERE `vardas` = 'Harry_Jones') - Successfully executed.
[17:33:58] >> mysql_store_result( Connection handle: 1 )
[17:33:58] CMySQLHandler::StoreResult() - Result was stored.
[17:33:58] >> mysql_retrieve_row( Connection handle: 1 )
[17:33:58] >> mysql_num_rows( Connection handle: 1 )
[17:33:58] CMySQLHandler::NumRows() - Returned 1 row(s)
[17:33:58] >> mysql_fetch_row_format( Connection handle: 1 )
[17:33:58] >> mysql_free_result( Connection handle: 1 )
[17:33:58] CMySQLHandler::FreeResult() - Result was successfully free'd.
[17:34:05] >> mysql_query( Connection handle: 1 )
[17:34:05] CMySQLHandler::Query(UPDATE `zaidejai` SET x = '131.975173', y = '-67.270370', z = '1.578125' WHERE vardas = 'Harry_Jones') - Successfully executed.

Redaguota , nario HJones
stock KrautiZaideja(playerid)
{
        new Str[128], xp, pinigai, skin, x, y, z, query[128];

	format(query, sizeof(query), "SELECT * FROM `zaidejai` WHERE `vardas` = '%s'", GetPlayerNameEx(playerid));
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row_format(Str, "|"))
    {
        sscanf(Str, "{is[24]s[40]}iiifff", skin, pinigai, xp, x, y, z);

	SetPlayerScore(playerid, xp);
	SetPlayerMoney(playerid, pinigai);
	SetPlayerSkin(playerid, skin);
	SetPlayerPos(playerid, x, y, z);
		
    }
    mysql_free_result();
    printf("[gRPG.pwn]: Pakrautas žaidėjas %s!", GetPlayerNameEx(playerid));
    return 1;
}

Pabandyk taip.

 

Buvo mysql_retrieve_row kuris vidinį skirtuką mysql perkelia į kitą eilutę, o dėl to galėjo while niekada neįvykti.

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

stock KrautiZaideja(playerid)
{
        new Str[128], xp, pinigai, skin, x, y, z, query[128];

	format(query, sizeof(query), "SELECT * FROM `zaidejai` WHERE `vardas` = '%s'", GetPlayerNameEx(playerid));
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row_format(Str, "|"))
    {
        sscanf(Str, "{is[24]s[40]}iiifff", skin, pinigai, xp, x, y, z);

	SetPlayerScore(playerid, xp);
	SetPlayerMoney(playerid, pinigai);
	SetPlayerSkin(playerid, skin);
	SetPlayerPos(playerid, x, y, z);
		
    }
    mysql_free_result();
    printf("[gRPG.pwn]: Pakrautas žaidėjas %s!", GetPlayerNameEx(playerid));
    return 1;
}

Pabandyk taip.

 

Buvo mysql_retrieve_row kuris vidinį skirtuką mysql perkelia į kitą eilutę, o dėl to galėjo while niekada neįvykti.

 

nope..

(redaguota)

Smagu matyti kad pats rodai iniciatyva išspręsti SAVO problemą ir suteiki pakankamai informacijos kad būtų galima kažką toliau daryti.

karočia, bandžiau irgi įvairiais variantais, nesigavo. 

perrašysiu išnaujo saugojimą/krovimą, jei ką rašysiu čia.

 

EDIT:

 

persirašiau išnaujo, veikia!

Redaguota , nario HJones

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4106 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...