Jump to content

Tony Araujo

Visconde
  • Content Count

    443
  • Joined

  • Last visited

  • Days Won

    21
  • xPoints

    0 [ Donate ]

Tony Araujo last won the day on June 26

Tony Araujo had the most liked content!

About Tony Araujo

  • Rank
    OrochiElf

Perfil

  • Gênero
    Masculino

Informações

  • Forma que conheci o xTibia
    Sites de Busca
  • Sou
    Programador

Recent Profile Visitors

4.424 profile views
  1. [C++] getItemAttributes(itemUID) testado: TFS - 0.3.6 (possível instalação em qualquer versão, basta fazer as modificações conforme a estrutura de cada versão) autor: Tony Araújo (OrochiElf) Iae galera, de boas ? Então, hoje na correria do dia parei pra postar aí pra vocês, uma função na qual acredito que pode ajudar bastante, principalmente se vocês trabalham com muitos atributos em um item. Bom, a função é basicamente a seguinte, ela retorna uma tabela com todos os atributos que um item possuir, sendo a estrutura: {["attribute"] = value} Sem mais, vamos a instalação: Vá em itemattributes.h, e procure por: typedef std::map<std::string, ItemAttribute> AttributeMap; AttributeMap* attributes; Note que ela está dentro do protected, então agora faça o seguinte. 1. Copie a linha e a apague do protected: typedef std::map<std::string, ItemAttribute> AttributeMap; 2. Cole acima da classe ItemAttributes, ficando algo como: typedef std::map<std::string, ItemAttribute> AttributeMap; class ItemAttributes Feito isso, procure a função: boost::any getAttribute(const std::string& key) const; E abaixo adicione: AttributeMap* getAttributes() const {return attributes;} Agora, vá em luascript.h e procure por: static int32_t luaGetItemAttribute(lua_State* L); E abaixo adicione: static int32_t luaGetItemAttributes(lua_State* L); Feito, vá em luascript.cpp e procure por: lua_register(m_luaState, "getItemAttribute", LuaScriptInterface::luaGetItemAttribute); E abaixo adicione: //getItemAttributes(uid) -- Tony Araújo (OrochiElf) lua_register(m_luaState, "getItemAttributes", LuaScriptInterface::luaGetItemAttributes); Agora pra finalizar com a cereja do bolo, procure pela função: int32_t LuaScriptInterface::luaGetItemAttribute(lua_State* L) Então, abaixo dessa função, adicione esta função: E "isso é tudo pessoal", até a próxima! xD
  2. Certo, cê instalou o código ? daí deu algum problema de funcionamento? porque tipo, o sistema deve funcionar exatamente como você quer. você só precisa adicionar o atributo "unique" no item, com valor 1, e o player não pode se livrar dele de forma alguma
  3. Eu não entendi muito das dúvidas, se alguém puder explicar exatamente o que tá precisando, pra eu conseguir ajudar xD
  4. Valeu galera xD Caso tenham alguma outra função que sintam necessidade e tenham dificuldades, pode mandar as sugestões aí, estarei sempre olhando e trazendo novas funções Tamujunto!
  5. [C++] getContainerItems(containerUID) testado: TFS - 0.3.6 (porém acredito que funcione em outros) autor: Tony Araújo (OrochiElf) Fala galera, de boas ? Quanto tempo né? xD Hoje, vim por estas bandas para compartilhar um code que talvez ajude bastante gente, criei ela pois senti necessidade de trabalhar com items que estariam dentro de um certo "container", no caso backpacks, caixas, e qualquer outro tipo de container. Ela consiste em retornar uma tabela com todos os items que existir dentro daquele container, seja dentro de outros containers e afim. Sua aplicação é bem básica, no final deixarei um exemplo. Sem mais, vamos a instalação: Vá em luascript.h, e procure pela linha: static int32_t luaGetContainerItem(lua_State* L); E abaixo você adiciona a linha: static int32_t luaGetContainerItems(lua_State* L); Agora vá em luascript.cpp, procure pela linha: lua_register(m_luaState, "getContainerItem", LuaScriptInterface::luaGetContainerItem); Logo abaixo, adicione: //getContainerItems(uid) lua_register(m_luaState, "getContainerItems", LuaScriptInterface::luaGetContainerItems); Continuando no luascript.cpp, você procura pela função: int32_t LuaScriptInterface::luaGetContainerItem(lua_State* L) E abaixo desta função, você adiciona esta: Bom, feito isso, apenas compilar novamente suas sources. Façam bom proveito xD Aconselho que usem o build all, para evitar qualquer tipo de problema de anexamento do código Abaixo, um sistema de autoloot, como exemplo de uso da função.
  6. É com grande honra que tenho o prazer de anunciar que o servidor oldPokemon online está oficialmente lançado, trazendo consigo toda a nostalgia do poketibia oldschool e com muitas outras novidades em sua essência. Eu convido-os para viajar ao passado, mais especificadamente 2009 onde todo esse sonho começou e onde teve seus dias mais gloriosos. Vamos nessa? Bom, junto ao servidor, como lançamos juntos ao feriado de páscoa, estamos com um singelo evento de páscoa ativo. Para todos os jogadores que criarem suas contas e logarem pelos próximos 15 dias, automaticamente ganharão a outfit exclusiva de páscoa. Site: http://www.oldpokemon.online Discord: https://discord.gg/MzT2EAN Facebook: https://www.facebook.com/oldPokemonOT Instagram: https://www.instagram.com/oldPokemon.online
  7. Eai galera, tranquilo? Ontem aconteceu do meu servidor dar um crash, na hora do save, que eu não tinha visto ainda. Porém, não é em todo save, o servidor vai salvando normalmente, porém chega uma hora que ele crasha. Ele deu o local no gdb do linux, porém a linha do crash é apenas uma query como várias outras, sem nada de especial. Linha: query << "DELETE FROM `player_caughts` WHERE `player_id` = " << player->getGUID(); Função: // Save Caught query.str(""); query << "DELETE FROM `player_caughts` WHERE `player_id` = " << player->getGUID(); if(!db->executeQuery(query.str())) return false; query_insert.setQuery("INSERT INTO `player_caughts` (`player_id`, `pokename`, `catched`, `balltype`, `pokeball`, `greatball`, `superball`, `ultraball`, `saffariball`) VALUES "); for(PokeBallsMap::iterator it = player->pokeBallsMap.begin(); it != player->pokeBallsMap.end(); ++it) { sprintf(buffer, "%u, %s, %u, %u, %u, %u, %u, %u, %u", player->getGUID(), db->escapeString(it->first).c_str(), it->second.catched, it->second.ball, it->second.poke, it->second.great, it->second.super, it->second.ultra, it->second.saffari); if(!query_insert.addRow(buffer)) return false; } if(!query_insert.execute()) return false; Erro:
  8. E seguimos mais um dia no Beta Test. Vai ficar de fora dessa?
  9. Fala galera, tranquilão? Bom, hoje eu to aqui pra apresentar pra vocês o meu xodó. O projeto no qual já trabalho tem 4 anos, e de muita luta e sofrimento kkkkkkk, afinal, passamos por trancos e barrancos. Foi um servidor que eu pensei em fazer diferente, a forma que ele funcionava. Trabalhei em cima de uma source até eu criar a minha própria, voltada completamente para pokémon, para ter um melhor desempenho, tirando todas as funções do tibia e deixando o servidor bem mais leve. Bom, vamos falar exatamente o que é o oldPokemon. Eu criei esse servidor, junto com meu primo João, na ideia de trazer o oldschool do poketibia de volta a vida. Eu vejo muita gente comentando em vários forums / canais de poketibia / grupos do fb, que sentem saudades do antigo SvkE, e olha, eu também sentia, então foi de onde partimos nessa dura jornada de trazer um servidor que fosse fielmente o SvkE, porém com vários sistemas novos e funções inovadoras em nosso client e servidor. É com grande alegria que compartilho com vocês o Beta Test deste servidor, após uma longa caminhada. Algumas imagens do servidor: O servidor está contando com os seguintes sistemas: E MUITO MAIS! Para criar a conta, basta entrar no 1/1 e criar pelo Account Manager. Discord Link: https://discord.gg/UsKAPP2 Download Link (Atualizado 10/04): [MEGA.NZ]: https://mega.nz/#!hltigY4Z!CEncVtvPfuUzATIgK6Y9rPbrXGsCJ2xR6GxnCuWC_Dg [MEDIAFIRE]: https://www.mediafire.com/file/cbe23xa63trdc7t/oldPokemon_%2802.04%29.rar/file [DROPBOX]: https://www.dropbox.com/s/frcj0fotzfp2k56/oldPokemon%20%2802.04%29.rar?dl=0 SCAN DO CLIENT: https://www.virustotal.com/gui/file/64cb6d5bb3896fba98408336d4671e61b6c49bb57faf782f3f9bcfd393880f8d/detection
  10. É aquela tag <flag hostile="0"/> do monster, se for 0, ele é passivo
  11. Obrigado por contribuir com o código brother ❤️
  12. De nada brother. Eu lembro, tinha um tutorial antigo, porém eu vi muita gente tendo muita dificuldade pra instalar, e o código também tava um pouco confuso. Daí resolvi postar esse aqui pra galera Temos sim brother kkkkk, www.facebook.com/oldPokemonOT inclusive to fazendo open test nele hoje. Se quiser aparecer por lá. Volta as 17h Obrigado mano ;D
  13. [C++] Monsters Passive System testado: TFS - 0.3.6 (porém acredito que funcione em outros) autor: Tony Araújo (OrochiElf) Eai galera, tranquilão? Estou eu aqui novamente, e hoje eu vou compartilhar com vocês um sistema que eu vejo muitas pessoas pedindo e buscando ajuda (principalmente no meu inbox kkkkk), seria ele o sistema de monstros passivos, que consiste naquela criatura que só ataca o jogador que o atacou, caso contrário ele fica andando normalmente. O sistema foi desenvolvido em cima do código do TFS 0.3.6, porém caso instale prestando bastante atenção em outras versões, funcione, talvez seja necessário mudar algum código, porém bem simples. Bom, vamos ao sistema. Em creature.cpp, procure pela função: bool Creature::setAttackedCreature(Creature* creature) E altere esta condição: if(attackedCreature) { onAttackedCreature(attackedCreature); attackedCreature->onAttacked(); } Por esta: if(attackedCreature) { onAttackedCreature(attackedCreature); attackedCreature->onAttacked(); attackedCreature->addDamagePoints(this, 0); } Procure pela função: void Creature::addDamagePoints(Creature* attacker, int32_t damagePoints) E troque por esta: Agora vá em monster.cpp e procure pela função: void Monster::onThink(uint32_t interval) E dentro dela, procure pela condição: else if(!targetList.empty()) E troque por esta: else if(!targetList.empty()) { if(!followCreature || !hasFollowPath) searchTarget(); } Procure pela função: bool Monster::selectTarget(Creature* creature) E troque por esta: Bom galera, espero que gostem e que façam bom uso. Qualquer bug ou problema, comenta aí pra eu resolver.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...