Jump to content
raphadoidera

Pedido SCRIPT COM DELAY NO MAGICEFFECT (HELP)

Recommended Posts

Qual servidor ou website você utiliza como base? 

8.60

 

 

 

Rapaziada, eu preciso de um SCRIPT que eu consiga colocar Delay no Magic Effect da Skill.
Exemplo: Caso eu queira usar um Efeito Igual para uma Skill só, porém que eles saiam em tempos diferentes.

 

Tentei de algumas formas, só que não funcionou.. se alguém puder ajudar com o Script, ficaria grato!

 

 

Edited by raphadoidera (see edit history)

Share this post


Link to post
Share on other sites

vc n especificou onde iria sair o segundo efeito, entao fiz de dois modos.

 

 

function targetEffect(cid, effect, ajust) -- efeito sai no target
if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
local t_Pos = getCreaturePosition(getCreatureTarget(cid))
doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

 

addEvent(targetEffect, 2000, cid, 169, {0,0})


function cidEffect(cid, effect, ajust) -- efeito sai em min
if isCreature(cid) then
local t_Pos = getCreaturePosition(cid)
doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

addEvent(cidEffect, 2000, cid, 169, {0,0})

Edited by Jeanfersonsp (see edit history)

Share this post


Link to post
Share on other sites
Agora, Jeanfersonsp disse:

vc n especificou onde iria sair o segundo efeito, entao fiz de dois modos.

 

 

function targetEffect(cid, effect, ajust) -- efeito sai no target
if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
local t_Pos = getCreaturePosition(getCreatureTarget(cid))
doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

 

addEvent(targetEffect, 2000, cid, 169, {0,0})


function cidEffect(cid, effect, ajust) -- efeito sai em min
if isCreature(cid) then
local t_Pos = getCreaturePosition(cid)
doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

addEvent(cidEffect, 2000, cid, 169, {0,0})

Jean agradeço desde já, pela atenção. Comecei a pouco tempo mexer com scripts, então teria como você completar?

OBS: Quero que o EFEITO 419 saia 2x na mesma skill, porém o primeiro um pouco a esquerda no caso (x+1) e o segundo um pouco a direita (x+2)

OBS²: Não sei se esse é o SCRIPT certo para isso, mas se não for, e você puder colocar ficaria grato!

OBS³: O efeito deve sair no TARGET
 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -130.2, 1, -140.2, 1)

function onCastSpell(cid, var)
local waittime = 2 -- Tempo de exhaustion
local storage = 120033

if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
doSendMagicEffect(position1, 419) - Efeito que quero o delay
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end

Edited by raphadoidera (see edit history)

Share this post


Link to post
Share on other sites

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -130.2, 1, -140.2, 1)


function targetEffect(cid, effect, ajust) -- efeito sai no target
if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
local t_Pos = getCreaturePosition(getCreatureTarget(cid))
doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

local delay = 1000 -- tempo para o segundo efeito,  em milésimos

function onCastSpell(cid, var)
local waittime = 2 -- Tempo de exhaustion
local storage = 120033

if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end
targetEffect(cid, 419, {1,0})
addEvent(targetEffect, delay, cid, 419, {2,0})
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end

Share this post


Link to post
Share on other sites
Agora, Jeanfersonsp disse:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -130.2, 1, -140.2, 1)


function targetEffect(cid, effect, ajust) -- efeito sai no target
if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
local t_Pos = getCreaturePosition(getCreatureTarget(cid))
doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

local delay = 1000 -- tempo para o segundo efeito,  em milésimos

function onCastSpell(cid, var)
local waittime = 2 -- Tempo de exhaustion
local storage = 120033

if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end
targetEffect(cid, 419, {1,0})
addEvent(targetEffect, delay, cid, 419, {2,0})
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end

Jean, e se eu fosse criar 7 Efeitos, como seria? Porque ai tem que colocar position2\DoSendMagicEffect1 não é?

Share this post


Link to post
Share on other sites
1 minuto atrás, raphadoidera disse:

Jean, e se eu fosse criar 7 Efeitos, como seria? Porque ai tem que colocar position2\DoSendMagicEffect1 não é?

 

Repete esta linha

addEvent(targetEffect, 1000, cid, 419, {2,0})

 

--addEvent(targetEffect, 1000(TEMPO EM MILÉSIMOS PARA EFEITO), cid, 419(NUMERO DO EFEITO), {2,0}(AJUSTAR X E Y))

Share this post


Link to post
Share on other sites
Agora, Jeanfersonsp disse:

 

Repete esta linha

addEvent(targetEffect, 1000, cid, 419, {2,0})

 

--addEvent(targetEffect, 1000(TEMPO EM MILÉSIMOS PARA EFEITO), cid, 419(NUMERO DO EFEITO), {2,0}(AJUSTAR X E Y))

Te explicar, no meu Script mesmo colocando certinho e mudando o X,Y o efeito ainda sai no mesmo lugar tlg? Eu quero que o mesmo efeito saia, mas em lugares diferentes e tempos diferentes 

SCRIPTING ATUAL:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -130.2, 1, -140.2, 1)


function targetEffect(cid, effect, ajust) -- efeito sai no target
if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
local t_Pos = getCreaturePosition(getCreatureTarget(cid))
doSendMagicEffect({x= t_Pos.x, y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

local delay = 1000 -- tempo para o segundo efeito,  em milésimos

function onCastSpell(cid, var)
local waittime = 2 -- Tempo de exhaustion
local storage = 120033

if exhaustion.check(cid, storage) then
return false
end
targetEffect(cid, 419, {1,0})
addEvent(targetEffect, 300, cid, 419, {2,0})
addEvent(targetEffect, 500, cid, 419, {3,0})
addEvent(targetEffect, 700, cid, 419, {4,0})
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end

 

Exemplo:
Na primeira imagem, ta saindo da forma que eu quero e na segunda ta da forma errada.

EfeitoDelay.png

EfeitoDelayErrado.png

Edited by raphadoidera (see edit history)

Share this post


Link to post
Share on other sites
11 minutos atrás, raphadoidera disse:

Te explicar, no meu Script mesmo colocando certinho e mudando o X,Y o efeito ainda sai no mesmo lugar tlg? Eu quero que o mesmo efeito saia, mas em lugares diferentes e tempos diferentes 

SCRIPTING ATUAL:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -130.2, 1, -140.2, 1)


function targetEffect(cid, effect, ajust) -- efeito sai no target
if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
local t_Pos = getCreaturePosition(getCreatureTarget(cid))
doSendMagicEffect({x= t_Pos.x, y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)
end
end

local delay = 1000 -- tempo para o segundo efeito,  em milésimos

function onCastSpell(cid, var)
local waittime = 2 -- Tempo de exhaustion
local storage = 120033

if exhaustion.check(cid, storage) then
return false
end
targetEffect(cid, 419, {1,0})
addEvent(targetEffect, 300, cid, 419, {2,0})
addEvent(targetEffect, 500, cid, 419, {3,0})
addEvent(targetEffect, 700, cid, 419, {4,0})
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end

 

Exemplo:
Na primeira imagem, ta saindo da forma que eu quero e na segunda ta da forma errada.

EfeitoDelay.png

EfeitoDelayErrado.png

 

troca > doSendMagicEffect({x= t_Pos.x, y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)

por > doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)

Edited by Jeanfersonsp (see edit history)

Share this post


Link to post
Share on other sites

Testa assim

Kaguya.lua

Citar

                                ----------BY----------------
                                  -----FABIAN MARZAN------
                                 ---SCRIPTS FOR JUTSUS---
                                ----------------------------
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 215)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.0, -4300, -1.0, -6500)

local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end


function Spelltest(cid) ---AQUI VC TROCA DO EFEITO
    if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
        local position = {x=getThingPosition(getCreatureTarget(cid)).x-1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
        doSendMagicEffect(position, 149)
    end
end
function Spelltest2(cid)
    if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
        local position = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
        doSendMagicEffect(position, 149)
    end
end
function Spelltest3(cid)
    if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
        local position = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
        doSendMagicEffect(position, 149)
    end
end

function onCastSpell(cid, var)
local waittime = 2.0 -- Tempo de exhaustion
local storage = 1 -- não mecha
if exhaustion.check(cid, storage) then
   doPlayerSendCancel(cid, "Usted esta cansado.")
doSendMagicEffect(getCreaturePosition(cid), 2)
    return false
end
local parameters = {cid = cid, var = var, combat1 = combat1 , combat2 = combat2 , combat3 = combat3}
for i = 1, 1 do
    addEvent(function()
        if isCreature(cid) then
            addEvent(Spelltest,100,cid) ---PRA USSAR EFEITO (E UM ADDEVENT, PRA CRIAR OUTRO EFEITO VC TEM Q CRIAR OUTRO COM OUTRO NOME)
            addEvent(Spelltest2,300,cid)----EJEMPLO (addEvent(Spelltest4,500,cid)
            addEvent(Spelltest3,500,cid)
        end
    end, 1 + ((i-1) * 650))
end
for i = 1, 1 do
    addEvent(function()
        if isCreature(cid) then
        addEvent(onCastSpell1, 100, parameters) ----TEMPO (100) E DELAY (1 milisegundo)
        
        end
    end, 1 + ((i-1) * 650))
end
exhaustion.set(cid, storage, waittime)
return true
end

 

Share this post


Link to post
Share on other sites
Agora, Fabi Marzan disse:

Consegui, muito obrigado!

Agora, Jeanfersonsp disse:

 

troca > doSendMagicEffect({x= t_Pos.x, y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)

por > doSendMagicEffect({x= t_Pos.x+ajust[1], y = t_Pos.y+ajust[2], z = t_Pos.z}, effect)

Obrigado pela ajuda Jean!

Agora, Fabi Marzan disse:

Fabio, você teria um SCRIPT em que posso movimentar X,Y de uma DISTANCE EFFECT?

Quero colocar pra sair Efeitos Missle iguais ao mesmo tempo, porém em posições diferentes.

 

Exemplo:

 

EfeitosDistance.png

Edited by raphadoidera (see edit history)

Share this post


Link to post
Share on other sites
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_TEAL)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.5, -15400, -1.5, -16500)


arr1 = {
	{3}
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)


local function onCastSpell1(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell2(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell3(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell4(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end

function onCastSpell(cid, var)
local waittime = 3 -- Tempo de exhaustion
local storage = 3

if exhaustion.check(cid, storage) then
doPlayerSendCancel(cid, "Usted esta cansado.")
doSendMagicEffect(getCreaturePosition(cid), 2)
return false
end
local parameters = { cid = cid, var = var}
local target = getCreatureTarget(cid)  -- efeito no alvo
local pos = getCreaturePosition(target)
local poz = getCreaturePosition(cid) -- effeito no caster
addEvent(onCastSpell1, 150, parameters)
addEvent(doSendDistanceShoot, 100, {x = pos.x+4, y = pos.y, z = pos.z}, pos, 25)
addEvent(doSendMagicEffect, 50, {x = pos.x+5, y = pos.y+1, z = pos.z}, 737)
addEvent(doSendMagicEffect, 150, {x = pos.x+3, y = pos.y+2, z = pos.z}, 903)
addEvent(onCastSpell2, 600, parameters)
addEvent(doSendDistanceShoot, 550, {x = pos.x-3, y = pos.y, z = pos.z}, pos, 25)
addEvent(doSendMagicEffect, 500, {x = pos.x-4, y = pos.y+1, z = pos.z}, 737)
addEvent(doSendMagicEffect, 600, {x = pos.x+3, y = pos.y+2, z = pos.z}, 903)
addEvent(onCastSpell3, 1050, parameters)
addEvent(doSendDistanceShoot, 950, {x = pos.x+4, y = pos.y, z = pos.z}, pos, 25)
addEvent(doSendMagicEffect, 900, {x = pos.x+5, y = pos.y+1, z = pos.z}, 737)
addEvent(doSendMagicEffect, 1050, {x = pos.x+3, y = pos.y+2, z = pos.z}, 903)
addEvent(onCastSpell4, 1500, parameters)
addEvent(doSendDistanceShoot, 1450, {x = pos.x-3, y = pos.y, z = pos.z}, pos, 25)
addEvent(doSendMagicEffect, 1400, {x = pos.x-4, y = pos.y+1, z = pos.z}, 737)
addEvent(doSendMagicEffect, 1500, {x = pos.x+3, y = pos.y+2, z = pos.z}, 903)
exhaustion.set(cid, storage, waittime)
return TRUE
end 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By ashwese1
      .Qual servidor ou website você utiliza como base? 
       
      Qual o motivo deste tópico? 
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       

      Cliente.rar
    • By ashwese1
      .Qual servidor ou website você utiliza como base? 
       
      Qual o motivo deste tópico? 
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
      Cliente.rar

    • By ashwese1
      .Qual servidor ou website você utiliza como base? 
       
      Qual o motivo deste tópico? 
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       


    • By ashwese1
      .Qual servidor ou website você utiliza como base? 
       
      Qual o motivo deste tópico? 
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
      NTO_Foxter.exe
    • By Dk Raps
      Ola gostaria de saber posso fazer em um servidor 8.60, para quando o personagem usar magia ele ter uma animação, EX: do grand line adventure
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      aqui um exemplo de como seria uma animação simples espero que me ajudem pls<3
       


  • Recently Browsing   0 members

    No registered users viewing this page.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

Tibia King Recomenda

DokeHost - Soluções em Hospedagem

VPS Windows
VPS Linux
Servidor VPS
×
×
  • Create New...