Ir para conteúdo

BananaFight

Conde
  • Total de itens

    702
  • Registro em

  • Última visita

  • Dias Ganhos

    5

Tudo que BananaFight postou

  1. Function onGainExp(cid, value) Criador: knightxd Descrição: Esta função é ativada quando uma criatura ganha EXP. E você pode retornar falso (return false) para que está criatura não ganhe EXP. Instalação: Creatureevent.h procure por : CREATURE_EVENT_OUTFIT, e adicione embaixo : CREATURE_EVENT_GAINEXP, Novamente, Procure por uint32_t executeOutfit(Creature* creature, const Outfit_t& old, const Outfit_t& current); e adicione embaixo: uint32_t executeGainExp(Player* player, int32_t value); Agora, Abra creatureevent.cpp e Procure por : else if(tmpStr == "outfit") m_type = CREATURE_EVENT_OUTFIT; e adicione embaixo: else if(tmpStr == "gainexp") m_type = CREATURE_EVENT_GAINEXP; Procure por: case CREATURE_EVENT_OUTFIT: return "onOutfit"; e adicione embaixo: case CREATURE_EVENT_GAINEXP: return "onGainExp"; Agora, Procure por: case CREATURE_EVENT_OUTFIT: return "cid, old, current";~ e adicione embaixo: case CREATURE_EVENT_GAINEXP: return "cid, value"; Agora, Procure por: std::cout << "[Error - CreatureEvent::executeStatsChange] Call stack overflow." << std::endl; return 0; } } embaixo adicione: uint32_t CreatureEvent::executeGainExp(Player* player, int32_t value) { //onGainExp(cid, value) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(player->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(player) << std::endl; scriptstream << "local value = " << value << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", player->getName().c_str()); env->setEvent(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(player->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushnumber(L, value); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::executeGainExp] Call stack overflow." << std::endl; return 0; } } Agora em Player.cpp procure por bool Player::gainExperience(double& gainExp e embaixo adicione: if(gainExp >= 1) { bool deny = false; CreatureEventList gainExpEvents = this->getCreatureEvents(CREATURE_EVENT_GAINEXP); for(CreatureEventList::iterator it = gainExpEvents.begin(); it != gainExpEvents.end(); ++it) { if(!(*it)->executeGainExp(this, gainExp)) deny = true; } if(deny) return false; } Exemplo de uso: function onGainExp(cid, value) print(value) end Não esqueça de registrar o evento no onlogin Considerações finais: Sim eu sei que já existe um sistema igual no xtibia, porem ele esta errado, este funciona em qualquer source. Desculpem pessoal, mais o xtibia tinha cortado um pedaço do tutorial, e ele estava incompleto, Agora ja foi corrigido.
  2. Entendo, Você poderia ao menos mostrar o versão testada no tópico para evitar esse tipo de confusão ?
  3. Tem certeza que funciona ? no getStorage o primeiro argumento é um 'uint32', um numero, e você esta tentando mandar "hostile", Só isso já causaria um bug na hora da compilação. Depois disso no creaturescript, só usando setTarget não é o suficiente para fazer com que um monstro como Rabbit ataque um player ou um summon. E se mesmo assim funcionasse, Caso duas pessoas ataquem o mesmo monstro ele iria sempre setar o target no ultimo que atacou ele, ou seja, ia ficar mudando o target, Sem contar que se sair da tela da target lost, e ele voltaria a ser passivo, Você precisaria criar uma lista com todos as criaturas que atacaram o monstro e fazer ela atacar 1 por 1 caso ainda estejam na tela, e só parar quando estiverem mortos ou tiverem re-logado.
  4. Pessoal, Estas sprites estão sujeitas a mudanças, vamos tentar melhorar o máximo o nível de spriting do projeto, mais é difícil achar alguém que seja bom, tenha tempo e seja honesto. .
  5. Como assim alex ? Ele votou no ultimo dia da votação, e sim já existia a regra dos 3 votos tanto é que o Gustavo comentou em baixo dizendo que faltou um voto, Acho a sua atitude uma palhaçada alex, Eu esperava mais de você, Você não foi justo comigo, e nem com as pessoas que votaram em mim, Isso poderia até ser considerado fraude, Levando em consideração as evidencias.
  6. O problema é que diferente do seu caso, houve uma quebra das regras, e que acabou beneficiando outro concorrente, e me prejudicando. Não acho certo sair prejudicado por isso, e não existe isso de "Se você acha que venceu e mereceu, também vencerá essa." Eu ganhei de maneira justa e sem nada a ser contestado, e agora estou lutando pelo que é meu por direito.
  7. Alex, Acho que Ouve um engano, O Tonny só tem 10 votos. O voto do JobbySantos Tonyhn Skymagnum Não deve ser levado em consideração pelo fato de não estar correto, Como um regra criada por você mesmo, era necessário o voto em 3 pessoas, o que não é o caso do jobby, e por esse motivo acho que ele não deve contar como um voto, VOCÊ DEVE VOTAR EM 3 PARTICIPANTES. E Também discordo da Hipótese de ele "completar" seu voto apos o final das votações. Espero não ser prejudicado por este ocorrido, e que vocês adm sigam as regras estipuladas antes do inicio das votações.
  8. TatianeBaraldi Seu voto não deve valer, 1° por ser fake 2° Só entrou para se votar. Posts: 2 posts Obrigado a todos que votaram em mim o/
  9. Aqui Vai minha história com o Xtibia xD
  10. Isso é parte da nova quest de rook, Você pode dar skip tutorial no primeiro npc.
  11. O 5 no opcode é meramente ilustrativo '-' Sim, tem como por em um label, Só você fazer labelName:setText(buffer) Se me lembro bem é assim. Não, não voltei a ativa, só fiz pra um amigo e resolvi compartilhar com vocês.
  12. getPlayerVocation para todas as versões com o opcode. Instalação Client OtClient/Modules/gamelib/game.lua function getPlayerVocation() local protocol = g_game.getProtocolGame() protocol:sendExtendedOpcode(25, 5) end e no seu script ProtocolGame.registerExtendedOpcode(26, function (protocol, opcode, buffer) vocation = buffer print(vocation) end ) Server creaturescripts/extendedopcode.lua function onExtendedOpcode(cid, opcode, buffer) if opcode == 25 then doSendPlayerExtendedOpcode(cid, 26, getPlayerVocation(cid)) end return true end
  13. BananaFight

    Hitler

    Você devia pensar antes de ler o que você escreve, Você sabia que o racismo em si, vem das novas gerações ?, Antes o negro era discriminado por ser diferente, e não existia esse "Racismo", onde se você chamar um negro de Negão você vai preso, Existia sim a discriminação porem ela não era 1% comparada com a de hoje. Antigamente, na época da revolução industrial, Onde a maioria de trabalhadores era branca, Se trabalhava MUITO mais tempo do que se trabalha hoje, Não Existia um legislação trabalhista como a de hoje, onde se você é demitido tem Seguro isso seguro aquilo. O ponto é, se Hitler tivesse conseguido seu objetivo hoje viveríamos em um regime ditatorial, onde o ditador diz o que é bom para você, Teríamos condições de trabalho quase comparadas com a de escravos, e não teríamos a liberdade de debater sobre esses assuntos como estamos fazendo agora. Agora antes de criar um tópico como esse, procure saber como era o regime em que o Hitler governava, e as condições das pessoas naquele regime. Como um pássaro, você não conseguiria ficar preso e sendo obrigado a fazer o que não queria, Mesmo se Hitler tivesse conseguido atingir seus objetivos, existiriam milhares de protestantes e revoluções ao longo do tempo, Buscando condições e mais liberdade para as pessoas, Mas agora imagina protestar contra o dono do mundo.
  14. BananaFight

    Directx9

    Na área de tutoriais, tem um tópico ensinando a compilar o otclient, nele você aprende a compilar o otclient para directx9
  15. BananaFight

    Neblina

    a neblina só fica no client, não existe ela no map.
  16. BananaFight

    OTClient

    windowWidth, windowHeight) Devem ser a largura e a altura em números . 150, 120)
  17. Darei 1 dia para re-upar os links, caso contrario excluirei o tópico, E se continuar essas discussões bestas vou suspender os usuários envolvidos.
  18. Falei com o Baxnie e ele me disse, que isso você pode tanto fazer pelo server ( Utilizando OpCode ), Como fazer pelo uiminimap.lua, no client.
  19. BananaFight

    Como Remover as Mounts

    Como o @GOD Gniu disse, pode trazer bug, Eu não recomendo fazer Gambiarra para depois dar um bug, e ninguém saber resolver, Então basta visitar a área de tutoriais para aprender a compilar. Duvida Sanada, Tópico fechado e movido. @off Só pra lembrar da nova regra, O titulo do tópico deve induzir aos membros sobre o assunto dentro do mesmo, Esta proibido títulos com nome que não mostram o assunto do tópico como: "Ajuda, ou Dou +REP".
  20. Amigo Estou aqui para avisar que está é uma comunidade OPEN TIBIA, ou seja não se pode comercializar nada, Sei que não é isso que você esta fazendo, porem como você mesmo escreveu : OBS: Não autorizado o uso de nenhuma sprite acima, se quiser usar alguma porfavor falar comigo. Esse tipo de "pedido" não é valido na comunidade, Veja que não quero prejudicar ninguém, mais se você esta fazendo um show off é para mostrar suas sprites, Então faça como todos os outros, bote só um pedaço dela e nunca inteira, caso você não queira compartilhar ela, Então eu e nem um outro moderador estaremos aceitando reclamações de uso de sprites sem sua "Autorização". E este recado é para todos os membros. @Topic Como eu você ainda é iniciante, e tem que melhorar muito, mais vejo que esta em um bom caminho, treine mais a cabeça dos monstros e a textura dos itens, Como o Insaend me falou uma vez, Tibia é um jogo medieval, e quanto mais as cores forem puxadas para um tom mais escuro melhor.
  21. Sanado, Fechado, Movido.
  22. Duvida Sanada, Tópico Fechado e Movido.
  23. BananaFight

    Como Remover as Mounts

    Porque diabos você ainda não compilou cara, ninguém aqui vai fazer isso pra você, ja existem tutoriais ensinando tudo isso.
  24. BananaFight

    Como Remover as Mounts

    Você recompilou as source ?
  25. BananaFight

    Como Remover as Mounts

    1° de tudo que esta na área errada 2° Que da proxima vez que você por um titulo desses eu vou deletar o tópico, Use o titulo para esclarecer o que você precisa. Voltando ao tópico: nas source do otclient, em game.cpp tem essa linha if(version >= 870) { enableFeature(Otc::GameDoubleExperience); enableFeature(Otc::GamePlayerMounts); enableFeature(Otc::GameSpellList); } creio que removendo o "enableFeature(Otc::GamePlayerMounts);" deva tirar as mounts do client. Tópico movido para a área correta.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...