Cp door system pxg

Eskylo
Por Eskylo
em Actions e Talkactions
  • 1
  • 2

Eskylo

boa sorte
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/08/10Posts: 477Gênero: Masculino

 

l46C4pz7cbejABIn6.gif

 

 

Crie um arquivo chamado doors.lua na pasta data\movements\scripts e adicione o seguinte conteúdo:

 

-- CONFIGURAÇÕES --local doors = {18312, 18311, 18310, 18309}local door_pos = {x=1051,y=1032,z=7}-- FIM CONFIGURAÇÕES --local top_left = {x = door_pos.x - 3, y = door_pos.y - 2, z = door_pos.z}local bottom_right = {x = door_pos.x, y = door_pos.y + 2, z = door_pos.z}local function areThereCreaturesInArea(top_left, bottom_right)	for x = top_left.x, bottom_right.x do		for y = top_left.y, bottom_right.y do			if isCreature(getTopCreature({x=x, y=y, z=top_left.z}).uid) then				return true			end		end	end		return falseendlocal function open(pos, i)if i < #doors then	current = doors[i]	next_ = doors[i+1]	local door = getTileItemById(pos, current)	if door.uid > 0 then		doTransformItem(door.uid, next_)		addEvent(open, 200, pos, i+1)	endend	endlocal function close_(pos, i)if areThereCreaturesInArea(top_left, bottom_right) then	return trueendif i <= #doors and i > 1 then	current = doors[i]	next_ = doors[i-1]		local door = getTileItemById(pos, current)	if door.uid > 0 then		doTransformItem(door.uid, next_)		addEvent(close_, 200, pos, i-1)	endend	endfunction onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)	for i = 1, #doors do		local door = getTileItemById(door_pos, doors[i])		if door.uid > 0 then			open(door_pos, i)			break		end	end	return trueendfunction onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)	close_(door_pos, #doors)	return trueend

 

No arquivo movements/movements.xml adicione as seguintes linhas 

 

	<movevent type="StepIn" actionid="12000" event="script" value="doors.lua"/>	<movevent type="StepOut" actionid="12000" event="script" value="doors.lua"/>

 

No map editor adicione o action id 12000 aos tiles em volta da porta marcados com X

 

doors_position.png

 

 

Agora você deve configurar as coordenadas da porta no script de acordo com o seu mapa:

 

local door_pos = {x=1051,y=1032,z=7}

door_pos.png

 

(A pos onde fiz o X)

 

 

E por último configurar os IDS das portas de acordo com o seu servidor:

 

local doors = {18312, 18311, 18310, 18309}

Você deve colocar os IDS na ordem da "mais fechada" até a "mais aberta".

 

No meu exemplo a porta totalmente fechada tem id 18312 e a totalmente aberta 18309, mas no seu servidor provavelmente os ids são diferentes.

 

Espero que seja útil =):

Lembrando que você tem que repetir todos os passos para cada porta assim no seu mapa, usando action ids e posições diferentes.

Em breve faço uma versão que dê pra configurar todas as portas do mapa em 1 script.

doors_position.png.a6e1c28276f46a6aaf55a1894dcd8dc0.png

door_pos.png.6f36b015bc56dbfe74f8e60f79722435.png

Atenciosamente, Eskylo

 

 

Ironman-icon.png

.

.

Wicke

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/04/16Posts: 339Gênero: Masculino

Obrigado, Belo tutorial.

 

 

PEDRO.png

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

boxxer321

Yamborghini
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 03/11/11Posts: 714Gênero: MasculinoChar no Tibia: esqueci 20+

Tava precisando MUITO disso! Obrigado!!

Eskylo

boa sorte
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/08/10Posts: 477Gênero: Masculino

Se o player logasse em cima da porta ela não ia abrir, então atualizei onde precisa do action id: 

 

doors_position.png

doors_position.png.81b7253f6fb1e616285bee6beb90bedd.png

Atenciosamente, Eskylo

 

 

Ironman-icon.png

.

.

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

Muito bom seu script.

Faz uma versão onde requira apenas a posição da porta.

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

Faelzdanil

PokeShow World Online
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/05/11Posts: 391
55 minutos atrás, Eskylo disse:

Se o player logasse em cima da porta ela não ia abrir, então atualizei onde precisa do action id: 

 

doors_position.png

ou pode simplesmente colocar anti logout lá.

lsr2nFa.jpg

 

dQ6yAey.png

Pm9TjMM.png

 

 

KaboFlow29

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/11/12Posts: 267Gênero: MasculinoChar no Tibia: ADM Kabo

Mais tarde bo testear mano

13662475_1132536336789432_1129366659_o.png

Eskylo

boa sorte
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/08/10Posts: 477Gênero: Masculino
57 minutos atrás, Poccnn disse:

Muito bom seu script.

Faz uma versão onde requira apenas a posição da porta.

 

Tem razão, não sei porque não fiz assim '-' quando eu chegar em casa eu atualizo.

 

 

54 minutos atrás, Faelzdanil disse:

