Ir para conteúdo
  • 0

Ajuda a modificar script de porta automática


Pergunta

Iae galera smile.png é o seguinte, queria a ajuda de vcs para modificar uma script de porta automática, igual a porta do Pxg.

 

como ela funciona --->>> o player chega e pisa em tal tile, e assim que ele pisa uma porta é aberta, em seguida quando o player sair de cima do tile ela se fecha, e quando tem 2 player em cima dos tiles que tem a action a porta fica aberta e se 1 dos players sair de cima do tile com a action e ficar 1 player em cima do tile ainda com a action a porta continua aberta.

vou deixar a script que estou usando que o zipter98 criou ^^

 

Script

local config = {
    delay = 150,                                       --Intervalo de tempo entre as "transformações" da porta, em milésimos.
    door = {621, 622, 605},                       --{ID da porta fechada, ID da porta aberta pela metade, ID da porta aberta},
    ids = {
    [2701] = {                                        
        {x = 1056, y = 1055, z = 7},         --Saffron--
    },
  },
}
function onStepIn(cid, item, position)
    if config.ids[item.actionid] then
        for _, pos in pairs(config.ids[item.actionid]) do
            if getTileItemById(pos, config.door[1]).uid > 0 then
                for i = 1, 2 do
                    addEvent(function()
                        doTransformItem(getTileItemById(pos, i == 1 and config.door[1] or config.door[2]).uid, config.door[i + 1])
                    end, i * config.delay)
                end
            end 
        end
    end
    return true
end
function onStepOut(cid, item)
    if config.ids[item.actionid] then
        for _, pos in pairs(config.ids[item.actionid]) do
            local it = getTileItemById(pos, config.door[3]).uid
            if it > 0 then
                if getSpectators(pos, 1, 1) then
                    return true
                end
            end
        end
        for _, pos in pairs(config.ids[item.actionid]) do
            if getTileItemById(pos, config.door[3]).uid > 0 then
                for i = 1, 2 do
                    addEvent(function()
                        doTransformItem(getTileItemById(pos, i == 1 and config.door[3] or config.door[2]).uid, config.door[i == 1 and 2 or 1])
                    end, i * config.delay)
                end
            end
        end
    end
    return true
end

Tags

<movevent type="StepIn" actionid="2701" event="script" value="portas cps/Saffron/portas cima baixo.lua"/>
<movevent type="StepOut" actionid="2701" event="script" value="portas cps/Saffron/portas cima baixo.lua"/>

Bug --->>> para facilitar + eu filmei para vcs entender o bug.

Video com a porta bugada, que quero corrigir

Video com a porta normal do jeito que quero.

e tipo, metade da porta pega normal do jeito que eu quero no caso a metade direita, já no caso da metade esquerda da porta, ela fica bugada,

vou deixar print representando onde ta as actions e quais tiles tão bugando

 

Explicação do Print --->>> onde ta azul é os tiles que ta pegando normal, Onde ta vermelho é os tiles que tão bugados

 

 

Print

 

 


Up

post-381687-0-19274400-1439072900.png

Editado por ricardoberg
Link para o comentário
https://xtibia.com/forum/topic/236097-ajuda-a-modificar-script-de-porta-autom%C3%A1tica/
Compartilhar em outros sites

Posts Recomendados

  • 0
  Em 09/08/2015 em 11:34, ricardoberg disse:

Iae galera smile.png é o seguinte, queria a ajuda de vcs para modificar uma script de porta automática, igual a porta do Pxg.

 

como ela funciona --->>> o player chega e pisa em tal tile, e assim que ele pisa uma porta é aberta, em seguida quando o player sair de cima do tile ela se fecha, e quando tem 2 player em cima dos tiles que tem a action a porta fica aberta e se 1 dos players sair de cima do tile com a action e ficar 1 player em cima do tile ainda com a action a porta continua aberta.

vou deixar a script que estou usando que o zipter98 criou ^^

 

Script

local config = {
    delay = 150,                                       --Intervalo de tempo entre as "transformações" da porta, em milésimos.
    door = {621, 622, 605},                       --{ID da porta fechada, ID da porta aberta pela metade, ID da porta aberta},
    ids = {
    [2701] = {                                        
        {x = 1056, y = 1055, z = 7},         --Saffron--
    },
  },
}
function onStepIn(cid, item, position)
    if config.ids[item.actionid] then
        for _, pos in pairs(config.ids[item.actionid]) do
            if getTileItemById(pos, config.door[1]).uid > 0 then
                for i = 1, 2 do
                    addEvent(function()
                        doTransformItem(getTileItemById(pos, i == 1 and config.door[1] or config.door[2]).uid, config.door[i + 1])
                    end, i * config.delay)
                end
            end 
        end
    end
    return true
end
function onStepOut(cid, item)
    if config.ids[item.actionid] then
        for _, pos in pairs(config.ids[item.actionid]) do
            local it = getTileItemById(pos, config.door[3]).uid
            if it > 0 then
                if getSpectators(pos, 1, 1) then
                    return true
                end
            end
        end
        for _, pos in pairs(config.ids[item.actionid]) do
            if getTileItemById(pos, config.door[3]).uid > 0 then
                for i = 1, 2 do
                    addEvent(function()
                        doTransformItem(getTileItemById(pos, i == 1 and config.door[3] or config.door[2]).uid, config.door[i == 1 and 2 or 1])
                    end, i * config.delay)
                end
            end
        end
    end
    return true
