Ir para conteúdo
  • Cadastre-se

(Resolvido)(Ajuda) Remover Stone


Ir para solução Resolvido por Summ,

Posts Recomendados

Fala galerinha, aqui estou eu novamente pedindo ajuda porque sei que vocês sempre me ajudam.

 

Bom vamos lá, tenho o seguinte script que quando eu do use na alavanca ele tira a pedra do lugar e a pedra volta depois de algum tempo, porém tem um erro e estou com uma duvida que não sei solucionar o problema, que é...

 

Bug:

 Player da use na alavanca 2x na primeira ele remove a pedra na segunda a alavanca ela cria outra pedra ou seja quando ele deu use 2 vezes na alavanca ele bugou o script, daqui alguns segundos vai ser criada uma pedra em cima da que foi recriada quando ele deu use pela 2x.

 

Solução:

 

 A ajuda que eu queria era pra por um exhaust até a pedra voltar ao lugar depois que foi retirada, ou bloquear que a alavanca seja usada  enquanto a pedra não for recriada novamente.

 

Script:

function onUse(cid, item, toPosition)
tempo = 1000
rock1pos = {x=722, y=499, z=12, stackpos=1} -- Posição da Pedra
getrock1 = getThingfromPos(rock1pos)
UniID = 23560 -- UniqueID que vai ser adicionado na alavanca
rockID = 1304 -- ID da pedra

if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then
doRemoveItem(getrock1.uid, 1)
doTransformItem(item.uid, item.itemid+1)
doSendMagicEffect(rock1pos, 2)
addEvent(doCreateItem, (30*1000), rockID, 1, rock1pos)
elseif item.uid == UniID and item.itemid == 1946 then
doCreateItem(rockID, 1, rock1pos)
doTransformItem(item.uid,item.itemid-1)
doSendMagicEffect(rock1pos, 13)
end
return TRUE
end
Editado por Chriistian (veja o histórico de edições)

WN4m2fS.png

 

 

Link para o post
Compartilhar em outros sites

me explica como que tu quer, que eu faço ... pois eu buguei nessa explicação e no script ehuehe

 

Resumindo:

Quero colocar pra quando o player der use na alavanca e a pedra sumir, ele só possa dar use depois que a pedra voltar.

Se conseguir me ajudar serei muiito grato, sou iniciante nessa parte de script, você é o mesmo Summ da otland ?

WN4m2fS.png

 

 

Link para o post
Compartilhar em outros sites
function onUse(cid, item, toPosition)

tempo = 30 -- segundos
rock1pos = {x=722, y=499, z=12, stackpos=1} -- Posição da Pedra
getrock1 = getThingfromPos(rock1pos)
UniID = 23560 -- UniqueID que vai ser adicionado na alavanca
rockID = 1304 -- ID da pedra

	if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then
		doRemoveItem(getrock1.uid, 1)
		doTransformItem(item.uid, item.itemid+1)
		doSendMagicEffect(rock1pos, 2)
		addEvent(doCreateItem, (tempo*1000), rockID, 1, rock1pos)
	end
	return true
end

Não sou o summ da otland, sou mais bonito  :cool: 

Editado por Summ (veja o histórico de edições)

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites
function onUse(cid, item, toPosition)

tempo = 30 -- segundos
rock1pos = {x=722, y=499, z=12, stackpos=1} -- Posição da Pedra
getrock1 = getThingfromPos(rock1pos)
UniID = 23560 -- UniqueID que vai ser adicionado na alavanca
rockID = 1304 -- ID da pedra

	if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then
		doRemoveItem(getrock1.uid, 1)
		doTransformItem(item.uid, item.itemid+1)
		doSendMagicEffect(rock1pos, 2)
		addEvent(doCreateItem, (tempo*1000), rockID, 1, rock1pos)
	end
	return true
end

Não sou o summ da otland, sou mais bonito  :cool: 

 

 

Quando a pedra retorna depois de 30 segundos a alavanca não pode ser mais movimentada, ou seja a pedra retornando, não da pra tirar mais ela.

WN4m2fS.png

 

 

Link para o post
Compartilhar em outros sites

Veja se é assim que tu quer :

function onUse(cid, item)

local exhausted = 30 -- 30 segundos
local rock1pos = {x=722, y=499, z=12, stackpos=1} -- Posição da Pedra
local getrock1 = getThingfromPos(rock1pos)
local rockID = 1304 -- ID da pedra
local storage = 794654

	if getPlayerStorageValue(cid, storage) <= os.time() then
		doRemoveItem(getrock1.uid, 1)
		doSendMagicEffect(rock1pos, 2)
		setPlayerStorageValue(cid, storage, exaust + os.time())
		addEvent(doCreateItem, exhausted*1000, rockID, 1, rock1pos)
	else 
		doPlayerSendTextMessage(cid, 19, "Espere a pedra ser criada novamente, para poder utilizar a alavanca!!")
	end
	return true
end

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

 

Veja se é assim que tu quer :

function onUse(cid, item)

local exhausted = 30 -- 30 segundos
local rock1pos = {x=722, y=499, z=12, stackpos=1} -- Posição da Pedra
local getrock1 = getThingfromPos(rock1pos)
local rockID = 1304 -- ID da pedra
local storage = 794654

	if getPlayerStorageValue(cid, storage) <= os.time() then
		doRemoveItem(getrock1.uid, 1)
		doSendMagicEffect(rock1pos, 2)
		setPlayerStorageValue(cid, storage, exaust + os.time())
		addEvent(doCreateItem, exhausted*1000, rockID, 1, rock1pos)
	else 
		doPlayerSendTextMessage(cid, 19, "Espere a pedra ser criada novamente, para poder utilizar a alavanca!!")
	end
	return true
end

 

Agora funcionou muito obrigado, teria como só adicionar para a alavanca fazer a animação ? Quando do use e remove a pedra a alavanca continua no ID 1945 não muda pro 1946 e claro, fazer ela retornar depois que for criada a pedra pro 1945 ?

WN4m2fS.png

 

 

Link para o post
Compartilhar em outros sites
  • Solução

Seria assim :

function onUse(cid, item)

local exhausted = 30 -- 30 segundos
local rock1pos = {x=722, y=499, z=12, stackpos=1} -- Posição da Pedra
local getrock1 = getThingfromPos(rock1pos)
local rockID = 1304 -- ID da pedra
local storage = 794654
	
	
		if getPlayerStorageValue(cid, storage) <= os.time() then
			if item.itemid == 1945 then
				doRemoveItem(getrock1.uid, 1)
				doTransformItem(item.uid, item.itemid + 1)
				doSendMagicEffect(rock1pos, 2)
				setPlayerStorageValue(cid, storage, exaust + os.time())
				addEvent(doCreateItem, exhausted*1000, rockID, 1, rock1pos)
			elseif item.itemid == 1946 then
				doTransformItem(item.uid, item.itemid - 1)
			end
		else
			doPlayerSendTextMessage(cid, 19, "Espere a pedra ser criada novamente, para poder utilizar a alavanca!!")
		end
	return true
end

ou assim :

function onUse(cid, item)

local exhausted = 30 -- 30 segundos
local rock1pos = {x=722, y=499, z=12, stackpos=1} -- Posição da Pedra
local getrock1 = getThingfromPos(rock1pos)
local rockID = 1304 -- ID da pedra
local storage = 794654
	
	
		if getPlayerStorageValue(cid, storage) <= os.time() then
			if item.itemid == 1945 then
				doRemoveItem(getrock1.uid, 1)
				doTransformItem(item.uid, item.itemid + 1)
				doSendMagicEffect(rock1pos, 2)
				setPlayerStorageValue(cid, storage, exaust + os.time())
				addEvent(function()
					doCreateItem(rockID, 1, rock1pos)
					doTransformItem(item.uid, item.itemid - 1)
				end, exhausted*1000)
			end
		else
			doPlayerSendTextMessage(cid, 19, "Espere a pedra ser criada novamente, para poder utilizar a alavanca!!")
		end
	return true
end

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo