Ir para conteúdo
  • Cadastre-se

[Ajuda] Magia direcional com mais de um efeito por tempo


Posts Recomendados

Eu fiz uma magia pelo Spellcreator que é assim: http://i.imgur.com/RmpTJ3e.gif
RmpTJ3e.gif

O problema é que ela ta indo sempre para baixo, não importa a direção que eu olhe.
Eu queria que ela fizesse esse efeito na direção que eu tivesse olhando.

OBS: Já mudei a XML de várias formas mas também não ajustou. No momento tá assim:

<instant name="Flames Wave" words="flames wave" lvl="1" maglv="1" mana="25" exhaustion="1000" groups="1" groupexhaustions="1000" prem="0" needlearn="0" casterTargetOrDirection="1" selftarget="1" blockwalls="0" aggressive="1" event="script" value="attack/hells core.lua">
<vocation id="1"/>
<vocation id="5"/>
</instant>
Já tentei com Direction 1 também.

Script:

-- =============== COMBAT VARS ===============
-- Areas/Combat for 1800ms
local combat18_Brush = createCombatObject()
setCombatParam(combat18_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat18_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat18_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat18_Brush,createCombatArea({{3}}))
setCombatFormula(combat18_Brush, COMBAT_FORMULA_LEVELMAGIC, 2, -5, 0, 0)
 
local con___combat18_Brush = createConditionObject(0+CONDITION_FIRE)
addDamageCondition(con___combat18_Brush, 3, 1000, -15)
setCombatCondition(combat18_Brush, con___combat18_Brush)
 
-- Areas/Combat for 1500ms
local combat15_Brush = createCombatObject()
setCombatParam(combat15_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat15_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat15_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat15_Brush,createCombatArea({{1, 1, 1},
{0, 2, 0}}))
setCombatFormula(combat15_Brush, COMBAT_FORMULA_LEVELMAGIC, 2, -5, 0, 0)
 
local con___combat15_Brush = createConditionObject(0+CONDITION_FIRE)
addDamageCondition(con___combat15_Brush, 3, 1000, -15)
setCombatCondition(combat15_Brush, con___combat15_Brush)
 
-- Areas/Combat for 1200ms
local combat12_Brush = createCombatObject()
setCombatParam(combat12_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat12_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat12_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat12_Brush,createCombatArea({{1, 1, 1, 1, 1},
{0, 0, 0, 0, 0},
{0, 0, 2, 0, 0}}))
setCombatFormula(combat12_Brush, COMBAT_FORMULA_LEVELMAGIC, 2, -5, 0, 0)
 
local con___combat12_Brush = createConditionObject(0+CONDITION_FIRE)
addDamageCondition(con___combat12_Brush, 3, 1000, -15)
setCombatCondition(combat12_Brush, con___combat12_Brush)
 
-- Areas/Combat for 900ms
local combat9_Brush = createCombatObject()
setCombatParam(combat9_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat9_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat9_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat9_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 2, 0, 0, 0}}))
setCombatFormula(combat9_Brush, COMBAT_FORMULA_LEVELMAGIC, 2, -5, 0, 0)
 
local con___combat9_Brush = createConditionObject(0+CONDITION_FIRE)
addDamageCondition(con___combat9_Brush, 3, 1000, -15)
setCombatCondition(combat9_Brush, con___combat9_Brush)
 
-- Areas/Combat for 600ms
local combat6_Brush = createCombatObject()
setCombatParam(combat6_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat6_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat6_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat6_Brush,createCombatArea({{1, 1, 1, 1, 1},
{0, 0, 0, 0, 0},
{0, 0, 2, 0, 0}}))
setCombatFormula(combat6_Brush, COMBAT_FORMULA_LEVELMAGIC, 2, -5, 0, 0)
 
local con___combat6_Brush = createConditionObject(0+CONDITION_FIRE)
addDamageCondition(con___combat6_Brush, 3, 1000, -15)
setCombatCondition(combat6_Brush, con___combat6_Brush)
 
-- Areas/Combat for 300ms
local combat3_Brush = createCombatObject()
setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat3_Brush,createCombatArea({{1, 1, 1},
{0, 2, 0}}))
setCombatFormula(combat3_Brush, COMBAT_FORMULA_LEVELMAGIC, 2, -5, 0, 0)
 
local con___combat3_Brush = createConditionObject(0+CONDITION_FIRE)
addDamageCondition(con___combat3_Brush, 3, 1000, -15)
setCombatCondition(combat3_Brush, con___combat3_Brush)
 
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat0_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat0_Brush,createCombatArea({{3}}))
setCombatFormula(combat0_Brush, COMBAT_FORMULA_LEVELMAGIC, 2, -5, 0, 0)
 
local con___combat0_Brush = createConditionObject(0+CONDITION_FIRE)
addDamageCondition(con___combat0_Brush, 3, 1000, -15)
setCombatCondition(combat0_Brush, con___combat0_Brush)
 
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
if (startDir == 0) then -- N
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 2) then -- S
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList,y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 1) then -- E
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList,z=dirEmitPos.z},dirList[1])
else -- W / Something weird happened
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList,z=dirEmitPos.z},dirList[1])
end
i = i + 2
end
end
end
end
 
function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
local startDir = getCreatureLookDirection(cid)
addEvent(RunPart,1800,combat18_Brush,cid,var)
addEvent(RunPart,1500,combat15_Brush,cid,var)
addEvent(RunPart,1200,combat12_Brush,cid,var)
addEvent(RunPart,900,combat9_Brush,cid,var)
addEvent(RunPart,600,combat6_Brush,cid,var)
addEvent(RunPart,300,combat3_Brush,cid,var)
RunPart(combat0_Brush,cid,var)
return true
end

Link para o post
Compartilhar em outros sites

Simples, vai em data/spells/spells.lua , substitua sua tag antiga por essa.

<instant name="Flames Wave" words="Flames Wave" lvl="1" mana="25" direction="1" exhaustion="2000" needlearn="0" event="script" value="attack/hells core.lua">

Espero ter ajudado.

Editado por Estronda (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Obrigado, mas eu queria que a spell voltasse até chegar na posição atual do caster (por isso tava tentando com selftarget)
Existiria como?

OBS: Na forma atual que ela só vai para baixo ela estava voltando até a posição do caster.

Editado por gldarkk (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Kill of sumoners
      Boa noite, estou com um erro ao atacar um player em meu sv eu nao pego pk, nem sai magia, aparece a mensagem "voce so pode usar isso em criaturas"
      obs: magia em area acerta e pega pk, apenas as targets ou hits de arma nao vao 
    • Por Kazuya9629
      como eu fasso pro charmander usa spell Ember ea outfit dele mudar por alguns segundos
       
      base poke jornadas 
    • Por Sociopata
      Abra data\spells\scripts cria um arquivo com nome earthquake.lua e cole isso \/


      local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_STONES) setCombatParam(combat, COMBAT_PARAM_USECHARGES, TRUE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0.9, 0, 1.0, 0) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 34) setCombatParam(combat1, COMBAT_PARAM_USECHARGES, TRUE) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 0.9, 0, 1.0, 0) local area1 = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat1, area1) function onCastSpell(cid, var) doCombat(cid, combat1, var) return doCombat(cid, combat, var) end em data /spells.xml cole isso \/ <instant name="earthquake" words="exori beam" lvl="33" mana="450" prem="0" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="earthquake.lua"> <vocation id="4"/>
    • Por Jedian
      Olá galera, aqui eu denovo com outro post, que espero que seja útil pra vocês.
      Pois é, eu só posto spells, mas é que o resto, praticamente não tem o que inventar, sim, tem, mas o que está exatamente ao alcance de um scripter, nem fácil demais, nem impossível pra ele, é praticamente inexistente, por isso é difícil pra nós, scripters, na minha opinião, demonstrar exatamente o potencial de cada um, e em spells, cada um faz do seu jeito, ficando ruim ou não, é perfeita pra cada um que a faz, estou pensando muito em outros sistemas pra vocês, sério, mas tá difícil.
      Mudando de assunto, vamos a magia, pensei nela esfregando pedras a ideia seria uma magia que faz uma espada "costurar em linha reta"(como o nome diz) para frente do personagem de acordo com o tipo de arma usada, aí, se houver um target, ela vai até ele e dá "costuradas" conforme a distância que percorreu até chegar nele, quanto mais perto, mais "costuradas" e vice-versa.
      Vamos instalar:
      em data/spells/scripts copie um arquivo e cole-o, renomeie para algum nome, apague todo o conteúdo e cole isso dentro:



      <instant name="Sewing Straight" words="sewing straight" lvl="35" mana="0" prem="0" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="nome.lua"></instant>
      edite o nome do arquivo e ajeite conforme as preferências.
      Pronto, está instalado, nenhuma foto, pois não dá pra ter uma ideia muito boa com elas :S testem e critiquem aí.
    • Por Linus
      Tag spells.XML(configure a gosto, use o mesmo para todos os scripts acima) :
      <instant name="NAME" words="NAME" lvl="1" mana="1" prem="0" aggressive="1" selftarget="0" exhaustion="1" group="attack" groupcooldown="1" needlearn="0" script="ARQUIVO.lua"> <vocation name="VOCATION NAME"/> </instant>  Para adicionar a spell, só ir em data/spells/scripts criar um arquivo .lua para o script e adicionálo e dps ir em spells.XML colocando a tag, configurada de acordo com a spell em questão.
       
       
       
       
      Créditos Printer.
       
       
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo