DE
action

Ajuda a modificar script de porta automática

Por Developer Berg, 08 de ago. de 2015 em Scripts

otserv
28
3.6k
Developer BergD
10 de agosto de 2015 às 23:22

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.

eu re-testei aqui a script e ta do mesmo jeito '-' tem como vc mandar 1 print de onde vc colocou as actions no mapa ?

TaigerT
11 de agosto de 2015 às 19:09

k46qu0.jpg

 

Teste com um player normal, o adm pode dar erro.

Editado Agosto 11 por Taiger

Developer BergD
11 de agosto de 2015 às 19:26

k46qu0.jpg

 

Teste com um player normal, o adm pode dar erro.

eu fiz do mesmo jeito que vc fez e deu errado aqui aff '-'

TaigerT
11 de agosto de 2015 às 19:54

q loucura manow, o meu deu de primeira. E estou usando Pfield.

Developer BergD
11 de agosto de 2015 às 20:09

q loucura manow, o meu deu de primeira. E estou usando Pfield.

estou usando a base do kpdo, acho que vou tentar em outra base para ver se vai dar certo

TaigerT
11 de agosto de 2015 às 20:13

Então deve ser manow, teste em um pda sei la, se der certo é pq tem que adaptar para a base kpdo.

nociamN
11 de agosto de 2015 às 21:15

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.

Como qual programa se faz essas .gif tem um tutorial?

TaigerT
11 de agosto de 2015 às 21:17

Como qual programa se faz essas .gif tem um tutorial?

 

 

ta ai o download do programa.

http://downloads.tomsguide.com/GifCam,0301-52843.html

 

 

Site para upar suas gif.

http://makeagif.com/

Editado Agosto 11 por Taiger

2 semanas depois...
TaigerT
19 de agosto de 2015 às 21:43
Melhor resposta

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.

Developer BergD
20 de agosto de 2015 às 13:28

 

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.

aee pegou, reputado rs, mas tem como vc editar essa script para eu configurar mais de uma porta ? tipo, nessa script está só configurado para 1 porta.

-- Do not remove the credits --
-- [MOVEMENT] Porta que abre automáticamente --
-- Developed by Rigby (João Vitor) --
-- Xtibia.com --
 
local porta = {621, 622, 605} -- porta fechada, porta meio aberta, porta aberta
local pos = {x = 1056, y = 1058, z = 7} -- local onde vai fica a porta
local delay = 150 -- ela vai demorar 0.1 segundos para fica totalmente aberta ou totalmente fechada
local action = 2701 -- action que ta no .xml, se muda la vai ter que muda aqui também
 
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    if getTileItemById(pos, porta[1]).uid > 0 then
        for i = 1, 2 do
            addEvent(function()
                doTransformItem(getTileItemById(pos, i == 1 and porta[1] or porta[2]).uid, porta[i + 1])
            end, i * delay)
        end
    end
    return true
end 
 
function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    local tab = {}
    for _, pid in ipairs(getPlayersOnline()) do
        if getTileInfo(getCreaturePosition(pid)).actionid == action then
            table.insert(tab, pid)
        end
    end
    if #tab == 0 then
        if getTileItemById(pos, porta[3]).uid > 0 then
            for i = 1, 2 do
                addEvent(function()
                    doTransformItem(getTileItemById(pos, i == 1 and porta[3] or porta[2]).uid, porta[i == 1 and 2 or 1])
                end, i * delay)
            end
        end
    end
    return true
end
LumusL
20 de agosto de 2015 às 13:39

Dúvida sanada.

 

Tópico movido.

Developer BergD
20 de agosto de 2015 às 15:39

Up

BrunoB
20 de agosto de 2015 às 15:54

Up

Poderia me dizer porque está dando up em um tópico que já está resolvido?