ou pode simplesmente colocar anti logout lá.

 

Sim, também dá certo.

Atenciosamente, Eskylo

 

 

Ironman-icon.png

.

.

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino

funfando 100%, obrigado por compartilhar

boxxer321

Yamborghini
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 03/11/11Posts: 714Gênero: MasculinoChar no Tibia: esqueci 20+
Em 29/06/2016 at 14:38, Eskylo disse:

 

l46C4pz7cbejABIn6.gif

 

 

Crie um arquivo chamado doors.lua na pasta data\movements\scripts e adicione o seguinte conteúdo:

 

-- CONFIGURAÇÕES --local doors = {18312, 18311, 18310, 18309}local door_pos = {x=1051,y=1032,z=7}-- FIM CONFIGURAÇÕES --local top_left = {x = door_pos.x - 3, y = door_pos.y - 2, z = door_pos.z}local bottom_right = {x = door_pos.x, y = door_pos.y + 2, z = door_pos.z}local function areThereCreaturesInArea(top_left, bottom_right)	for x = top_left.x, bottom_right.x do		for y = top_left.y, bottom_right.y do			if isCreature(getTopCreature({x=x, y=y, z=top_left.z}).uid) then				return true			end		end	end		return falseendlocal function open(pos, i)if i < #doors then	current = doors[i]	next_ = doors[i+1]	local door = getTileItemById(pos, current)	if door.uid > 0 then		doTransformItem(door.uid, next_)		addEvent(open, 200, pos, i+1)	endend	endlocal function close_(pos, i)if areThereCreaturesInArea(top_left, bottom_right) then	return trueendif i <= #doors and i > 1 then	current = doors[i]	next_ = doors[i-1]		local door = getTileItemById(pos, current)	if door.uid > 0 then		doTransformItem(door.uid, next_)		addEvent(close_, 200, pos, i-1)	endend	endfunction onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)	for i = 1, #doors do		local door = getTileItemById(door_pos, doors[i])		if door.uid > 0 then			open(door_pos, i)			break		end	end	return trueendfunction onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)	close_(door_pos, #doors)	return trueend

 

No arquivo movements/movements.xml adicione as seguintes linhas 

 

	<movevent type="StepIn" actionid="12000" event="script" value="doors.lua"/>	<movevent type="StepOut" actionid="12000" event="script" value="doors.lua"/>

 

No map editor adicione o action id 12000 aos tiles em volta da porta marcados com X

 

doors_position.png

 

 

Agora você deve configurar as coordenadas da porta no script de acordo com o seu mapa:

 

local door_pos = {x=1051,y=1032,z=7}

door_pos.png

 

(A pos onde fiz o X):

 

 

E por último configurar os IDS das portas de acordo com o seu servidor:

 

local doors = {18312, 18311, 18310, 18309}

Você deve colocar os IDS na ordem da "mais fechada" até a "mais aberta".

 

No meu exemplo a porta totalmente fechada tem id 18312 e a totalmente aberta 18309, mas no seu servidor provavelmente os ids são diferentes.

 

Espero que seja útil =):

Lembrando que você tem que repetir todos os passos para cada porta assim no seu mapa, usando action ids e posições diferentes.

Em breve faço uma versão que dê pra configurar todas as portas do mapa em 1 script.

Cara, tive uma dúvida. Vou ter que fazer esse script para cada cidade?

KaboFlow29

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/11/12Posts: 267Gênero: MasculinoChar no Tibia: ADM Kabo

obrigado ta funcionando :D muito boom mano!!

 

13569994_1125674057475660_1317191131_o.png

13662475_1132536336789432_1129366659_o.png

jeanflamengo

[> ObservandU essa bagaÇa <]
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 31/07/09Posts: 205Gênero: Masculino

funfando 100%, reputeichon mais para ti

 

@Eskylo

o unico bug que encontrei eh caso se a pessoa for usar ele nas portas do tc e tr, elas não fecham.

Felipe Moraes

Java Developer
avatar
Grão-Duque
Grão-Duque

INFOS

Grupo: Grão-DuqueRegistrado: 02/10/06Posts: 3285Gênero: Masculino

Muito legal seu script, gostei da ideia.

Obrigado por compartilhar conosco!

~A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.~

 

 

 

 

Clique aqui para ver meus tutoriais !

 

 

 

Gamertag: cpmoraes

 

 

wougoplex

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 22/07/16Posts: 189Gênero: Masculino

E pra botar a porta ela de lado nao de frente ela abre mais ela n fecha 

Skinn Bolic

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/09/16Posts: 6

@Eskylo

Deu certinho, Parabéns ai e Obrigado. Rep+

Agora sera que tem o do Depot também? no meu servidor ele fica parado e não se move igual o Pxg. Se puder ajudar serei ainda mais grato.

Sem título.png
827.55 KB1 downloads

57f3f70ce3544_Semttulo.thumb.png.55c1922dc8ed668cda79a936d32a2346.png

  • 1
  • 2