Ir para conteúdo

Featured Replies

Postado

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 :D (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 ?

 

Untitltasadasded-1.png.e24703844a8ee56fadbf0cdcf82cd9c7.png

Resolvido por buddha

Ir para solução
  • Respostas 22
  • Visualizações 4.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Fera, acabei de pensar numa maneira simples de criar sua spell tão esperada de LifeSteal(o real, não esse fajuto... heuhueuhe), se quiseres eu faço pra ti aqui...   Editado Vi que a do Orochi Elf é

  • Pois então... É praticamente impossível. O que daria pra fazer é juntar o exura a uma magia de área.   Edit: Tipo assim:

  • Bom.. os códigos ficaram muito ridículos, preciso estudar uma forma mais bonitinha   @OBS: Não testei. LifeSteal.lua   Spells.xml     <instant name="Life Steal" words="life steal" lv

Postado

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 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
  • 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 por Xiolones (veja o histórico de edições)

 

Programador/Scripter/Mapper nível NOOB ?

 

Untitltasadasded-1.png.e24703844a8ee56fadbf0cdcf82cd9c7.png

Postado

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  ;D

 

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 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

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  ;D 

 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo