Postado Novembro 11, 2014 10 anos Olá galera do TK, A um certo tempo venho tentando criar uma magia que tem roubo de vida, porém sem sucesso! Pedi ajuda aqui no fórum e ninguém conseguiu ou se dispos a me ajudar, então.. Gostaria na ajuda de uma spell que seria quase igual uma de LifeSteal.. porém diferente (kkkk) Seria com 2 combats, 1 que causa dano, e outro que cura.. Uma magia dentro da outra, um exemplo Um exori tera, com um exura dentro .. Exori Tera local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Exura local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function getCombatFormulas(cid, lv, maglv) local formula_min = ((lv*0.25 + maglv*3) * 1.62) local formula_max = ((lv*0.25 + maglv*3) * 1.78) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") function onCastSpell(cid, var) return doCombat(cid, combat, var) end A minha pergunta é a seguinte: "Tem como juntar as 2 spells em 1 só ?" Se SIM! Alguém pode me ajudar ? REP+ pra quem conseguir me ajudar! Programador/Scripter/Mapper nível NOOB ?
Postado Novembro 12, 2014 10 anos Pois então... É praticamente impossível. O que daria pra fazer é juntar o exura a uma magia de área. Edit: Tipo assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_PLANTATTACK) local combatExura = createCombatObject() setCombatParam(combatExura, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combatExura, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combatExura, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combatExura, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(cid, level, maglevel) min = ((level / 5) + (maglevel * 1.4) + 8) max = ((level / 5) + (maglevel * 1.8) + 11) return min, max end setCombatCallback(combatExura, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local area = createCombatArea(AREA_CROSS6X6) setCombatArea(combat, area) function onGetFormulaValues(cid, level, maglevel) min = -((level*0.2) + (maglevel*5)) max = -((level*0.2) + (maglevel*10)) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) doCombat(cid, combat, var) return doCombat(cid, combatExura, var) end Editado Novembro 12, 2014 10 anos por mateusak (veja o histórico de edições) Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta! NÃO CLIQUE AQUI! NEM AQUI! ________________________________________________________________________________________________________________________________________________________________________________________________________________________ “A imaginação é mais importante que o conhecimento.” Albert Einstein
Postado Novembro 12, 2014 10 anos Autor Seu tesudo, funcionou! Não foi bem do jeito que eu queria, mas mesmo assim, você propôs e deu certo! REP+ Vou tentar colocar OnTarget, se eu conseguir eu posto aqui! Procurei em vários fórums além do TK, achei alguns de Ontarget, porém não funcionava.. mesmo com creaturescripts '-' Obrigado a força ai @mateusak /////edit você sabe me explicar porque é 'quase impossível' fazer Ontarget? Editado Novembro 12, 2014 10 anos por Xiolones (veja o histórico de edições) Programador/Scripter/Mapper nível NOOB ?
Postado Novembro 12, 2014 10 anos Seu tesudo, funcionou! Não foi bem do jeito que eu queria, mas mesmo assim, você propôs e deu certo! REP+ Vou tentar colocar OnTarget, se eu conseguir eu posto aqui! Procurei em vários fórums além do TK, achei alguns de Ontarget, porém não funcionava.. mesmo com creaturescripts '-' Obrigado a força ai @mateusak /////edit você sabe me explicar porque é 'quase impossível' fazer Ontarget? Sei sim, as magias "onTarget" usam a tag "casterTargetOrDirection="1""(pelo menos no TFS 1.0) e desse jeito o que aconteceria é que ele atiraria a magia, mas também atiraria o Exura e curaria o monstro logo em seguida. Dar pra fazer até dá, mas teria que verificar uma porrada de posições e seria um script bem complexo. Talvez tenha outro jeito que eu não conheço mas... Eu não conheço Editado Pera ae que acabei de pensar em uma coisa. Talvez dê certo. Espere ae! Tá ae ó: local combatExura = createCombatObject() setCombatParam(combatExura, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combatExura, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) --Caso queira que não apareça o brilho azul retire essa linha setCombatParam(combatExura, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combatExura, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(cid, level, maglevel) min = ((level / 5) + (maglevel * 1.4) + 8) max = ((level / 5) + (maglevel * 1.8) + 11) return min, max end setCombatCallback(combatExura, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) local level = getPlayerLevel(cid) local target = getCreatureTarget(cid) local maglevel = getPlayerMagLevel(cid) local mini = -((level*0.2) + (maglevel*1.403) + 8) local maxi = -((level*0.2) + (maglevel*2.203) + 13) local pPos = getPlayerPosition(cid) local tPos = getCreaturePosition(target) or {x=0, y=0, z=0} local pos = {x=tPos.x, y=tPos.y, z=tPos.z} local creature = getTopCreature(pos) if creature.type == THING_TYPE_MONSTER then doSendDistanceShoot(pPos, pos, CONST_ANI_SMALLEARTH) doAreaCombatHealth(cid, COMBAT_EARTHDAMAGE, pos, area, mini, maxi, CONST_ME_CARNIPHILA) return doCombat(cid, combatExura, var) else doPlayerSendCancel(cid, "You only can use it on creatures.") end end E tira(ou não ponha, caso seja uma magia nova) o "casterTargetOrDirection="1"" e substitua por "selftarget="1"". Editado Novembro 12, 2014 10 anos por mateusak (veja o histórico de edições) Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta! NÃO CLIQUE AQUI! NEM AQUI! ________________________________________________________________________________________________________________________________________________________________________________________________________________________ “A imaginação é mais importante que o conhecimento.” Albert Einstein
Postado Novembro 12, 2014 10 anos O jeito mais fácil de construir magias é usando todos os códigos. Detesto criar magias usando essas funções de combate. Faça uma formula ai, que eu crio a magia aqui. Exemplo de fórmula: Player Level (Vezes) Magic Level (Dividido) (Se for player) Target Level (Se não) 10 100 * 20 / 100 or 10 @OBS: Caso queira kkk Tony Araújo
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.