NE
dúvida

Script Para Abrir Portao

Por NewAge, 20 de out. de 2012 em Scripts

script
5
1.1k
NewAgeN
20 de outubro de 2012 às 14:36

Como faço pra usar esse script em 3 portões? Pq o script só abre 1 e tem 3, um do lado do outro

 

local gatepos = {x=1351, y=1666, z=5, stackpos=1} --posição do primeiro portão

local gatepos2 = {x=1352, y=1666, z=5, stackpos=1} -- posição do segundo portão,altere

local gatepos3 = {x=1353, y=1666, z=5, stackpos=1} -- posição do segundo portão

local g = 9485 --id do primeiro portão

local g2 = 9485 --id do segundo portão

local g3 = 9485 --id do terceiro portão

local doorOpen = "The door has been opened!"

local doorClose = "The door has been closed!"

local minAccess = 1

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

if getPlayerAccess(cid) >= minAccess then

local item = getTileItemById(gatepos, g)

if item.uid > 0 then

doRemoveItem(item.uid, 1)

doRemoveItem(getgate.uid, 1)

doRemoveItem(getgate2.uid, 1)

doPlayerSendTextMessage(cid, 22, doorOpen)

else

doCreateItem(g, 1, gatepos)

doCreateItem(g2, 1, gatepos2)

doCreateItem(g3, 1, gatepos3)

doPlayerSendTextMessage(cid, 22, doorClose)

end

end

return true

end

KarlKalvinK
20 de outubro de 2012 às 14:55

na pasta globalevents/script crie um script chamado portao.lua e coloque isso dentro...

 

 

function onThink(interval, lastExecution)

function OpenPorts()

local B = { -- id e pos dos portoes

{9486,{x=1000, y=1077, z=7, stackpos = 1}},

{9486,{x=999, y=1077, z=7, stackpos = 1}},

{9486,{x=998, y=1077, z=7, stackpos = 1}}

}

for i = 1, #B do

if getTileItemById(B[2], B[1]).uid == 0 then

doCreateItem(B[1], 1, B[2])

else

doRemoveItem(getThingfromPos(B[2]).uid,1)

end

end

end

function doBroadCastle(msgs, interval)

for i = 1, #msgs do

if i == 1 then

doBroadcastMessage(msgs[1])

else

addEvent(doBroadcastMessage, (i-1)*interval, msgs)

addEvent(OpenPorts, (i-1)*interval)

end

end

return true

end

doBroadCastle({"O portão será aberto em 2 minutos.", "O portão esta aberto, seus portões serão fechados em 2 minutos.", "O castle estar fechado, agora só irá abrir em 30 minutos."}, 120000)

return true

end

 

 

 

Usa esse script ai .. para alterá-ló é ali ...

 

 

 

{9486,{x=1000, y=1077, z=7, stackpos = 1}},

{9486,{x=999, y=1077, z=7, stackpos = 1}},

{9486,{x=998, y=1077, z=7, stackpos = 1}}

 

 

 

9486 é o id do portão stackpos não altere... altere só o id e a cordenda de onde fica

ai no caso são 3 portoes um em cada cordenada. só alterar o id do portão e a pos deles.

 

a tag do script em globalevents.xml é :

 

 

 

<globalevent name="Doors" interval="1800" event="script" value="portao.lua"/>

 

 

NewAgeN
20 de outubro de 2012 às 15:25

Quero abrir os portoes com uma alavanca

OneshotO
20 de outubro de 2012 às 17:33

Respondi nos dois fóruns, abçs

 

local positions = {
   {x = 1351, y = 1666, z = 5},
   {x = 1352, y = 1666, z = 5},
   {x = 1353, y = 1666, z = 5}
}

local gates = {
   [9485] = 9484,
   [9484] = 9485
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
   for _, position in ipairs(positions) do
       for fg, tg in pairs(gates) do
           local g = getTileItemById(position, fg)
           if g.uid > 0 then
               doTransformItem(g.uid, tg)
           end
       end
   end
   return true
end

caoticC
21 de outubro de 2012 às 09:53

A duvida só sera considerada quando o usuário manisfestar a confirmação