Puxa Alavanca E Aparece/some VĂ¡rios Tiles

Renatogold7
em Scripts

Renatogold7

AldeĂ£o
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/10Posts: 16

[9.10][Pedido][Action]

Queria um script que quando eu dou USE na Alavanca aparece vĂ¡rios tiles (ID 1284) em vĂ¡rias posições (x=1023 y=1017 z=8, x=1024 y=1017 z=8, x=1025 y=1017 z=8, x=1026 y=1017 z=8) que seja facilmente configurĂ¡vel para adicionar/remover novas posições e diferentes tiles.

Newtonnotwen

SĂ³ quero saber o porque, o resto sĂ£o detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Abra actions.xml e adicione:

<action actionid="4876" script="dotile.lua"/>

 

Agora em data/actions/scripts crie um arquivo chamado dotile.lua e adicione:

function onUse(cid, item, fromPosition, itemEx, toPosition)

local id,pos,x = 1284,{x=1023, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

local id,pos,x = 1284,{x=1024, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

local id,pos,x = 1284,{x=1025, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

local id,pos,x = 1284,{x=1026, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)

return true

end

Editando:

 

-Vermelho: Id do tile

-Verde: LocalizaĂ§Ă£o do tile

 

Para adicionar mais posições faça o seguinte:

 

Adicione o seguinte arquivo antes de doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945):

local id,pos,x = ITEM,{x=POS, y=POS, z=POS},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

Editando:

 

-Vermelho: Id do item

-Verde: PosiĂ§Ă£o (x,y,z)

 

Ex:

function onUse(cid, item, fromPosition, itemEx, toPosition)

local id,pos,x = 1284,{x=1023, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

local id,pos,x = 1284,{x=1024, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

local id,pos,x = 1284,{x=1025, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

local id,pos,x = 1284,{x=1026, y=1017, z=8},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

local id,pos,x = ITEM,{x=POS, y=POS, z=POS},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

else

doCreateItem(id, 1, pos)

end

doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)

return true

end

 

-Laranja: Parte adicionada

 

Adicionando no RME:

dotile.png

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

Renatogold7

AldeĂ£o
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/06/10Posts: 16

Funcionando perfeitamente, o tile aparece quando puxa a alavanca e some quando puxa denovo, porĂ©m some o tile que estava anteriormente lĂ¡. HĂ¡ um detalhe que esqueci de falar, nĂ£o daria para quando vocĂª puxar a alavanca novamente (para o tile sumir) em vez de ficar sem nenhum tile no local o tile ser substituido por outro (ID 493)?

Ficaria assim?

local id,id2,pos,x = ITEM,ITEM2,{x=POS, y=POS, z=POS},true

if getTileItemById(pos, id).uid == 0 then x = false end

if x == true then

doRemoveItem(getThingfromPos(pos).uid,1)

doCreateItem(id2, 1, pos)

else

doCreateItem(id, 1, pos)

end

 

@Edit

Bem, eu testei isso que falei e deu certo. E aproveita a sua ajuda que vocĂª me deu e cria um tutorial para isso (se nĂ£o houver), a sua resposta jĂ¡ foi um belo tutorial detalhado, obrigado! E se vocĂª tiver tempo da uma olha no seguinte link, Ă© algo que pedi ajuda, bem mais complicado, mas ninguem me respondeu atĂ© agora se Ă© pelo menos possĂ­vel fazer: http://www.xtibia.co...01#entry1311401 e obrigado novamente!

 

@Edit2

Ops, esqueci, REP+ pra vocĂª!

Newtonnotwen

SĂ³ quero saber o porque, o resto sĂ£o detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Ok, vou dar uma olhada.

 

Pedido atendido.

 

---------------------------------

 

Obrigado pelo REP+

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif