MySQL Saving and Variables -
NeroX98 - 13.09.2013
Hi scripterzzz !
I have mysql system so i want to make the player stats to save every 5 minutes... The timer isn't problem, but the problem is that i have 150 variables for each player... Can someone show me 2-3 lines code how to start making the save system and will the server be ok ?
Respuesta: MySQL Saving and Variables -
PabloDiCostanzo - 13.09.2013
Put the enums, I have in this way:
pawn Код:
enum pInfo
{
pMoney,
pScore,
pKills,
pDeaths,
pAdmin,
Float:pos_x,
Float:pos_y,
Float:pos_z
};
new PlayerInfo[MAX_PLAYERS][pInfo];
After that, you need to connect with your mySQL database.
pawn Код:
forward ConnectMySQL();
public ConnectMySQL()
{
TuberiasMySQL = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
if(mysql_ping() == 1)
{
printf("[MYSQL]: Connection to `%s` succesful!", SQL_DB);
}
else
{
printf("[ERROR]: Connection to `%s` failed!", SQL_DB);
SendRconCommand("exit");
}
return 1;
}
pawn Код:
public OnGameModeInit()
{
ConnectMySQL();
}
In my script helped me
JustBored and he make me a static like this:
If the problem is not the timer, so here is the way to save the account:
pawn Код:
GuardarCuenta(playerid)
{
new str[200],Float:x,Float:y,Float:z, pName[32]; GetPlayerPos(playerid,x,y,z); GetPlayerName(playerid, pName, 24);
format(str, sizeof(str), "UPDATE users SET X='%f',Y='%f',Z='%f',Dinero='%d',Puntuacion='%d',Asesinatos='%d',Deaths='%d',Admin='%d' WHERE username='%s'",
x,y,z,PlayerInfo[playerid][pMoney],PlayerInfo[playerid][pScore], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAdmin],pName);
mysql_function_query(TuberiasMySQL, str, false, "OnQueryFinish", "i", playerid);
}
Regards,
Pablo.
Re: MySQL Saving and Variables -
NeroX98 - 13.09.2013
Yea i know that stuff... I was asking what will happen if i have 150 variables and i save them with mysql like this...
pawn Код:
new
query[1024],
query1[560],
ime[MAX_PLAYER_NAME];
GetPlayerName(playerid, ime, sizeof(ime));
format(query, sizeof(query), "UPDATE Igraci SET pKey = '%s', pLevel = '%d', pAdmin = '%d', pDonateRank = '%d', pConnectTime = '%d', pReg = '%d', pSex = '%d', pAge = '%d', pOrigin = '%d', pExp = '%d', pCash = '%d', pAccount = '%d', pPhoneBook = '%d', pLottoNr = '%d', pFishes = '%d', pBiggestFish = '%d', pJob = '%d', pPayCheck = '%d', pHeadValue = '%d', pJailed = '%d'",
PlayerInfo[playerid][pKey],
PlayerInfo[playerid][pLevel],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pDonateRank],
PlayerInfo[playerid][pConnectTime],
PlayerInfo[playerid][pReg],
PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pAge],
PlayerInfo[playerid][pOrigin],
PlayerInfo[playerid][pExp],
PlayerInfo[playerid][pCash],
PlayerInfo[playerid][pAccount],
PlayerInfo[playerid][pPhoneBook],
PlayerInfo[playerid][pLottoNr],
PlayerInfo[playerid][pFishes],
PlayerInfo[playerid][pBiggestFish],
PlayerInfo[playerid][pJob],
PlayerInfo[playerid][pPayCheck],
PlayerInfo[playerid][pHeadValue],
PlayerInfo[playerid][pJailed]);
format(query, sizeof(query), "%s, pJailTime = '%d', pCekaBolnica = '%d', pBolnicaTime = '%d', pMats = '%d', pPreMats = '%d', pPreMatsTimer = '%d', pPreMatsPre = '%d', pPreMatsVlozeno = '%d', pDrugs = '%d', pPreDroga = '%d', pPreDrogaTimer = '%d', pPreDrogaPre = '%d', pPreDrogaVlozeno = '%d', pLeader = '%d', pMember = '%d', pRank = '%d', pChar = '%d', pContractTime = '%d', pTBaterija = '%d', pSexSkill = '%d'",
query,
PlayerInfo[playerid][pJailTime],
PlayerInfo[playerid][pCekaBolnica],
PlayerInfo[playerid][pBolnicaTime],
PlayerInfo[playerid][pMats],
PlayerInfo[playerid][pPreMats],
PlayerInfo[playerid][pPreMatsTimer],
PlayerInfo[playerid][pPreMatsPre],
PlayerInfo[playerid][pPreMatsVlozeno],
PlayerInfo[playerid][pDrugs],
PlayerInfo[playerid][pPreDroga],
PlayerInfo[playerid][pPreDrogaTimer],
PlayerInfo[playerid][pPreDrogaPre],
PlayerInfo[playerid][pPreDrogaVlozeno],
PlayerInfo[playerid][pLeader],
PlayerInfo[playerid][pMember],
PlayerInfo[playerid][pRank],
PlayerInfo[playerid][pChar],
PlayerInfo[playerid][pContractTime],
PlayerInfo[playerid][pTBaterija],
PlayerInfo[playerid][pSexSkill]);
format(query, sizeof(query), "%s, pSakaMob = '%d', pMechSkill = '%d', pJackSkill = '%d', pCarSkill = '%d', pNewsSkill = '%d', pDrugsSkill = '%d', pCookSkill = '%d', pFishSkill = '%d' WHERE pProfil = '%s'",
query,
PlayerInfo[playerid][pSakaMob],
PlayerInfo[playerid][pMechSkill],
PlayerInfo[playerid][pJackSkill],
PlayerInfo[playerid][pCarSkill],
PlayerInfo[playerid][pNewsSkill],
PlayerInfo[playerid][pDrugsSkill],
PlayerInfo[playerid][pCookSkill],
PlayerInfo[playerid][pFishSkill],
ime);
mysql_function_query(1, query, false, "", "");
//I HAVE MORE, IM MAKING THEM RIGHT NOW...
Re: MySQL Saving and Variables -
devil shill - 13.09.2013
You mean something like
Код:
format(string, sizeof(string), "UPDATE players SET `Cash`=%d,`Account`=%d,`AdminLevel`=%d,`Level`=%d,`Respect`=%d,`UpgradePoints`=%d,`Kills`=%d,`Gun1`=%d,`Gun2`=%d,`Gun3`=%d,`Gun4`=%d,`Gun5`=%d,`Gun6`=%d,`Ammo1`=%d,`Ammo2`=%d,`Ammo3`=%d,`Ammo4`=%d,`Ammo5`=%d,`Ammo6`=%d,`pSHealth`=%f,`Health`=%f,`Pos_x`=%f,`Pos_y`=%f,`Pos_z`=%f,`Int`=%d,`Local`=%d,`Team`=%d,`Char`=%d,`PhoneNr`=%d,`pHouseKey`=%d,`Bizz`=%d WHERE `Name` = '%s'",
PlayerInfo[playerid][pCash],
PlayerInfo[playerid][pAccount],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pLevel],
PlayerInfo[playerid][pExp],
PlayerInfo[playerid][gPupgrade],
PlayerInfo[playerid][pKills],
PlayerInfo[playerid][pGun1],
PlayerInfo[playerid][pGun2],
PlayerInfo[playerid][pGun3],
PlayerInfo[playerid][pGun4],
PlayerInfo[playerid][pGun5],
PlayerInfo[playerid][pGun6],
PlayerInfo[playerid][pAmmo1],
PlayerInfo[playerid][pAmmo2],
PlayerInfo[playerid][pAmmo3],
PlayerInfo[playerid][pAmmo4],
PlayerInfo[playerid][pAmmo5],
PlayerInfo[playerid][pAmmo6],
PlayerInfo[playerid][pSHealth],
PlayerInfo[playerid][pHealth],
PlayerInfo[playerid][pPos_x],
PlayerInfo[playerid][pPos_y],
PlayerInfo[playerid][pPos_z],
PlayerInfo[playerid][pInt],
PlayerInfo[playerid][pLocal],
PlayerInfo[playerid][pTeam],
PlayerInfo[playerid][pModel],
PlayerInfo[playerid][pPnumber],
PlayerInfo[playerid][pHousekey],
PlayerInfo[playerid][pPbiskey],
PlayerName(playerid));
mysql_query_ex(string);
Just make a public with it like OnPlayerUpdate(playerid) eith those variables in it and set the time to the public