Ir para conteúdo
Faça parte da equipe! (2024) ×
  • 0

Mestre HAB.. armia não devolve os pontos


kanova01
 Compartilhar

Pergunta

O que acontece é que ela retira os com mais pontuação, porém não volta para o personagem poder adicionar novamente .... Alguém consegue dar uma luz? segue o code....

 

 

 

case MESTREHAB:
    {
        if (confirm == 0)
        {
            sprintf(temp, g_pMessageStringTable[_DN_Want_Stat_Init], StatSapphire);
            SendSay(npcIndex, temp);
            break;
        }

        int RetornoHab = 0;
        int NumSappInv = 0;

        for (int i = 0; i < pMob[conn].MaxCarry; i++)
        {
            if (pMob[conn].MOB.Carry.sIndex == 697)
                NumSappInv++;

            else if (pMob[conn].MOB.Carry.sIndex == 4131)
                NumSappInv += 10;

            else if (pMob[conn].MOB.Carry.sIndex == 3336)
                RetornoHab = 1;
        }

        if (NumSappInv < StatSapphire && RetornoHab == 0)
        {
            sprintf(temp, g_pMessageStringTable[_DN_Need_D_Sapphire2], StatSapphire);
            SendSay(npcIndex, temp);
            break;
        }

        if (RetornoHab == 1)
        {
            for (int i = 0; i < pMob[conn].MaxCarry; i++)
            {
                if (pMob[conn].MOB.Carry.sIndex == 3336)
                {
                    memset(&pMob[conn].MOB.Carry, 0, sizeof(STRUCT_ITEM));
                    SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry);

                    break;
                }
            }

            goto DiretoReset;
        }
        if (NumSappInv > StatSapphire)
            NumSappInv = StatSapphire;

        for (int i = 0; i < pMob[conn].MaxCarry && NumSappInv > 0; i++)
        {
            if (pMob[conn].MOB.Carry.sIndex == 697)
            {
                memset(&pMob[conn].MOB.Carry, 0, sizeof(STRUCT_ITEM));
                SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry);

                NumSappInv--;
            }

            else if (pMob[conn].MOB.Carry.sIndex == 4131 && NumSappInv >= 10)
            {
                memset(&pMob[conn].MOB.Carry, 0, sizeof(STRUCT_ITEM));
                SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry);

                NumSappInv -= 10;
            }
        }
    DiretoReset:

        int cls = pMob[conn].MOB.Class;

        if (cls < 0 || cls > 3)
            break;

        int resetp = 100;
        int score = pMob[conn].MOB.ScoreBonus;
        int str = pMob[conn].MOB.BaseScore.Str - BaseSIDCHM[cls][0];
        int _int = pMob[conn].MOB.BaseScore.Int - BaseSIDCHM[cls][1];
        int dex = pMob[conn].MOB.BaseScore.Dex - BaseSIDCHM[cls][2];
        int con = pMob[conn].MOB.BaseScore.Con - BaseSIDCHM[cls][3];

        if (str <= resetp)
        {
            pMob[conn].MOB.BaseScore.Str -= str;
            score += str;
        }
        else
        {
            pMob[conn].MOB.BaseScore.Str -= resetp;
            score += resetp;
        }

        if (_int <= resetp)
        {
            pMob[conn].MOB.BaseScore.Int -= _int;
            score += _int;
        }
        else
        {
            pMob[conn].MOB.BaseScore.Int -= resetp;
            score += resetp;
        }

        if (dex <= resetp)
        {
            pMob[conn].MOB.BaseScore.Dex -= dex;
            score += dex;
        }

        else
        {
            pMob[conn].MOB.BaseScore.Dex -= resetp;
            score += resetp;
        }

        if (con <= resetp)
        {
            pMob[conn].MOB.BaseScore.Con -= con;
            score += con;
        }
        else
        {
            pMob[conn].MOB.BaseScore.Con -= resetp;
            score += resetp;
        }

        sprintf(temp, "etc,mestre_hab resetscore 100 name:%s conn:%d", pMob[conn].MOB.MobName, conn);
        Log(temp, "-system", 0);

        BASE_GetBonusScorePoint(&pMob[conn].MOB, &pMob[conn].Extra);
        BASE_GetHpMp(&pMob[conn].MOB, &pMob[conn].Extra);

        SetAffect(conn, 44, 20, 20);

        SendScore(conn);
        SendEtc(conn);
        SendClientMsg(conn, g_pMessageStringTable[_NN_Stat_Initialized]);
    } break;

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
4 horas atrás, kanova01 disse:

TOA

 

Já foi informado que as soucers de estudo(TOA & W2PP Master etc...) não devem ser utilizadas pra fazer um servidor, mas sim para buscar algumas ideias para o seu principal.

Quanto ao código está correto.

Link para o comentário
Compartilhar em outros sites

  • 0
38 minutos atrás, lord320 disse:

