XM
pedido

Alavanca

Por xmaster0, 06 de jul. de 2012 em Scripts

script
13
2.1k
xmaster0X
06 de julho de 2012 às 18:19

Preciso de um script de uma alavanca que quando o player usar ela quebre uma pedra e a pedra e depois de 20 segundos a pedra voltar. quem me ajudar rep ++ o mes inteiro direto me ensinem a usar porfavor,, rep ++ o mes interio'

LeoxtibiaL
06 de julho de 2012 às 19:07

Em actions/scripts crie um arquivo.lua e cole isto dentro:

 

pedra = {x=1,y=1,z=1, stackpos = 1}  --- a posição da pedra // nao mexa no stackpos
idpedra = 1111  -- coloque o id da pedra
time = 20 -- tempo em segundos para a pedra aparecer

function onUse(cid, item, fromPosition, itemEx, toPosition)
doRemoveItem(getThingfromPos(pedra).uid, 1)
doPlayerSendTextMessage(cid, 18, "Você tem ".. time .." segundos para passar antes que a pedra volte!")
addEvent(createPedra, time*1000)
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
return true
end


function createPedra(pos)
pos = {x=1,y=1,z=1,stackpos=1} --- posicao da pedra
idpedra = 1111	   --- id da pedra
doCreateItem(idpedra, 1, pos)
end

 

O script é autoexplicativo, é só editar as posições e o id da pedra. Em actions.xml cole a tag: <action actionid="XXXX" script="NOMEDOSEUARQUIVO.lua"/>

Você deve trocar o XXXX pelo actionid da a alavanca que você colocou pelo seu map editor. Vlw, espero ter ajudado, abraços!</action>

Editado Julho 6 por Leoxtibia

xmaster0X
06 de julho de 2012 às 22:29

testando,,tomare que funcione

LeoxtibiaL
07 de julho de 2012 às 09:39

Amigo, se funcionou... confirme para que o tópico seja movido.

ErimythE
08 de julho de 2012 às 04:23

Confirmado Via PM.

 

Duvida sanada.

Movido

1 mês depois...
EskyloE
06 de agosto de 2012 às 20:24

Devido a um outro pedido, eu incrementei o script, impedindo que usem a alavanca enquanto a pedra não estiver lá.

 

 

pedra = {x=1,y=1,z=1, stackpos = 1} --- a posição da pedra // nao mexa no stackpos
idpedra = 1111 -- coloque o id da pedra
time = 20 -- tempo em segundos para a pedra aparecer

local storage = 5931
local time_now = os.time()

function onUse(cid, item, fromPosition, itemEx, toPosition)
if getGlobalStorageValue(storage) - time_now >= 0 then
  doPlayerSendTextMessage(cid, 18, "A passagem já está liberada!")
else
  doRemoveItem(getThingfromPos(pedra).uid, 1)
  doPlayerSendTextMessage(cid, 18, "Você tem ".. time .." segundos para passar antes que a pedra volte!")
  addEvent(createPedra, time*1000)
  doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
  setGlobalStorageValue(storage, time_now+time)
end
return true
end
function createPedra(pos)
pos = {x=1,y=1,z=1,stackpos=1} --- posicao da pedra
idpedra = 1111 --- id da pedra
doCreateItem(idpedra, 1, pos)
end

6 meses depois...
xmaster0X
22 de fevereiro de 2013 às 09:27

Devido a um outro pedido, eu incrementei o script, impedindo que usem a alavanca enquanto a pedra não estiver lá.

 

 

pedra = {x=1,y=1,z=1, stackpos = 1} --- a posição da pedra // nao mexa no stackpos
idpedra = 1111 -- coloque o id da pedra
time = 20 -- tempo em segundos para a pedra aparecer

local storage = 5931
local time_now = os.time()

function onUse(cid, item, fromPosition, itemEx, toPosition)
if getGlobalStorageValue(storage) - time_now >= 0 then
  doPlayerSendTextMessage(cid, 18, "A passagem já está liberada!")
else
  doRemoveItem(getThingfromPos(pedra).uid, 1)
  doPlayerSendTextMessage(cid, 18, "Você tem ".. time .." segundos para passar antes que a pedra volte!")
  addEvent(createPedra, time*1000)
  doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
  setGlobalStorageValue(storage, time_now+time)
end
return true
end
function createPedra(pos)
pos = {x=1,y=1,z=1,stackpos=1} --- posicao da pedra
idpedra = 1111 --- id da pedra
doCreateItem(idpedra, 1, pos)
end

 

Ei pow deu um bug quando o player clica na alavanca a pedra some.... mas depois que a pedra nasce denovo nao da pra clicar denovo na alavanca.... o que será???

EskyloE
22 de fevereiro de 2013 às 23:02

ok, tenta assim

pedra = {x=1,y=1,z=1, stackpos = 1} --- a posição da pedra // nao mexa no stackpos
idpedra = 1111 -- coloque o id da pedra
time = 20 -- tempo em segundos para a pedra aparecer
local storage = 5931
local time_now = os.time()
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getGlobalStorageValue(storage) - time_now >= 0 then
  doPlayerSendTextMessage(cid, 18, "A passagem já está liberada!")
else
  doRemoveItem(getTileItemById(pedra, idpedra).uid, 1)
  doPlayerSendTextMessage(cid, 18, "Você tem ".. time .." segundos para passar antes que a pedra volte!")
  addEvent(createPedra, time*1000, pos, idpedra)
  doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
  setGlobalStorageValue(storage, time_now+time)
end
return true
end
function createPedra(pos, id)
doCreateItem(id, 1, pos)
end

xmaster0X
24 de fevereiro de 2013 às 21:33

ok, tenta assim

pedra = {x=1,y=1,z=1, stackpos = 1} --- a posição da pedra // nao mexa no stackpos
idpedra = 1111 -- coloque o id da pedra
time = 20 -- tempo em segundos para a pedra aparecer
local storage = 5931
local time_now = os.time()
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getGlobalStorageValue(storage) - time_now >= 0 then
  doPlayerSendTextMessage(cid, 18, "A passagem já está liberada!")
else
  doRemoveItem(getTileItemById(pedra, idpedra).uid, 1)
  doPlayerSendTextMessage(cid, 18, "Você tem ".. time .." segundos para passar antes que a pedra volte!")
  addEvent(createPedra, time*1000, pos, idpedra)
  doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
  setGlobalStorageValue(storage, time_now+time)
end
return true
end
function createPedra(pos, id)
doCreateItem(id, 1, pos)
end

 

ei pow a pedra nao voltou....

EskyloE
25 de fevereiro de 2013 às 20:25

vdd, desculpa, foi pq eu nao testei

 

ta aí

 

pedra = {x=1,y=1,z=1, stackpos = 1} --- a posição da pedra // nao mexa no stackpos
idpedra = 1111 -- coloque o id da pedra
time = 20 -- tempo em segundos para a pedra aparecer
local storage = 5931
local time_now = os.time()
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getGlobalStorageValue(storage) - time_now >= 0 then
  doPlayerSendTextMessage(cid, 18, "A passagem já está liberada!")
else
  doRemoveItem(getTileItemById(pedra, idpedra).uid, 1)
  doPlayerSendTextMessage(cid, 18, "Você tem ".. time .." segundos para passar antes que a pedra volte!")
  addEvent(createPedra, time*1000, pedra, idpedra)
  doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
  setGlobalStorageValue(storage, time_now+time)
end
return true
end
function createPedra(pos, id)
doCreateItem(id, 1, pos)
end

só configurar as 3 linahs de cima e pa

SlicerS
25 de fevereiro de 2013 às 20:26

vcs intendem q esse topico ja ta na area de sanadas neh? u,U

25 de fevereiro de 2013 às 20:39

vcs intendem q esse topico ja ta na area de sanadas neh? u,U

não vejo problema nenhum em postar aki
SlicerS
25 de fevereiro de 2013 às 20:40

o certo era criar um novo topico com a nova duvida... mas como isso n ta nas regras ms... explodase kk