Ir para conteúdo

[Action]Pedra Que Muda De Lugar


Wenemy

Posts Recomendados

I awe pessoal do forum, é o seguinte, fiz um script aqui do zero. porem, ele não fico totalmente 100%, é o seguinte eu queria que com uma alavanca (1945), eu tirasse X pedra do lugar, e com a mesma alavanca no mesmo lugar (1946) colocasse a mesma pedra no lugar do jeito que era no inicio, Ahhh Mais tem um porem, a pedra so pode voltar ao lugar de inicio depois de tantos minutos, e não precisa voltar automatico, pode ser acionando a alavanca de novo. Ai que eu enrrolei o bigode, tudo que eu tentei da errado

 

Não vou passar as cordenas dos lugares porque ai vai ser mamão com açucar pra mim, porque é so copiar e colar no meu OT, como muitos membros do forum estão pedido, o que eu acho errado (como eu apanhei ;D), ja que se aprende apanhando!

 

Bom é isso!

 

Thks ;D

Link para o comentário
Compartilhar em outros sites

NOME DO SEU SCRIPT.LUA

function onUse(cid, item, frompos, item2, topos)

local config = {
time = 2, -- tempo em minutos
pos = {x=180,y=57,z=7}, -- posição da parede que ira sumir
paredeid = 2703 -- id da parede
}


function criar()  

               doCreateItem(config.paredeid, 1, config.pos) 
       end

       local parede = getTileItemById(config.pos, config.paredeid)

if item.uid == 8005 and item.itemid == 1945 then
       if parede then
       doRemoveItem(parede.uid, 1)
       addEvent(criar, config.time*60*1000)
doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid,"espere a parede ser criada novamente.")
end
elseif item.uid == 8005 and item.itemid == 1946 then
doTransformItem(item.uid,item.itemid-1)		
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
return TRUE
end

 

 

caso queira em segundos troque

 

ad

dEvent(criar, config.time*60*1000)

 

por

 

addEvent(criar, config.time*1000)

 

actions.xml

<action actionid="8005" script="NOME DO SEU SCRIPT.lua" />

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

Creio que não funcionará... Você declarou a variável "parede" dentro do escopo da função criar(). Como é uma função local, ao ser chamada pelo "if parede then", de duas uma: Ou retornará false e interromperá o script ou gerará erro de variável não declarada.

 

 

flw

Link para o comentário
Compartilhar em outros sites

[14/08/2010 12:46:42] [Error - Action Interface]

[14/08/2010 12:46:42] data/actions/scripts/alavanca/cave.lua:onUse

[14/08/2010 12:46:42] Description:

[14/08/2010 12:46:42] (luaDoRemoveItem) Item not found

 

 

Blz, so que acho que não me expressei direito!

 

A pedra deve ser tirada de um lugar e colocada em outro lugar, no que eu tentei fazer aqui, a pedra saia do lugar, e ia para o outro, so que quando eu apertava de novo a pedra duplicava, ficava um no lugar que foi movida e outro no lugar original, é isso!

 

Desculpe se expliquei errado!

 

Obrigado

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

Tente:

 

local config = {
pos = {x = 180, y = 57, z = 7},
topos = {x = 181, y = 57, z = 7},
id = 2703
}

function onUse(cid, item)


if item.itemid == 1945 then
	if getTileItemById(config.pos, config.id) then
		doRemoveItem(getTileItemById(config.pos, config.id).uid, 1)
		doTransformItem(item.uid, item.itemid+1)
		doCreateItem(config.id, config.topos, 1)
	else
		doPlayerSendCancel(cid, "Sorry, not possible.")
	end
elseif item.itemid == 1946 then
	if getTileItemById(config.topos, config.id) then
		doRemoveItem(getTileItemById(config.topos, config.id).uid, 1)
		doTransformItem(item.uid, item.itemid-1)
		doCreateItem(config.id, config.pos, 1)
	else
		doPlayerSendCancel(cid, "Sorry, not possible.")
	end	
end
return TRUE
end

 

 

 

flw

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...