Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Bom dia tk. estou com um erro no meu servidor que nao estou consigo resolver . Tipo eu instalei todos os eventos , CTF , Snawball , Island of Elementals tudo certinho  nao aparece nenhum erro no distro só que eu boto o dia e o horario e o evento nao funciona nao aparece msg nem nada. Alguém pode me ajudar pois meu servidor sera inaugurado sabado agr e preciso esta tudo pronto. Meu distro é OTX Server Version 2.1.70.

 

 

 

Fui tentar reinstalar os eventos um de cada vez e o snawball do nada apareceu esse erro

Description: 

attempt to index a nil value

stack traceback:

	[C]: in function 'doSendAnimatedText'

	data/globalevents/scripts/SBW.lua:103: in function 

[Error - GlobalEvents::think] Couldn't execute event: AnimatedSBW



[Error - GlobalEvent Interface] 

data/globalevents/scripts/SBW.lua:onThink

Description: 

attempt to index a nil value

stack traceback:

	[C]: in function 'doSendAnimatedText'

	data/globalevents/scripts/SBW.lua:103: in function 

[Error - GlobalEvents::think] Couldn't execute event: AnimatedSBW
 

 

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

Vai em globalevents/scripts/SBW.lua dai faz um backup do SBW.lua, depois substitui por esse aqui \/ se não der tenta o outro que coloquei embaixo.

 

Spoiler

function onTime()
                
function isInWallArray(pos)
    for k = 0, table.getn(SBW_WALLSID) do
        if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then
            return true    
        end    
    end
 return false
end

               
function endsnowball()
    local score = {}
    if not SBW_USEWAIT then
        doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
    end
    for _, pid in ipairs(getPlayersOnline()) do
        if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then
            table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
            doPlayerSetStorageValue(pid, SBW_INEVENT, 0)
            doPlayerSetStorageValue(pid, SBW_SCORE, 0)
            doPlayerSetStorageValue(pid, SBW_AMMO, 0)
            doTeleportThing(pid, SBW_TPEND)
        end
    end
    table.sort(score, function(a, b) return a[2] > b[2] end)
    local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)]
    local hora = os.date("%X")
    local data = os.date("%x")    
    if table.getn(score) > 0 then
        if SBW_ADDREWARD then
            for _, pid in ipairs(getPlayersOnline()) do
                if getCreatureName(pid) == score[1][1] then
                    doPlayerAddItem(pid, random_item, 1)
                    break
                end
            end
        end
        db.query("INSERT INTO `snowballwar`  VALUES ('', ".. db.escapeString(score[1][1]) ..  ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");")  
        db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";") 
        doBroadcastMessage("[SNOWBALL WAR] Foi encerrado, parabens ao jogador "..score[1][1].." que venceu o SnowBall com "..score[1][2].." pontos.")
    end
    return true
end

local t_l = SBW_AREA[1]
local b_r = SBW_AREA[2]

function moveToEvent()
for _, pid in ipairs(getPlayersOnline()) do
    if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then
        local posti = {}
        local isPossibleToTeleportPlayer = false
        while (isPossibleToTeleportPlayer == FALSE) do
                        posti = ({x=math.random(t_l.x,b_r.x), y=math.random(t_l.y, b_r.y), z=math.random(t_l.z, b_r.z)})
            if (isInWallArray(posti) == FALSE) then
                isPossibleToTeleportPlayer = TRUE
            end
        end
        doTeleportThing(pid, posti)
        doPlayerSetStorageValue(pid, SBW_INEVENT, 1)
        doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO)
        doPlayerSetStorageValue(pid, SBW_SCORE, 0)
        doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.")                                                                       
    end
end
doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
addEvent(endsnowball, SBW_DURATION*1000*60)
doBroadcastMessage(SBW_MSGSTART)
end

