Ir para conteúdo
  • Cadastre-se

(Resolvido)Erro no sistema Porta no Automática igual pxg


Ir para solução Resolvido por Naze,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

PokexGeneration

Qual o motivo deste tópico? 

Servidor dando erro quando se passa pela porta onStepIn

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

[17/10/2020 08:12:40] [Error - MoveEvents Interface] 
[17/10/2020 08:12:40] In a timer event called from: 
[17/10/2020 08:12:40] data/movements/scripts/portas cps/Saffcp.lua:onStepIn
[17/10/2020 08:12:40] Description: 
[17/10/2020 08:12:41] (luaDoTransformItem) Item not found

 

Você tem o código disponível? Se tiver publique-o aqui: local porta = {13518, 13517, 13515} -- porta fechada, porta meio aberta, porta aberta
local pos = {x = 1008, y = 1017, z = 7} -- local onde vai fica a porta
local delay = 300 -- ela vai demorar 0.1 segundos para fica totalmente aberta ou totalmente fechada
local action = 5555 -- 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

 

<movevent type="StepIn" actionid="5555" event="script" value="portas cps/Saffcp.lua"/>
 <movevent type="StepOut" actionid="5555" event="script" value="portas cps/Saffcp.lua"/>

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Da erro e fica como? A porta aberta, meia-aberta ou fechada? É só quando entra mesmo (onStepIn) ou quando sai tbm (onStepOut)? 

 

Ou só da erro mas funciona normalmente? 

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link para o post
Compartilhar em outros sites
52 minutos atrás, Naze disse:

Da erro e fica como? A porta aberta, meia-aberta ou fechada? É só quando entra mesmo (onStepIn) ou quando sai tbm (onStepOut)? 

 

Ou só da erro mas funciona normalmente? 

Da erro para os dois porem fica normal ela abre e fecha normal

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

Tenta dessa forma, apenas coloquei checagem se item existe, se continuar funcionando vai parar os erros. 

 

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    if getTileItemById(pos, porta[1]).uid > 0 then
        for i = 1, 2 do
            addEvent(function()
           	local item = getTileItemById(pos, i == 1 and porta[1] or porta[2]).uid
           	if item > 0 then
              	doTransformItem(item, porta[i + 1])
               end
            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()
               	local item = getTileItemById(pos, i == 1 and porta[3] or porta[2]).uid
                   if item > 0 then
                  	doTransformItem(item, porta[i == 1 and 2 or 1])
               	end
                end, i * delay)
            end
        end
    end
    return true
end

 

@EDIT Só postei a funções então só modifica elas mas a variáveis do início continua. 

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo