HiHo!
Conforme pedido na seção "Pedido de Códigos", taki uma action que faz com que a porta só abra com uma xave. Irei mostrar duas maneiras de se fazer (Para fazer todas as portas de um mesmo ID abrirem com a mesma key & Para abrir apenas uma porta (utilizando UID) abrir com uma key). Não adicione as duas, adicione uma ou outra!
Para fazer todas as portas de um mesmo ID abrirem com a mesma key
Crie um arquivo na pasta data/actions/scripts com o nome doorkey.lua e adicione isso:
function onUse(cid, item, frompos, item2, topos)portafechada = 4914 -- coloque aqui o id da porta fechada
portaaberta = 4915 -- coloque aqui o id da porta aberta
idkey = 2300 -- coloque aqui o id da key
if item.itemid == idkey and item2.itemid == portafechada then
doTransformItem(item2.uid,portaaberta)
elseif item.itemid == idkey and item2.itemid == portaaberta then
doTransformItem(item2.uid,portafechada)
else
doPlayerSendTextMessage(cid,22,"Sorry, not possible.")
end
return 1
end
.: Alterações necessárias:
.: * portafechada => ID da porta fechada
.: * portaaberta => ID da porta aberta
.: * idkey => ID da xave
agora vá em data/actions/actions.xml e abra com o bloco de notas
procure por:
<action ...
E adicione logo abaixo de qualquer um:
<action itemid="ID DA KEY" script="doorkey.lua" />
.: Alterações necessárias:
.: * ID DA KEY => coloque o id da key aki
PS01 .: ACONSELHO USAR PORTAS QUE NÃO ABRAM QUANDO CLIQUE NELAS.
PS02 .: SE ACONTECER DE OS PLAYERS CONSEGUIREM ABRIR A PORTA SEM A CHAVE OLHE MAIS PRA BAIXO...
Para abrir apenas uma porta (utilizando UID) abrir com uma key
Adicione à porta um UID qualquer (pelo MapEditor)
Crie um arquivo na pasta data/actions/scripts com o nome doorkeytwo.lua e adicione isso:
function onUse(cid, item, frompos, item2, topos)portafechada = 4914 -- coloque aqui o ID da porta fechada
portaaberta = 4915 -- coloque aqui o ID da porta aberta
uidporta = 1805 -- coloque aqui o UID da porta
idkey = 2300 -- coloque aqui o id da key
if item.itemid == idkey and item2.itemid == portafechada and item2.uid == uidporta then
doTransformItem(item2.uid,portaaberta)
elseif item.itemid == idkey and item2.itemid == portaaberta and item2.uid == uidporta then
doTransformItem(item2.uid,portafechada)
else
doPlayerSendTextMessage(cid,22,"Sorry, not possible.")
end
return 1
end
.: Alterações necessárias:
.: * portafechada => ID da porta fechada
.: * portaaberta => ID da porta aberta
.: * uidporta => UID da porta (colocado pelo MapEditor)
.: * idkey => ID da xave
Agora vá em data/actions/actions.xml e abra com o bloco de notas
procure por:
<action ...
E adicione logo abaixo de qualquer um:
<action itemid="ID DA KEY" script="doorkeytwo.lua" />
.: Alterações necessárias:
.: * ID DA KEY => coloque o id da key aki
Caso os players consigam abrir a porta sem a key
.: Você terá que observar se a porta já está em uso em outro lugar, pois se já estiver, único jeito é alterar o id da porta para uma que não está presente no map ou uma que não abre. No YurOts 0.9.4 (que eu uso) existe uma door que não abre [id 4913 (fechada) e 4915 (aberta)], vc poderá trocar os ids para esses ou para outro de sua preferência. Caso você não queira trocar o ID da door e depois de ter verificado se essa é a única porta do server com essa ID (ID não é UID), você poderá retirar o code do player abrir essa porta sem key... Abra: data/actions/actions.xml e procure por:
itemid="ID DA PORTA FECHADA"e
itemid="ID DA PORTA ABERTA"
.: Delete essas duas linhas (as linhas inteiras)
.: Se não resolver o problema poste aqui que eu ajudo...
----- end -----
Pronto... resete o server i good diversão
FlW
CyA!
PS .: Caso você esteja tendo dificuldades com o code, poste o problema aqui e me mande uma mensagem pessoal dizendo que postou (para eu responder + rápido) ou apenas me mande uma mensagem dizendo o problema.