Player statistic resetted
#1

hi all
i got a problem with player's statistic...
sometime the statistic is fine, but sometime it resetted....
what can i do now?
maybe somebody can help me...
u use BlueG's mysql r5

Код:
	mysql_fetch_field_row(savestr, "pWeek");  		pInfo[playerid][pWeek] = strval(savestr);
        mysql_fetch_field_row(savestr, "pDay");  		pInfo[playerid][pDay] = strval(savestr);
        mysql_fetch_field_row(savestr, "pHour");        pInfo[playerid][pHour] = strval(savestr);
        mysql_fetch_field_row(savestr, "pMin");         pInfo[playerid][pMin] = strval(savestr);
	mysql_fetch_field_row(savestr, "pSec");     	pInfo[playerid][pSec] = strval(savestr);
on mysql_log.txt

Код:
[12:03:43] >> mysql_fetch_field_row( Connection handle: 1 )
[12:03:43] CMySQLHandler::FetchField("pWeek") - 0
[12:03:43] >> mysql_fetch_field_row( Connection handle: 1 )
[12:03:43] CMySQLHandler::FetchField("pDay") - 3
[12:03:43] >> mysql_fetch_field_row( Connection handle: 1 )
[12:03:43] CMySQLHandler::FetchField("pHour") - 1
[12:03:43] >> mysql_fetch_field_row( Connection handle: 1 )
[12:03:43] CMySQLHandler::FetchField("pMin") - 48
[12:03:43] >> mysql_fetch_field_row( Connection handle: 1 )
[12:03:43] CMySQLHandler::FetchField("pSec") - 9
Reply
#2

Does the player lose all stats or just the ones you've pasted?
Reply
#3

they just loose that i've pasted
but sometime they loose the cash and score..
Reply
#4

A fairly common problem with MySQL gamemodes is that user accounts are saved over if a new account connects before the saving query fully executes.

You can prevent this from happening by avoiding the use of any variables which reset a connecting players stats until the saving query has completely finished. Alternatively, you could write one incredibly long query which sends the information immediately as the player disconnects (which would require an incredibly long string for a large player account update) or you could use SQL transactions.
Reply
#5

can you give me the example?
i know what you mean but i dont know what to do....
Reply
#6

The simplest example would be SQL transactions, as you wouldn't need to change any code apart from the saving code, the resetting stuff won't have to be done.

For this, you need to format and send all of your SQL queries at the same time and within the same function.

I won't write the code for you, but hopefully that is a good explanation.

By the way, it's possible this isn't the problem. Just a likely cause, still worth fixing regardless.
Reply
#7

if i do that, it will get a big sized string....
and it will make my server lag....
Reply
#8

Quote:
Originally Posted by AiRaLoKa
Посмотреть сообщение
if i do that, it will get a big sized string....
and it will make my server lag....
If you use transactions you don't need a big sized string. You format one string, send the query as a part of a transaction, then continue doing so until you've sent all of your information as transactions, then you finalize the transaction.

It's like opening a file, you read line by line for what you're looking for, then when you're done, you close it. Transactions basically let you queue queries and send it all at once. You can thread a response later on.

Regardless of this, "big sized string[s]" do not lag your server. They consume memory which does not cause any CPU problems or any noticable lag.
Reply
#9

got it...

thanks for your help...
+REP
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)