Já foi informado que as soucers de estudo(TOA & W2PP Master etc...) não devem ser utilizadas pra fazer um servidor, mas sim para buscar algumas ideias para o seu principal.

Quanto ao código está correto.

 

11 horas atrás, kanova01 disse:

O que acontece é que ela retira os com mais pontuação, porém não volta para o personagem poder adicionar novamente .... Alguém consegue dar uma luz? segue o code....

 

 

 

case MESTREHAB:
    {
        if (confirm == 0)
        {
            sprintf(temp, g_pMessageStringTable[_DN_Want_Stat_Init], StatSapphire);
            SendSay(npcIndex, temp);
            break;
        }

        int RetornoHab = 0;
        int NumSappInv = 0;

        for (int i = 0; i < pMob[conn].MaxCarry; i++)
        {
            if (pMob[conn].MOB.Carry.sIndex == 697)
                NumSappInv++;

            else if (pMob[conn].MOB.Carry.sIndex == 4131)
                NumSappInv += 10;

            else if (pMob[conn].MOB.Carry.sIndex == 3336)
                RetornoHab = 1;
        }

        if (NumSappInv < StatSapphire && RetornoHab == 0)
        {
            sprintf(temp, g_pMessageStringTable[_DN_Need_D_Sapphire2], StatSapphire);
            SendSay(npcIndex, temp);
            break;
        }

        if (RetornoHab == 1)
        {
            for (int i = 0; i < pMob[conn].MaxCarry; i++)
            {
                if (pMob[conn].MOB.Carry.sIndex == 3336)
                {
                    memset(&pMob[conn].MOB.Carry, 0, sizeof(STRUCT_ITEM));
                    SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry);

                    break;
                }
            }

            goto DiretoReset;
        }
        if (NumSappInv > StatSapphire)
            NumSappInv = StatSapphire;

        for (int i = 0; i < pMob[conn].MaxCarry && NumSappInv > 0; i++)
        {
            if (pMob[conn].MOB.Carry.sIndex == 697)
            {
                memset(&pMob[conn].MOB.Carry, 0, sizeof(STRUCT_ITEM));
                SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry);

                NumSappInv--;
            }

            else if (pMob[conn].MOB.Carry.sIndex == 4131 && NumSappInv >= 10)
            {
                memset(&pMob[conn].MOB.Carry, 0, sizeof(STRUCT_ITEM));
                SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry);

                NumSappInv -= 10;
            }
        }
    DiretoReset:

        int cls = pMob[conn].MOB.Class;

        if (cls < 0 || cls > 3)
            break;

        int resetp = 100;
        int score = pMob[conn].MOB.ScoreBonus;
        int str = pMob[conn].MOB.BaseScore.Str - BaseSIDCHM[cls][0];
        int _int = pMob[conn].MOB.BaseScore.Int - BaseSIDCHM[cls][1];
        int dex = pMob[conn].MOB.BaseScore.Dex - BaseSIDCHM[cls][2];
        int con = pMob[conn].MOB.BaseScore.Con - BaseSIDCHM[cls][3];

        if (str <= resetp)
        {
            pMob[conn].MOB.BaseScore.Str -= str;
            score += str;
        }
        else
        {
            pMob[conn].MOB.BaseScore.Str -= resetp;
            score += resetp;
        }

        if (_int <= resetp)
        {
            pMob[conn].MOB.BaseScore.Int -= _int;
            score += _int;
        }
        else
        {
            pMob[conn].MOB.BaseScore.Int -= resetp;
            score += resetp;
        }

        if (dex <= resetp)
        {
            pMob[conn].MOB.BaseScore.Dex -= dex;
            score += dex;
        }

        else
        {
            pMob[conn].MOB.BaseScore.Dex -= resetp;
            score += resetp;
        }

        if (con <= resetp)
        {
            pMob[conn].MOB.BaseScore.Con -= con;
            score += con;
        }
        else
        {
            pMob[conn].MOB.BaseScore.Con -= resetp;
            score += resetp;
        }

        sprintf(temp, "etc,mestre_hab resetscore 100 name:%s conn:%d", pMob[conn].MOB.MobName, conn);
        Log(temp, "-system", 0);

        BASE_GetBonusScorePoint(&pMob[conn].MOB, &pMob[conn].Extra);
        BASE_GetHpMp(&pMob[conn].MOB, &pMob[conn].Extra);

        SetAffect(conn, 44, 20, 20);

        SendScore(conn);
        SendEtc(conn);
        SendClientMsg(conn, g_pMessageStringTable[_NN_Stat_Initialized]);
    } break;

a função esta funcional, evite fazer testes com personagens editados.

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, lord320 disse:

Já foi informado que as soucers de estudo(TOA & W2PP Master etc...) não devem ser utilizadas pra fazer um servidor, mas sim para buscar algumas ideias para o seu principal.

Quanto ao código está correto.

Sim sim lord, foi como base <3

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • 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.