local time = os.date("*t")
local timeopen1 = math.ceil(SBW_TIMEWAIT / 4)
local timeopen2 = math.ceil(SBW_TIMEWAIT / 2)
if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then
    doBroadcastMessage(SBW_MSGWARNING)
    if SBW_USEWAIT then
        addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!")
        if (timeopen2 ~= timeopen1) then
            addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!")
        end
        addEvent(moveToEvent, SBW_TIMEWAIT*1000*60)
        doCreateTeleport(1387, SBW_TPGO, SBW_TP)
    else
        if SBW_TFS == "0.3" then
            doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880)
        else
            doSetItemActionId(doCreateItem(1387, SBW_TP), 2880)
        end
        if(SBW_DURATION > 0) then
            addEvent(endsnowball, SBW_DURATION*1000*60)
        end
    end
end
return true
end

function onThink(interval, lastExecution)
local texts = {["GERADOR"] = {SBW_GERADOR, 55, TEXTCOLOR_ORANGE}}

for text, param in pairs(texts) do
    doSendAnimatedText(param[1], text, param[3])
    doSendMagicEffect(param[1], param[2])
end
return TRUE
end

 

 

 

Spoiler

function onTime()
                
function isInWallArray(pos)
    for k = 0, table.getn(SBW_WALLSID) do
        if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then
            return true    
        end    
    end
 return false
end

               
function endsnowball()
    local score = {}
    if not SBW_USEWAIT then
        doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
    end
    for _, pid in ipairs(getPlayersOnline()) do
        if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then
            table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
            doPlayerSetStorageValue(pid, SBW_INEVENT, 0)
            doPlayerSetStorageValue(pid, SBW_SCORE, 0)
            doPlayerSetStorageValue(pid, SBW_AMMO, 0)
            doTeleportThing(pid, SBW_TPEND)
        end
    end
    table.sort(score, function(a, b) return a[2] > b[2] end)
    local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)]
    local hora = os.date("%X")
    local data = os.date("%x")    
    if table.getn(score) > 0 then
        if SBW_ADDREWARD then
            for _, pid in ipairs(getPlayersOnline()) do
                if getCreatureName(pid) == score[1][1] then
                    doPlayerAddItem(pid, random_item, 1)
                    break
                end
            end
        end
        db.query("INSERT INTO `snowballwar`  VALUES ('', ".. db.escapeString(score[1][1]) ..  ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");")  
        db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";") 
        doBroadcastMessage("[SNOWBALL WAR] Foi encerrado, parabens ao jogador "..score[1][1].." que venceu o SnowBall com "..score[1][2].." pontos.")
    end
    return true
end

local t_l = SBW_AREA[1]
local b_r = SBW_AREA[2]

function moveToEvent()
for _, pid in ipairs(getPlayersOnline()) do
    if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then
        local posti = {}
        local isPossibleToTeleportPlayer = false
        while (isPossibleToTeleportPlayer == FALSE) do
                        posti = ({x=math.random(t_l.x,b_r.x), y=math.random(t_l.y, b_r.y), z=math.random(t_l.z, b_r.z)})
            if (isInWallArray(posti) == FALSE) then
                isPossibleToTeleportPlayer = TRUE
            end
        end
        doTeleportThing(pid, posti)
        doPlayerSetStorageValue(pid, SBW_INEVENT, 1)
        doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO)
        doPlayerSetStorageValue(pid, SBW_SCORE, 0)
        doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.")                                                                       
    end
end
doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
addEvent(endsnowball, SBW_DURATION*1000*60)
doBroadcastMessage(SBW_MSGSTART)
end

local time = os.date("*t")
local timeopen1 = math.ceil(SBW_TIMEWAIT / 4)
local timeopen2 = math.ceil(SBW_TIMEWAIT / 2)
if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then
    doBroadcastMessage(SBW_MSGWARNING)
    if SBW_USEWAIT then
        addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!")
        if (timeopen2 ~= timeopen1) then
            addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!")
        end
        addEvent(moveToEvent, SBW_TIMEWAIT*1000*60)
        doCreateTeleport(1387, SBW_TPGO, SBW_TP)
    else
        if SBW_TFS == "0.3" then
            doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880)
        else
            doSetItemActionId(doCreateItem(1387, SBW_TP), 2880)
        end
        if(SBW_DURATION > 0) then
            addEvent(endsnowball, SBW_DURATION*1000*60)
        end
    end
