acho que teria que fazer um loop na área
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Editado Junho 22 por Vodkart
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 Junho 22 por Leoxtibia
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

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
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 Junho 23 por Leoxtibia
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

você trocou as pos e a storage no script que eu te mandei?
posta aqui o script que vc alterou
Editado Junho 22 por Vodkart
Sim, troquei sim. Acho que coloquei aquela parte no local errado, teria como mostrar o certo?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

então, me manda o que vc alterou ai pra eu ver como ficou
Desculpa aí, minha net tinha caído ontem. Eu tinha colocado depois do end do for, mas não funcionou. =S
Editado Junho 23 por Leoxtibia
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

blz, posta como ficou o seu script pra mim ver o erro.
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
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

cara porque n usa getSpectators?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

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 Junho 23 por Vodkart
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 Junho 23 por Leoxtibia
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

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



info
Grupo: Visconde
Registrado: 22/06/08
Posts: 489
Reputação: +137
Gênero: Masculino
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 Junho 22 por Leoxtibia