Ir para conteúdo
  • 0

Wild grover rune


damiaotorres

Pergunta

Como faço pra colocar em mais de um local pra essa runa não ser usada?

 

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)
local Zombie = {
frompos = {x=1136, y=1019, z=7},
topos = {x=1169, y=1039, z=7},
}
function onCastSpell(cid, var)
if not isInArea(getPlayerPosition(cid), Zombie.frompos, Zombie.topos) then
return doCombat(cid, combat, var)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não pode usar wild grouth rune nesta area.")
end
end

 

 

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Você configurou corretamente o script?

 

Imagine que sua área seja o quadrado amarelo...

As variáveis são os pontos vermelhos:

nDenkYz.jpg

Eu fiz o teste aqui e consta a mesma coisa do membro acima, sem erros e da pra usar.

 

Testei e funciona:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)
 
 
function onCastSpell(cid, var)
local block_area = {
{{x=A,y=B,z=C}, {x=D,y=E,z=F}} -- pos começo e final da area
}
for _, var in ipairs(block_area) do
if isInRange(getCreaturePosition(cid), var[1], var[2]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,  "Você não pode jogar wild grover nesta area.") return false
end
end
return doCombat(cid, combat, var)
end
Editado por Fawz
Link para o comentário
Compartilhar em outros sites

  • 0

Testa assim to em dúvida se quando der o return vai sair ou não do for ph34r.png

local areas = {
  [1] = {frompos = {x=1136, y=1019, z=7}, topos = {x=1169, y=1039, z=7}},
  -- exemplo [2] = {frompos = {x= xxx, y= xxx, z= x}, topos = {x= xxx, y=xxx, z=x}},
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)

function onCastSpell(cid, var)
  for i = 1, #areas do
    if not isInArea(getPlayerPosition(cid), areas[i].frompos, areas[i].topos) then 
      return doCombat(cid, combat, var)
    else 
      return doPlayerSendCancel(cid,"Você não pode usar wild grouth rune nesta area.")
    end
  end
end

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

  • 0

Não prestou e deu erro no script

 

[02/06/2015 14:19:44] [Error - Spell Interface]

[02/06/2015 14:19:44] data/spells/scripts/support/wild growth rune.lua:onCastSpell
[02/06/2015 14:19:44] Description:
[02/06/2015 14:19:44] data/spells/scripts/support/wild growth rune.lua:15: attempt to call global 'doSendCancel' (a nil value)
[02/06/2015 14:19:44] stack traceback:
[02/06/2015 14:19:44] data/spells/scripts/support/wild growth rune.lua:15: in function <data/spells/scripts/support/wild growth rune.lua:10>
[02/06/2015 14:19:47] [Error - Spell Interface]
[02/06/2015 14:19:47] data/spells/scripts/support/wild growth rune.lua:onCastSpell
[02/06/2015 14:19:47] Description:
[02/06/2015 14:19:47] data/spells/scripts/support/wild growth rune.lua:15: attempt to call global 'doSendCancel' (a nil value)
[02/06/2015 14:19:47] stack traceback:
[02/06/2015 14:19:47] data/spells/scripts/support/wild growth rune.lua:15: in function <data/spells/scripts/support/wild growth rune.lua:10>
[02/06/2015 14:19:49] [Error - Spell Interface]
[02/06/2015 14:19:50] data/spells/scripts/support/wild growth rune.lua:onCastSpell
[02/06/2015 14:19:50] Description:
[02/06/2015 14:19:50] data/spells/scripts/support/wild growth rune.lua:15: attempt to call global 'doSendCancel' (a nil value)
[02/06/2015 14:19:50] stack traceback:
[02/06/2015 14:19:50] data/spells/scripts/support/wild growth rune.lua:15: in function <data/spells/scripts/support/wild growth rune.lua:10>
Link para o comentário
Compartilhar em outros sites

  • 0

Não prestou e deu erro no script

Tenta assim:

local areas = {
  [1] = {frompos = {x=1136, y=1019, z=7}, topos = {x=1169, y=1039, z=7}},
  -- exemplo [2] = {frompos = {x= xxx, y= xxx, z= x}, topos = {x= xxx, y=xxx, z=x}},
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)

function onCastSpell(cid, var)
  for i = 1, #areas do
    if not isInArea(getPlayerPosition(cid), areas[i].frompos, areas[i].topos) then 
      return doCombat(cid, combat, var)
    else 
      doPlayerSendCancel(cid, "Voce nao pode usar wild growth rune nesta area.")
    end
  end