end

Tags

<movevent type="StepIn" actionid="2701" event="script" value="portas cps/Saffron/portas cima baixo.lua"/>
<movevent type="StepOut" actionid="2701" event="script" value="portas cps/Saffron/portas cima baixo.lua"/>

Bug --->>> para facilitar + eu filmei para vcs entender o bug.

Video com a porta bugada, que quero corrigir

Video com a porta normal do jeito que quero.

e tipo, metade da porta pega normal do jeito que eu quero no caso a metade direita, já no caso da metade esquerda da porta, ela fica bugada,

vou deixar print representando onde ta as actions e quais tiles tão bugando

 

Explicação do Print --->>> onde ta azul é os tiles que ta pegando normal, Onde ta vermelho é os tiles que tão bugados

 

 

Print

 

 

Up

 

ricardo achu que descobri seu problema, sem querer eu adicionei no mapa o actionid em uma borda ao inves do piso que estava debaixo dele, e começo a dar esse seu problema ai, teste por o action id no piso caso tenha alguma borda ou outra coisa por cima do piso, e no items.otb no seu piso selecione full ground. testei aqui e deu.

  • 0
  • 0
  Em 09/08/2015 em 12:21, Taiger disse:

voce adicionou o action em todos os pisos perto da porta?

Ss

  Em 09/08/2015 em 13:05, The JV disse:

eu tinha feito essa porta para um cara aqui, da uma olhada.

http://www.xtibia.com/forum/topic/235518-como-por-efeito-no-item-da-porta/

Esse sistema ta do mesmo jeito que esse meu, ta fazendo o mesmo bug rs '-'

Up

  • 0
  Em 09/08/2015 em 15:55, valakas disse:

acho que esse sistema é feito pelo otc, para evitar lag

isso n é leg, um cara de outro forum falou que era coisa do StepIn e StepOut, tipo, também tem no Psoul, lá tem esse sistema da porta automatica, e eles usam OldClient E Otclient rs

  • 0

Você testo antes de fala?

Que bug ta dando?

O cara que eu fiz amostro ele funcionando no servidor dele e tava pegando normal.

só basta você por a actionid 5555 onde o player pisara e abrira a porta.


e para de da up, você so pode fazer isso acada 24hrs, espere alguém te responde!

  • 0
  Em 09/08/2015 em 16:10, The JV disse:

Você testo antes de fala?

Que bug ta dando?

O cara que eu fiz amostro ele funcionando no servidor dele e tava pegando normal.

só basta você por a actionid 5555 onde o player pisara e abrira a porta.

s eu testei, o bug é aquele que ta no video, tipo, se eu colocar a action 5555, e colocar essa action ao redor da porta, e se eu passar de 1 piso que tem a action para o outro piso que também tem a action a porta deveria continuar aberta, já na script ta assim, quando eu passo de 1 piso que tem a action para o outro piso que também tem a action, a porta se fecha e depois reabre de novo, eu queria que ela continua-se aberta e n fecha-se e reabri-se, e as vezes a porta nem reabrir ela reabre, fica fechada, só se eu andar de novo que ela reabre '-' olha os 2 videos ai e ver, o 1° video é o bug que eu to mostrando, e o 2° video é a porta do jeito que quero.

Editado por ricardoberg
  • 0
  Em 09/08/2015 em 16:20, The JV disse:

manda o script do jeito que você ta editando, deve ser porque você ta editando errado.

olha, com a minha antiga script que eu usava eu editei assim

 

script

 

  Mostrar conteúdo oculto

 

Tags

<movevent type="StepIn" actionid="2701" event="script" value="portas cps/portas cima baixo.lua"/>
<movevent type="StepOut" actionid="2701" event="script" value="portas cps/portas cima baixo.lua"/>

Vou deixar Print da porta no mapa onde está todas as actions " 2701 " que coloquei para funcionar

 

Já com a sua script eu fiz assim

 

Script

 

  Mostrar conteúdo oculto

 

Tags

<movevent type="StepIn" actionid="2701" event="script" value="portas cps/portas cima baixo.lua"/>
<movevent type="StepOut" actionid="2701" event="script" value="portas cps/portas cima baixo.lua"/>

Eu coloquei a action " 2701 " também, e coloquei ela nos mesmos cantos do mapa que coloquei na 1° script citada

 

 

Print dos locais que tem a action onde está marcado é onde tem as actions

Up

Up

post-381687-0-56888200-1439138531_thumb.png

  • 0
  Em 10/08/2015 em 22:57, Taiger disse:

Aqui funcionou certinho

e como vc configurou ? no mapa e na script ?

  • 0

Coloquei os action id no mapa e no script normal, e funcionou de boa só segui o tutorial do the jv normal. Tem que por as cordenadas do tile que fica o item da porta certinho tb.

 

_5ssdL.gif

 

xMCU5E.gif

 

Não sei pq ficou ruim essa gif, mais ta ai ó funcionando.

 

Tenta usar outro numnero para o action id manow, quem sabe pode estar dando conflito com outro action com o mesmo numero.

Editado por Taiger
×
×
  • Criar Novo...