Refe 320 Postado Setembro 19, 2017 Share Postado Setembro 19, 2017 Olá, hoje eu vim postar a função creature:soltaMagia("nomedamagia") Para o TFS 1.X. Bom, eu estou fazendo um Poketibia com base no TFS 1.3 e vou postar essa função para quem quiser seguir o mesmo. Segue um exemplo de uso: Mostrar conteúdo oculto function onSay(player, words, param) poke = player:getSummons()[1] poke:soltaMagia(pokes[poke:getName()][1].name) player:say(poke:getName().."use "..pokes[poke:getName()][1].name, TALKTYPE_ORANGE_1) end Em LUASCRIPT.CPP Abaixo de registerMethod("Player", "addExperience", LuaScriptInterface::luaPlayerAddExperience); Adicione: registerMethod("Creature", "soltaMagia", LuaScriptInterface::luaSoltaMagia); Logo abaixo da função: int LuaScriptInterface::luaCreatureGetEvents(lua_State* L) Adicione: int LuaScriptInterface::luaSoltaMagia(lua_State* L) { //creature:soltaMagia("name") const std::string& spellName = getString(L, 2); if(Creature* creature = getUserdata<Creature>(L, 1)) { InstantSpell* spell = g_spells->getInstantSpellByName(spellName); if(!spell) { lua_pushboolean(L, false); return 1; } Creature* target = creature->getAttackedCreature(); if(target) spell->castSpell(creature, target); else spell->castSpell(creature, creature); lua_pushboolean(L, true); } else { lua_pushboolean(L, false); } return 1; } Em luascript.h registre: static int luaSoltaMagia(lua_State* L); static int luaSoltaMagia(lua_State* L); Agora é só compilar a proveitar Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/ Compartilhar em outros sites More sharing options...
Noninhouh 118 Postado Setembro 19, 2017 Share Postado Setembro 19, 2017 Poxa, legal. Deixa eu ver se entendi direito kk Essa spell seria da pasta "/spells/scripts/" ?? Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/#findComment-1722111 Compartilhar em outros sites More sharing options...
DarkWore 112 Postado Setembro 19, 2017 Share Postado Setembro 19, 2017 Muito Bom, Obrigado por Postar. Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/#findComment-1722112 Compartilhar em outros sites More sharing options...
Visitante Postado Setembro 19, 2017 Share Postado Setembro 19, 2017 Em 19/09/2017 em 02:17, Noninhouh disse: Poxa, legal. Deixa eu ver se entendi direito kk Essa spell seria da pasta "/spells/scripts/" ?? Expand é uma fuãnço, pode ser utilizada em qualquer script ._. Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/#findComment-1722113 Compartilhar em outros sites More sharing options...
Noninhouh 118 Postado Setembro 19, 2017 Share Postado Setembro 19, 2017 (editado) Em 19/09/2017 em 02:29, Ceetros disse: é uma fuãnço, pode ser utilizada em qualquer script ._. Expand Minha dúvida é se quando eu usar essa função, a spell que vai puxar, será dessa pasta que eu falei Editado Setembro 19, 2017 por Noninhouh Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/#findComment-1722114 Compartilhar em outros sites More sharing options...
Visitante Postado Setembro 19, 2017 Share Postado Setembro 19, 2017 Em 19/09/2017 em 02:38, Noninhouh disse: Minha dúvida é se quando eu usar essa função, a spell que vai puxar, será dessa pasta que eu falei Expand spells.xml Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/#findComment-1722118 Compartilhar em outros sites More sharing options...
BananaFight 196 Postado Dezembro 18, 2017 Share Postado Dezembro 18, 2017 Só algumas dicas de convenção, utilize a nomenclatura em inglês para manter o seus códigos organizados. Você também pode melhorar a estrutura do seu código, por exemplo, não tem sentido alocar espaço para o nome da magia e depois verificar se a creature existe, pq se a creature não existir vc esta alocando espaço para o nome da magia sem necessidade, isso só vai gastar processamento e memoria do seu servidor, então vc primeiro verifica se a creature existe, caso ela exista vc vai para o segundo passo que é verificar se a spell existe, caso as 2 condições sejam verdadeiras vc executa o resto do código. int LuaScriptInterface::luaCreatureCastSpell(lua_State* L) { //creature:castSpell(name) Creature* creature = getUserdata<Creature>(L, 1) if(!creature) { lua_pushboolean(L, false); return 1; } const std::string& spellName = getString(L, 2); InstantSpell* spell = g_spells->getInstantSpellByName(spellName); if(!spell) { lua_pushboolean(L, false); return 1; } Creature* target = creature->getAttackedCreature(); if(target) spell->castSpell(creature, target); else spell->castSpell(creature, creature); lua_pushboolean(L, true); return 1; } Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/#findComment-1725900 Compartilhar em outros sites More sharing options...
otavio101 15 Postado Março 2, 2018 Share Postado Março 2, 2018 (editado) @Ceetros Me parece que não funciona na atual versão do TFS confirma? player:soltaMagia("magia1") edit.: funciona, só que uma magia como avalanche precisa de target. Editado Março 4, 2018 por otavio101 Link para o comentário https://xtibia.com/forum/topic/246243-creaturesoltamagianame-para-tfs-1x/#findComment-1726741 Compartilhar em outros sites More sharing options...
Posts Recomendados