end
Link para o comentário
Compartilhar em outros sites

  • 0

Ainda da pra usar nessa areas :/

Você configurou corretamente o script?

 

Imagine que sua área seja o quadrado amarelo...

As variáveis são os pontos vermelhos:

nDenkYz.jpg

Link para o comentário
Compartilhar em outros sites

  • 0

@@damiaotorres,

Teste assim:

local areas = {
	[1] = {frompos = {x=1136, y=1019, z=7}, topos = {x=1169, y=1039, z=7}},
	-- exemplo [2] = {frompos = {x= xxx, y= xxx, z= x}, topos = {x= xxx, y=xxx, z=x}},
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499) 

function onCastSpell(cid, var) 
	for i = 1, #areas do
		if isInArea(getThingPosition(cid), areas[i].frompos, areas[i].topos) then
			return false, doPlayerSendCancel(cid, "Voce nao pode usar wild growth rune nesta area.")
		end
	end
	return doCombat(cid, combat, var) 
end
Link para o comentário
Compartilhar em outros sites

  • 0

Se o script acima não funcionar use esse :


local areas = {
  -- exemplo {{x= xxx, y= xxx, z= x}, {x= xxx, y=xxx, z=x}}, começo e fim da area
  {{x=1136, y=1019, z=7}, {x=1169, y=1039, z=7}},
}
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)

function onCastSpell(cid, var)
  local p = 0
  for _, area in pairs(areas) do
    if isInRange(getCreaturePosition(cid), area[1], area[2]) then
      p = 1
      break
    end
  end
  if p == 0 then
    return doCombat(cid, combat, var)
  else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,  "Você não pode jogar wild grover nesta area.") 
    return false
  end
end

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

  • 0

Não Presto

 

Se o script acima não funcionar use esse :


local areas = {
  -- exemplo {{x= xxx, y= xxx, z= x}, {x= xxx, y=xxx, z=x}}, começo e fim da area
  {{x=1136, y=1019, z=7}, {x=1169, y=1039, z=7}},
}
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)

function onCastSpell(cid, var)
  local p = 0
  for _, area in pairs(areas) do
    if isInRange(getCreaturePosition(cid), area[1], area[2]) then
      p = 1
      break
    end
  end
  if p == 0 then
    return doCombat(cid, combat, var)
  else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,  "Você não pode jogar wild grover nesta area.") 
    return false
  end
end

 

 

Tbm deu erro

 

 

@@damiaotorres,

Teste assim:

local areas = {
	[1] = {frompos = {x=1136, y=1019, z=7}, topos = {x=1169, y=1039, z=7}},
	-- exemplo [2] = {frompos = {x= xxx, y= xxx, z= x}, topos = {x= xxx, y=xxx, z=x}},
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499) 

function onCastSpell(cid, var) 
	for i = 1, #areas do
		if isInArea(getThingPosition(cid), areas[i].frompos, areas[i].topos) then
			return false, doPlayerSendCancel(cid, "Voce nao pode usar wild growth rune nesta area.")
		end
	end
	return doCombat(cid, combat, var) 
end

 

Fawz tem como coloca pra não poder usar em 2 área? em uma o meu da o problema que quero coloca em 2 área e não só em uma

 

 

Eu fiz o teste aqui e consta a mesma coisa do membro acima, sem erros e da pra usar.

 

Testei e funciona:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)
 
 
function onCastSpell(cid, var)
local block_area = {
{{x=A,y=B,z=C}, {x=D,y=E,z=F}} -- pos começo e final da area
}
for _, var in ipairs(block_area) do
if isInRange(getCreaturePosition(cid), var[1], var[2]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,  "Você não pode jogar wild grover nesta area.") return false
end
end
return doCombat(cid, combat, var)
end
Link para o comentário
Compartilhar em outros sites

  • 0

Só adicionar aqui:

local block_area = {
{{x=A,y=B,z=C}, {x=D,y=E,z=F}}, -- pos começo e final da area
{{x=A,y=B,z=C}, {x=D,y=E,z=F}}
}

PS: Esqueci de citar: créditos ao Vodkart.

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

  • 0

Não Presto

 

 

Tbm deu erro

 

 

Fawz tem como coloca pra não poder usar em 2 área? em uma o meu da o problema que quero coloca em 2 área e não só em uma

 

Amigo, qual erro? Você precisa ser mais específico

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...