AK

Porta

Por akc, 19 de fev. de 2010 em Archived

5
1.6k
akcA
19 de fevereiro de 2010 às 12:08

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.

MatheusGladM
19 de fevereiro de 2010 às 12:46

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 Fevereiro 19 por MatheusMkalo

akcA
19 de fevereiro de 2010 às 13:16

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 Fevereiro 19 por AKCOwneD

1 mês depois...
Bruno1177B
31 de março de 2010 às 14:13

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 Março 31 por BruMatt

LordfireL
06 de abril de 2010 às 20:56

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 Abril 6 por Lordfire