Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajuda com porta automática


Ir para solução Resolvido por zipter98,

Posts Recomendados

Queria uma script de porta automática, tipo a pessoa chega perto da porta e ela abre sozinha, ai a pessoa se afasta da porta e ela volta ao normal :) vou deixar print da porta que quero colocar esse sistema :)

 

post-125336-0-14316300-1428244229_thumb.
 
Onde tá vermelho seria onde o player pisaria pra abrir a porta :)
 
Do Rep+ quem me ajudar ^^

 

Link para o post
Compartilhar em outros sites

Ainda falta editar mais coisa mas testa aí para vê se vai funcionar...

 

Vá em movements/scripts

 

Crie um arquivo chamado autodoor.lua

 

Cole isso dentro:

local dooridopen = id_porta_aberta -- colocar o id da porta
local dooridclose = id_porta_fechada -- colocar o id da porta fechada
local pos1 = {x = 0000, y = 0000, z = 0} -- posição da primeira porta
              

function onStepIn(cid, item, position, fromPosition)
doTransformItem(uid, dooridopen, pos1)
return true
end

No seu arquivo xml cole:

<movevent type="StepIn" uniqueid="33560" event="script" value="autodoor.lua" />

no chão antes da porta coloque o uniqueid 33560

Editado por cs007 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

n funciono, n fez nada n deu nem erro na distro e a porta n abriu :(


tipo acho que deu errado pq isso n é bem uma porta, isso é como se fosse 2 paredes pq n sei adicionar uma nova porta no server ai criei eles como itens

 

N n é por causa da porta, eu testei com uma porta normal agr e n funciono '-'

Editado por zangoosedoido (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

você quer que remova as portas ou transforme ela ? não entendi muito bem o que deve acontecer ... e ali são 2 portas ? ou seja 2 ids diferentes.. tem os id dela aberta ?

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

tipo seria assim " um player chega e pisa em tal tile, e quando ele pisa-se nesse tile removeria uma parede ( que no caso seria a porta fechada ) e substituía por outra ( que no caso seria a porta aberta ), e quando esse player sai-se de cima do tile removeria a porta que ta aberta e substituía por a porta fechada " tipo seria como transformar uma parede para outra e quando o player sai do tile a parede voltaria pra a que tava antes.

 

seria 2 itemid ( 1 para a porta fechada que no caso seria o id que iria ser transformado )

e o outro itemid ( que seria no caso o da porta aberta, ai quando o player sai-se do tile esse id voltaria para o 1° id que no caso o da porta fechada )

 

 

obs: de preferencia que pode-se 2 players pisar no mesmo tile que abra a porta, pq um amigo aki do tibiaking o ( Caronte ) fez uma script pra mim + quando 2 players pisava ao mesmo tempo no mesmo tile pra abrir a porta, a script bugava, ela parava de funcionar e n abria + a porta )

 

Só isso kkkk :P acho que agr da pra entender kkk :P

Link para o post
Compartilhar em outros sites

Amigos Creio eu que seja igual a do PxG.   Ali a porta ira abrir a parte da esquerda para la < e a da direita para la > correto ? 

Editado por iLooveBr (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

ss igual a pxg :) nn só iria abrir a parte da direita > pq tipo a parte esquerda é mesma coisa com a porta aberta e fechada, só oque muda é a parte direita.

Link para o post
Compartilhar em outros sites

@zangoosedoido, amigo por favor não crie multiplos tópicos fazendo o mesmo pedido. Se quiser adicionar alguma informação ao pedido, basta editar o tópico já existente.

 

Leia as regras: http://www.tibiaking.com/forum/privacypolicy/

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

ss igual a pxg :) nn só iria abrir a parte da direita > pq tipo a parte esquerda é mesma coisa com a porta aberta e fechada, só oque muda é a parte direita.

Você está confundindo tudo, explique tudo melhor por favor.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

tipo seria assim " um player chega e pisa em tal tile, e quando ele pisa-se nesse tile removeria uma parede ( que no caso seria a porta fechada ) e substituía por outra ( que no caso seria a porta aberta ), e quando esse player sai-se de cima do tile removeria a porta que ta aberta e substituía por a porta fechada " tipo seria como transformar uma parede para outra e quando o player sai do tile a parede voltaria pra a que tava antes.

 

seria 2 itemid ( 1 para a porta fechada que no caso seria o id que iria ser transformado )

e o outro itemid ( que seria no caso o da porta aberta, ai quando o player sai-se do tile esse id voltaria para o 1° id que no caso o da porta fechada )

 

 

 

Só isso kkkk :P acho que agr da pra entender kkk :P

 

é isso ai '-' é o máximo que consigo explicar '-'

Link para o post
Compartilhar em outros sites
  • Solução

Você coloca o action ID nos tiles que os jogadores pisarão para a porta ser transformada.

local config = {
    door = {xxx, xxx},                     --{ID da porta fechada, ID da porta aberta},
    ids = {
        [actionid] = {                     --[action_id] = {
            {x = x, y = y, z = z},         --Posições das portas.
            {x = x, y = y, z = z},
        },
    },
}
function onStepIn(cid, item, position, fromPosition)
    if config.ids[item.actionid] then
        for _, pos in pairs(config.ids[item.actionid]) do
            local it = getTileItemById(pos, config.door[1]).uid
            if it > 0 then
                doTransformItem(it, config.door[2])
            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[2]).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
            local it = getTileItemById(pos, config.door[2]).uid
            if it > 0 then
                doTransformItem(it, config.door[1])
            end
        end
    end
    return true
end
Tags:
<movevent type="StepIn" actionid="xxx" event="script" value="nome_do_arquivo.lua"/>
<movevent type="StepOut" actionid="xxx" event="script" value="nome_do_arquivo.lua"/>
Não se esqueça de substituir o xxx pelo(s) actionid(s). Para adicionar mais actionids na tag, basta separá-los por ; (ponto e vírgula). Ex.:
<movevent type="StepIn" actionid="1234;1278;6091" event="script" value="nome_do_arquivo.lua"/>
<movevent type="StepOut" actionid="1234;1278;6091" event="script" value="nome_do_arquivo.lua"/>
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Deu erro aqui na distro :(

meu deus

 

 

Você não editou o arquivo.lua ? :facepalm:

Reveja o que fez errado.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Eu editei s -.- olhe ai, e me diga oque falta editar '-'

local config = {
    door = {621, 605},                     --{ID da porta fechada, ID da porta aberta},
    ids = {
        [actionid] = {                     --[action_id] = {
            {x = 1056, y = 1053, z = 7},         --Posições das portas.
            {x = 1053, y = 1053, z = 7},
        },
    },
}
function onStepIn(cid, item, position, fromPosition)
    if config.ids[item.actionid] then
        for _, pos in pairs(config.ids[item.actionid]) do
            local it = getTileItemById(pos, config.door[1]).uid
            if it > 0 then
                doTransformItem(it, config.door[2])
            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[2]).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
            local it = getTileItemById(pos, config.door[2]).uid
            if it > 0 then
                doTransformItem(it, config.door[1])
            end
        end
    end
    return true
end
<movevent type="StepIn" actionid="2701;2702;2703;2704;2705;2706;2707;2708;2709;2800" event="script" value="porta1.lua"/>

<movevent type="StepOut" actionid="2701;2702;2703;2704;2705;2706;2707;2708;2709;2800" event="script" value="porta1.lua"/>

Se for essa parte aqui 

[actionid] = {                     --[action_id] = {

eu coloquei as actions ai e deu outro erro na distro

Editado por zangoosedoido (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

É essa parte que você citou que falta configurar. Se deu erro, é porque você fez alguma coisa errada. ;s

E cada actionid representa 2 posições diferentes. Se todos estes que você colocou na tag forem para a mesma posição, recomendo deixar apenas um.

Exemplo de como a tabela ficaria com 3 actionids:

ids = {
    [2701] = {                     --[action_id] = {
        {x = 1056, y = 1053, z = 7},         --Posições das portas.
        {x = 1053, y = 1053, z = 7},
    },
    [2702] = {                     --[action_id] = {
        {x = 1410, y = 1540, z = 7},         --Posições das portas.
        {x = 1411, y = 1540, z = 7},
    },
    [2703] = {                     --[action_id] = {
        {x = 1781, y = 1150, z = 7},         --Posições das portas.
        {x = 1783, y = 1150, z = 7},
    },
},
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Ainda ta dando o mesmo erro rsrs :P e eu configurei diferente olha

local config = {
    door = {621, 605},                     --{ID da porta fechada, ID da porta aberta},
    ids = {
        [actionid] = {                     --[action_id] = {
            {x = 1056, y = 1053, z = 7},         --Posições das portas.
            {x = 1053, y = 1053, z = 7},
        },
    },
}
function onStepIn(cid, item, position, fromPosition)
    if config.ids[item.actionid] then
        for _, pos in pairs(config.ids[item.actionid]) do
            local it = getTileItemById(pos, config.door[1]).uid
            if it > 0 then
                doTransformItem(it, config.door[2])
            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[2]).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
            local it = getTileItemById(pos, config.door[2]).uid
            if it > 0 then
                doTransformItem(it, config.door[1])
            end
        end
    end
    return true
end

Tag

<movevent type="StepIn" actionid="2701" event="script" value="porta1.lua"/>
<movevent type="StepOut" actionid="2701" event="script" value="porta1.lua"/>

Coloquei só 1 actionid na porta e continuo dando o mesmo erro, testei até com uma porta normal " porta de house " e deu a mesma coisa.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo