Ir para conteúdo

Featured Replies

  • Respostas 8
  • Visualizações 1.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Esqueci de postar o script que fiz. Bom, não é nada complexo ou bem-feito, mas é um começo. Se tiver algumas ideias de magia, eu posso fazer algo mais elaborado. Coloque essas duas funções no final

Posted Images

Postado

Esqueci de postar o script que fiz. Bom, não é nada complexo ou bem-feito, mas é um começo. Se tiver algumas ideias de magia, eu posso fazer algo mais elaborado.
Coloque essas duas funções no final do arquivo lib/050-function.lua.

function getNextTiles(playerPos)
  local sx = {-1, -1, 0, 1, 1, 1, 0, -1}
  local sy = {0, 1, 1, 1, 0, -1, -1, -1}
  local positions = {}
  for i=1, #sx do
    local positiontable = {x=playerPos.x+sx[i], y=playerPos.y+sy[i], z=playerPos.z}
    table.insert(positions, positiontable)
  end
  return positions
end

function aroundEffect(time, mindmg, maxdmg, effect, const, i, cid)
  local table = getNextTiles(getCreaturePosition(cid))
  local lastpos = (tonumber(i) == 1) and table[#table] or table[i-1]

  if (i<=8) then
    local thing = getThingfromPos({x=table[i].x, y=table[i].y, z=table[i].z, stackpos=253})
    doSendDistanceShoot(lastpos, table[i], effect)
    doSendMagicEffect(table[i], const)
    if (thing.itemid > 0) then
      local dmg = math.abs(math.random(mindmg, maxdmg))
      doCreatureAddHealth(thing.uid, -dmg)
      doSendAnimatedText(table[i], "-"..dmg, 180)
    end
    lastpos = table[i]
    return addEvent(aroundEffect, time, time, mindmg, maxdmg, effect, const, i+1, cid)
  else
    return false
  end
end

E no arquivo da spell ficaria basicamente assim:
 

function onCastSpell(cid, var)
	aroundEffect(1, 100, 500, 3, CONST_ME_FIREATTACK, 1, cid)
end

Para configurar é só editar os parâmetros:
aroundEffect(time, mindmg, maxdmg, effect, const, i, cid)
time = tempo entre cada efeito da magia em milisegundos (1000 = 1 segundo) (esse tempo multiplicado por 8 vai ser o tempo de execução da magia)
mindmg = dano mínimo
maxdmg = dano máximo
effect = o efeito missile que será usado
const = o segundo efeito (pode encontrar uma lista deles em lib/000-constant.lua)
i = coloca sempre 1 (coloquei isso antes para outra parte da ideia)
cid = deixa cid também

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Postado
  • Autor

 

22 horas atrás, Rusherzin disse:

Esqueci de postar o script que fiz. Bom, não é nada complexo ou bem-feito, mas é um começo. Se tiver algumas ideias de magia, eu posso fazer algo mais elaborado.
Coloque essas duas funções no final do arquivo lib/050-function.lua.


function getNextTiles(playerPos)
  local sx = {-1, -1, 0, 1, 1, 1, 0, -1}
  local sy = {0, 1, 1, 1, 0, -1, -1, -1}
  local positions = {}
  for i=1, #sx do
    local positiontable = {x=playerPos.x+sx[i], y=playerPos.y+sy[i], z=playerPos.z}
    table.insert(positions, positiontable)
  end
  return positions
end

function aroundEffect(time, mindmg, maxdmg, effect, const, i, cid)
  local table = getNextTiles(getCreaturePosition(cid))
  local lastpos = (tonumber(i) == 1) and table[#table] or table[i-1]

  if (i<=8) then
    local thing = getThingfromPos({x=table[i].x, y=table[i].y, z=table[i].z, stackpos=253})
    doSendDistanceShoot(lastpos, table[i], effect)
    doSendMagicEffect(table[i], const)
    if (thing.itemid > 0) then
      local dmg = math.abs(math.random(mindmg, maxdmg))
      doCreatureAddHealth(thing.uid, -dmg)
      doSendAnimatedText(table[i], "-"..dmg, 180)
    end
    lastpos = table[i]
    return addEvent(aroundEffect, time, time, mindmg, maxdmg, effect, const, i+1, cid)
  else
    return false
  end
end

E no arquivo da spell ficaria basicamente assim:
 


function onCastSpell(cid, var)
	aroundEffect(1, 100, 500, 3, CONST_ME_FIREATTACK, 1, cid)
end

Para configurar é só editar os parâmetros:
aroundEffect(time, mindmg, maxdmg, effect, const, i, cid)
time = tempo entre cada efeito da magia em milisegundos (1000 = 1 segundo) (esse tempo multiplicado por 8 vai ser o tempo de execução da magia)
mindmg = dano mínimo
maxdmg = dano máximo
effect = o efeito missile que será usado
const = o segundo efeito (pode encontrar uma lista deles em lib/000-constant.lua)
i = coloca sempre 1 (coloquei isso antes para outra parte da ideia)
cid = deixa cid também

Funcionou direitinho!! ficou muito bom!! muito obrigado mesmo! :D

Editado por kinomoto (veja o histórico de edições)

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

Informação Importante

Confirmação de Termo