[Ajuda] /GMX resetando stats do player
#1

Venho tendo alguns probleminhas com MyQL no samp, e o problema da vez й o seguinte:
Toda vez que dou gmx no servidor, as stats do player sгo resetadas todas para 0 sendo que deveriam ser salvas, usei esse tуpico atualizado e esta quase que identico: https://sampforum.blast.hk/showthread.php?tid=579909

Todas as callbacks, funзхes e publics que sгo usadas no codigo:
PHP код:
CMD:gmx(playerid, params[])
{
    if (
IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] == 5) // Checka se esta logado na RCON e se й admin Dono
    
{
                 
MensagemDesligou = 1;
                  new 
string[128];
                
format(string, sizeof(string), "[STAFF][%s] %s ATIVOU O GMX MANUAL!",PlayerInfo[playerid][pCargo], PlayerInfo[playerid][pNome]);
                
format(string, sizeof(string), "[STAFF] SERVIDOR IRБ REINICIAR DENTRO DE 5 SEGUNDOS!");
                
SendClientMessageToAll(COLOR_LIGHTRED, string);
                
SetTimer("TimeToGMX",5000, false);
    }
    else
    {
        
SendClientMessage(playerid,COR_VERMELHO, "|ERRO| Vocк nгo pode executar este comando!");
    }
    return 
true;
}
forward TimeToGMX(playerid);
public 
TimeToGMX(playerid)
{
    
GameModeInitExitFunc();
}
SR::GameModeInitExitFunc()
{
       foreach(
Player, i)
    {
        
InterpolateCameraPos(i, 1855.578247, -1356.315795, 106.570388, 828.892395, -1470.234985, 159.147048, 50000);
        
InterpolateCameraLookAt(i, 1860.529296, -1355.671020, 106.302513, 833.859008, -1469.715087, 158.897155, 60000);
        
SetPlayerInterior(i, 0);
        
TogglePlayerControllable(i, 0);
        
SetPlayerPos(i, 1416.6915,-1478.7733,125.3672);
    }
    
SendClientMessageToAll(COLOR_ADMIN, "==============================================================================================");
    
SendClientMessageToAll(COLOR_ADMIN, "Servidor estб sendo reiniciado e voltarб em alguns segundos! Por Favor, nгo feche o jogo ainda");
    
SendClientMessageToAll(COLOR_ADMIN, "==============================================================================================");
    
SetTimer("GameModeExitFunc", 1000, 0);
    return 
1;
}
SR::GameModeExitFunc()
{
       foreach(
Player, i)
    {
        
GameTextForPlayer(i, "~b~~h~Reiniciando ~r~~h~& ~w~~h~Salvando...", 8000, 3);
        
TogglePlayerControllable(i, 0);
    }
    for(new 
i; i < MAX_TEXT_DRAWS; i++)
    {
        
TextDrawDestroy(Text:i);
    }
    
SetTimer("ReiniciarServer", 5000, 0);
}
SR::ReiniciarServer()
{
    
GameModeExit();
}
public 
OnGameModeExit()
{
    for(new 
i = 0; i < MAX_PLAYERS; i++) SalvarDados(i); // Realizamos um loop na funзгo Funзгo SalvarDados para q salve todas as contas numa posivel queda do servidor
    
mysql_close(IDConexao); // Aqui fechamos a conexгo com o host
    
if(!MensagemDesligou)
    {
        
SendClientMessageToAll(COLOR_ADMIN,"[STAFF] {FFFFFF}Servidor desligado manualmente!");
    }
    return 
1;
}
stock SalvarDados(playerid)
    {
        
//if(PlayerInfo[playerid][pLogado] == false) return 1; // se o player nao estiver logado nгo ira salvar nada
        
PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
        new 
Query[350]; // variavel com 350 celulas para salvamento
        
mysql_format(IDConexao, Query, sizeof(Query), "UPDATE `Contas` SET `Nome`='%s',`Level`=%d,`Vitorias`=%d,`Admin`=%d,`Cargo`='%s',`Funcao`='%s',`Skin`=%d,`Matou`=%d,`Morreu`=%d,`Dinheiro`=%d,`Banido`=%d WHERE `ID`=%d",
        
PlayerInfo[playerid][pNome],
        
PlayerInfo[playerid][pLevel],
        
PlayerInfo[playerid][pVitorias],
        
PlayerInfo[playerid][pAdmin],
        
PlayerInfo[playerid][pCargo],
        
PlayerInfo[playerid][pFuncao],
        
PlayerInfo[playerid][pSkin],
        
PlayerInfo[playerid][pMatou],
        
PlayerInfo[playerid][pMorreu],
        
PlayerInfo[playerid][pDinheiro],
        
PlayerInfo[playerid][pBanido],
        
PlayerInfo[playerid][pID]);
        
// formatamos a Query referente a ID da conta (WHERE `ID`=%d) e realizaremos a consulta para atualizar os dados no banco de dados
        
mysql_tquery(IDConexao, Query, "DadosSalvos","d", playerid); // consulta, e enviamos o resultado para a callback DadosSalvos para um DEBUG
        
PlayerInfo[playerid][pLevel] = 0; // resetamos as variaveis.
        
PlayerInfo[playerid][pAdmin] = 0;
        
PlayerInfo[playerid][pCargo] = 0;
        
PlayerInfo[playerid][pFuncao] = 0;
        
PlayerInfo[playerid][pMatou] = 0;
        
PlayerInfo[playerid][pMorreu] = 0;
        
PlayerInfo[playerid][pDinheiro] = 0;
        
PlayerInfo[playerid][pVitorias] = 0;
        
PlayerInfo[playerid][pBanido] = 0;
        
PlayerInfo[playerid][pLogado] = false;
        return 
1;
    } 
Obs: usei algumas frescurinhas de servidor RPG, pro GMX ficar mais bonitinho, mais creio que isso nгo esteja influenciando em algo.
Reply


Messages In This Thread
/GMX resetando stats do player - by MtPlayerZ - 01.06.2018, 15:02
Re: /GMX resetando stats do player - by Marllun - 01.06.2018, 21:43
Re: /GMX resetando stats do player - by MtPlayerZ - 02.06.2018, 13:28
Re: /GMX resetando stats do player - by NelsonC - 02.06.2018, 13:46
Re: /GMX resetando stats do player - by MtPlayerZ - 02.06.2018, 14:06
Re: /GMX resetando stats do player - by zNaKa - 02.06.2018, 15:14
Re: /GMX resetando stats do player - by MtPlayerZ - 02.06.2018, 15:16
Re: /GMX resetando stats do player - by zNaKa - 02.06.2018, 15:22
Re: /GMX resetando stats do player - by MtPlayerZ - 02.06.2018, 15:25
Re: /GMX resetando stats do player - by zNaKa - 02.06.2018, 15:26

Forum Jump:


Users browsing this thread: 1 Guest(s)