GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Winklevows le 08 Février 2011, 21:48:45

Titre: Sauvegarde des stats joueurs en cas de gmx
Posté par: Winklevows le 08 Février 2011, 21:48:45
Bonjour,
Je souhaiterais sauvegardé les stats des joueurs si le serveur redémarre, lorsqu'un joueur ce déconnecte sa fonctionne :
<?php
public OnPlayerDisconnect(playeridreason)
{
    new 
msg[90];
new name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
format(msgsizeof(msg), "\2;%s(%d) a quitté le serveur (%s)\2;"name,playerid,aDisconnectNames[reason]);
IRC_GroupSay(gGroupIDIRC_CHANNELmsg);

    
zoneupdates[playerid] = 0;
player_zone[playerid] = -1;
Banning[playerid] = 0;
Kicking[playerid] = 0;
PlayerAdminLevel[playerid] =0;
HasDrugHouseKeys[playerid] =0;
    if (
PLAYERLIST_authed[playerid]) 
{
dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
dUserSetINT(PlayerName(playerid)).("score",GetPlayerScore(playerid));
dUserSetINT(PlayerName(playerid)).("robrank",robberrank[playerid]);
dUserSetINT(PlayerName(playerid)).("teamkills",teamkiller[playerid]);
dUserSetINT(PlayerName(playerid)).("innocentkills",innocentkiller[playerid]);
dUserSetINT(PlayerName(playerid)).("lowwantedkills",lowwantedkiller[playerid]);
dUserSetINT(PlayerName(playerid)).("cashinsured",BankRobInsurance[playerid]);
dUserSetINT(PlayerName(playerid)).("setjail",Setjail[playerid]);
dUserSetINT(PlayerName(playerid)).("RegularPlayer",RegularPlayer[playerid]);
dUserSetINT(PlayerName(playerid)).("InTeam",InTeam[playerid]);
dUserSetINT(PlayerName(playerid)).("Jailed",Jailed[playerid]);
dUserSetINT(PlayerName(playerid)).("jailtime",JailTime[playerid]);
dUserSetINT(PlayerName(playerid)).("NiveauRecherche",GetPlayerWantedLevel(playerid));
dUserSetINT(PlayerName(playerid)).("HasDrugHouseKeys",HasDrugHouseKeys[playerid]);
}
  
PLAYERLIST_authed[playerid]=false;

    new 
ConnectName[24], str[60];
GetPlayerName(playeridConnectName24);
    switch (
reason
{
        case 
0format(str55"%s a quitté le serveur! (Bug)"ConnectName);
case 1format(str60"%s a quitté le serveur! (Déconnexion)"ConnectName);
case 2format(str55"%s a quitté le serveur! (Kické)"ConnectName);
    }
    
SendClientMessageToAll(0x808080AAstr);
    return 
1;
}
?>


Lorsque le serveur reboot j'ai fait sa :
<?php
public OnGameModeExit()
{
GameTextForAll(conversiontext("VEUILLEZ PATIENTER"), 20000,4);
SendClientMessageToAll(COLOR_SYSTEM,"Le serveur est en train de redémarrer...");
IRC_Quit(gBotID[0], "Déconnexion");
IRC_Quit(gBotID[1], "Déconnexion");
IRC_DestroyGroup(gGroupID);
for(new i=0MAX_PLAYERSi++)
    {
        if (
IsPlayerConnected(i))
        {
if(udb_Exists(PlayerName(i)) && PLAYERLIST_authed[i])
{
dUserSetINT(PlayerName(i)).("money",GetPlayerMoney(i));
dUserSetINT(PlayerName(i)).("score",GetPlayerScore(i));
dUserSetINT(PlayerName(i)).("robrank",robberrank[i]);
dUserSetINT(PlayerName(i)).("teamkills",teamkiller[i]);
dUserSetINT(PlayerName(i)).("innocentkills",innocentkiller[i]);
dUserSetINT(PlayerName(i)).("lowwantedkills",lowwantedkiller[i]);
dUserSetINT(PlayerName(i)).("cashinsured",BankRobInsurance[i]);
dUserSetINT(PlayerName(i)).("setjail",Setjail[i]);
dUserSetINT(PlayerName(i)).("RegularPlayer",RegularPlayer[i]);
dUserSetINT(PlayerName(i)).("InTeam",InTeam[i]);
dUserSetINT(PlayerName(i)).("Jailed",Jailed[i]);
dUserSetINT(PlayerName(i)).("jailtime",JailTime[i]);
dUserSetINT(PlayerName(i)).("NiveauRecherche",GetPlayerWantedLevel(i));
dUserSetINT(PlayerName(i)).("HasDrugHouseKeys",HasDrugHouseKeys[i]);
}
  PLAYERLIST_authed[i]=false;
}
}
return 1;
}

Mais les infos ne sont pas sauvé, vous voyez ce que ne va pas ?
Titre: Re : Sauvegarde des stats joueurs en cas de gmx
Posté par: cristab le 08 Février 2011, 21:57:07
avec la commande gmx la callback n'est pas appeler au mieux dans ta commande du fait une boucle pour tout save et ensuite de reboot
Titre: Re : Sauvegarde des stats joueurs en cas de gmx
Posté par: Winklevows le 09 Février 2011, 14:11:09
Ah oui effectivement je n'y avais pas pensé, merci  :)