Wild grover rune

damiaotorres
em Scripts
  • 1
  • 2

damiaotorres

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/11Posts: 93Char no Tibia: Deprex

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

 

 

Furabio

Why be a king.. when you can be a god
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 962Gênero: Masculino

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

EQD4Qy4.gif

 

damiaotorres

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/11Posts: 93Char no Tibia: Deprex

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>

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

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

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Furabio

Why be a king.. when you can be a god
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 962Gênero: Masculino

Editado o script, teste novamente.

EQD4Qy4.gif

 

damiaotorres

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/11Posts: 93Char no Tibia: Deprex

Nenhum prestou

Furabio

Why be a king.. when you can be a god
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 962Gênero: Masculino

erros ?

EQD4Qy4.gif

 

damiaotorres

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/11Posts: 93Char no Tibia: Deprex

Ainda da pra usar nessa areas :/

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

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

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Lumus

Lumus ;)
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 03/02/13Posts: 1233Gênero: MasculinoChar no Tibia: Partiu Baladinha

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

#include <iostream>

 

cout <<"Mano, a brisa é louca o barato é dentro";

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

@@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

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Furabio

Why be a king.. when you can be a god
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 962Gênero: Masculino

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

EQD4Qy4.gif

 

damiaotorres

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/11Posts: 93Char no Tibia: Deprex

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

Lumus

Lumus ;)
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 03/02/13Posts: 1233Gênero: MasculinoChar no Tibia: Partiu Baladinha

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.

#include <iostream>

 

cout <<"Mano, a brisa é louca o barato é dentro";

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

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

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

  • 1
  • 2