Ir para conteúdo
  • 0

Usar spell só se tiver pisando no sqm (ajuda Vodkart)


Allangod

Pergunta

Eu tenho essa spell aqui

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35)

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_NONEDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 204)

function onGetFormulaValues(cid, level, maglevel)

min = -((level*1 + maglevel*1.6) + 125)

max = -((level*1 + maglevel*1.8) + 125)

return min, max

end

 

setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

 

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 19)

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 204)

function onGetFormulaValues(cid, level, maglevel)

min = -((level*5.4 + maglevel*6.4))

max = -((level*5.5 + maglevel*6.5))

return min, max

end

 

setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

 

local arr1 = {

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 2, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

}

 

local arr2 = {

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 2, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

}

 

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

 

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

 

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, combat2, parameters.var)

end

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 100, parameters)

addEvent(onCastSpell2, 100, parameters)

return true

end

E gostaria de que ela só pudesse ser usada quando eu estivesse pisando num piso de areia por exemplo.

Gostaria de aproveitar e pedir uma spell que teleportasse o meu inimigo (target) para um lugar do mapa (Que eu possa editar as coordenadas).

VLW e REP+ para quem conseguir fazer.

Editado por Allangod
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Editei sim mas quando eu digito o nome da spell é como se a spell nao existe. (Aparece falando no default)

Nao é algo no

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 100, parameters)

addEvent(onCastSpell2, 100, parameters)

return true

end

nao?

Talvez tenha que add o event da areia sei la.

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, tente esse:

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_NONEDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 204)
function onGetFormulaValues(cid, level, maglevel)
min = -((level*1 + maglevel*1.6) + 125)
max = -((level*1 + maglevel*1.8) + 125)
return min, max
end
setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 19)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 204)
function onGetFormulaValues(cid, level, maglevel)
min = -((level*5.4 + maglevel*6.4))
max = -((level*5.5 + maglevel*6.5))
return min, max
end
setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local arr1 = {
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 2, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
}
local arr2 = {
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 2, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
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, combat2, parameters.var)
end
local areia = {1111, 2222, 3333}
local pos = getThingPos(cid)
pos.stackpos = 0
function onCastSpell(cid, var)
if not isInArray(areia, getTileThingByPos(pos).itemid) then
return doPlayerSendTextMessage(cid, 20, "You can't use this spell out of sand!")
end
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 100, parameters)
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0
local areia = {1111, 2222, 3333}

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_NONEDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 204)
function onGetFormulaValues(cid, level, maglevel)
min = -((level*1 + maglevel*1.6) + 125)
max = -((level*1 + maglevel*1.8) + 125)
return min, max
end

setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 19)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 204)
function onGetFormulaValues(cid, level, maglevel)
min = -((level*5.4 + maglevel*6.4))
max = -((level*5.5 + maglevel*6.5))
return min, max
end

setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

local arr1 = {
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 2, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
}

local arr2 = {
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 2, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
}


local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)

setCombatArea(combat1, area1)
setCombatArea(combat2, area2)

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, combat2, parameters.var)
end

function onCastSpell(cid, var)

  local pos = getThingPos(cid)
  pos.stackpos = 0

  if not isInArray(areia, getThingfromPos(pos).itemid) then
  return doPlayerSendTextMessage(cid, 20, "You can't use this spell out of sand!")
  end

  local parameters = { cid = cid, var = var}

  addEvent(onCastSpell1, 100, parameters)
  addEvent(onCastSpell2, 100, parameters)

  return true
end

Editado por MaXwEllDeN
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...