Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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

<?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

Link para o post
Compartilhar em outros sites

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 ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites
  • 4 months later...
  • 1 month later...
  • 2 years later...
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 ???

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 prot def
      Versão Beta já disponível no site: http://otshinobi.servegame.com/ 
      Servidor Online, aproveite e crie sua conta e baixe o client para Pc ou Android, todos os dados do seu personagem permanecerão intactos na versão definitiva que será lançada em breve!









      Já disponível em: Client 8.54 (Old) / New Client e Client Mobile para Android
      Temos 27 Vocações disponíveis
      Personagens FREE: Naruto, Sasuke, Sakura, Kakashi, Rock Lee, Shikamaru, Neji, Tenten, Hinata, Killer Bee, Gaara, Kiba, Temari, Kankuro, Shisui e Jiraiya.
      Personagens Shop Free (compre com Gold dentro do game): Obito, Tsunade, Kisame e Itachi.
      Personagens Shop VIP: Itachi (Shop), Obito (Shop) Minato (Shop) Madara (Shop) Tsunade (Shop) Hashirama (Shop) Nidaime (Tobirama) (Shop) Nagato (Shop) Raikage (Shop) Kisame (Shop)  (Você pode donatar pelo LivePix)
      Personagens Especiais obtidos através de eventos dentro do game: Orochimaru e Yamato.
      Transformações, jutsus e habilidades exclusivas para cada vocação
      Upe se divertindo pelo mapa, rate de experiência desafiante, ganhe jutsus e transformações exclusivas ao upar 
      Mapa exclusivo que terá atualizações periódicas:
      -> vilas disponíveis até o momento: Vila da Folha, Vila da Areia, Vila da Névoa, Vila da Pedra, Vila da Nuvem Vila da Chuva (Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure) e País das Ondas.
      -> Area Vip: Várias Hunts para upar e farmar (Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island) e Vila Shinobi Exclusiva para usuários Vip
      Sistema de graduação ninja: genin, chunin, jounin e anbu - Evolua seu ranking shinobi, apenas os merecedores se tornarão Kage.
      Exame Chunin completo, reviva o nostálgico arco do anime para se tornar Chunin
      Crie sua própria guild ou entre em uma existente
      Organização Akatsuki - torne-se membro da maior organização criminosa do mundo ninja
      Rank level (Figure entre os melhores jogadores do jogo)
      Reviva as sagas de Naruto Clássico e Naruto Shippuden
      Sistema de guilds - crie ou entre em uma guild e divirta-se com seus amigos
      Mundo PVP
      Eventos PVP
      Eventos de invasão, proteja a vila da destruição: Invasões em Konoha (Pain e Orochimaru) e Invasão de Deidara e Sasori em Sunagakure
      Compra e venda de casas para usuários Vip
      Npc Shop e NPC Shop Event - compre sua VIP ACCOUNT E VOCAÇÃO VIP ''totalmente'' GRÁTIS utilizando a moeda do jogo (GOLD).
      Npc Minoru - leva você diretamente para outras vilas e várias hunts do mapa. Area Free: Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure, Valley of the End, South Forest, South Island, West Desert. Area VIP: Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island, Vila Shinobi area com casas exclusivas para compra.
      Reviva vários arcos do Anime: Lute contra diversos personagens do anime com habilidades únicas
      Sistema Chakra Bijuu - torne-se jinchuuriki das bestas de cauda e utilize seu poder em batalha
      Diversas armas e equipamentos do anime
      Tasks da Tsunade - derrote os shinobi mais poderosos do mundo ninja e ganhe recompensas em Gold: 
      deidara da pedra 
      hidan das fonte
      itachi da folha 
      kabuto da folha
      kakuzo da cachoeira 
      kisame da nevoa
      konan da chuva
      madara da folha
      nagato da chuva
      orochimaru da folha
      pain da chuva
      sasori da areia
      tobi da folha
      Vários Npcs de Tasks espalhados pelo mapa: derrote inimigos e traga itens em troca de experiência e recompensas.
      Quests: Temos várias Quests Disponíveis e várias outras em desenvolvimento:
      ->Quest Nto Points FREE - Ganhe Nto Points para comprar itens vip com o Npc Shop (compre Premium Account, Vocações e itens)
      -> Shukaku Quest - Quest realizada em quatro pessoas 
      -> Sambi Quest - Quest realizada em duas pessoas 
      -> Akatsuki Ring Quest 
      -> Kurama Quest
      -> Quest Templo do Fogo
      -> Minato Quest
      -> Itachi Quest 
      -> Sasuke Boss Quest 
      -> Hidan Quest
      -> Kakuzo Quest 
      -> Sasori Quest 
      ->Pain Quest
      ->Tobirama Quest
      Jogo utiliza base parecida com o ntoultimate dos velhos tempos.
      Jogue e ajude a manter o servidor aberto até o lançamento da versão final
      Crie sua conta e baixe o jogo no site oficial: otshinobi.servegame.com 
      DIVIRTA-SE!
      DISPONÍVEL TAMBÉM CLIENT MOBILE!

    • 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
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo