Ir para conteúdo

Featured Replies

Postado
Em 15/07/2014 em 11:13, Daniel disse:

Resolvi trazer esse tutorial, já que não há no TK.

Créditos: Evil Mark

 


resources.h, vá até o final e substitua o código com isso
 


#define CLIENT_VERSION_MIN 861
#define CLIENT_VERSION_MAX 862
#define CLIENT_VERSION_STRING "Only clients with protocol 8.61 and 8.62 are allowed!"

#define STATUS_SERVER_NAME "TheForgottenServer"
#define STATUS_SERVER_VERSION "0.3.5"
#define STATUS_SERVER_CODENAME "Crying Damson"
#define STATUS_SERVER_PROTOCOL "8.62"

Então vá ao itemloader.h e procure por

 

CLIENT_VERSION_854 = 16,

 

Quando achar substitua por:

 

    CLIENT_VERSION_854 = 16,
    CLIENT_VERSION_855 = 17,
    CLIENT_VERSION_856 = 18,
    CLIENT_VERSION_857 = 19,
    CLIENT_VERSION_860 = 20,
    CLIENT_VERSION_861 = 21,
CLIENT_VERSION_862 = 22

 


 


items.cpp:
Procure por

 


else if(Items::dwMinorVersion != CLIENT_VERSION_854)and

Substitua:

 

 else if(Items::dwMinorVersion != CLIENT_VERSION_854)
    {
        std::cout << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
        return ERROR_INVALID_FORMAT;
    }

Com:
 


    else if(Items::dwMinorVersion != 19)
    {
        std::cout << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
        return ERROR_INVALID_FORMAT;
    }

 


 

 

 


Agora vá ao protocolgame.cpp, e procure por:

 

 

 

 

void ProtocolGame::parseAttack(NetworkMessage& msg)

Substitua

 

void ProtocolGame::parseAttack(NetworkMessage& msg)
{
    uint32_t creatureId = msg.GetU32();
    addGameTask(&Game::playerSetAttackedCreature, player->getID(), creatureId);
}

Com
 


void ProtocolGame::parseAttack(NetworkMessage& msg)
{
    uint32_t creatureId = msg.GetU32();
    msg.GetU32();
    msg.GetU32();
    addGameTask(&Game::playerSetAttackedCreature, player->getID(), creatureId);
}

 


 

 

 


Protocolgame.cpp

Procure por:

 

 

 


void ProtocolGame::sendCancelTarget()and

Substitua

 

void ProtocolGame::sendCancelTarget()
{
    NetworkMessage_ptr msg = getOutputBuffer();
    if(msg)
    {
        TRACK_MESSAGE(msg);
        msg->AddByte(0xA3);
    }
}

Com
 


void ProtocolGame::sendCancelTarget()
{
    NetworkMessage_ptr msg = getOutputBuffer();
    if(msg)
    {
        TRACK_MESSAGE(msg);
        msg->AddByte(0xA3);
        msg->AddU32(0);
    }

 


Em spells.cpp vá até


bool RuneSpell::executeUse(Player* player, Item* item, const PositionEx& posFrom,

E substitua:

 

g_game.transformItem(item, item->getID(), std::max((int32_t)0, ((int32_t)item->getCharges()) - 1));

Com isso:
 


g_game.transformItem(item, item->getID(), std::max((int32_t)0, ((int32_t)item->getItemCount()) - 1));

 


 


Adicionando os novos efeitos ao jogo
tools.cpp

Procure por:

 


{"insects",        MAGIC_EFFECT_INSECTS}

E substitua


    {"insects",        MAGIC_EFFECT_INSECTS},
};

Com


    {"insects",        MAGIC_EFFECT_INSECTS},
    {"dragonhead",        MAGIC_EFFECT_DRAGONHEAD}
};

 


 

 


vá até const.h e procure por

 

 

 

MAGIC_EFFECT_INSECTS        = 0x44, //68

Substitua


    MAGIC_EFFECT_INSECTS        = 0x44, //68
    MAGIC_EFFECT_LAST        = MAGIC_EFFECT_INSECTS,

Com

 

    MAGIC_EFFECT_INSECTS        = 0x44, //68
MAGIC_EFFECT_DRAGONHEAD        = 0x45, //69
    MAGIC_EFFECT_LAST        = MAGIC_EFFECT_DRAGONHEAD,

 


 


Como arrumar o bug do npc que não compra itens com charges, ex: potions

En npc.cpp procure:

 

 


li.itemId = intValue; 

Depois adicione:
 


const ItemType& it = Item::items[li.itemId];

Procure:
 


if(readXMLInteger(tmpNode, "subtype", intValue))
li.subType = intValue;

Depois adicione:

 


else
{
if(it.stackable)
li.subType = 1;
else if(it.isFluidContainer() || it.isSplash())
li.subType = 0;
}

COMPILE/Refaça TUDO
Está Feito!
 


 


Códigos XML e Coisas que você precisa para o seu servidor, uma vez que foi atualizado (Dentro da pasta de dados do servidor)

@Use esse Item.otb e baixe o Itemx XML abaixo (It's attached)

 

 



Você deve remover essa linha em todas as runas do spells.xml.


<attribute key="charges" value="1" /> 

\/


    <item id="2261" name="destroy field rune">
        <attribute key="runeSpellName" value="adito grav" />
        <attribute key="weight" value="120" />
        <attribute key="charges" value="1" />
    </item>

 



outfit.xml

 

 

 

Conteúdo Oculto

 

 


 

Traduzido e adaptado por: Daaniel

Mano fiz exatamente como vc disse nesse tutorial passo-a-passo não pulei nenhuma parte mais quando eu vou entrar no server ele buga a maioria dos effects, você sabe como resolver esse bug se sim teria como vc me ajuda a resolver pfvrr ???

  • Respostas 6
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

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

Quem Está Navegando 0

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

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo