Jump to content
  • 0

MYSQL Save Variables on Table `players`


norton.

Question

Buna Ziua. Am un GameMode MYSQL R39, am văzut că, atunci când un jucător deconecteaza la "OnPlayerDisconnect" se acceseaza callback-ul "OnPlayerSave" care salveaza variabilele jucatorului de la "enum PlayerInfo" in baza de date SQL.
Nu este mai bine de fiecare dată când apare o noua modificare sa folosesc "MYSQL UPDATE" in acel script și sa actualizez direct?
Lucrul cu "OnPlayerSave" poate face lag, mai ales daca sunt 200 players online si serverul cade, pana se salveaza toate datele a celor 200 playeri ma gandesc ca face lag, si poate nu le actualizeaza corect pe toate.

forward OnPlayerSave(playerid);
public OnPlayerSave(playerid)
{
	new query[500];
	if(IsLoggedIn[playerid] == 1 && playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
    {
        mysql_format(MySQLCon, query, sizeof(query), "UPDATE `players` SET `Admin`=%d, `Vip`=%d, `Money`=%d, `Score`=%d, `TrustedLevel`=%d, `Reg`=%d, `Sex`=%d, `Age`=%d, `Deaths`=%d, `Kills`=%d, `X`=%f, `Y`=%f, `Z`=%f, `Interior`=%d,`VW`=0,`SkinID`=%d, `Email`='%e' WHERE `ID`=%d AND `user`='%e'",
        pInfo[playerid][pAdmin],
        pInfo[playerid][pVip],
        GetPlayerMoney(playerid),
        GetPlayerScore(playerid),
        pInfo[playerid][pTrustedLevel],
        pInfo[playerid][pReg],
        pInfo[playerid][pSex],
        pInfo[playerid]

,
        pInfo[playerid][pDeaths],
        pInfo[playerid][pKills],
        pInfo[playerid][pPos_x],
        pInfo[playerid][pPos_y],
        pInfo[playerid][pPos_z],	
        GetPlayerInterior(playerid),
		pInfo[playerid][pSkinID],
		pInfo[playerid][pEmail],
        pInfo[playerid][pID],
        GetName(playerid));
        mysql_tquery(MySQLCon, query, "", "");
        print(query);

		mysql_format(MySQLCon, query, sizeof(query), "UPDATE `players` SET `IsBanned`=%d WHERE `ID`=%d AND user='%e'", pInfo[playerid][pIsBanned], GetName(playerid));
		mysql_tquery(MySQLCon, query, "", "");
        IsLoggedIn[playerid] = 0;
	}
	return 1;
}
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Serverul nu va cadea deoarece publicul 'OnPlayerSave' este setat sa actioneze la OnPlayerDisconnect.

Un exemplu ca sa intelegi: Avem 3 jucatori pe server, unul iese, se aplica OnPlayerSave, si ii salveaza datele, apoi al doilea jucator iese si i se salveaza datele, etc.

242086.png

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.