Welcome to xTibia - Sua comunidade de Otserv e Tibia

Registre-se para utilizar nossas ferramentas e baixar conteúdos. Quando registrado e logado em sua conta, lhe garantimos uma experiência incrível em nossa comunidade!

Kydrai

Barão
  • Conteúdo

    246
  • Registrado

  • Última visita

  • Days Won

    10

Sobre Kydrai

  • Rank
    "Keep Your Mind Wide Open"
  • Data de Nascimento 11-09-1991

Informações

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

Últimos Visitantes

11.165 visualizações
  1. dúvida

    Na verdade as storages são utilizadas nas criaturas em geral, tanto que a função original é doCreatureSetStorage/getCreatureStorage (na versão 0.3.6 e 0.4). A única diferença de colocar no player é que salva no banco de dados no save, já no monstro/npc não salva quando ele morre ou desaparece. E também não tem como uma storage no monstro sobrescrever uma no player, como você disse a storage vai estar vinculada a um uid. No máximo, em alguns casos, você vai precisar checar se a criatura é um monstro, npc ou player nos scripts.
  2. Precisa remover o break da função luaDoCreatureSetNick para o nome ser enviado para todos os jogadores na tela. E também tem que arrumar o que a função lua irá retornar, no caso acho que seria bom um false ou true. O certo seria assim: int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L) { //doCreatureSetNick(cid, nick) ScriptEnviroment* env = getEnv(); std::string nick = popString(L); Creature* creature = env->getCreatureByUID(popNumber(L)); if (creature) { SpectatorVec list; g_game.getSpectators(list, creature->getPosition()); Player* player = NULL; creature->Nick = nick; for (SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) { if (player = (*it)->getPlayer()) { player->sendCreatureNick(creature); } } lua_pushboolean(L, true); } else { lua_pushboolean(L, false); } return 1; }
  3. Não sei o que vocês conversaram, mas sei que o Iunix não está no Storm, e o Horktan já está de saco cheio do Sushi. Também não sei sua relação com o Sushi, mas é muito difícil não ser arrogante com uma pessoa tão odiada pelo tanto que ela prejudicou. Ainda mais depois de saber que tão falando com todos os membros da equipe para tentar comprar o servidor, tiveram coragem até de pedir para a ServerCore que cuida dos dedicados vender. Enfim, é isso, só queria saber mesmo o que tinha motivado a fazer um ataque. Pedi para fecharem esse tópico, visto que não é uma discussão adequada para o fórum.
  4. Onde está a arrogância em não querer vender o servidor pra você? Ou eu perdi alguma parte da história? De qualquer forma acho que não faz sentido ficar abrindo tópico para ficar se mostrando por um motivo tão infeliz.
  5. Bem legal esse sistema, deixa o jogador mais livre dentro do jogo. Ainda acho que deveriam ter orientado a postar em OTserv Media ou criar uma área pra Show-Off.
  6. O cálculo do tempo para a passada é praticamente [b]((1000 * ground_speed) / monster_speed) * lastStepCost[/b] [b]lastStepCost [/b]é o valor do último passo, 1 pra quando anda reto e 2 pra diagonal. Com isso deve chegar a um valor aproximado para colocar no addEvent.
  7. As duas sugestões dão o mesmo resultado, eu só alterei a velocidade da passada pra fazer o efeito dele andando. 150 foi uma sugestão que aparentemente deu na mesma do cliente do Tibia aqui, e quanto maior esse valor mais rápido vai ser o efeito pra ele andar até o tile. Vocês vão precisar de alguma forma pra calcular o tempo das passadas e sincronizar o cliente com o servidor, isso varia pra cada tile e speed de monstro. O melhor mesmo é pelas sources que já tem tudo isso pronto.
  8. Isso de andar lento é problema do script que não movimenta a creature no tempo certo. Sobre o problema de ir teleportando vejo 2 formas de resolver, pelo que testei a velocidade de uma creature com 0 de speed fica em média 150 no cliente, então precisa fazer algo assim: No [b]src/client/creature.cpp:[/b] [b]1ª forma é trocar quando pega a velocidade do passo:[/b] Troque: [CODE] int Creature::getStepDuration(bool ignoreDiagonal, Otc::Direction dir) { int speed = m_speed; if(speed < 1) return 0; [/CODE] Por: [CODE] int Creature::getStepDuration(bool ignoreDiagonal, Otc::Direction dir) { int speed = m_speed; if(speed < 1) speed = 150; [/CODE] [b]2ª forma é colocar um speed mínimo quando coloca speed 0:[/b] Troque: [CODE] void Creature::setSpeed(uint16 speed) { uint16 oldSpeed = m_speed; m_speed = speed; // speed can change while walking (utani hur, paralyze, etc..) if(m_walking) nextWalkUpdate(); callLuaField("onSpeedChange", m_speed, oldSpeed); } [/CODE] Por: [CODE] void Creature::setSpeed(uint16 speed) { if(speed < 1) speed = 150; uint16 oldSpeed = m_speed; m_speed = speed; // speed can change while walking (utani hur, paralyze, etc..) if(m_walking) nextWalkUpdate(); callLuaField("onSpeedChange", m_speed, oldSpeed); } [/CODE]
  9. Mostra o script do order, fica mais fácil de achar o problema vendo as funções que ele usa.
  10. E se eu tiver um código c++ ou uma dúvida não relacionada a mods e sim ao cliente? Ou algo que já existe lá, o tutorial de compilação. Pelo que entendi não teria onde postar, já que essa estrutura deixa a entender que só pode ser relacionado a mods. A única vantagem que vi nessa estrutura foi o "Dúvidas e pedidos respondidos".
  11. Muito bom, faz tempo que não via alguém falando desse apng. Aqui funcionou de boa.
  12. Nesse caso acho que seria melhor fazer por lua. Só ir no modules\game_things\things.lua e dentro do load() colocar: [CODE] if version >= 840 then g_game.enableFeature(GameBlueNpcNameColor) end[/CODE]
  13. dúvida

    Não tem nenhum erro aí. Você só executou o [color=#282828][font=helvetica, arial, sans-serif]autogen.sh, agora executa o configure e o build.sh.[/font][/color] ./configure --enable-mysql --enable-server-diag --enable-root-permission (ou com as flags que quiser) ./build.sh
  14. Não gosto muito de geradores, mas fico legal e com certeza ajuda um pessoal que quer aprender ou agilizar o começo de um script. Se você colocar um visualizador do script em tempo real fica melhor ainda.
  15. Decidir liberar pro público pode te gerar uma grande decepção, a não ser que você tenha certeza que não pretende mais utilizá-lo, o que me parece meio cedo pra dizer. Você está sozinho no projeto? Porque com uma equipe legal acho que o tempo disponível só precisa ser bem dividido e pelo que vi não faz sentido desistir do projeto se ele está ficando bom e quase pronto. Iniciar o servidor acho que pode ser considerado uma das partes mais chatas, porque parece que nunca fica pronto, mas é só colocar online para ver ele evoluindo mesmo. Hoje em dia quem libera códigos assim ou está fazendo por aprender, ou divulgando o seu servidor ou apenas liberando porque alguém vazou e não quer perder os créditos pelo trabalho. Um ou outro vai liberar algo como agradecimento pela ajuda de outras pessoas, ou simplesmente por querer ajudar ao próximo. Parece que o pessoal tem mais interesse em não ajudar os "sanguessugas" do que ajudar quem tem interesse. Como eu nunca fiz um servidor pro público não sei bem o que pensam :p, mas com certeza uma das decepções é ver o pessoal nem tentar ajudar a corrigir os erros. @nociam Pokebro não é baseado no dash, talvez tenha alguma ideia tirada dele o que acho difícil já que ele é baseado em outros, mas de código garanto que não tem nada a ver e nunca teve .-.
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.