Ir para conteúdo
  • 0

Checkar Monstros Em Área E Dar Storage


Leoxtibia

Pergunta

Aí, será que alguém poderia me dizer como faço para checkar se tem monstros em uma certa área, e caso não tenha, dar storage aos players que estão na área?

O script é uma action que sumona os monstros em uma área, e em seguida...deve dar storage aos players que estão dentro dessa área, caso todos os monstros tenham sidos mortos. Se alguém puder...ajuda aí ^^

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

Posts Recomendados

  • 0

Sim, eu tentei algo do tipo, com algumas coisas a mais.

 

for lugarx = 33,46 do

for lugary = 98,107 do

lugarpos = {x=lugarx, y=lugary, z=8, stackpos=253}

lugarcreature = getThingfromPos(lugarpos)

 

Mas não sei como fazer para verificar se os monstros já estão mortos, e adicionar o storage a todos os players da área =S

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

  • 0

tenta assim:

 

storage,x = 875487, true
local toPosition,fromPosition = {x = 33, y = 98, z = 8},{x = 46, y = 107, z = 8} -- começo e final da area
for x = toPosition.x, fromPosition.x do
for y = toPosition.y, fromPosition.y do
local m = getTopCreature({x=x, y=y, z=fromPosition.z}).uid 
if m ~= 0 and isMonster(m) then
x = false
end
if x == true and m ~= 0 and isPlayer(m) then
setPlayerStorageValue(m,storage,1)
end
end
end

Link para o comentário
Compartilhar em outros sites

  • 0

Testei, mas não funcionou =S Não deu nenhum erro também. Aqui vai o script:

 

 

 

 

 

 

 

No caso, quero que dê a storage 6456.^^

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

  • 0

você trocou as pos e a storage no script que eu te mandei?

 

posta aqui o script que vc alterou

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

  • 0

Desculpa aí, minha net tinha caído ontem. Eu tinha colocado depois do end do for, mas não funcionou. =S

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

  • 0

Aqui está..

 

 

local porta = {x=29,y=53,z=7}

local portal = {x=28,y=57,z=7}

local fromPos = {x=33, y=54, z=7}

local toPos = {x=35, y=58, z=7}

local position = {x=math.random(fromPos.x,toPos.x), y=math.random(fromPos.y,toPos.y), z=math.random(fromPos.z,toPos.z)}

local monsters = {"Rat", "Rotworm", "Snake"}

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

if item.itemid == 1945 then

doTransformItem(item.uid,item.itemid+1)

doTransformItem(getThingfromPos(porta).uid, 5733)

doSendAnimatedText(porta, "CLICK", COLOR_BROWN)

for i=1, #monsters do

doCreateMonster(monsters, position)

end

 

storage,x = 6456, true

local toPosition,fromPosition = {x = 35, y = 58, z = 7},{x = 33, y = 54, z = 7} -- começo e final da area

for x = toPosition.x, fromPosition.x do

for y = toPosition.y, fromPosition.y do

local m = getTopCreature({x=x, y=y, z=fromPosition.z}).uid

if m ~= 0 and isMonster(m) then

x = false

end

if x == true and m ~= 0 and isPlayer(m) then

setPlayerStorageValue(m,storage,1)

end

end

end

 

 

elseif item.itemid == 1946 and getPlayerStorageValue(cid, 6456) >= 1 then

doTransformItem(item.uid,item.itemid-1)

doTransformItem(getThingfromPos(portal).uid, 5733)

doSendAnimatedText(portal, "CLICK", COLOR_BROWN)

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para usar esta alavanca")

end

return true

end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

cara porque n usa getSpectators?

 

porque no meu serve não tem essa função!

aproveita que você entende da função e posta como ficaria usando getSpectators.

 

 

@leo

 

Não entendi seu script, está muito confuso, no caso teria que clicar na alavanca novamente para checar se tem os monstro na área, é isso?

Mas se o jogador puxasse a alavanca iria criar mais monstros, ou sejá, ele ficaria infinitamente na sala!

teria que fazer de outro jeito, me explica oque a alavanca tem que fazer...

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

  • 0

Então, a primeira alavanca vai sumonar os monstros na área, e alavanca vai se transformar na 1946, assim que o player matar todos os monstros dessa área, vai ser dado o storage para ele usar a alavanca 1946, que abrirá uma passagem.

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

  • 0

cara achei que isso tinha em todos função mais velha que seila

 

é facil usa

getSpectators(centerPos, rangex, rangey[, multifloor])

 

no caso desse script seria assim

m = getSpectators({x = 34, y = 56,z = 7}, 1, 2)
for i = 1,#m do
if isMonster(m[i]) then
x = false
end

Link para o comentário
Compartilhar em outros sites

  • 0

 

local porta = {x=253, y=69, z=7, stackpos = 1}
local toPos, fromPos = {x= 257, y= 75, z= 7},{x= 250, y= 69, z= 7}
local position = {x=math.random(fromPos.x,toPos.x), y=math.random(fromPos.y,toPos.y), z=math.random(fromPos.z,toPos.z)}
local monsters = {"Rat", "Rotworm", "Snake"}
   function onUse(cid, item, fromPosition, itemEx, toPosition)
   if item.itemid == 1945 then
   doTransformItem(item.uid,item.itemid+1)
   if getTileItemById(porta, 5734).uid > 0 then doTransformItem(getThingfromPos(porta).uid, 5733) end
   for i=1, #monsters do
   doCreateMonster(monsters[i], position)
   end
   elseif item.itemid == 1946 then
   for x = fromPos.x, toPos.x do
   for y = fromPos.y, toPos.y do
   local m = getTopCreature({x=x, y=y, z=toPos.z}).uid
   if m ~= 0 and isMonster(m) then return true end
   end
   end
   doTransformItem(item.uid,item.itemid-1)
   if getTileItemById(porta, 5733).uid > 0 then doTransformItem(getThingfromPos(porta).uid, 5734) end
   end
   return true
   end

 

 

sanado, reportado.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...