Obrigado, Belo tutorial.
Obrigado, Belo tutorial.
info
Grupo: Conde
Registrado: 03/11/11
Posts: 714
Reputação: +67
Gênero: Masculino
Char no Tibia: esqueci 20+

Tava precisando MUITO disso! Obrigado!!
info
Grupo: Visconde
Registrado: 11/08/10
Posts: 477
Reputação: +175
Gênero: Masculino

info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Muito bom seu script.
Faz uma versão onde requira apenas a posição da porta.
info
Grupo: Visconde
Registrado: 24/05/11
Posts: 391
Reputação: +102

info
Grupo: Visconde
Registrado: 22/11/12
Posts: 267
Reputação: +26
Gênero: Masculino
Char no Tibia: ADM Kabo

Mais tarde bo testear mano
info
Grupo: Visconde
Registrado: 11/08/10
Posts: 477
Reputação: +175
Gê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.
funfando 100%, obrigado por compartilhar
info
Grupo: Conde
Registrado: 03/11/11
Posts: 714
Reputação: +67
Gênero: Masculino
Char no Tibia: esqueci 20+

Em 29/06/2016 at 14:38, Eskylo disse:
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
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}
(A pos onde fiz o
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?
info
Grupo: Visconde
Registrado: 22/11/12
Posts: 267
Reputação: +26
Gênero: Masculino
Char no Tibia: ADM Kabo

obrigado ta funcionando
muito boom mano!!

info
Grupo: Barão
Registrado: 31/07/09
Posts: 205
Reputação: +24
Gênero: Masculino

funfando 100%, reputeichon mais para ti
o unico bug que encontrei eh caso se a pessoa for usar ele nas portas do tc e tr, elas não fecham.
Editado Julho 8 por jeanflamengo
info
Grupo: Grão-Duque
Registrado: 02/10/06
Posts: 3.3k
Reputação: +151
Gênero: Masculino

Muito legal seu script, gostei da ideia.
Obrigado por compartilhar conosco!
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino

E pra botar a porta ela de lado nao de frente ela abre mais ela n fecha
info
Grupo: Campones
Registrado: 22/09/16
Posts: 6
Reputação: 0
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.
Editado Outubro 4 por Skinn Bolic
info
Grupo: Visconde
Registrado: 11/08/10
Posts: 477
Reputação: +175
Gênero: Masculino
Crie um arquivo chamado doors.lua na pasta data\movements\scripts e adicione o seguinte conteúdo:
No arquivo movements/movements.xml adicione as seguintes linhas
No map editor adicione o action id 12000 aos tiles em volta da porta marcados com X
Agora você deve configurar as coordenadas da porta no script de acordo com o seu mapa:
(A pos onde fiz o X)
E por último configurar os IDS das portas de acordo com o seu servidor:
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.
Editado Junho 29 por Eskylo