Postado Julho 15, 2014 10 anos 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.cppProcure 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 jogotools.cppProcure 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: potionsEn 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 TUDOEstá 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) items.otb: items.rar Scan (By Daaniel) 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 <?xml version="1.0"?> <outfits> <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> <outfit id="2"> <list gender="0" lookType="137" name="Hunter"/> <list gender="1" lookType="129" name="Hunter"/> </outfit> <outfit id="3"> <list gender="0" lookType="138" name="Mage"/> <list gender="1" lookType="130" name="Mage"/> </outfit> <outfit id="4"> <list gender="0" lookType="139" name="Knight"/> <list gender="1" lookType="131" name="Knight"/> </outfit> <outfit id="5" premium="yes"> <list gender="0" lookType="140" name="Noblewoman"/> <list gender="1" lookType="132" name="Nobleman"/> </outfit> <outfit id="6" premium="yes"> <list gender="0" lookType="141" name="Summoner"/> <list gender="1" lookType="133" name="Summoner"/> </outfit> <outfit id="7" premium="yes"> <list gender="0" lookType="142" name="Warrior"/> <list gender="1" lookType="134" name="Warrior"/> </outfit> <outfit id="8" premium="yes"> <list gender="0" lookType="147" name="Barbarian"/> <list gender="1" lookType="143" name="Barbarian"/> </outfit> <outfit id="9" premium="yes"> <list gender="0" lookType="148" name="Druid"/> <list gender="1" lookType="144" name="Druid"/> </outfit> <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"/> <list gender="1" lookType="145" name="Wizard"/> </outfit> <outfit id="11" premium="yes"> <list gender="0" lookType="150" name="Oriental"/> <list gender="1" lookType="146" name="Oriental"/> </outfit> <outfit id="12" premium="yes"> <list gender="0" lookType="155" name="Pirate"/> <list gender="1" lookType="151" name="Pirate"/> </outfit> <outfit id="13" premium="yes"> <list gender="0" lookType="156" name="Assassin"/> <list gender="1" lookType="152" name="Assassin"/> </outfit> <outfit id="14" premium="yes"> <list gender="0" lookType="157" name="Beggar"/> <list gender="1" lookType="153" name="Beggar"/> </outfit> <outfit id="15" premium="yes"> <list gender="0" lookType="158" name="Shaman"/> <list gender="1" lookType="154" name="Shaman"/> </outfit> <outfit id="16" premium="yes"> <list gender="0" lookType="252" name="Norsewoman"/> <list gender="1" lookType="251" name="Norseman"/> </outfit> <outfit id="17" premium="yes"> <list gender="0" lookType="269" name="Nightmare"/> <list gender="1" lookType="268" name="Nightmare"/> </outfit> <outfit id="18" premium="yes"> <list gender="0" lookType="270" name="Jester"/> <list gender="1" lookType="273" name="Jester"/> </outfit> <outfit id="19" premium="yes"> <list gender="0" lookType="279" name="Brotherhood"/> <list gender="1" lookType="278" name="Brotherhood"/> </outfit> <outfit id="20" premium="yes"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> <outfit id="21" premium="yes"> <list gender="0" lookType="324" name="Yalaharian"/> <list gender="1" lookType="325" name="Yalaharian"/> </outfit> <outfit id="22" premium="yes"> <list gender="0" lookType="336" name="Warmaster"/> <list gender="1" lookType="335" name="Warmaster"/> </outfit> <outfit id="23" default="0"> <list gender="0" lookType="329" name="Wife"/> <list gender="1" lookType="328" name="Husband"/> </outfit> <outfit id="24" premium="yes"> <list gender="0" lookType="366" name="Wayfarer"/> <list gender="1" lookType="367" name="Wayfarer"/> </outfit> </outfits> Traduzido e adaptado por: Daaniel Ot Design: https://discord.gg/VgtVRNmCD7
Postado Julho 19, 2014 10 anos Daniel, e pra atualizar de 10.37 para 10.50? eu tenho um items.otb.. items.xml vou usar o do 10.37 mesmo... e dai na coisa da troca das effects de spell... sabe me dizer como devo prosseguir? Se Ajudei Rep+ pra mim
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.