Ir para conteúdo

Posts Recomendados

Créditos a Limos. happy.png

 

Objetivo

Esse script se baseia em poder colocar senha em uma porta. Após a porta se abrir, depois de determinado tempo, ela se fechará novamente e só pode abri-lá com a senha.

 

Prévias

Fllm88.png

VWZFDZ.png

IOBtCN.png

 

Tutorial

Em data/creaturescripts/creaturescripts.xml adicione essa tag:

<event type="textoparaporta" name="Senha" event="script" value="senhaporta.lua"/>

Em data/creaturescripts/scripts/login.lua adicione esta tag no final do script:

registerCreatureEvent(cid, "Senha")

Em data/creaturescripts/scripts/senhaporta.lua adicione isto:

local uniqueids = {8049, 8050}

local passwords = {
["xTibia"] = {doorpos = {x = 163, y = 36, z = 7}, doorid = 6257, blackboardpos = {x = 162, y = 36, z = 7}, blackboardid = 1811, uniqueid = 8049, doorclosetime = 10},
["XT"] = {doorpos = {x = 1000, y = 1000, z = 7}, doorid = 1213, blackboardpos = {x = 1000, y = 1000, z = 7}, blackboardid = 1811, uniqueid = 8050, doorclosetime = 10}
}

function onTextEdit(cid, item, newText)

local x = passwords[newText]

local function onCloseDoor()
if(getTileItemById(x.doorpos,x.doorid+1).uid) > 0 then
doTransformItem(getTileItemById(x.doorpos,x.doorid+1).uid, x.doorid)
doSendMagicEffect(x.doorpos, CONST_ME_MAGIC_RED)
end
end

for _, check in pairs(uniqueids) do
if item.uid == check then
if x and item.uid == x.uniqueid then
if(getTileItemById(x.doorpos,x.doorid).uid) > 0 then
doTransformItem(getTileItemById(x.doorpos,x.doorid).uid, x.doorid + 1)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Sua Senha "'..newText..'" esta correta, voce pode entrar.')
addEvent(onCloseDoor,x.doorclosetime*1000)
doRemoveItem(item.uid, 1)
local blackboard = doCreateItem(x.blackboardid,1,x.blackboardpos)
doItemSetAttribute(blackboard, "uid", x.uniqueid)
else
doRemoveItem(item.uid, 1)
local blackboard = doCreateItem(x.blackboardid,1,x.blackboardpos)
doItemSetAttribute(blackboard, "uid", x.uniqueid)
doPlayerSendCancel(cid, 'A porta ja esta aberta, feche-a ou espera ela se fechar.')
end
else
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
doPlayerSendCancel(cid, 'Sua senha "'..newText..'" esta incorreta.')
end
end
end
return true
end

Como configurar

local uniqueids = {8049, 8050}

["xTibia] = {doorpos = {x = 163, y = 36, z = 7}, doorid = 6257, blackboardpos = {x = 162, y = 36, z = 7}, blackboardid = 1811, uniqueid = 8049, doorclosetime = 10},

["XT] = {doorpos = {x = 1000, y = 1000, z = 7}, doorid = 1213, blackboardpos = {x = 1000, y = 1000, z = 7}, blackboardid = 1811, uniqueid = 8050, doorclosetime = 10}
}

UniqueID que será colocado na placa que bota a senha.

Senha que bota na placa para abrir a porta.

Posição da porta.

ID da porta.

Posição da placa que bota a senha.

ID da placa que bota a senha.

Tempo para fechar a porta.

Link para o comentário
https://xtibia.com/forum/topic/234283-colocando-senha-nas-portas/
Compartilhar em outros sites

×
×
  • Criar Novo...