Ir para conteúdo
Faça parte da equipe! (2024) ×
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

resolvido extração


[ADM]_Henrick
 Compartilhar

Pergunta

Como fazer o cristal de extração funcionar? alguém pode ler para mim?
Equipei +9 Armor com ItemLevel 4 e usei cristal, mas não funcionou.

aqui está o código:

 

#pragma region >> Extração Peito
    if (item->sIndex == 3022)
    {
        int Extra = BASE_GetItemAbility(item, EF_ITEMLEVEL);

        if (pMob[a_iConn].MOB.Equip[2].sIndex == 0)
        {
            SendItem(a_iConn, m->SourType, m->SourPos, item);
            return;
        }

        if (Extra <= 4)
        {
            int destExtra = BASE_GetItemAbility(&pMob[a_iConn].MOB.Equip[2], EF_ITEMLEVEL);
            int desttype = BASE_GetItemAbility(&pMob[a_iConn].MOB.Equip[2], EF_MOBTYPE);

            if (destExtra != 0 && destExtra != 4 || destExtra != Extra || desttype != 2 && desttype != 0)
            {
                SendItem(a_iConn, m->SourType, m->SourPos, item);
                return;
            }

            int sanc = BASE_GetItemSanc(&pMob[a_iConn].MOB.Equip[2]);

            if (sanc > 9)
            {
                sprintf(temp, g_pMessageStringTable[_DN_SANCREQ], 9);
                SendClientMsg(a_iConn, temp);
                SendItem(a_iConn, m->SourType, m->SourPos, item);
                return;
            }

            pMob[a_iConn].MOB.Equip[2].stEffect[1].cEffect = item->stEffect[1].cEffect;
            pMob[a_iConn].MOB.Equip[2].stEffect[1].cValue = item->stEffect[1].cValue;

            pMob[a_iConn].MOB.Equip[2].stEffect[2].cEffect = item->stEffect[2].cEffect;
            pMob[a_iConn].MOB.Equip[2].stEffect[2].cValue = item->stEffect[2].cValue;

            SendItem(a_iConn, ITEM_PLACE_EQUIP, 2, &pMob[a_iConn].MOB.Equip[2]);

            sprintf(temp, "useitem,Extracao peito: %d-%d:%d:%d:%d:%d:%d", item->sIndex, item->stEffect[0].cEffect, item->stEffect[0].cValue, item->stEffect[1].cEffect, item->stEffect[1].cValue, item->stEffect[2].cEffect, item->stEffect[2].cValue);
            MyLog(LogType::Itens, pMob[a_iConn].MOB.MobName, temp, 0, pUser[a_iConn].IP);

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

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

            SendEmotion(a_iConn, 14, 3);
            return;
        }
    }
#pragma endregion

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

 

Tentei fazer o mais claro possível. Espero que entenda qlq coisa só perguntar novamente!

 

#pragma region >> Extração Peito
    if (item->sIndex == 3022)//Caso o item seja esse id ocorre a função
    {
        int Extra = BASE_GetItemAbility(item, EF_ITEMLEVEL);

        if (pMob[a_iConn].MOB.Equip[2].sIndex == 0) //verifica se você tem item equipado no slot e caso esse item não tenha id(seja = 0)
        {
            SendItem(a_iConn, m->SourType, m->SourPos, item);//atualiza o item no slot do inventári(faz ele aparecer novamente, devolve)
            return;//sai da função do item
        }

        if (Extra <= 4)//caso a extra do item de destino seja  menor ou igual a 4 ocorre abaixo
        {
            int destExtra = BASE_GetItemAbility(&pMob[a_iConn].MOB.Equip[2], EF_ITEMLEVEL);
            int desttype = BASE_GetItemAbility(&pMob[a_iConn].MOB.Equip[2], EF_MOBTYPE);

            if (destExtra != 0 && destExtra != 4 || destExtra != Extra || desttype != 2 && desttype != 0)//verifica se o itemlevel do item alvo é diferente de 0 e diferente de 4, ou , o itemlevel do item é diferente do itemlevel do item de destino é diferente dela mesma, ou, o Tipo do item é diferente de 2 e diferente de 0
            {
                SendItem(a_iConn, m->SourType, m->SourPos, item);//atualiza o item no slot do inventári(faz ele aparecer novamente, devolve)
            return;//sai da função do item(extração)
            }

            int sanc = BASE_GetItemSanc(&pMob[a_iConn].MOB.Equip[2]);//pega a refinação do item 

            if (sanc > 9)//caso a refinação do item seja maior que +9
            {
                sprintf(temp, g_pMessageStringTable[_DN_SANCREQ], 9);//envia a mensagem com parâmetro 9(essa mensagem é definida no Language.txt)
                SendClientMsg(a_iConn, temp);//mostra a mensagem com o parâmetro
                SendItem(a_iConn, m->SourType, m->SourPos, item);//atualiza o item no slot do inventári(faz ele aparecer novamente, devolve)
            return;//sai da função do item(extração)
            }

            pMob[a_iConn].MOB.Equip[2].stEffect[1].cEffect = item->stEffect[1].cEffect; //faz com que o item de destino receba o Efeito de add do item(extração) no respectivo slot de add


            pMob[a_iConn].MOB.Equip[2].stEffect[1].cValue = item->stEffect[1].cValue;//faz com que o item de destino receba o valor do efeito de add do item(extração) no respectivo slot de add

 

            pMob[a_iConn].MOB.Equip[2].stEffect[2].cEffect = item->stEffect[2].cEffect; //faz com que o item de destino receba o Efeito de add do item(extração) no respectivo slot de add
            pMob[a_iConn].MOB.Equip[2].stEffect[2].cValue = item->stEffect[2].cValue;//faz com que o item de destino receba o valor do efeito de add do item(extração) no respectivo slot de add

 

            SendItem(a_iConn, ITEM_PLACE_EQUIP, 2, &pMob[a_iConn].MOB.Equip[2]);// atualiza o item no slot fazendo com que mostre o novo adicional.

 

            sprintf(temp, "useitem,Extracao peito: %d-%d:%d:%d:%d:%d:%d", item->sIndex, item->stEffect[0].cEffect, item->stEffect[0].cValue, item->stEffect[1].cEffect, item->stEffect[1].cValue, item->stEffect[2].cEffect, item->stEffect[2].cValue);//envia pro log o item, refinação, e os adicionais


            MyLog(LogType::Itens, pMob[a_iConn].MOB.MobName, temp, 0, pUser[a_iConn].IP);//salva no log o item, refinação, e os adicionais. Nome do Char e o ip

 

            if (amount > 1)//caso ele tenha amount 1 (o item extração)
                BASE_SetItemAmount(item, amount - 1);//reduz

            else//se não
                memset(item, 0, sizeof(STRUCT_ITEM));//limpa

            SendEmotion(a_iConn, 14, 3);//envia a emção verde
            return;//sai da função do item(extração)
        }
    }
#pragma endregion

Editado por lord320
Link para o comentário
Compartilhar em outros sites

  • 0

Tópico Resolvido!

 

Ficamos felizes que seu tópico tenha sido resolvido!

Devido a esse estaremos fechando-o para evitar posts desnecessários e movendo para o local correto.

 

Essa é uma mensagem automática

Atenciosamente

WebCheats

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 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.