AL
pedido

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

Por Allangod, 12 de dez. de 2012 em Scripts

22
2.4k
HidekiKtyH
12 de dezembro de 2012 às 17:53

~Edited

Tente usar agora.

PS: Você modificou o local areia = {} pelos ids dos seus pisos de areia ?

AllangodA
12 de dezembro de 2012 às 17:56

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.

HidekiKtyH
12 de dezembro de 2012 às 18:02

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

MaXwEllDeNM
12 de dezembro de 2012 às 18:06
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 Dezembro 12 por MaXwEllDeN

AllangodA
12 de dezembro de 2012 às 18:27

Funfo MAX :D

REP+ pra vc e amanha vou dar REP+ pro Hide

Vlw pessoal

HidekiKtyH
12 de dezembro de 2012 às 18:39

Não há de que.

Reportado para ser movido.

Yan OliveiraY
12 de dezembro de 2012 às 18:52

Dúvida Resolvida!

 

Tópico Movido.