SA-MP Forums Archive
[Ajuda] Dados nгo salvando - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Dados nгo salvando (/showthread.php?tid=632677)



Dados nгo salvando - Feelipe - 17.04.2017

Boa tarde, me tirem uma dъvida. O meu sistema de salvamento aparentemente tб todo okay, um timer foi criado para verificar o progresso feito no jogo e salvar esse progresso, que inclusive funciona. Sу tem um problema, se houver um progresso, e eu utilizar o cmd /ban ou /kick o progresso simplesmente й zerado, ou seja, zera o score e o money, o que eu poderia fazer?

pawn Код:
CMD:banir(playerid, params[])
{
    new id, Motivo[100];
    if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "us[100]", id, Motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /ban ID Motivo");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado.");
    SendFormatMessageToAll(Cor_Admin, "[STAFF]: O administrador %s baniu %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
    kBan(id, Motivo);
    kBanIP(id);
    Kick(id);
    new Log [ ] = "Banidos/Logs/Ban.log";
    format(String ,sizeof(String),"O administrador %s baniu: %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
    WriteLog(Log, String);
    return 1;
}
pawn Код:
CMD:kickar(playerid, params[])
{
    if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    new jogador, motivo[74], string[128];
    if(sscanf(params, "us[74]", jogador, motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /kick | ID | | MOTIVO | ");
    if(!IsPlayerConnected(jogador) || playerid == jogador) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado! Ou й vocк mesmo.");
    format(string, sizeof string, "[STAFF]: O administrador %s kickou %s ( Motivo: %s )", pname(playerid), pname(jogador), motivo);
    SendClientMessageToAll(Cor_Admin, string);
    return TryEx(playerid, jogador, 2, "");
}



Re: Dados nгo salvando - NathanT - 17.04.2017

Tente resolver isso salvando o jogador antes da funзгo Kick no comando de banir e/ou kickar.


Re: Dados nгo salvando - Feelipe - 17.04.2017

Quote:
Originally Posted by Manorango
Посмотреть сообщение
Tente resolver isso salvando o jogador antes da funзгo Kick no comando de banir e/ou kickar.
Acabei de tentar e nгo resultou.
Chamo a funзгo SalvarPlayer(playerid); antes de banir e kickar, removi o banimento e quando loguei, tudo estava zerado.


Re: Dados nгo salvando - RodrigoMSR - 17.04.2017

Cheque as funзхes kBan e kBanIP, veja se na OnPlayerDisconnect estб salvando os dados mesmo se o motivo for por kick (reason).


Re: Dados nгo salvando - Feelipe - 17.04.2017

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Cheque as funзхes kBan e kBanIP, veja se na OnPlayerDisconnect estб salvando os dados mesmo se o motivo for por kick (reason).
Poderia me explicar melhor? Ainda estou aprendendo ;-;

pawn Код:
BanTemp[playerid] = 0;
    format(String, sizeof(String), "Banidos/Banidos Temp/%s.ini", PegarNome(playerid));
    if(DOF2_FileExists(String))
    {

        BanTemp[playerid] = DOF2_GetInt(String, "Dias");
        if(VerifyExpiredDays(BanTemp[playerid]))
        {

            SendClientMessage(playerid, COR_SUCESSO, "[ ~ ]: O seu tempo de banimento acabou.");
            BanTemp[playerid] = 0;
            format(String, sizeof(String), "Banidos/IPs Banidos/%s.ini", PegarIP(playerid));
            if(DOF2_FileExists(String))
            {

                DOF2_RemoveFile(String);
            }
        }
        else
        {

            SendFormatMessage(playerid, C_VERMELHO, "[ ~ ]: Vocк ainda estб banido. Faltam %s.", ConvertToDays(BanTemp[playerid]));
            Kick(playerid);
            return 1;
        }
        return 1;
    }
    format(String, sizeof(String), "Banidos/%s.ini", PegarNome(playerid));
    if(DOF2_FileExists(String))
    {

        format(String, sizeof(String), "Esta conta estб banida deste servidor\n\n{FAAC02}Administrador: {FFFFFF}%s\n{FAAC02}Motivo: {FFFFFF}%s\n{FAAC02}Dia: {FFFFFF}%s\n{FAAC02}Horario: {FFFFFF}%s\n\n{FF0000}Caso vocк ache que isto й um engano, visite o nosso fуrum.", DOF2_GetString(String, "Admin"), DOF2_GetString(String, "Motivo"), DOF2_GetString(String, "Data"), DOF2_GetString(String, "Horario"));
        ShowPlayerDialog(playerid, DialogBan,  DIALOG_STYLE_MSGBOX, "*********            Informaзхes de banimento", String, "Sair", "");
        Kick(playerid);
        return 1;
    }
    format(String, sizeof(String), "Banidos/IPs Banidos/%s.ini", PegarIP(playerid));
    if(DOF2_FileExists(String))
    {

        SendFormatMessage(playerid, Vermelho, "[ ~ ]: O IP %s estб banido do servidor.", PegarIP(playerid));
        Kick(playerid);
        return 1;
    }
Esses sгo os dados de banimento na onplayerconnect


Re: Dados nгo salvando - Feelipe - 18.04.2017

UP ;-;


Re: Dados nгo salvando - didimk157 - 18.04.2017

coloque as funзхes kban ai


Re: Dados nгo salvando - Feelipe - 18.04.2017

Quote:
Originally Posted by didimk157
Посмотреть сообщение
coloque as funзхes kban ai
pawn Код:
stock kBan(playerid, motivo[])
{
    new arquivo[50];
    getdate(Ano, Mes, Dia);
    format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
    gettime(Hora, Minuto, Segundo);
    format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
    format(arquivo, sizeof(arquivo), "Banidos/%s.ini", PegarNome(playerid));
    DOF2_CreateFile(arquivo);
    DOF2_SetString(arquivo, "Admin", PegarNome(playerid));
    DOF2_SetString(arquivo, "Data", Data);
    DOF2_SetString(arquivo, "Horario", Tempo);
    DOF2_SetString(arquivo, "Motivo", motivo);
    DOF2_SaveFile();
    return 1;
}
stock kBanIP(playerid)
{
    new arquivo[30];
    getdate(Ano, Mes, Dia);
    format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
    gettime(Hora, Minuto, Segundo);
    format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
    format(arquivo, sizeof(arquivo), "Banidos/IPs Banidos/%s.ini", PegarIP(playerid));
    DOF2_CreateFile(arquivo);
    DOF2_SetString(arquivo, "Nome", PegarNome(playerid));
    DOF2_SetString(arquivo, "Data", Data);
    DOF2_SetString(arquivo, "Horario", Tempo);
    DOF2_SaveFile();
    return 1;
}
stock kBanTemp(playerid, dias, motivo[])
{
    new arquivo[50];
    BanTemp[playerid] = ConvertDays(dias);
    format(arquivo, sizeof(arquivo), "Banidos/Banidos Temp/%s.ini", PegarNome(playerid));
    DOF2_CreateFile(arquivo);
    DOF2_SetInt(arquivo, "Dias", BanTemp[playerid]);
    DOF2_SetString(arquivo, "Motivo", motivo);
    DOF2_SaveFile();
    return 1;
}
pawn Код:
new BanTemp[MAX_PLAYERS];
pawn Код:
CMD:banir(playerid, params[])
{
    new id, Motivo[100];
    SalvarPlayer(playerid);
    if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "us[100]", id, Motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /ban ID Motivo");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado.");
    SendFormatMessageToAll(Cor_Admin, "[STAFF]: O administrador %s baniu %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
    kBan(id, Motivo);
    kBanIP(id);
    Kick(id);
    //Log
    new Log [ ] = "Banidos/Logs/Ban.log";
    format(String ,sizeof(String),"O administrador %s baniu: %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
    WriteLog(Log, String);
    return 1;
}

CMD:bantemp(playerid, params[])
{
    new id, Dias, Motivo[100];
    if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "uds[100]", id, Dias, Motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /bantemp ID Dias Motivo");
    if(Dias < 0) return SendClientMessage(playerid, Vermelho, "[ERRO]: Digite um nъmero de dias vбlido.");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado.");
    SendFormatMessageToAll(Cor_Admin, "[STAFF]: O administrador %s baniu %s por %d dias ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Dias, Motivo);
    kBanTemp(id, Dias, Motivo);
    kBanIP(id);
    Kick(id);
    //Log
    new Log [ ] = "Banidos/Logs/BanTemp.log";
    format(String ,sizeof(String),"O administrador %s baniu %s por %d dias ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Dias, Motivo);
    WriteLog(Log, String);
    return 1;
}
CMD:desban(playerid, params[])
{
    new Conta[20];
    if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "s[20]", Conta)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /desban Conta");
    format(String, sizeof(String), "Banidos/%s.ini", Conta);
    if(DOF2_FileExists(String))
    {

        DOF2_RemoveFile(String);
        SendFormatMessage(playerid, Cor_Admin, "[STAFF]: Vocк desbaniu a conta de %s", Conta);
        //Log
        new Log [ ] = "Banidos/Logs/Desban.log";
        format(String ,sizeof(String),"O administrador %s desbaniu a conta: %s", PegarNome(playerid), Conta);
        WriteLog(Log, String);
        return 1;
    }
    else SendClientMessage(playerid, Vermelho, "[ERRO]: Essa conta nгo existe ou nгo estб banida.");
    return 1;
}
CMD:desbanip(playerid, params[])
{
    new IPBanido[20];
    if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
    if(sscanf(params, "s[20]", IPBanido)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /desbanip IP");
    format(String, sizeof(String), "Banidos/IPs Banidos/%s.ini", IPBanido);
    if(DOF2_FileExists(String))
    {

        DOF2_RemoveFile(String);
        SendFormatMessage(playerid, Cor_Admin, "[STAFF] Vocк desbaniu o IP %s", IPBanido);
        //Log
        new Log [ ] = "Banidos/Logs/DesbanIP.log";
        format(String ,sizeof(String),"O administrador %s desbaniu o IP: %s", PegarNome(playerid), IPBanido);
        WriteLog(Log, String);
        return 1;
    }
    else SendClientMessage(playerid, Vermelho, "[ERRO]: Esse IP nгo existe ou nгo estб banido.");
    return 1;
}
O cуdigo й pequeno, jб tentei fazer com que o /ban alterasse o valor de apenas 1 variбvel, mas tambйm nгo funcionou, tentei dar uma pesquisada no fуrum, mas nгo encontrei nada parecido, tф perdido :/


Re: Dados nгo salvando - AuhMaru - 18.04.2017

https://sampforum.blast.hk/showthread.php?tid=632276