ES
action

Cp door system pxg

Por Eskylo, 29 de jun. de 2016 em Actions e Talkactions

pokemon
23
7.9k
Skinn BolicS
06 de outubro de 2016 às 12:20

up

1 mês depois...
14 de novembro de 2016 às 14:29
Em 29/06/2016 at 14:38, Eskylo disse:
local door_pos = {x=1051,y=1032,z=7}

door_pos.png

 

(A pos onde fiz o X):

pode me responder uma coisa?, ai no x é tipo o player passa ali na frente e abre né ? sou novato com isso -'. ai c eu coloca tipo na frente da porta o player passa e abre né ?

WickeW
14 de novembro de 2016 às 15:19

Claro, Segue o tutorial que não tem erro xD =): 

2 meses depois...
RaskgamesR
18 de janeiro de 2017 às 12:50

muito bom Rep +

 

3 meses depois...
06 de abril de 2017 às 17:11
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.

 

Olá boa tarde, queria saber porque no meu esta dando esse erro ?

 

2r780v6.png

6 meses depois...
NoninhouhN
03 de outubro de 2017 às 02:22

Acho que você deve ter copiado ou editado algo errado @amoxicilinaaaaa, confere aí, acho que tá falando que tem um 'i' em algum lugar que não deveria estar.

03 de outubro de 2017 às 11:52
9 horas atrás, Noninhouh disse:

Acho que você deve ter copiado ou editado algo errado @amoxicilinaaaaa, confere aí, acho que tá falando que tem um 'i' em algum lugar que não deveria estar.

Obrigado pela intenção de ajudar, mais já descobrir qual erra erro que eu estava cometendo.

03 de outubro de 2017 às 12:00

Isso não é uma action :/