Ir para conteúdo

Faça Doors (portas) Abrirem!


Dendem

Posts Recomendados

Introdução

Olá gente, eutou aqui fazendo mais um tutorial para a comunidade xTibia, e para ajudar as pessoas que nessessitam desse tutor :D

Primeiramente vou falar daoonde tirei essa idéia de fazer este tutor:

eu estava fazendo meu primeiro mapa estilo global pra lowrate, quando me deparei que:as portas yalahar não abriam!!!

então como sempre que acho um erro vou para o xTibia ver como concerta-lo, e assim fiz, mas nao achei nenhum tutor ensinando concertar isso, intao fui tentar eu mesmo fazer minhas próprias portas, e consegui! Mas nao quero guardar este conhecimento só para mim, quero dividir com todos os Usuários do xTibia.

 

Explicando o que irei ensinar

 

Neste tutorial eu irei ensinar a voces fazerem aquelas portas que nao abrem passar a abrir! Muitos ots nao vem com os actions de algumas doors como a yalahar, muitas pessoas ignoram isso e colocam portas diferentes dar paredes, e isso é muito feio, agora, com esse tutorial, podemos fazer um OT perfeito em relaçao a portas

 

 

Lembrando:

Essas actions podem ser utilizadas não só para portas mas para janelas tambem.

 

Tutorial

 

Primeiramente cheque se seu OT serve tem já alguma action de doors:

- vá em data>actions>actions.xml

procure por algo do genero:

<action fromid="1209" toid="1214" script="other/doors.lua"/>

<action fromid="1219" toid="1262" script="other/doors.lua"/>

 

- Para ter mais certeza disso vá em data>actions>scripts>doors.lua ou data>actions>scripts>other>doos.lua ou outro arquivo com nome parecido como porta.lua, gate.lua etc...

 

Se tais arquivos nao forem encontrados faça o seguinte:

vá em data>actions>scripts>other (caso não tenha a pasta others crie ela) agora copie qualquer arquivo .lua para a pasta other e renomeio para doors.lua, abra-o, delete tudo que tem lá dentro e copie exatamente isso:

function onUse(cid, item, fromPosition, itemEx, toPosition)

if isInArray(questDoors, item.itemid) == TRUE then

if getPlayerStorageValue(cid, item.actionid) ~= -1 then

doTransformItem(item.uid, item.itemid + 1)

doTeleportThing(cid, toPosition, TRUE)

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")

end

return TRUE

elseif isInArray(levelDoors, item.itemid) == TRUE then

if item.actionid > 0 and getPlayerLevel(cid) >= item.actionid - 1000 then

doTransformItem(item.uid, item.itemid + 1)

doTeleportThing(cid, toPosition, TRUE)

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")

end

return TRUE

elseif isInArray(keys, item.itemid) == TRUE then

if itemEx.actionid > 0 then

if item.actionid == itemEx.actionid then

if doors[itemEx.itemid] ~= nil then

doTransformItem(itemEx.uid, doors[itemEx.itemid])

return TRUE

end

end

doPlayerSendCancel(cid, "The key does not match.")

return TRUE

end

return FALSE

elseif isInArray(horizontalOpenDoors, item.itemid) == TRUE then

local newPosition = toPosition

newPosition.y = newPosition.y + 1

local doorPosition = fromPosition

doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE

local doorCreature = getThingfromPos(doorPosition)

if doorCreature.itemid ~= 0 then

if getTilePzInfo(doorPosition) == TRUE and getTilePzInfo(newPosition) == FALSE and doorCreature.uid ~= cid then

doPlayerSendCancel(cid, "Sorry, not possible.")

else

doTeleportThing(doorCreature.uid, newPosition, TRUE)

if isInArray(openSpecialDoors, item.itemid) ~= TRUE then

doTransformItem(item.uid, item.itemid - 1)

end

end

return TRUE

end

doTransformItem(item.uid, item.itemid - 1)

return TRUE

elseif isInArray(verticalOpenDoors, item.itemid) == TRUE then

local newPosition = toPosition

newPosition.x = newPosition.x + 1

local doorPosition = fromPosition

doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE

local doorCreature = getThingfromPos(doorPosition)

if doorCreature.itemid ~= 0 then

if getTilePzInfo(doorPosition) == TRUE and getTilePzInfo(newPosition) == FALSE and doorCreature.uid ~= cid then

doPlayerSendCancel(cid, "Sorry, not possible.")

else

doTeleportThing(doorCreature.uid, newPosition, TRUE)

if isInArray(openSpecialDoors, item.itemid) ~= TRUE then

doTransformItem(item.uid, item.itemid - 1)

end

end

return TRUE

end

doTransformItem(item.uid, item.itemid - 1)

return TRUE

elseif doors[item.itemid] ~= nil then

if item.actionid == 0 then

doTransformItem(item.uid, doors[item.itemid])

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")

end

return TRUE

end

return FALSE

end

 

Não vou explicar exatamente o que é cada "coisa" ali em cima por que vai demorar muito e eu também não sei TUDO ali :D

 

AGORA VAMOS CONTINUAR O TUTORIAL

 

Caso tenha continue a seguir os passos:

Parte 1

colocando as novas doors

 

Agora que você já checou os arquivos abra data>actions>actions.xml

 

vá até o fim do bloco de notas de preferencia,

escreva :

<-----Doors by Dendem------>

 

pode por seu nick, não vai fazer diferença, é apenas para voce identificar onde estão as doors

agora coloque isso por exemplo:

 

<action fromid="1209" toid="1214" script="other/doors.lua"/>

<action fromid="1219" toid="1262" script="other/doors.lua"/>

<action fromid="1539" toid="1542" script="other/doors.lua"/>

<action fromid="2086" toid="2092" script="other/doors.lua"/>

<action fromid="3535" toid="3552" script="other/doors.lua"/>

agora vou explicar o que é isto acima para voce fazer suas próprias doors:

 

olhe essas partes :

fromid="1209" > isso será o ID da porta antes de se usar use nela

toid="1214" > isso será o ID da porta após se usar o use nela

script="other/doors.lua"> isso éonde está o script das doors , mostrando o que vai acontecer com ela após usar o USE

 

 

Parte 2

fazendo a door

 

para fazer a nova door abrir faça o seguinte:

escreva no actions.xml logo embaido de <-----Doors by Dendem------> :

 

<action fromid="ID ANTES DO USE" toid="ID APOS USE" script="other/doors.lua"/>

 

por exemplo: coloque no fromid o ID da porta fechada e no toid o ID da porta aberta,

depois copie de novo:

 

<action fromid="ID ANTES DO USE" toid="ID APOS USE" script="other/doors.lua"/>

 

ao contrário, no fromid coloque o ID da porta aberta , e no toid o ID da porta fechada,

assim ela poderá abrir e fechar.

 

TUTORIAL EXCUSIVO PARA O XTIBIA, CRÉDITOS 100% by Dendem

NÃO COPIE, USE SUA CRIATIVIDADE!

 

Dúvidas, criticas, sujestoes, comentarios:

POSTE, COMENTEM

 

Em brevo vou postar como ficou a Yalahar door :D

 

merece [fixo]

 

Abraços,

Dendem

Editado por DendemTibiano
Link para o comentário
Compartilhar em outros sites

ALGUEM POSTA AE !!!!!!!

Presciso de vocês XTibianos, para que meu tutorial seja Aprovado ! XD

 

V EDIT V

Desculpem-me o doble post, foi sem querer, num era food nao xD, eh q eu fiko nervoso q vcs demoran pra responder, eu cheko a aprovaçao de tutoriais e custa aparecer respostas sempre ^^

 

@KonanZenha

Vlws por add como fã :D

 

 

DESCULPE-ME pelo Doble POST O.OOOO

Editado por DendemTibiano
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...