Postado Abril 4, 2023 2 anos Alguém poderia me ajudar com essa spell? No caso seria o seguinte, ao usar a spell, o player por 2 segundos vai tomar 50% de dano reduzido de todas as fontes de dano ao redor dele. OTX2 - 8.60 Inicialmente eu achei que seria uma spell simples mas tive muita dificuldade em fazer ela, se puderem criar para mim ou me falarem se preciso alterar algo na source ficaria grato.
Postado Abril 12, 2023 2 anos Não sei quais as funções do OTX2 mas no TFS 1.x: login.lua: player:registerEvent("shield1") creaturescripts.xml <event type="healthchange" name="shield1" script="shield1.lua"/> shield1.lua function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if primaryType == COMBAT_HEALING or secondaryType == COMBAT_HEALING then return primaryDamage, primaryType, secondaryDamage, secondaryType end if creature and creature:isPlayer() then if creature:getCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, 56) then creature:getPosition():sendMagicEffect(CONST_ME_YELLOWENERGY) primaryDamage = primaryDamage / 2 secondaryDamage = secondaryDamage / 2 end end return primaryDamage, primaryType, secondaryDamage, secondaryType end Spell: local combat = Combat() combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN) combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0) local protect = Condition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT) protect:setParameter(CONDITION_PARAM_SUBID, 56) protect:setParameter(CONDITION_PARAM_BUFF_SPELL, true) protect:setParameter(CONDITION_PARAM_TICKS, 10 * 1000) combat:setCondition(protect) function onCastSpell(creature, var) return combat:execute(creature, var) end Editado Abril 12, 2023 2 anos por GamerGoiano (veja o histórico de edições)
Postado Abril 13, 2023 2 anos <spell name="Spell" words="exura sio" level="50" mana="100" soul="2" cooldown="20" group="healing" premium="no"> <description>Reduces damage taken by 50% for 2 seconds.</description> <targetconditions /> <effect self="1" /> <events /> </spell> function onCastSpell(creature, var) -- Definir a duração e o alcance da habilidade local duration = 2 -- duração da habilidade em segundos local radius = 10 -- raio de alcance da habilidade em células -- Definir o percentual de dano reduzido local damageReduction = 0.5 -- 50% de redução de dano -- Variável para controlar se a habilidade está ativa local spellActive = false -- Reduzir o dano recebido pelo jogador em 50% creature:addDamageReduction(damageReduction) -- Criar animações e efeitos visuais para mostrar que a habilidade está ativa creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) -- Esperar o tempo de duração da habilidade addEvent(function() -- Voltar ao percentual normal de dano recebido creature:addDamageReduction(-damageReduction) -- Remover animações e efeitos visuais da habilidade creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) end, duration * 1000) return true end Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código. #OpenSource #Programação #Contribuição
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.