Você está desconectado.

Conecte-se e veja nossos conteúdos exclusivos!
 

  



Curta-nos: Curtir

[CreatureScripts] Senha para porta

Compartilhe
avatar
GOD Vitor
Administrador
Administrador

King Coin(s) King Coin(s) : 32
Reputação : 13014
Facebook : Facebook.com/Vitor.Eduardo.5567
OTServ Favorito : Pokémon Paraíso V3 - O Retorno
Meu Char : Zed Stars
Seção Favorita : Spriting
Eu sou : Scripter
Tópicos : 251
Data de Cadastro : 27/09/2015
Idade : 18
Localização : Florianópolis - SC

[CreatureScripts] Senha para porta

Mensagem por GOD Vitor em Qua Set 30, 2015 1:19 am

Bom para quem não sabe como funciona o script,é basicamente uma senha para conseguir abrir uma porta e após um tempo a porta se fecha automaticamente,podendo ser configurado o tempo/senha/porta.

• Adicionando o script •


Em "data/creaturescripts/creaturescripts.xml" adicione está tag :
Código:
<event type="textoparaporta" name="Senha" event="script" value="senhaporta.lua"/>

Em "data/creaturescripts/scripts/login.lua" adicione está tag no final do script :
Código:
registerCreatureEvent(cid, "Senha")

Em "data/creaturescripts/scripts/senhaporta.lua" adicione este script :
Spoiler:
local uniqueids = {8049, 8050}

local passwords = {
["PokeKing"] = {doorpos = {x = 163, y = 36, z = 7}, doorid = 6257, blackboardpos = {x = 162, y = 36, z = 7}, blackboardid = 1811, uniqueid = 8049, doorclosetime = 10},
["PK"] = {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

• Configurando •
Spoiler:
local uniqueids = {8049, 8050}

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

999999]PK"] = {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.


Imagens:
Spoiler:



OBS: Essas imagens não são da minha autoria, é de outro fórum.

* Explicando *

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.

    Data/hora atual: Ter Mar 28, 2017 4:21 am