Ir para conteúdo
  • 0

Erro na minha DemonHelmetQuest


InsanityA

Pergunta

Galera se alguém puder me ajudar nesse erro, segue abaixo o log:

Uso TFS 1.2

Lua Script Error: [Main Interface]
in a timer event called from:
(Unknown scriptfile)
data/actions/scripts/quests/demonHelmetQuestLever.lua:14: attempt to call global 'getThingFromPosition' (a nil value)
stack traceback:
[C]: in function 'getThingFromPosition'
data/actions/scripts/quests/demonHelmetQuestLever.lua:14: in function

Meu demonHelmetQuestLever.lua

local stonepos = {x=445, y=593, z=14, stackpos=1} -- Stone pos

local stonepos2 = {x=445, y=594, z=14, stackpos=1}
function onUse(cid, item, fromPos, item2, toPos)
if item.itemid == 1945 then
doRemoveItem(getThingfromPos(stonepos).uid, 1)
doRemoveItem(getThingfromPos(stonepos2).uid, 1)
doTransformItem(item.uid,1946)
addEvent(onTimer7, 15*60*1000) --30minutes
end
return true
end
function onTimer7() --creates wall back
doTransformItem(getThingFromPosition({x=461, y=592, z=14, stackpos=1}).uid, 1945)--lever pos
doCreateItem(1546,1,{x=445, y=593, z=14})-- Stone pos
doCreateItem(1546,1,{x=445, y=594, z=14})

end



Quando eu puxo a alavanca ele da esse erro no console , ele abre as grades tranquilo mas odeio ver um erro no console sabe ^^ .

Vlws agradeço desde já!

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

OK.

local config = {
    stone_ID = 1546,                    --ID da pedra que suponho que bloqueie a passagem.
    stone_posis = {
        {x = 445, y = 593, z = 14},     --Posições das pedras (pode configurar quantas quiser).
        {x = 445, y = 594, z = 14}
    }
}

function onUse(cid, item, fromPos, item2, toPos)
    if item.itemid ~= 1945 then return true end
    
    for i = 1, #config.stone_posis do
        doRemoveItem(getTileItemById(config.stone_posis[i], config.stone_ID).uid)
    end
    doTransformItem(item.uid, 1946)
    addEvent(onTimer7, 15*60*1000, toPos) --30minutes
    return true
end

function onTimer7(lever_pos) --creates wall back
    doTransformItem(getTileItemById(lever_pos, 1946).uid, 1945)
    for i = 1, #config.stone_posis do
        doCreateItem(config.stone_ID, 1, config.stone_posis[i])
    end
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

Primeiro, padroniza o script.. Usa o getThingfromPos pros 3 casos, tira esse getThingfromPosition dai, fica mais bonito, mais claro e menos confuso.

Segundo, o erro está no getThingFromPosition que, ao que me parece, é relativo ao evento de "volta" das pedras e da alavanca.

 

A alavanca está mudando de lado quando você da use nela? E está voltando depois de 30 minutos para o lado inicial?

A posição {x=461, y=592, z=14, stackpos=1} é realmente a posição da alavanca?

Editado por Skulls
Link para o comentário
Compartilhar em outros sites

  • 0

Quando eu uso a alavanca ela muda , a posição está certa , agora eu nao sei o stackpos é 1 mesmo ? ,não sei.

Mas passado 30minutos ela volta pra posição original?

Sim, o stackpos 1 refere-se ao primeiro elemento acima do piso naquela posição.

Bom, você tentou mudar pra getThingFromPos? O erro se mantém?

Há a possibilidade de algum monstro estar em cima da alavanca no momento que é chamado o evento?

 

Esse erro na verdade quer dizer que o parâmetro que está sendo passado pra getThingFromPos é nulo, mas aqui funciona.. Estranho.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim funciona normalmente, eu não testei se 30m ela volta mas a galera do meu server sempre acabam fazendo de novo , então eu acho que ta funcionando certinho, menos esse erro ai no console, Sim eu testei apenas o getThingFromPos e tbm da esse erro no console, não atrapalha o servidor mais sabe qm odeia ver um negocinho errado ali...

Vlws ae se alguém souber como arrumar, s2 s2 s2

Link para o comentário
Compartilhar em outros sites

  • 0

Sim funciona normalmente, eu não testei se 30m ela volta mas a galera do meu server sempre acabam fazendo de novo , então eu acho que ta funcionando certinho, menos esse erro ai no console, Sim eu testei apenas o getThingFromPos e tbm da esse erro no console, não atrapalha o servidor mais sabe qm odeia ver um negocinho errado ali...

 

Vlws ae se alguém souber como arrumar, s2 s2 s2

É, na verdade ele é um warning, ele não prejudica o desempenho do servidor, mas é péssimo ficar com esses erros no console, tb odeio. O estranho é que não tem motivo pra esse erro acontecer. Inclusive, aqui não acontece.. Mas fazer o que, aquelas coisas inexplicáveis da vida.

Link para o comentário
Compartilhar em outros sites

  • 0

A causa do erro é a inexistência do código da função getThingFromPosition no seu servidor.

Troque:

doTransformItem(getThingFromPosition({x=461, y=592, z=14, stackpos=1}).uid, 1945)--lever pos

por:

doTransformItem(getThingfromPos({x=461, y=592, z=14, stackpos=1}).uid, 1945)--lever pos
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

 

A causa do erro é a inexistência do código da função getThingFromPosition no seu servidor.

Troque:

doTransformItem(getThingFromPosition({x=461, y=592, z=14, stackpos=1}).uid, 1945)--lever pos

por:

doTransformItem(getThingfromPos({x=461, y=592, z=14, stackpos=1}).uid, 1945)--lever pos

Eu já sugeri isso e, segundo ele, o erro persistiu, amigo.

Link para o comentário
Compartilhar em outros sites

  • 0

 

OK.

local config = {
    stone_ID = 1546,                    --ID da pedra que suponho que bloqueie a passagem.
    stone_posis = {
        {x = 445, y = 593, z = 14},     --Posições das pedras (pode configurar quantas quiser).
        {x = 445, y = 594, z = 14}
    }
}

function onUse(cid, item, fromPos, item2, toPos)
    if item.itemid ~= 1945 then return true end
    
    for i = 1, #config.stone_posis do
        doRemoveItem(getTileItemById(config.stone_posis[i], config.stone_ID).uid)
    end
    doTransformItem(item.uid, 1946)
    addEvent(onTimer7, 15*60*1000, toPos) --30minutes
    return true
end

function onTimer7(lever_pos) --creates wall back
    doTransformItem(getTileItemById(lever_pos, 1946), 1945)
    for i = 1, #config.stone_posis do
        doCreateItem(config.stone_ID, 1, config.stone_posis[i])
    end
end

Sim eu troquei por position ali porque já antes eu coloquei Pos, mas ai deu o erro nos 2 , vou testar aqui seu script e te falo se funfou, obrigado!!

 

OK.

Zipter funcionou aqui certinho, agora ele não da erro na log mais..

 

Mas a alavanca ela não volta pra posição, =/

 

Vc saberia como eu colocar pra ela voltar ?

 

Abrass e vlws, a todos que ajudaram um rep+ merecidos.

Link para o comentário
Compartilhar em outros sites

  • 0

O que você mudou ? o Lever para lever ? hahah

@

Achei seu .uid hahahahah


100% rapaziada , pode fechar o topico. Resolvido

Vlw pra quem ajudo, agradecido!!

Editado por Assasin
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...