Ir para conteúdo
  • Cadastre-se

(Resolvido)posição da spell


Ir para solução Resolvido por L3K0T,

Posts Recomendados

 

Opa, belezinha?? Minha dúvida é como eu faço para reposicionar o efeito da spell, digamos que quero que a efeito saia mais < ou até >, quero fazer isso em várias spells, porém não consigo, já usei outros modelos para reposicionar mas fica dando erro na spell no geral. Ficaria grato se alguém me auxiliasse!

 

Spoiler

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 494)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -250.0, 0, -275.0, 0)

 

local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
 
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1 }
addEvent(onCastSpell1, 0, parameters)
return true
end

 

 

Aqui é um exemplo, ele sai digamos do lado do target, mas queria saber como reposicionar a vontade, no caso dele até ir em cima do target.

Screenshot_1.png

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

Olá! faça um teste, veja se isso funciona:

 

Spoiler

local effect = 494
local effectOffset = {x=1, y=0, z=0}

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -250.0, 0, -275.0, 0)
 
function onTargetCreature(cid, target)
    local position = {x=getThingPosition(target).x + effectOffset.x ,y=getThingPosition(target).y + effectOffset.y, z=getThingPosition(target).z + effectOffset.z}
    doSendMagicEffect(position, effect)
end

setCombatCallback(combat1, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onCastSpell(cid, var)
    return doCombat(cid, var)
end

 

 

Link para o post
Compartilhar em outros sites
1 hora atrás, samueldev disse:

Olá! faça um teste, veja se isso funciona:

 

  Mostrar conteúdo oculto


local effect = 494
local effectOffset = {x=1, y=0, z=0}

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -250.0, 0, -275.0, 0)
 
function onTargetCreature(cid, target)
    local position = {x=getThingPosition(target).x + effectOffset.x ,y=getThingPosition(target).y + effectOffset.y, z=getThingPosition(target).z + effectOffset.z}
    doSendMagicEffect(position, effect)
end

setCombatCallback(combat1, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onCastSpell(cid, var)
    return doCombat(cid, var)
end

 

 

 

Vish maninho, não deu muito certo, coloquei isso no script, porém quando vou usar a habilidade em jogo ele simplesmente fecha o OTX, tentei mudar de effect porém nada.

Link para o post
Compartilhar em outros sites
Em 13/03/2023 em 16:51, Grogu disse:

 

Vish maninho, não deu muito certo, coloquei isso no script, porém quando vou usar a habilidade em jogo ele simplesmente fecha o OTX, tentei mudar de effect porém nada.

 

Posta qual erro que deu no console.

Link para o post
Compartilhar em outros sites
  • Sub-Admin
  • Solução

Não testei 

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 494) -- adiciona o efeito 494
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -250.0, 0, -275.0, 0)

local function onCastSpell1(parameters)
  local targetPos = getCreaturePosition(parameters.target)
  if targetPos then
    doSendMagicEffect(targetPos, 494) -- exibe o efeito 494 na posição do alvo
    doCombat(parameters.cid, parameters.combat1, positionToVariant(targetPos))
  end
end

function onCastSpell(cid, var)
  local parameters = { cid = cid, var = var, combat1 = combat1, target = getCreatureTarget(cid) }
  addEvent(onCastSpell1, 0, parameters)
  return true
end

 

 

Versão otimizada:

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 494)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -250, 0, -275, 0)

function onCastSpell(cid, var)
  local target = getCreatureTarget(cid)
  if not target then
    return false
  end
  
  local targetPos = getCreaturePosition(target)
  if not targetPos then
    return false
  end
  
  doSendMagicEffect(targetPos, 494)
  doCombat(cid, combat1, positionToVariant(targetPos))
  return true
end
 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

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

 

Link para o post
Compartilhar em outros sites
16 horas atrás, samueldev disse:

 

Posta qual erro que deu no console.

simplesmente não aparece nada, apenas fecha o OTX, mas creio que deve ser alguma coisa do próprio cliente meu mesmo.

5 horas atrás, L3K0T disse:

Não testei 

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 494) -- adiciona o efeito 494
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -250.0, 0, -275.0, 0)

local function onCastSpell1(parameters)
  local targetPos = getCreaturePosition(parameters.target)
  if targetPos then
    doSendMagicEffect(targetPos, 494) -- exibe o efeito 494 na posição do alvo
    doCombat(parameters.cid, parameters.combat1, positionToVariant(targetPos))
  end
end

function onCastSpell(cid, var)
  local parameters = { cid = cid, var = var, combat1 = combat1, target = getCreatureTarget(cid) }
  addEvent(onCastSpell1, 0, parameters)
  return true
end

 

 

Versão otimizada:

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 494)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -250, 0, -275, 0)

function onCastSpell(cid, var)
  local target = getCreatureTarget(cid)
  if not target then
    return false
  end
  
  local targetPos = getCreaturePosition(target)
  if not targetPos then
    return false
  end
  
  doSendMagicEffect(targetPos, 494)
  doCombat(cid, combat1, positionToVariant(targetPos))
  return true
end
 

Deu bem certinho aqui, muito obrigado!

Link para o post
Compartilhar em outros sites
  • Sub-Admin
10 minutos atrás, Grogu disse:

simplesmente não aparece nada, apenas fecha o OTX, mas creio que deve ser alguma coisa do próprio cliente meu mesmo.

Deu bem certinho aqui, muito obrigado!

De nada ^^ era script não otimizado

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

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

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo