Ir para conteúdo
Faça parte da equipe! (2025) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
  • 0

Gema Estelar não salva posição ao relogar


combatrw
 Compartilhar

Pergunta

Pessoal, bom dia. A gema estelar não está salvando se o personagem relogar. Se eu marco e tento usar imediatamente funciona, vejam se podem ajudar: 

 

#pragma region Gema Estelar
    if (Vol == 12)
    {
        unsigned char map_att = GetAttribute(pMob[conn].TargetX, pMob[conn].TargetY);

        if ((pMob[conn].TargetX / 128) == 9 && (pMob[conn].TargetY / 128) == 1)
            goto CanSave;

        if ((pMob[conn].TargetX / 128) == 8 && (pMob[conn].TargetY / 128) == 2)
            goto CanSave;

        if (map_att & 4 && pMob[conn].MOB.CurrentScore.Level < 1000)
        {
            SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_Use_That_Here]);
            SendItem(conn, m->SourType, m->SourPos, item);
            return;
        }

        int Arena = BASE_GetArena(pMob[conn].TargetX, pMob[conn].TargetY);
        int Village = BASE_GetVillage(pMob[conn].TargetX, pMob[conn].TargetY);

        if (Arena < MAX_GUILDZONE || Village < MAX_GUILDZONE)
        {
            SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_Use_That_Here]);
            SendItem(conn, m->SourType, m->SourPos, item);
            return;
        }

        if (pMob[conn].TargetX >= 1302 && pMob[conn].TargetY >= 1391 && pMob[conn].TargetX <= 1483 && pMob[conn].TargetY <= 1523)
        {
            SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_Use_That_Here]);
            SendItem(conn, m->SourType, m->SourPos, item);
            return;
        }

    CanSave:
        int sFace = pMob[conn].MOB.Equip[0].sIndex / 10;

        if (sFace == 0)
            SendEmotion(conn, 23, 0);

        else if (sFace == 1)
            SendEmotion(conn, 15, 0);

        else if (sFace == 2)
            SendEmotion(conn, 15, 0);

        else if (sFace == 3)
            SendEmotion(conn, 15, 0);


        pMob[conn].MOB.SPX = pMob[conn].TargetX;
        pMob[conn].MOB.SPY = pMob[conn].TargetY;

        /*
        snprintf(temp, sizeof(temp), "useitem,gema salva %d %d", pMob[conn].TargetX, pMob[conn].TargetY);
        ItemLog(pUser[conn].AccountName, pUser[conn].MacAddress, pUser[conn].IP, temp);*/

        if (amount > 1)
            BASE_SetItemAmount(item, amount - 1);

        else
            memset(item, 0, sizeof(STRUCT_ITEM));

        SendClientMessage(conn, g_pMessageStringTable[_NN_Set_Warp]);

        return;
    }
#pragma endregion

Ainda estou aprendendo C++

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
É necessário se cadastrar para acessar o conteúdo.

 

Aqui você está salvando a posição atual na estrutura MOB, porém, ela é salva quando desconecta?
Este deve ser o problema, o MOB.SPX pode ser somente leitura.
Após isto, coloca na estrutura do jogador ( não uso source, mas deve ser o mesmo que mudar algo no banco da conta, status ou qualquer outra coisa que não seja na estrutura do MOB ).

Link para o comentário
Compartilhar em outros sites

  • 0
Em 01/05/2025 em 19:10, 987987987 disse:
É necessário se cadastrar para acessar o conteúdo.

 

Aqui você está salvando a posição atual na estrutura MOB, porém, ela é salva quando desconecta?
Este deve ser o problema, o MOB.SPX pode ser somente leitura.
Após isto, coloca na estrutura do jogador ( não uso source, mas deve ser o mesmo que mudar algo no banco da conta, status ou qualquer outra coisa que não seja na estrutura do MOB ).

Não está salvando. Eu sei que esse trecho que postei se refere a mensagem que é enviada ao jogador, e pesquisando por MOB.SPX e MOB.SPY eu tenho alguns arquivos diferentes, não sei em qual deles verificar, sendo eles:

DBsrv>CFileDB.cpp
TMsrv>ProcessDBMessage.cpp
TMsrv>Server.cpp
TMsrv>_MSG_UseItem.cpp

Acredito que seja no CFileDB.cpp , mas vou pesquisar mais a fundo. Me dá uma opinião?

 

Link para o comentário
Compartilhar em outros sites

  • 0
51 minutos atrás, combatrw disse:

Não está salvando. Eu sei que esse trecho que postei se refere a mensagem que é enviada ao jogador, e pesquisando por MOB.SPX e MOB.SPY eu tenho alguns arquivos diferentes, não sei em qual deles verificar, sendo eles:

DBsrv>CFileDB.cpp
TMsrv>ProcessDBMessage.cpp
TMsrv>Server.cpp
TMsrv>_MSG_UseItem.cpp

Acredito que seja no CFileDB.cpp , mas vou pesquisar mais a fundo. Me dá uma opinião?

 

 

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.