Ir para conteúdo
  • Cadastre-se

Posts Recomendados

queria tirar uma duvida e fazer um pedido.

meu servidor TFS 04 alguém me ajuda com codigo para slot para cada equipamento?  ex : ammo apenas para arrow?

 achei alguns tutorias mais nada para 0.4 

 

classicEquipmentSlots = true

tentei add clasic mais tive muitos erros.

Editado por DoidoPox (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

tenho esse script mais meu TFS e 0.4.

nao sei se funciona mas no meu server e outra versão ,alguem pode me ajuda convertendo ? 

Citar

ReturnValue Player::__queryAdd(int32_t index, const Thing* thing, uint32_t count, uint32_t flags, Creature* actor/* = NULL*/) const
{
    const Item* item = thing->getItem();
    if(item == NULL)
        return RET_NOTPOSSIBLE;

    bool childIsOwner = hasBitSet(FLAG_CHILDISOWNER, flags);
    bool skipLimit = hasBitSet(FLAG_NOLIMIT, flags);
    if(childIsOwner)
    {
        //a child container is querying the player, just check if enough capacity
        if(skipLimit || hasCapacity(item, count))
            return RET_NOERROR;

        return RET_NOTENOUGHCAPACITY;
    }

    if(!item->isPickupable())
        return RET_CANNOTPICKUP;

    ReturnValue ret = RET_NOERROR;
    const int32_t& slotPosition = item->getSlotPosition();
    if((slotPosition & SLOTP_HEAD) || (slotPosition & SLOTP_NECKLACE) ||
        (slotPosition & SLOTP_BACKPACK) || (slotPosition & SLOTP_ARMOR) ||
        (slotPosition & SLOTP_LEGS) || (slotPosition & SLOTP_FEET) ||
        (slotPosition & SLOTP_RING)) {
        ret = RET_CANNOTBEDRESSED;
    } else if(slotPosition & SLOTP_TWO_HAND) {
        ret = RET_PUTTHISOBJECTINBOTHHANDS;
    } else if((slotPosition & SLOTP_RIGHT) || (slotPosition & SLOTP_LEFT)) {
        if (!g_config.getBoolean(ConfigManager::CLASSIC_EQUIPMENT_SLOTS)) {
            ret = RET_CANNOTBEDRESSED;
        } else {
            ret = RET_PUTTHISOBJECTINYOURHAND;
        }
    }

    switch(index)
    {
        case SLOT_HEAD:
        {
            if(slotPosition & SLOTP_HEAD)
                ret = RET_NOERROR;

            break;
        }

        case SLOT_NECKLACE:
        {
            if(slotPosition & SLOTP_NECKLACE)
                ret = RET_NOERROR;

            break;
        }

        case SLOT_BACKPACK:
        {
            if(slotPosition & SLOTP_BACKPACK)
                ret = RET_NOERROR;

            break;
        }

        case SLOT_ARMOR:
        {
            if(slotPosition & SLOTP_ARMOR)
                ret = RET_NOERROR;

            break;
        }

        case SLOT_RIGHT:
        {
            if(slotPosition & SLOTP_RIGHT)
            {
                if (!g_config.getBoolean(ConfigManager::CLASSIC_EQUIPMENT_SLOTS)) {
                    //check if we already carry an item in the other hand
                    if(slotPosition & SLOTP_TWO_HAND) {
                        if(inventory[SLOT_LEFT] && inventory[SLOT_LEFT] != item)
                            ret = RET_BOTHHANDSNEEDTOBEFREE;
                        else
                            ret = RET_NOERROR;
                    }
                } else if (slotPosition & SLOTP_TWO_HAND) {
                    if (inventory[SLOT_LEFT] && inventory[SLOT_LEFT] != item) {
                        ret = RET_BOTHHANDSNEEDTOBEFREE;
                    } else {
                        ret = RET_NOERROR;
                    }
                } else if(inventory[SLOT_LEFT]) {
                    const Item* leftItem = inventory[SLOT_LEFT];
                    WeaponType_t type = item->getWeaponType(), leftType = leftItem->getWeaponType();
                    if(leftItem->getSlotPosition() & SLOTP_TWO_HAND)
                        ret = RET_DROPTWOHANDEDITEM;
                    else if(item == leftItem && count == item->getItemCount())
                        ret = RET_NOERROR;
                    else if(leftType == WEAPON_SHIELD && type == WEAPON_SHIELD)
                        ret = RET_CANONLYUSEONESHIELD;
                    else if(leftType == WEAPON_NONE || type == WEAPON_NONE ||
                        leftType == WEAPON_SHIELD || leftType == WEAPON_AMMO
                        || type == WEAPON_SHIELD || type == WEAPON_AMMO)
                        ret = RET_NOERROR;
                    else
                        ret = RET_CANONLYUSEONEWEAPON;
                } else {
                    ret = RET_NOERROR;
                }
            }
            break;
        }

        case SLOT_LEFT:
        {
            if(slotPosition & SLOTP_LEFT)
            {
                if (!g_config.getBoolean(ConfigManager::CLASSIC_EQUIPMENT_SLOTS)) {
                    //check if we already carry an item in the other hand
                    if(slotPosition & SLOTP_TWO_HAND) {
                        if(inventory[SLOT_RIGHT] && inventory[SLOT_RIGHT] != item)
                            ret = RET_BOTHHANDSNEEDTOBEFREE;
                        else
                            ret = RET_NOERROR;
                    }
                } else if (slotPosition & SLOTP_TWO_HAND) {
                    if (inventory[SLOT_RIGHT] && inventory[SLOT_RIGHT] != item) {
                        ret = RET_BOTHHANDSNEEDTOBEFREE;
                    } else {
                        ret = RET_NOERROR;
                    }
                } else if(inventory[SLOT_RIGHT]) {
                    const Item* leftItem = inventory[SLOT_RIGHT];
                    WeaponType_t type = item->getWeaponType(), leftType = leftItem->getWeaponType();
                    if(leftItem->getSlotPosition() & SLOTP_TWO_HAND)
                        ret = RET_DROPTWOHANDEDITEM;
                    else if(item == leftItem && count == item->getItemCount())
                        ret = RET_NOERROR;
                    else if(leftType == WEAPON_SHIELD && type == WEAPON_SHIELD)
                        ret = RET_CANONLYUSEONESHIELD;
                    else if(leftType == WEAPON_NONE || type == WEAPON_NONE ||
                        leftType == WEAPON_SHIELD || leftType == WEAPON_AMMO
                        || type == WEAPON_SHIELD || type == WEAPON_AMMO)
                        ret = RET_NOERROR;
                    else
                        ret = RET_CANONLYUSEONEWEAPON;
                } else {
                    ret = RET_NOERROR;
                }
            }
            break;
        }

        case SLOT_LEGS:
        {
            if(slotPosition & SLOTP_LEGS)
                ret = RET_NOERROR;

            break;
        }

        case SLOT_FEET:
        {
            if(slotPosition & SLOTP_FEET)
                ret = RET_NOERROR;

            break;
        }

        case SLOT_RING:
        {
            if(slotPosition & SLOTP_RING)
                ret = RET_NOERROR;

            break;
        }

        case SLOT_AMMO:
        {
            if(slotPosition & SLOTP_AMMO || !g_config.getBoolean(ConfigManager::CLASSIC_EQUIPMENT_SLOTS))
                ret = RET_NOERROR;

            break;
        }

        case SLOT_WHEREEVER:
        case -1:
            ret = RET_NOTENOUGHROOM;
            break;

        default:
            ret = RET_NOTPOSSIBLE;
            break;
    }

    if(ret == RET_NOERROR || ret == RET_NOTENOUGHROOM)
    {
        //need an exchange with source?
        if(getInventoryItem((slots_t)index) != NULL && (!getInventoryItem((slots_t)index)->isStackable()
            || getInventoryItem((slots_t)index)->getID() != item->getID()))
            return RET_NEEDEXCHANGE;

        if(!g_moveEvents->onPlayerEquip(const_cast<Player*>(this), const_cast<Item*>(item), (slots_t)index, true))
            return RET_CANNOTBEDRESSED;

        //check if enough capacity
        if(!hasCapacity(item, count))
            return RET_NOTENOUGHCAPACITY;
    }

    return ret;
}

 

Editado por DoidoPox (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Não basta apenas adicionar isso no config.lua. Se nas sources não estiver incluso não vai funcionar mesmo. A parte que teria que alterar seria nessa mesmo que tu mando.

Baixe a rev3996 que disponibilizei. Bastante bugs das revs anteriores foram corrigidos, e muita coisa foi adicionada. Inclusive isto que você quer utilizar.

Caso utilize ela, só alterar no config.lua para:

classicEquipmentSlots = false

 

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites

blz eu nao sou scripter mais me considero tester

eu sei como funciona tentei add mais sempre tenho errors 

 baixei seu tfs mais mesmo asim tive erros em ad algumas coisas uso a versao 3777 quero add o max de coisas e depois disponibilizar  

agradeço desde ja!

 

Link para o post
Compartilhar em outros sites
11 horas atrás, DoidoPox disse:

blz eu nao sou scripter mais me considero tester

eu sei como funciona tentei add mais sempre tenho errors 

 baixei seu tfs mais mesmo asim tive erros em ad algumas coisas uso a versao 3777 quero add o max de coisas e depois disponibilizar  

agradeço desde ja!

 

Poderia me informar os erros?

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites

errors tipow add lifesteal e mana com systema critico chance( receb os mesmos erros na 3777 e na sua)

ja ate consegui instalar sem erros (377) mais as sprites ficao todas bugadas no game e nao da pra andar vo compartilhar ela com vcs em breve add muita coisa legal

ja baixei sua distro e pretendo mexer nela tbm thx.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Muvuka
      Alguem tem anti-nuker igual a esse 
       

       
    • Por Muvuka
      [SQLite] -=[TFS]=- 0.4 8.60 Alguem faz apk mobile pra mim ip: dexsoft.ddns.net
       
      pra mim
       
      https://www.mediafire.com/file/5klqnyy6k7jda0u/OTClientV8.rar/file
       
      TA TUDO AI
    • Por yuriowns
      Salve rapazes, estou precisando de um client próprio para o meu servidor 7.4, preciso que algum programador experiente e com referências faça um client do jeito que eu procuro. Responda aqui para fazermos um orçamento, obrigado!

      Não sei se estou no lugar certo, se não me desculpem e peço que movam por gentileza!
    • Por paulo thush
      Pessoal to com um grande problema, estou com um servidor TFS 1.4x 10.98, recentemente começou dar um problema, sempre quando falava "trade" com o npc dava um erros, com qual quer npc, o erro e o seguinte.
       
       
      me falaram que o problema e nas sourcer que precisava mudar umas coisas me passaram um link no github esse aqui 
      https://github.com/otland/forgottenserver/pull/3996/files
       
      porem eu vi vídeos no youtube ensinando a compilar, já vi muitos tópicos como compilar a sourcer, ai quando vou compilar da esse erro
      já tentei instalar, desinstala muitas coisas, alterar também não vai, minha sourcer e essa 
      https://github.com/otland/forgottenserver
       
       
      Alguém poderia me ajuda com esse erro, ou ate compilar 100% as sourcer. os Tópicos que eu tentei para compilar e esse daqui, se não poder o link me desculpe.
      https://forums.otserv.com.br/index.php?/forums/topic/169234-windowsvc2019-compilando-sources-tfs-14-vcpkg/
       
      alguém me da uma luz por favor kkk
    • Por Ryzek
      Uso tfs 0.4 trunk3884 bem simples.
      Queria acrescentar magic effects para 255 pois o meu só vai até 69. Encontrei um tópico que falava sobre porém parece ter sido removido, não consigo acessar!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo