Ir para conteúdo
  • Cadastre-se

(Resolvido)Quest


Ir para solução Resolvido por zipter98,

Posts Recomendados

 

[01/06/2015 22:22:46] [Error - LuaScriptInterface::loadFile] data/actions/scripts/one/anihilation/anihi.lua:11: '}' expected (to close '{' at line 1) near 'monster'

[01/06/2015 22:22:46] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/one/anihilation/anihi.lua)
[01/06/2015 22:22:46] data/actions/scripts/one/anihilation/anihi.lua:11: '}' expected (to close '{' at line 1) near 'monster'
[01/06/2015 22:22:46] [Error - LuaScriptInterface::loadFile] data/actions/scripts/one/anihilation/anihi.lua:11: '}' expected (to close '{' at line 1) near 'monster'
[01/06/2015 22:22:46] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/one/anihilation/anihi.lua)
 
Não sei se configurei certo

local config = {

storage = 9721,

time = 2, --Tempo para fazer a quest, em minutos.

interval = 0, --Tempo para poder usar a alavanca novamente, em minutos.

timerPos = {

{x = 1127, y = 1152, z = 7}, --Posições onde o tempo restante aparecerá.

{x = 1126, y = 1152, z = 7},

{x = 1125, y = 1152, z = 7},

--etc

}

monster = {

name = "Annihilon", --Nome do monstro.

pos = {

{x = 1121, y = 1151, z = 8}, --Posições onde ele vai nascer.

{x = 1121, y = 1153, z = 8},

{x = 1121, y = 1155, z = 8},

{x = 1129, y = 1151, z = 8},

{x = 1129, y = 1153, z = 8},

{x = 1129, y = 1155, z = 8},

},

},

player = {

{{x = 1126, y = 1152, z = 7}, {x = 1127, y = 1153, z = 8}}, --{{posição onde o player deve ficar}, {para onde será teleportado}},

{{x = 1125, y = 1152, z = 7}, {x = 1126, y = 1153, z = 8}},

{{x = 1124, y = 1152, z = 7}, {x = 1125, y = 1153, z = 8}},

{{x = 1123, y = 1152, z = 7}, {x = 1124, y = 1153, z = 8}},

{{x = 1122, y = 1152, z = 7}, {x = 1123, y = 1153, z = 8}},

},

area = {{x = 1121, y = 1150, z = 8}, {x = 1129, y = 1156, z = 8}}, --{{posição superior esquerda da área}, {posição inferior direita da área}},

}

local cidPos = {}

function clearArea()

for x = config.area[1].x, config.area[2].x do

for y = config.area[1].y, config.area[2].y do

local pos = {x = x, y = y, z = config.area[1].z}

local pid = getTopCreature(pos).uid

if pid > 0 then

if isPlayer(pid) then

doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))

doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_RED, "Você não conseguiu completar a Quest.")

else

doRemoveCreature(pid)

end

end

end

end

setGlobalStorageValue(config.storage, os.time() + config.interval * 60)

end

function checkPlayer()

for x = config.area[1].x, config.area[2].x do

for y = config.area[1].y, config.area[2].y do

local pos = {x = x, y = y, z = config.area[1].z}

local pid = getTopCreature(pos).uid

if isPlayer(pid) then

return true

end

end

end

return false

end

function convert(time)

for i = 1, #config.timerPos do

doSendAnimatedText(config.timerPos, convert(time).minutes..":"..convert(time).seconds, 215)

end

end

function timer(time)

if time < 0 or not checkPlayer() then

return true

end

doSendAnimatedText(config.timerPos, convert(time).minutes..":"..convert(time).seconds, 215)

addEvent(timer, 1000, time - 1)

end

function onUse(cid)

if getGlobalStorageValue(config.storage) > os.time() then

return doPlayerSendCancel(cid, "Wait "..convert(getGlobalStorageValue(config.storage) - os.time()).minutes.."min and "..convert(getGlobalStorageValue(config.storage) - os.time()).seconds.."secs.")

elseif checkPlayer() then

return doPlayerSendCancel(cid, "Tem Player fazendo a Quest,Aguarde!.")

end

local p = {}

for _, pos in pairs(config.player) do

local pid = getTopCreature(pos[1]).uid

if isPlayer(pid) then

p[#p + 1] = pid

cidPos[pid] = _

end

end

if #p < #config.player then

return doPlayerSendCancel(cid, "Não tem 5 Player necessarios.")

end

for i = 1, #p do

doTeleportThing(p, config.player[cidPos[p]][2])

doPlayerSendTextMessage(p, 27, "Boa sorte!")

end

for _, pos in pairs(config.monster.pos) do

doCreateMonster(config.monster.name, pos)

end

timer(config.time)

addEvent(function()

clearArea()

end, config.time * 60 * 1000)

return true

end

Link para o post
Compartilhar em outros sites

 

[02/06/2015 00:35:16] [Error - Action Interface] 

[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:onUse
[02/06/2015 00:35:16] Description: 
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: stack overflow
[02/06/2015 00:35:16] stack traceback:
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:16] ...
[02/06/2015 00:35:16] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:60: in function 'convert'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:67: in function 'timer'
[02/06/2015 00:35:17] data/actions/scripts/one/anihilation/anihi.lua:94: in function <data/actions/scripts/one/anihilation/anihi.lua:70>
 

local config = {

storage = 9721,

time = 120, --Tempo para fazer a quest, em minutos.

interval = 2, --Tempo para poder usar a alavanca novamente, em minutos.

timerPos = {

{x = 1127, y = 1152, z = 7}, --Posições onde o tempo restante aparecerá.

{x = 1129, y = 1150, z = 8},

{x = 1129, y = 1156, z = 8},

{x = 1121, y = 1150, z = 8},

{x = 1121, y = 1156, z = 8},

},

monster = {

name = "Annihilon", --Nome do monstro.

pos = {

{x = 1121, y = 1151, z = 8}, --Posições onde ele vai nascer.

{x = 1121, y = 1153, z = 8},

{x = 1121, y = 1155, z = 8},

{x = 1129, y = 1151, z = 8},

{x = 1129, y = 1153, z = 8},

{x = 1129, y = 1155, z = 8},

},

},

player = {

{{x = 1126, y = 1152, z = 7}, {x = 1127, y = 1153, z = 8}}, --{{posição onde o player deve ficar}, {para onde será teleportado}},

},

area = {{x = 1121, y = 1150, z = 8}, {x = 1129, y = 1156, z = 8}}, --{{posição superior esquerda da área}, {posição inferior direita da área}},

}

local cidPos = {}

function clearArea()

for x = config.area[1].x, config.area[2].x do

for y = config.area[1].y, config.area[2].y do

local pos = {x = x, y = y, z = config.area[1].z}

local pid = getTopCreature(pos).uid

if pid > 0 then

if isPlayer(pid) then

doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))

doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_RED, "Você não conseguiu completar a Quest.")

else

doRemoveCreature(pid)

end

end

end

end

setGlobalStorageValue(config.storage, os.time() + config.interval * 60)

end

function checkPlayer()

for x = config.area[1].x, config.area[2].x do

for y = config.area[1].y, config.area[2].y do

local pos = {x = x, y = y, z = config.area[1].z}

local pid = getTopCreature(pos).uid

if isPlayer(pid) then

return true

end

end

end

return false

end

function convert(time)

for i = 1, #config.timerPos do

doSendAnimatedText(config.timerPos, convert(time).minutes..":"..convert(time).seconds, 215)

end

end

function timer(time)

if time < 0 or not checkPlayer() then

return true

end

doSendAnimatedText(config.timerPos, convert(time).minutes..":"..convert(time).seconds, 215)

addEvent(timer, 1000, time - 1)

end

function onUse(cid)

if getGlobalStorageValue(config.storage) > os.time() then

return doPlayerSendCancel(cid, "Wait "..convert(getGlobalStorageValue(config.storage) - os.time()).minutes.."min and "..convert(getGlobalStorageValue(config.storage) - os.time()).seconds.."secs.")

elseif checkPlayer() then

return doPlayerSendCancel(cid, "Tem Player fazendo a Quest,Aguarde!.")

end

local p = {}

for _, pos in pairs(config.player) do

local pid = getTopCreature(pos[1]).uid

if isPlayer(pid) then

p[#p + 1] = pid

cidPos[pid] = _

end

end

if #p < #config.player then

return doPlayerSendCancel(cid, "Não tem 5 Player necessarios.")

end

for i = 1, #p do

doTeleportThing(p, config.player[cidPos[p]][2])

doPlayerSendTextMessage(p, 27, "Boa sorte!")

end

for _, pos in pairs(config.monster.pos) do

doCreateMonster(config.monster.name, pos)

end

timer(config.time)

addEvent(function()

clearArea()

end, config.time * 60 * 1000)

return true

end

Link para o post
Compartilhar em outros sites

@damiaotorres, entre em editor completo e edite o título, coloque algo coerente com o conteúdo do seu tópico.
 

2.3 - Use títulos e ícones adequados:
Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou e também evite de usar o CAPSLOCK ao criar seu título.
 

http://www.tibiaking...-gerais/?p=7680

Link para o post
Compartilhar em outros sites
 

Troque:

doSendAnimatedText(config.timerPos, convert(time).minutes..":"..convert(time).seconds, 215)
por:
    for i = 1, #config.timerPos do
        doSendAnimatedText(config.timerPos[i], convert(time).minutes..":"..convert(time).seconds, 215)
    end

 

Você trocou a linha errada...

function convert(time)
    return {minutes = math.floor(time / 60), seconds = time - math.floor(time / 60) * 60}
end
function timer(time)
    if time < 0 or not checkPlayer() then
        return true
    end
    for i = 1, #config.timerPos do
        doSendAnimatedText(config.timerPos[i], convert(time).minutes..":"..convert(time).seconds, 215)
    end
    addEvent(timer, 1000, time - 1)
end
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

Mano o time = 2 é o tempo que você tem pra fazer a quest

e o interval = 0 e o tempo para puxar alavanca de novo quando você termina a quest ta configurado errado isso :/

Edite o script pra mim pf :/

 

 

 

Troquei

 

function convert(time)

    return {minutes = math.floor(time / 60), seconds = time - math.floor(time / 60) * 60}
end
function timer(time)
    if time < 0 or not checkPlayer() then
        return true
    end
    doSendAnimatedText(config.timerPos, convert(time).minutes..":"..convert(time).seconds, 215)
    addEvent(timer, 1000, time - 1)
end
 
 Por toda parte que você postou, essa

 

 

function convert(time)
    return {minutes = math.floor(time / 60), seconds = time - math.floor(time / 60) * 60}
end
function timer(time)
    if time < 0 or not checkPlayer() then
        return true
    end
    for i = 1, #config.timerPos do
        doSendAnimatedText(config.timerPos[i], convert(time).minutes..":"..convert(time).seconds, 215)
    end
    addEvent(timer, 1000, time - 1)
end

 

Link para o post
Compartilhar em outros sites

Ambas as variáveis já estão configuradas como deviam: time para o tempo de realização da quest, e interval o tempo para fazê-la novamente. wtf?

Para time ser configurado em minutos:

Troque:

timer(config.time)

por:

timer(config.time * 60)
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 certo Valeu ae :), tava vendo aqui a quest tem 6 monstro 3 em cada lado se ele mata 3 de qualquer lado se ele entra no teleporte o tempo para de contar e os monstro não desaparecem imediatamente ,so desaparecem quando o tempo acaba mesmo :/

Editado por damiaotorres (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 5 weeks later...

Sobre o tempo, havia esquecido de executar a função (lol). Arrumei já.

Esta outra posição seria o templo? Ou outro lugar específico?

Os x=x etc ali eu tenho que por as áreas ou está em outra parte do script?

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