Portal SAMP
[Ajuda] Erro Salvar Respeitos - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Erro Salvar Respeitos (/showthread.php?tid=2533)

Páginas: 1 2


Erro Salvar Respeitos - LinkedSafe - 01/07/2022

Eu estou editando uma gm e sempre que abro inventario e uso os respeitos ele vai para o /RG mas depois quando relogo ele reseta todos os respeitos para 0.
Não tou conseguindo achar o local para salvar os respeitos.


RE: Erro Salvar Respeitos - White_Blue - 01/07/2022

Poderia postar o código utilizado para salvar os mesmos?


RE: Erro Salvar Respeitos - LinkedSafe - 01/07/2022

Achei apenas o comando de salvar contas


Código:
Comando(salvarconta)
{
    if(CheckAdmin(playerid, 5, true)) return 1;
    new idjogador;
    if(sscanf(params, "u", idjogador)) return SendClientMessage(playerid, COLOR_GRAD1, "USE: /salvarconta [ID/Nome].");
    if(!IsPlayerConnected(idjogador)) return SendClientMessage(playerid, COLOR_LIGHTRED, "O jogador não está on-line.");
    SalvarConta(idjogador);
    SendAdminMessage(COLOR_LIGHTRED, fmat_return("AdmCmd: O admin %s salvou a conta do jogador %s.", PlayerGetName(playerid)));
    EscreverLogs("logs_admincmd", "%s salvou a conta de %s.", PlayerName(playerid), PlayerName(idjogador));
    return 1;
}
E outro exemplo aqui do save

        case DIALOG_TROCARNICK:
        {
            if(response)
            {
                EscreverLogs("logs_mudarnick", fmat_return("%s cancelou a troca de nick para %s.", UserInfo[playerid][user_nome], UserInfo[playerid][user_nicktrocar]));
                format(UserInfo[playerid][user_nicktrocar], 1, "");
                SalvarConta(playerid);
                SendClientMessage(playerid, 0xFF0000FF, "INFO: {B4B5B7}Você cancelou a sua troca de nick e o item foi devolvido.");
                AddItem(playerid, Item_TrocaNick, 1);
            }



RE: Erro Salvar Respeitos - White_Blue - 01/07/2022

(01/07/2022 14:15)LinkedSafe Escreveu: Achei apenas o comando de salvar contas

Comando(salvarconta)
{
    if(CheckAdmin(playerid, 5, true)) return 1;
    new idjogador;
    if(sscanf(params, "u", idjogador)) return SendClientMessage(playerid, COLOR_GRAD1, "USE: /salvarconta [ID/Nome].");
    if(!IsPlayerConnected(idjogador)) return SendClientMessage(playerid, COLOR_LIGHTRED, "O jogador não está on-line.");
    SalvarConta(idjogador);
    SendAdminMessage(COLOR_LIGHTRED, fmat_return("AdmCmd: O admin %s salvou a conta do jogador %s.", PlayerGetName(playerid)));
    EscreverLogs("logs_admincmd", "%s salvou a conta de %s.", PlayerName(playerid), PlayerName(idjogador));
    return 1;
}
E outro exemplo aqui do save

        case DIALOG_TROCARNICK:
        {
            if(response)
            {
                EscreverLogs("logs_mudarnick", fmat_return("%s cancelou a troca de nick para %s.", UserInfo[playerid][user_nome], UserInfo[playerid][user_nicktrocar]));
                format(UserInfo[playerid][user_nicktrocar], 1, "");
                SalvarConta(playerid);
                SendClientMessage(playerid, 0xFF0000FF, "INFO: {B4B5B7}Você cancelou a sua troca de nick e o item foi devolvido.");
                AddItem(playerid, Item_TrocaNick, 1);
            }

Você usa qual sistema de salvamento? DOF2, MySQL, Dini?


RE: Erro Salvar Respeitos - LinkedSafe - 01/07/2022

Tou usando MySQL, salva tudo unica coisa não ta salvando é respeito não sei porque.


RE: Erro Salvar Respeitos - White_Blue - 01/07/2022

(01/07/2022 15:18)LinkedSafe Escreveu: Tou usando MySQL, salva tudo unica coisa não ta salvando é respeito não sei porque.

Mas qual a parte do código que salva os respeitos? Porque sem essa parte fica impossível de descobrir os erros.


RE: Erro Salvar Respeitos - LinkedSafe - 01/07/2022

Está é a parte que voce usa o respeito e vai para RG e depois reloga não salva.

Código:
case Item_Respeito:
            {
                SendClientMessage(playerid, COLOR_LIGHTBLUE, fmat_return("* Voce usou 1 %s.", Itens[item][item_nome]));
                GivePlayerRespeito(playerid, 1);
                MochilaInfo[playerid][invUnit][index]--;
                AtualizarSlot(playerid, index);
            }
            case



RE: Erro Salvar Respeitos - White_Blue - 01/07/2022

(01/07/2022 18:40)LinkedSafe Escreveu: Está é a parte que voce usa o respeito e vai para  RG e depois reloga não salva.

case Item_Respeito:
            {
                SendClientMessage(playerid, COLOR_LIGHTBLUE, fmat_return("* Voce usou 1 %s.", Itens[item][item_nome]));
                GivePlayerRespeito(playerid, 1);
                MochilaInfo[playerid][invUnit][index]--;
                AtualizarSlot(playerid, index);
            }
            case

Creio que o código esteja na stock "GivePlayerRespeito".


RE: Erro Salvar Respeitos - LinkedSafe - 01/07/2022

Este codigo está na stock assim


Código:
GetPlayerXP(playerid)
{
    return UserInfo[playerid][user_respeito];
}

GivePlayerRespeito(playerid, valor)
{
    if(GetPlayerXP(playerid)+valor >= GetPlayerRequiredXP(playerid) && UserInfo[playerid][user_nivel] == MAX_LEVEL)
        UserInfo[playerid][user_respeito] = GetPlayerRequiredXP(playerid);
    else
    {
        UserInfo[playerid][user_respeito] += valor;
        if(GetPlayerXP(playerid) >= GetPlayerRequiredXP(playerid))
            OnPlayerLevelUp(playerid, UserInfo[playerid][user_nivel], UserInfo[playerid][user_nivel]+1);
    }
    return valor;
}

public:do OnPlayerLevelUp(playerid, oldlevel, newlevel)
{
    new extra_xp = GetPlayerXP(playerid) - GetPlayerRequiredXP(playerid);
    UserInfo[playerid][user_respeito] = extra_xp;
    UserInfo[playerid][user_nivel] = newlevel;
    SetPlayerScore(playerid, UserInfo[playerid][user_nivel]);
    PlayerPlaySound(playerid, 5203, 0.0, 0.0, 0.0);
    GameTextForPlayer(playerid, "Level up", 5000, 1);
    SendClientMessage(playerid, COLOR_BPF, fmat_return("* Voce acabou de subir para o level %d.", newlevel));

    if(newlevel == MAX_LEVEL)
        SendClientMessage(playerid, 0xCCFF00FF, "* Parabens! Voce atingiu o nivel maximo atual do servidor.");
    else if(GetPlayerXP(playerid) >= GetPlayerRequiredXP(playerid))
        OnPlayerLevelUp(playerid, UserInfo[playerid][user_nivel], UserInfo[playerid][user_nivel]+1);
        SalvarConta(playerid);
    return 1;
}

GetPlayerRequiredXP(playerid)
{
    //return UserInfo[playerid][user_nivel]*LEVEL_MULTIPLER;
    return LEVEL_MULTIPLER + (UserInfo[playerid][user_nivel]-1)*LEVEL_MULTIPLER;
}


Estive dando uma olhada aqui e descobri não tem stock de salvar respeito.


RE: Erro Salvar Respeitos - xbruno1000x - 02/07/2022

Atente-se a área de postagem... você postou o tópico numa área nada haver.

Sobre o problema:
Talvez não tenha uma stock de salvar respeito mesmo, mas pode estar na stock salvarconta. Mande ela aqui para darmos uma olhada.