NI
dúvida

Script para portal

Por NildoAlves8, 06 de jan. de 2014 em Scripts

duvida
resolvido
script
11
1.6k
NildoAlves8N
06 de janeiro de 2014 às 20:07

Olá, alguém teria um script que faça um portal aparecer e desaparecer por um tempo definido em globalevents ou sei lá onde?

ferreira998F
06 de janeiro de 2014 às 21:17

Existe esse script que você clica na alavanca o teleporte aparece e quando você clica novamente ele desaparece...

Se te ajudar está ai, eu pegei já um tempo no forum não lembro quem posto :p.

 

Script

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

local cfg = {
pos = {x = 000, y = 000, z = 0}, --Coordenadas de onde o teleport se encontra/será criado.
onde = {x = 000, y = 000, z = 0}, --Para onde o teleport vai levar.
}

local new_alavanca = item.itemid == 1945 and 1946 or 1945
local tp = getTileItemById(cfg.pos, 1387).uid

if getPlayerGroupId(cid) <= 5 then
return doPlayerSendCancel(cid, "Sorry, not possible.")
else
if tp > 0 then
doPlayerSendTextMessage(cid, 27, "Você fechou o teleport.")
doTransformItem(item.uid, new_alavanca)
doRemoveItem(tp, 1)
else
doPlayerSendTextMessage(cid, 27, "Você abriu o teleport.")
doTransformItem(item.uid, new_alavanca)
doCreateTeleport(1387, cfg.onde, cfg.pos)
end
end
return true
end

Editado Janeiro 6 por Pudimdoce

KilluaK
06 de janeiro de 2014 às 22:10



local position = {x=x, y=y, z=z} -- Pra onde o tp leva

local tpPos = {x=x, y=y, z=z} -- onde o tp vai ser criado

local tempo = 30 -- Tempo q o tp vai ficar, em segundos

function onThink(cid, interval)

doCreateTeleport(1387, position, tpPos)

addEvent(doRemoveItem, tempo*1000, getTileItemById(tpPos, 1387).uid, 1)

return true

end

NildoAlves8N
07 de janeiro de 2014 às 23:04

Man, onde eu ponho isso? E mais; esse script não tem um arquivo xml correspondente e actionid para o portal?


Aguardando uma resposta satisfatória...

Editado Janeiro 6 por Mensageiro

OmegaO
08 de janeiro de 2014 às 00:45

Você quer uma alavanca ou algo que aconteça de tempo em tempo?

NildoAlves8N
09 de janeiro de 2014 às 19:26

Quero um portal que aparece de tempo em tempo. apenas isso.

zipter98Z
09 de janeiro de 2014 às 19:47

data/globalevents/scripts.

Crie um arquivo com extensão .lua, e coloque o seguinte conteúdo:

function onThink(interval, lastExecution, thinkInterval)
 
local cfg = {
    pos = {x = x, y = y, z = z},  --Onde o portal será criado.
    topos = {x = x, y = y, z = z},   --Para onde ele levará.
    tempo = x,    --Depois de quanto tempo o portal será fechado (recomendo menos que o intervalo colocado em globalevents.xml). OBS: Em segundos.
}
 
local tp = getTileItemById(cfg.pos, 1387).uid
 
    if tp < 1 then
        doCreateTeleport(1387, cfg.topos, cfg.pos)
        addEvent(function()
            doRemoveItem(tp, 1)
        end, cfg.tempo*1000)
    end
    return true
end
Depois, em globalevents.xml, coloque a seguinte tag:
<globalevent name="Teleport" interval="x" event="script" value="nome do arquivo.lua"/>
Não se esqueça de alterar o interval (de quanto em quanto tempo vai ser executado o script, em segundos).
O código que eu fiz fará o seguinte:
Quando executado, se não houver um portal na posição desejada, um teleporte será criado, e, após x tempo (configurável), este será removido.

Editado Janeiro 10 por zipter98

BennyB
09 de janeiro de 2014 às 20:15

Usuário acaba de curtir o post, pode ser considerado como pedido atendido ..

#ReportadoParaAEquipe.

zipter98Z
09 de janeiro de 2014 às 20:17

Esperemos o relato do mesmo.

NildoAlves8N
09 de janeiro de 2014 às 21:13

Script perfeito zipter98! Você é o cara, valeu maninho :) Podem fechar.

OmegaO
09 de janeiro de 2014 às 22:01

Tópico movido para a seção de dúvidas e pedidos resolvidos.