Ir para conteúdo
  • 0
Entre para seguir isso  
Marcin

Scripting Ponte com timer

Pergunta

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

gatepos1 = {x=488, y=475, z=4, stackpos=0}
gatepos2 = {x=488, y=476, z=4, stackpos=0}
gatepos3 = {x=489, y=475, z=4, stackpos=0}
gatepos4 = {x=489, y=476, z=4, stackpos=0}

brigde1 = getThingfromPos(gatepos1)
brigde2 = getThingfromPos(gatepos2)
brigde3 = getThingfromPos(gatepos3)
brigde4 = getThingfromPos(gatepos4)


if item.uid == 11001 and item2.itemid == 1945 then

doCreateItem(5769,1,gatepos1)
doCreateItem(5770,1,gatepos2)
doCreateItem(5769,1,gatepos3)
doCreateItem(5770,1,gatepos4)
doTransformItem(item.uid,item2.itemid+1)
doSendMagicEffect(topos, CONST_ME_SOUND_WHITE)
doCreatureSay(cid, 'Click!', TALKTYPE_MONSTER, false, topos)
addEvent(doswitchReturn,10000,topos,item2.itemid)

elseif item.uid == 11001 and item2.itemid == 1946 then
doCreatureSay(cid, 'Click!', TALKTYPE_MONSTER, false, topos)

doRemoveItem(brigde1.uid,1)
doRemoveItem(brigde2.uid,1)
doRemoveItem(brigde3.uid,1)
doRemoveItem(brigde4.uid,1)
doSendMagicEffect(topos, CONST_ME_SOUND_WHITE)
doTransformItem(item.uid,item2.itemid-1)    

else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
return 1
end

function doswitchReturn(itemposition,oldid)
    local pos2 = getThingfromPos(itemposition)
    doTransformItem(pos2.uid,oldid)
    
end

O script tem com função criar uma ponte com o uso da alavanca e quando clica de volta, a ponte é removida.
A função tempo altera a alavanca pro estado anterior, mas não remove os tiles da ponte.

Alguma ideia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 respostass a esta questão

Recommended Posts

  • 0
grilo13    60
grilo13

Se for na versão atual do TFS, tenho um script da POI que faz isso.

Sem timming

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(item.itemid == 1945) then
		if(getTileItemById({x = 636, y = 618, z = 9}, 1285).uid > 0) then
			doRemoveItem(getTileItemById({x = 636, y = 618, z = 9}, 1285).uid, 1)
		end
		doTransformItem(item.uid, 1946)
	else
		doTransformItem(item.uid, 1945)
	end
	return true
end

1945 é o item em sua forma original (antes de desaparecer ou aparecer);

x y z é sua posição no mapa;

1946 é o item que ele se transforma ao utilizar a alavanca.

Com timming

local stonepos = {x=1424, y=54, z=10, stackpos=1} -- Stone pos
function onUse(cid, item, fromPos, item2, toPos)
    if(item.itemid == 1945) then
	doRemoveItem(getThingfromPos(stonepos).uid, 1)
		doSendMagicEffect(stonepos, CONST_ME_EXPLOSIONAREA)
        doTransformItem(item.uid,1946)
        addEvent(onTimer14, 1*60*1000) --1 minute
    end
return true
end

function onTimer14() --creates wall back
    doTransformItem(getThingfromPos({x=1425, y=40, z=10, stackpos=1}).uid, 1945) --lever pos
	doCreateItem(1304,1,{x=1424, y=54, z=10}) -- Stone pos
	doSendMagicEffect({x=1424, y=54, z=10}, CONST_ME_EXPLOSIONAREA)
end

Este um muda a alavanca de volta ao que ela era, basta ler o código e é tão simples quanto o outro.

Editado por grilo13

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Marcin    1
Marcin

@grilo13 Baseado no que tu postou, consegui fazer o que queria! :D
 
@Majesty Se eu tiver criando tópico de mais, me avisa por gentileza! haha

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×