Ir para conteúdo

Porta


akc

Posts Recomendados

Bom queria saber como eu posso fazer uma porta que apenas GOD pode abrir ou fecha-la, ou então uma porta que apenas jogadores do level 1000 para cima podem abri-la ou fecha-la, MAS QUE TODOS POSSAM PASSAR POR ELA.

 

Ou seja apenas GOD ou Players de Level mais alto que 1000 podem abrir e fechar, mas independete do level ou se é player poder passar por ela.

Link para o comentário
Compartilhar em outros sites

Va em data/actions/scripts, copie um arquivo lua e cole renomeio para chave e bote o seguinte conteudo dentro:

 

--------CREDITOS PARA amoeba13(Xtibia)-----------

 

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

 

local pausa = 300000

 

local door = {x=158, y=57, z=7, stackpos=1}

local ddoor = getThingfromPos(door)

 

 

local open_door = 1222

 

local itemU = 23950

 

local verify = 0 --- NÃO MEXA AQUI

 

 

 

 

if item2.uid == itemU then

if ddoor.itemid ~= verify then

doTransformItem(ddoor.uid,open_door)

addEvent(close,pausa,door)

end

else

doPlayerSendCancel(cid,"This key can not be used here")

end

return 1

end

 

function close(door)

 

 

local to_close_door = 1221

 

 

 

local the_close_door = getThingfromPos(door)

doTransformItem(the_close_door.uid,to_close_door)

end

 

Va em Actions.xml e adicione a seguinte tag:

 

<action itemid="2091" script="chave.lua" />

 

Legendas:

Laranja Tempo que a porta ficara aberta 300000 = 5 minutos (bom para evento)

Azul Posiçao aonde a porta ira ficar

Vermelho Id da porta aberta

Amarelo Unique ID

Preto Id da porta fechada

 

Botando no map editor:

Faça sua porta com forme o id da porta fechada e porta aberta (se quizer mudar eh so mudar ali no script)

Clique em Propriedades e edite assim

ActionId:2000

UniqueId:23950

 

P.S: LEMBRESE DE VER A POSIÇAO DA PORTA O ID DA PORTA ABERTA E FECHADA SE VOCE BOTAR ERRADO NAO IRA FUNCIONAR

 

Creditos: amoeba13 de onde eu tirei o script

 

@EDIT

Voce tentou abrir com a chave id 2091?

Desculpe va no map editor e edite para Unique id 54321

E edite tambem no script na parte

local itemU = 23950

Bote 54321 se nao funcionar edite novamente

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

Va em data/actions/scripts, copie um arquivo lua e cole renomeio para chave e bote o seguinte conteudo dentro:

 

 

 

Va em Actions.xml e adicione a seguinte tag:

 

 

 

Legendas:

Laranja Tempo que a porta ficara aberta 300000 = 5 minutos (bom para evento)

Azul Posiçao aonde a porta ira ficar

Vermelho Id da porta aberta

Amarelo Unique ID

Preto Id da porta fechada

 

Botando no map editor:

Faça sua porta com forme o id da porta fechada e porta aberta (se quizer mudar eh so mudar ali no script)

Clique em Propriedades e edite assim

ActionId:2000

UniqueId:23950

 

P.S: LEMBRESE DE VER A POSIÇAO DA PORTA O ID DA PORTA ABERTA E FECHADA SE VOCE BOTAR ERRADO NAO IRA FUNCIONAR

 

Creditos: amoeba13 de onde eu tirei o script

 

MUITOO OBRIGADOOOOOOOOOO !

ESTOU INDO TESTAR JA DO UM EDIT

 

@EDIT

 

Bom não funcionou:

 

Quando estou sem chave ele diz: Closed Door

Quando estou com a chave e tento abrir ele diz: You have found a reward weighing 0 oz. It is too heavy or you have not enough space.

 

E a porta não abre.

 

@EDIT

 

Valeu a intenção descobri que esse script não funciona pra 8.54, quem souber manda PM VALEU.

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

  • 1 month later...

vc quer uma porta qe só lvl 1000+ passa?? apenas isso ??

se for só isso vc abre o map editor, coloca a porta aonde se quer qe seja..dai vai em properties >> coloca em Action ID o numero/exemplo 1000 + 999 = 1999 ai só lvls 1999 poderão passar OBS: ( COLOQUE UMA PORTA DE "gate of expertise),se nao der procure alguns tutoriais terá uns com ótimas explicações aqui no XTibia mesmo !!

 

Att. BruMatt

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

Tem o gate of expertise, que é um sistema mais simples, e você pode fazer por actions, assim:

 

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

if item.uid == 1234 then
	if getPlayerLevel(cid) <= 1000 or getPlayerGroupId(cid) <= 5 then
		if getPlayerStorageValue(cid,1234) == 0 then
			newpos = {x=XXX,y=YYY,z=Z}
			doTeleportThing(cid,newpos)
			doSendMagicEffect(newpos,2)
			setPlayerStorageValue(cid,1234,1)
		else
			oldpos = {x=XXX,y=YYY,z=Z}
			doTeleportThing(cid,oldpos)
			doSendMagicEffect(oldpos,2)
			setPlayerStorageValue(cid,1234,0)
		end
	else
		doPlayerSendCancel(cid,"Voce precisa ter level 1000 para passar.")
	end
else
	doPlayerSendCancel(cid,"ItemUID bugado, fale com o GM.")
end
return true
end

 

O script ficou longo, mas é para que o player possa voltar se já tiver passado pela porta. Ponha o UniqueID 1234 na porta, ou modifique se quiser.

Configure "newpos" para a posição DEPOIS da porta, e "oldpos" para a posição ANTES da porta. Configure o resto e crie a linha em scripts.xml

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...