end
return true
end

 

 

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Bartzin disse:

Ook testarei .

Você pode me ajudar no outro erro também?

 tipo, qual ?

       112674.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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Budrox
      ola! venho apresentar meu protejo e ouvir a opinião de
      vocês estou trabalhando a alguns meses nessas sprites,
      jogariam um protejo assim, penso em fazer o jogo em
      outras engines mas faria mais sentido se fosse um
      protejo online.

    • Por GamerGoiano
      Provavelmente funciona com os outros jogos do quilante, basta substituir a pasta data na pasta do servidor e substituir os arquivos do cliente na pasta otclient/data/things/860
      Eu não tenho créditos sobre o projeto, estou apenas postando aqui porque ja é de dominio público porém em todos os tópicos na internet o projeto está muito desatualizado
      Este aqui está configurado pra por online no pc.
       

      Download: (TFS 04 860 + OTCLIENT "Ultima versão x64", Htdocs "O site" e o Banco de dados Compativel.
      https://www.mediafire.com/file/bmponjci62txbxd/TIBIA+GTA+ARRUMADO.rar/file

      Scan:
      https://www.virustotal.com/gui/file/b6236579ad11201f3c01899a218f6ca8ef8e645cf3881f5de2af46a04837085d?nocache=1
    • Por TestAccount
      Bem vindos a SwampSoldiers, um ot alternativo único de sapos e minhocas! Achou estranho? Eu também, mas comecei a jogar e viciei ?

      Website
      SwampSoldier - Play to earn (https://www.swampsoldiers.com/index)

      Social Media
      Twitter: https://twitter.com/SoldiersSwamp
      Discord: Join the SwampSoldiers | ? Vs ? Discord Server! (https://discord.gg/qc9wfMQ8vK)
      Youtube: https://www.youtube.com/c/SwampSoldiers
      Facebook: SwampSoldier (https://www.facebook.com/profile.php?id=100087871800250)
      Instagram: Swamp Soldiers (@swampsoldiers) • Instagram photos and videos (https://www.instagram.com/swampsoldiers/)

      =================================================================================================
      SwampSoldiers é um jogo blockchain gratuito, onde você é o verdadeiro dono de seus ativos e pode vendê-los facilmente a outros jogadores por dinheiro real.

      Características:
      Músicas de fundo e efeitos de som; Mapa unico e original; 6 diferentes classes e 2 facções; NPCs animados; Spells unicos com som; Mercado p2p; Quests únicas; 0% de perda de exp até o lvl 5; Sistema de crafting; Sistema de casas e ilhas particulares; Sistema de pet e autoloot; World boss; Tower defense mini-game; Battle royale sendo desenvolvido;  

       

       

       

       

       

    • Por MatteusDeli
      Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts.
       
      Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição.
       
      Como poderíamos resolver isso?
       
      É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria:
       

      (tiles sem as ActionIDs no valor de 1000)
       
      Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los.
       
      Vamos adicionar as ActionIDs então:
       

      (tiles com as ActionIDs adicionados no valor de 1000)
       
      Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP!
       
      Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história?
       
      O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este…
       

       
      Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts.
       
      Concluindo…
       
      O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar.
       
      A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo.
       
      O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo.
       
      Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
    • Por Cat
      Veja também: • Telhado Venore do Tibia Completo (81 peças)
       

       
      TIBIA - TELHADO CLÁSSICO
       
         Fiz esse pack e decidi compartilhar com a comunidade. Aproveitei e fiz um rework em algumas peças auxiliares como Arcos, Corrimãos. Acompanha também no pack bordas, chaminés e fumaças.
       
         ?
       
      https://discord.gg/Ewu2J3qWhe.
       
       
      CONTEÚDO DO PACK










       

      »telhados_academia_de_mapping.rarspan widgetspan widget
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo