• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 1.X+ Battle War Debug

Magicalx

Banned User
Joined
Jul 6, 2022
Messages
56
Reaction score
9
GitHub
Magicalx
It works and takes me to the waiting room and there the event stops and shows this error in otclient and the other in tibia
In arise\/
Lua:
Lua Script Error: [Main Interface]
in a timer event called from:
(Unknown scriptfile)
data/lib/teambattle.lua:213: bad argument #2 to 'random' (interval is empty)
In Otclient\/
Code:
ERROR: ProtocolGame parse message exception (1499 bytes, 30 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170)): unhandled opcode 116
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 810)
ERROR: ProtocolGame parse message exception (86 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170)): unhandled opcode 116
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 810)
ERROR: ProtocolGame parse message exception (88 bytes, 33 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170)): unhandled opcode 116
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 810)
ERROR: ProtocolGame parse message exception (196 bytes, 143 unread, last opcode is 0xaa (170), prev opcode is 0xa2 (162)): unknown message mode 255
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 810)
In Tibia\/
I use this system
Script\/
Code:
--first team
    TEAM_BATTLE_A = {
        name = 'Blue',
        color = 88
    }
--second team               
    TEAM_BATTLE_B = {
        name = 'Red',
        color = 94
    }

CONDITION_TEAM_A_MALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_A_MALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_A_MALE, 0, 131, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color)

CONDITION_TEAM_A_FEMALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_A_FEMALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_A_FEMALE, 0, 139, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color)

CONDITION_TEAM_B_MALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_B_MALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_B_MALE, 0, 131, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color)

CONDITION_TEAM_B_FEMALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_B_FEMALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_B_FEMALE, 0, 139, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color)

function getIndex(array, v)
    for index, value in ipairs(array) do
        if v == value then
            return index
        end
    end
end

function table.clone(t)
    local t_type = type(t)
    local copy
    if t_type == 'table' then
        copy = {}
        for t_key, t_value in pairs(t) do
            copy[t_key] = t_value
        end
    else -- number, string, boolean, etc
        copy = t
    end
    return copy
end

function getTeamLevel(t)
    local v = 0
    for _, player in ipairs(t) do
        v = v + player:getLevel()
    end
    return v
end

-->[[
    --> CONSTANTS
--<]]
    team_battle = {
        --minutes to begin event
            start_time = 1,
        --minutes to finish event
            finish_time = 20,
        --min players required for event
            min_players = 2,
        --max players allowed in event
            max_players = 100,
        --custom channel to broadcast event messages
            channel = 11,
        --delay in minutes to broadcast event stats
            event_info = 3,
        --mininum level of player
            player_level = 500,
        --reward for winner team
            reward = {2638, 10},
        --allow players with same IP in event? [false = allow, true = don't allow]
            ip_check = false,
    -->[[
        --> STORAGES & DATA
    --<]]   
        --event's stat globalstorage
            status = 1000,
        --team a's score globalstorage
            team_a_frags = 1001,
        --team b's score globalstorage
            team_b_frags = 1002,
        --team a players
            team_a = {},
        --team b players
            team_b = {},
        --player's storages
            stor_team = 20000,
    -->[[
        --> STRINGS (do not alter %d or %s)
    --<]]
            msg_call = 'Team Battle will begin in %s! Write "!teambattle" to join the event.',
            msg_join = '[Team Battle] %s has joined the event.',
            msg_cancel = 'Team Battle was canceled for insufficient players.',
            msg_begin = 'Team Battle has started!',
            msg_finish = 'Team Battle will finish in %d minutes...',
            msg_win = 'Team Battle has finished and team %s is the winner with %d frags! [' .. TEAM_BATTLE_A.name .. ': %d - ' .. TEAM_BATTLE_B.name .. ': %d] A tibia coin voucher has been added to the players of winner team.',
            msg_draw = 'Team Battle has ended with a draw! Both teams scored %s frags...',
            msg_kill = '[Team Battle] %s killed %s. [' .. TEAM_BATTLE_A.name .. ': %d - ' .. TEAM_BATTLE_B.name .. ': %d]',
            msg_stat = '[Team Battle] [' .. TEAM_BATTLE_A.name .. ': %d - ' .. TEAM_BATTLE_B.name .. ': %d].',
            msg_defeat = '[Team Battle] %s.',
            msg_bonus = '[Team Battle] You have been awarded with x%d %s.',
    -->[[
        --> POSITIONS (map wait_room with PZ+NO-LOGOUT, arena with PVP+NO-LOGOUT)
    --<]]
            wait_room = {from = Position(113, 593, 7), to = Position(134, 607, 7)},
            arena = {from = Position(82, 519, 7), to = Position(142, 514, 7)},
    -->[[
        --> FUNCTIONS
    --<]]           
            isEnemy = function (player, attacker)
                local enemy = attacker
                if attacker:isCreature() == nil then
                    return true
                end

                if (enemy:getMaster() ~= nil) and (enemy:getMaster():isPlayer() ~= nil) then
                    enemy = enemy:getMaster()
                end
                
                return player:getOutfit().lookBody ~= enemy:getOutfit().lookBody       
            end,

            broadcast = function (msg, class)
                for _, player in ipairs(Game.getPlayers()) do
                    player:sendChannelMessage('', msg, class, team_battle.channel)
                end
            end,

            getData = function (player, data)
                local key = {
                    ['team'] = team_battle.stor_team
                }
                return player:getStorageValue(key[data])
            end,
                                  
            hasDuplicateIP = function (player1)
                for _, player2 in ipairs(Game.getPlayers()) do
                    if player2:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                        if player1:getIp() == player2:getIp() then
                            return true
                        elseif player2:getIp() == 0 then
                            player2:remove()
                        end
                    end
                end
                return false
            end,
                        
            getTeamInArena = function (t)
                local count = 0
                for _, player in ipairs(Game.getPlayers()) do
                    if player:getPosition():isInRange(team_battle.arena.from, team_battle.arena.to) and (team_battle.getData(player, 'team') == t) then
                        count = count + 1
                    end
                end
                return count       
            end,
            
            setOutfit = function (player, team)
                local condition = {
                    {[0] = CONDITION_TEAM_A_FEMALE, [1] = CONDITION_TEAM_A_MALE},
                    {[0] = CONDITION_TEAM_B_FEMALE, [1] = CONDITION_TEAM_B_MALE}
                }
                player:addCondition(condition[team][player:getSex()], true)
            end,
            
            setTeams = function ()
                local players = {}           
                for _, player in ipairs(Game.getPlayers()) do
                    if player:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                        table.insert(players, player)
                    end
                   end

                   local size = math.floor(#players/2)
                local team_battle_a, team_battle_b = {}, {}
                   for i = 1, 100 do
                    math.randomseed(i)                       
                    team_battle_a, team_battle_b = {}, {}
                    local _players = table.clone(players)
                    repeat
                        local v = _players[math.random(#_players)]
                        table.insert(#team_battle_a < size and team_battle_a or team_battle_b, v)
                        table.remove(_players, getIndex(_players, v))
                    until #_players == 0
                    if math.abs(getTeamLevel(team_battle_a) - getTeamLevel(team_battle_b)) < 100 then
                        break
                    end                       
                   end

                   for _, player in ipairs(team_battle_a) do               
                    team_battle.setOutfit(player, 1)
                    player:setStorageValue(team_battle.stor_team, 1)
                    team_battle.register(player)
                    team_battle.team_a[player:getName()] = {}
                   end
                   for _, player in ipairs(team_battle_b) do               
                    team_battle.setOutfit(player, 2)
                    player:setStorageValue(team_battle.stor_team, 2)
                    team_battle.register(player)
                    team_battle.team_b[player:getName()] = {}
                   end
            end,
            
            teleport = function (player, from, to)
                player:teleportTo(Position(math.random(from.x, to.x), math.random(from.y, to.y), from.z))
            end,
                                              
            heal = function (player)
                player:addHealth(player:getMaxHealth())
                player:addMana(player:getMaxMana())
                local condition = 1
                player:removeCondition(condition)
                for n = 1, 27 do
                    condition = condition * 2
                    if condition ~= 64 then
                        player:removeCondition(condition)
                    end
                end
            end,
            
            onEnd = function (player)
                team_battle.heal(player)
                player:removeCondition(CONDITION_OUTFIT)
                team_battle.unregister(player)
                player:teleportTo(player:getTown():getTemplePosition())
            end,
                                    
            sendLongMessage = function (array, class, init)
                local strings, i, position, added = {""}, 1, 1, false
                for index = 1, #array do
                    if(added) then
                        if(i > (position * 10)) then
                            strings[position] = strings[position] .. ","
                            position = position + 1
                            strings[position] = ""
                        else
                            strings[position] = i == 1 and "" or strings[position] .. ", "
                        end
                    end
                    strings[position] = strings[position] .. array[index]
                    i = i + 1
                    added = true
                end
                for i, str in ipairs(strings) do
                    if(str:sub(str:len()) ~= ",") then
                        str = str .. "."
                    end
                    sendChannelMessage(team_battle.channel, class, (init and i == 1) and (init .. str) or str)
                end
            end,
                            
            info_event = function ()
                if getGlobalStorageValue(team_battle.status) == 1 then
                    sendChannelMessage(team_battle.channel, 8, team_battle.msg_stat:format(getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_b_frags)))
                    addEvent(team_battle.info_event, team_battle.event_info*60*1000) 
                end
            end,

            getTeamPlayers = function (t)
                local list = {}
                for _, player in ipairs(Game.getPlayers()) do
                    if team_battle.getData(player, 'team') == t then
                        table.insert(list, player:getName())
                    end
                end
                return list
            end,
                        
            register = function (player)
                player:registerEvent('teambattle_stats')
                player:registerEvent('teambattle_death')
            end,
            
            unregister = function (player)
                player:unregisterEvent('teambattle_stats')
                player:unregisterEvent('teambattle_death')
                player:setStorageValue(team_battle.stor_team, -1)
            end,
                            
            cancel = function ()
                setGlobalStorageValue(team_battle.status, -1)
                for _, player in ipairs(Game.getPlayers()) do
                    if player:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                        player:teleportTo(player:getTown():getTemplePosition())
                    end
                end     
            end,
            
            finish = function ()
                if getGlobalStorageValue(team_battle.status) == 1 then
                    if getGlobalStorageValue(team_battle.team_a_frags) > getGlobalStorageValue(team_battle.team_b_frags) then
                        sendChannelMessage(team_battle.channel, 14, team_battle.msg_win:format(TEAM_BATTLE_A.name, getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_b_frags)))
                        for k, v in pairs(team_battle.team_a) do
                            local player = Player(k)
                            if player ~= nil then
                                player:addItem(team_battle.reward[1], team_battle.reward[2])
                                player:sendChannelMessage('', team_battle.msg_bonus:format(team_battle.reward[2],ItemType(team_battle.reward[1]):getName()), 14, team_battle.channel)
                                team_battle.team_a[k] = nil
                            else
                                team_battle.team_a[k] = {team_battle.reward[1], team_battle.reward[2]}
                            end
                        end
                    elseif getGlobalStorageValue(team_battle.team_b_frags) > getGlobalStorageValue(team_battle.team_a_frags) then
                        sendChannelMessage(team_battle.channel, 14, team_battle.msg_win:format(TEAM_BATTLE_B.name, getGlobalStorageValue(team_battle.team_b_frags), getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_b_frags)))
                        for k, v in pairs(team_battle.team_b) do
                            local player = Player(k)
                            if player ~= nil then
                                player:addItem(team_battle.reward[1], team_battle.reward[2])
                                player:sendChannelMessage('', team_battle.msg_bonus:format(team_battle.reward[2],ItemType(team_battle.reward[1]):getName()), 14, team_battle.channel)
                                team_battle.team_b[k] = nil
                            else
                                team_battle.team_b[k] = {team_battle.reward[1], team_battle.reward[2]}
                            end
                        end
                    elseif getGlobalStorageValue(team_battle.team_a_frags) == getGlobalStorageValue(team_battle.team_b_frags) then
                        sendChannelMessage(team_battle.channel, 14, team_battle.msg_draw:format(getGlobalStorageValue(team_battle.team_a_frags)))
                    end
                    setGlobalStorageValue(team_battle.status, -1)
                    setGlobalStorageValue(team_battle.team_a_frags, -1)
                    setGlobalStorageValue(team_battle.team_b_frags, -1)           
                    for _, player in ipairs(Game.getPlayers()) do
                        if team_battle.getData(player, 'team') > 0 then
                            team_battle.onEnd(player)
                        end
                    end                     
                end
            end,
            
            start = function ()
                if getGlobalStorageValue(team_battle.status) == 0 then
                    local count = 0
                    for i, player in ipairs(Game.getPlayers()) do
                        if player:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                            count = count + 1
                        end
                    end
                    if count < team_battle.min_players then
                        team_battle.cancel()
                        return broadcastMessage(team_battle.msg_cancel, MESSAGE_EVENT_ADVANCE)
                    end
                    team_battle.team_a = {}
                    team_battle.team_b = {}
                    team_battle.setTeams()
                    sendChannelMessage(team_battle.channel, 14, team_battle.msg_begin)
                    team_battle.sendLongMessage(team_battle.getTeamPlayers(1), 8, '[Team ' .. TEAM_BATTLE_A.name .. ' Players] ')
                    team_battle.sendLongMessage(team_battle.getTeamPlayers(2), 8, '[Team ' .. TEAM_BATTLE_B.name .. ' Players] ')
                    setGlobalStorageValue(team_battle.status, 1)
                    setGlobalStorageValue(team_battle.team_a_frags, 0)
                    setGlobalStorageValue(team_battle.team_b_frags, 0)
                    broadcastMessage(team_battle.msg_begin, MESSAGE_EVENT_ADVANCE)
                    addEvent(team_battle.info_event, team_battle.event_info*60*1000)
                    for _, player in ipairs(Game.getPlayers()) do
                        if team_battle.getData(player, 'team') > 0 then
                            player:openChannel(team_battle.channel)
                            team_battle.teleport(player, team_battle.arena.from, team_battle.arena.to)
                            player:say('Go!', TALKTYPE_MONSTER_YELL)
                        end
                    end
                    addEvent(team_battle.finish, team_battle.finish_time*60*1000)
                    addEvent(sendChannelMessage, (team_battle.finish_time-2)*60*1000, team_battle.channel, 14, team_battle.msg_finish:format(2))
                end
            end,
        }

function Position:isInRange(fromPosition, toPosition)
    return (self.x >= fromPosition.x and self.y >= fromPosition.y and self.z >= fromPosition.z
        and self.x <= toPosition.x and self.y <= toPosition.y and self.z <= toPosition.z)
end
Line Error\/ 213
Code:
teleport = function (player, from, to)
                player:teleportTo(Position(math.random(from.x, to.x), math.random(from.y, to.y), from.z))
            end,


I hope someone can help me, I checked all the plugins more than 100 times and everything is as mentioned
Thank you in advance to everyone. Have a great day!
 

Attachments

I am guessing you have a 8.6 server, meaning that you might be using a TFS 0.x. Make sure you are using the correct distro because the system you want to use is for TFS 1.2
 
I am guessing you have a 8.6 server, meaning that you might be using a TFS 0.x. Make sure you are using the correct distro because the system you want to use is for TFS 1.2
I use tfs 1.2 and this system works for me but there is an error after the player goes to the waiting room he gets a dbuge to the arena too clehore tfs 1.2
..... I think the fault is with the outfit and the color
 
Last edited:
I still need help, I appreciate everyone who comes to help me
@Fablow
Code:
ERROR: ProtocolGame parse message exception (86 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170)): unhandled opcode 116
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 810)
post that packet.log file.
Do you really use 8.1? Is it 'celohere' 1.2? Where did you get that engine?
For me it looks like invalid message type. Lua event may use invalid ID, but OTS engine should detect it in C++ and block or send valid bytes for given message type.
Message type IDs changed between 7.6 - 8.61:
If you are using 8.6 types in OTS and send them to 8.1 client, it will debug sometimes. Maybe it happens only in this event, because it uses given message type, when player gets into lobby.

About Lua bug:
Code:
data/lib/teambattle.lua:213
Change configuration:
Code:
            wait_room = {from = Position(113, 593, 7), to = Position(134, 607, 7)},
            arena = {from = Position(82, 519, 7), to = Position(142, 514, 7)},
Position from must have x, y and z lower that to, in your config:
Code:
            arena = {from = Position(82, 519, 7), to = Position(142, 514, 7)},
from.x = 519
to.x = 514
 
Do you really use 8.1? Is it 'celohere' 1.2? Where did you get that engine?
I converted it from 8.0 to 8.1
For me it looks like invalid message type. Lua event may use invalid ID, but OTS engine should detect it in C++ and block or send valid bytes for given message type.
Message type IDs changed between 7.6 - 8.61:
I don't use any custom client
The error in the messages as you mentioned
Because it only shows me one message, and it's before the start of the event
!teambattle start
Lua:
11:23 Team Battle will begin in 1 minute! Write "!teambattle" to join the event.
Position from must have x, y and z lower that to, in your config:
I don't understand what you mean here but I don't have an error in the definitions of xyz in the event I checked everything carefully
I still need help I'm not good at any programming language
Thank you♥
 
I converted it from 8.0 to 8.1

I don't use any custom client
The error in the messages as you mentioned
Because it only shows me one message, and it's before the start of the event
!teambattle start
Lua:
11:23 Team Battle will begin in 1 minute! Write "!teambattle" to join the event.

I don't understand what you mean here but I don't have an error in the definitions of xyz in the event I checked everything carefully
I still need help I'm not good at any programming language
Thank you♥
Post packet.log from OTCv8 folder. There will be information what server sent and I can analyse what is wrong with it.

About x,y,z positions. They are wrong:
Code:
arena = {from = Position(82, 519, 7), to = Position(142, 514, 7)},
should be:
Code:
arena = {from = Position(82, 514, 7), to = Position(142, 519, 7)},
script tries to generate random position in range from 519 to 514 and this range is empty. After change it will generate in range from 514 to 519 and there are 6 numbers in that range (both numbers are inclusive: 514, 515, 516, 517, 518, 519)
 
Post packet.log from OTCv8 folder. There will be information what server sent and I can analyse what is wrong with it.

About x,y,z positions. They are wrong:
Code:
arena = {from = Position(82, 519, 7), to = Position(142, 514, 7)},
should be:
Code:
arena = {from = Position(82, 514, 7), to = Position(142, 519, 7)},
script tries to generate random position in range from 519 to 514 and this range is empty. After change it will generate in range from 514 to 519 and there are 6 numbers in that range (both numbers are inclusive: 514, 515, 516, 517, 518, 519)
Lua:
ProtocolGame parse message exception (27 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
20 00 17 00
6e 01 25 0b 03 00 62 61 67 08 01 05 55 04 c0 0c d4 0b 01 00 00 4b 0c

ProtocolGame parse message exception (27 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
20 00 17 00
6e 01 25 0b 03 00 62 61 67 08 01 05 55 04 c0 0c d4 0b 01 00 00 4b 0c

ProtocolGame parse message exception (27 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
20 00 17 00
6e 01 25 0b 03 00 62 61 67 08 01 05 55 04 c0 0c d4 0b 01 00 00 4b 0c

ProtocolGame parse message exception (25 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
18 00 15 00
6e 01 25 0b 03 00 62 61 67 08 01 04 c0 0c d4 0b 01 00 00 4b 0c
 
Lua:
ProtocolGame parse message exception (27 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
20 00 17 00
6e 01 25 0b 03 00 62 61 67 08 01 05 55 04 c0 0c d4 0b 01 00 00 4b 0c

ProtocolGame parse message exception (27 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
20 00 17 00
6e 01 25 0b 03 00 62 61 67 08 01 05 55 04 c0 0c d4 0b 01 00 00 4b 0c

ProtocolGame parse message exception (27 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
20 00 17 00
6e 01 25 0b 03 00 62 61 67 08 01 05 55 04 c0 0c d4 0b 01 00 00 4b 0c

ProtocolGame parse message exception (25 bytes, 2 unread, last opcode is 0x6e (110), prev opcode is 0xffffffff (-1), proto: 810): unable to create item with invalid id 0
18 00 15 00
6e 01 25 0b 03 00 62 61 67 08 01 04 c0 0c d4 0b 01 00 00 4b 0c
This packet.log is about some item that does not exist. Remove that file, go again on event and send what it generates.
Exception you posted in first post was:
Code:
ERROR: ProtocolGame parse message exception (86 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170)): unhandled opcode 116
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 810)
It looked easy to find reason. Packet was small (86 bytes) and there was something wrong with packet 0xAA (player speak/console message).
Is your console spammed with random invalid packets or it happens only on event?
 
This packet.log is about some item that does not exist. Remove that file, go again on event and send what it generates.
Exception you posted in first post was:
Code:
ERROR: ProtocolGame parse message exception (86 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170)): unhandled opcode 116
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 810)
It looked easy to find reason. Packet was small (86 bytes) and there was something wrong with packet 0xAA (player speak/console message).
Is your console spammed with random invalid packets or it happens only on event?
Lua:
ProtocolGame parse message exception (1079 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170), proto: 810): unhandled opcode 116
38 04 33 04 ac 0b 00 06 00 45 76 65 6e 74 73 6c e5 03 e7 03 07 02 64 79 00 5e 02 07 a2 01 00 ff b7 16 9a 12 00 ff 98 01 99 12 9b 12 9c 12 00 ff 98 01 9b 12 9c 12 00 ff 98 01 9b 12 9c 12 00 ff 98 01 9a 12 9b 12 9c 12 00 ff b7 16 99 12 00 ff a2 01 ef 07 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 a2 12 00 ff 67 00 9e 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff e7 00 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 a1 12 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff a1 01 a2 12 00 ff 67 00 a4 12 3f 07 00 ff 67 00 9a 12 42 07 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 42 07 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 62 00 6b 01 00 10 64 03 7f 00 26 76 39 72 03 03 d7 74 08 00 00 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 a2 12 00 ff 67 00 9e 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff e7 00 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 a1 12 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff a1 01 a2 12 00 ff 67 00 a4 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 a2 12 00 ff 67 00 9e 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 04 ff a1 01 00 ff b7 16 9a 12 00 ff e7 00 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 ff ff ff ff ff ff ff ff ff ff ff ff e8 ff a2 00 00 a2 00 00 a2 00 00
aa 00 00 00 00 00 00 00 00 08 0b 00 29 00 5b 54 65 61 6d 20 42 61 74
74 6c 65 5d 20 50 61 77 6c 6f 20 68 61 73 20 6a 6f 69 6e 65 64 20 74 68 65 20 65 76 65 6e 74 2e

ProtocolGame parse message exception (66 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170), proto: 810): unhandled opcode 116
40 00 3e 00 6c e5 03 e7 03 07 02
aa 00 00 00 00 00 00 00 00 08 0b 00 29 00 5b 54 65 61 6d 20 42 61 74
74 6c 65 5d 20 50 61 77 6c 6f 20 68 61 73 20 6a 6f 69 6e 65 64 20 74 68 65 20 65 76 65 6e 74 2e
I deleted it and started running the event and this appeared when entering the event
With one character at first I was showing the error using control T
This is the mistake now, as you mentioned, sir
As for the percentage of the event, it only talks in the game and there are no messages in the engine and the message is in white inside the game
If there is only one player show this too
17:02 Team Battle was canceled for insufficient players.
 
Try this script. I've replaced 'message type' 8 and 14 with 5. Now it should show message on channel and do not debug client.
Lua:
--first team
    TEAM_BATTLE_A = {
        name = 'Blue',
        color = 88
    }
--second team               
    TEAM_BATTLE_B = {
        name = 'Red',
        color = 94
    }

CONDITION_TEAM_A_MALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_A_MALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_A_MALE, 0, 131, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color)

CONDITION_TEAM_A_FEMALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_A_FEMALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_A_FEMALE, 0, 139, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color, TEAM_BATTLE_A.color)

CONDITION_TEAM_B_MALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_B_MALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_B_MALE, 0, 131, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color)

CONDITION_TEAM_B_FEMALE = createConditionObject(CONDITION_OUTFIT)
setConditionParam(CONDITION_TEAM_B_FEMALE, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(CONDITION_TEAM_B_FEMALE, 0, 139, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color, TEAM_BATTLE_B.color)

function getIndex(array, v)
    for index, value in ipairs(array) do
        if v == value then
            return index
        end
    end
end

function table.clone(t)
    local t_type = type(t)
    local copy
    if t_type == 'table' then
        copy = {}
        for t_key, t_value in pairs(t) do
            copy[t_key] = t_value
        end
    else -- number, string, boolean, etc
        copy = t
    end
    return copy
end

function getTeamLevel(t)
    local v = 0
    for _, player in ipairs(t) do
        v = v + player:getLevel()
    end
    return v
end

-->[[
    --> CONSTANTS
--<]]
    team_battle = {
        --minutes to begin event
            start_time = 1,
        --minutes to finish event
            finish_time = 20,
        --min players required for event
            min_players = 2,
        --max players allowed in event
            max_players = 100,
        --custom channel to broadcast event messages
            channel = 11,
        --delay in minutes to broadcast event stats
            event_info = 3,
        --mininum level of player
            player_level = 500,
        --reward for winner team
            reward = {2638, 10},
        --allow players with same IP in event? [false = allow, true = don't allow]
            ip_check = false,
    -->[[
        --> STORAGES & DATA
    --<]]   
        --event's stat globalstorage
            status = 1000,
        --team a's score globalstorage
            team_a_frags = 1001,
        --team b's score globalstorage
            team_b_frags = 1002,
        --team a players
            team_a = {},
        --team b players
            team_b = {},
        --player's storages
            stor_team = 20000,
    -->[[
        --> STRINGS (do not alter %d or %s)
    --<]]
            msg_call = 'Team Battle will begin in %s! Write "!teambattle" to join the event.',
            msg_join = '[Team Battle] %s has joined the event.',
            msg_cancel = 'Team Battle was canceled for insufficient players.',
            msg_begin = 'Team Battle has started!',
            msg_finish = 'Team Battle will finish in %d minutes...',
            msg_win = 'Team Battle has finished and team %s is the winner with %d frags! [' .. TEAM_BATTLE_A.name .. ': %d - ' .. TEAM_BATTLE_B.name .. ': %d] A tibia coin voucher has been added to the players of winner team.',
            msg_draw = 'Team Battle has ended with a draw! Both teams scored %s frags...',
            msg_kill = '[Team Battle] %s killed %s. [' .. TEAM_BATTLE_A.name .. ': %d - ' .. TEAM_BATTLE_B.name .. ': %d]',
            msg_stat = '[Team Battle] [' .. TEAM_BATTLE_A.name .. ': %d - ' .. TEAM_BATTLE_B.name .. ': %d].',
            msg_defeat = '[Team Battle] %s.',
            msg_bonus = '[Team Battle] You have been awarded with x%d %s.',
    -->[[
        --> POSITIONS (map wait_room with PZ+NO-LOGOUT, arena with PVP+NO-LOGOUT)
    --<]]
            wait_room = {from = Position(113, 593, 7), to = Position(134, 607, 7)},
            arena = {from = Position(82, 514, 7), to = Position(142, 519, 7)},
    -->[[
        --> FUNCTIONS
    --<]]           
            isEnemy = function (player, attacker)
                local enemy = attacker
                if attacker:isCreature() == nil then
                    return true
                end

                if (enemy:getMaster() ~= nil) and (enemy:getMaster():isPlayer() ~= nil) then
                    enemy = enemy:getMaster()
                end
                
                return player:getOutfit().lookBody ~= enemy:getOutfit().lookBody       
            end,

            broadcast = function (msg, class)
                for _, player in ipairs(Game.getPlayers()) do
                    player:sendChannelMessage('', msg, class, team_battle.channel)
                end
            end,

            getData = function (player, data)
                local key = {
                    ['team'] = team_battle.stor_team
                }
                return player:getStorageValue(key[data])
            end,
                                  
            hasDuplicateIP = function (player1)
                for _, player2 in ipairs(Game.getPlayers()) do
                    if player2:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                        if player1:getIp() == player2:getIp() then
                            return true
                        elseif player2:getIp() == 0 then
                            player2:remove()
                        end
                    end
                end
                return false
            end,
                        
            getTeamInArena = function (t)
                local count = 0
                for _, player in ipairs(Game.getPlayers()) do
                    if player:getPosition():isInRange(team_battle.arena.from, team_battle.arena.to) and (team_battle.getData(player, 'team') == t) then
                        count = count + 1
                    end
                end
                return count       
            end,
            
            setOutfit = function (player, team)
                local condition = {
                    {[0] = CONDITION_TEAM_A_FEMALE, [1] = CONDITION_TEAM_A_MALE},
                    {[0] = CONDITION_TEAM_B_FEMALE, [1] = CONDITION_TEAM_B_MALE}
                }
                player:addCondition(condition[team][player:getSex()], true)
            end,
            
            setTeams = function ()
                local players = {}           
                for _, player in ipairs(Game.getPlayers()) do
                    if player:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                        table.insert(players, player)
                    end
                   end

                   local size = math.floor(#players/2)
                local team_battle_a, team_battle_b = {}, {}
                   for i = 1, 100 do
                    math.randomseed(i)                       
                    team_battle_a, team_battle_b = {}, {}
                    local _players = table.clone(players)
                    repeat
                        local v = _players[math.random(#_players)]
                        table.insert(#team_battle_a < size and team_battle_a or team_battle_b, v)
                        table.remove(_players, getIndex(_players, v))
                    until #_players == 0
                    if math.abs(getTeamLevel(team_battle_a) - getTeamLevel(team_battle_b)) < 100 then
                        break
                    end                       
                   end

                   for _, player in ipairs(team_battle_a) do               
                    team_battle.setOutfit(player, 1)
                    player:setStorageValue(team_battle.stor_team, 1)
                    team_battle.register(player)
                    team_battle.team_a[player:getName()] = {}
                   end
                   for _, player in ipairs(team_battle_b) do               
                    team_battle.setOutfit(player, 2)
                    player:setStorageValue(team_battle.stor_team, 2)
                    team_battle.register(player)
                    team_battle.team_b[player:getName()] = {}
                   end
            end,
            
            teleport = function (player, from, to)
                player:teleportTo(Position(math.random(from.x, to.x), math.random(from.y, to.y), from.z))
            end,
                                              
            heal = function (player)
                player:addHealth(player:getMaxHealth())
                player:addMana(player:getMaxMana())
                local condition = 1
                player:removeCondition(condition)
                for n = 1, 27 do
                    condition = condition * 2
                    if condition ~= 64 then
                        player:removeCondition(condition)
                    end
                end
            end,
            
            onEnd = function (player)
                team_battle.heal(player)
                player:removeCondition(CONDITION_OUTFIT)
                team_battle.unregister(player)
                player:teleportTo(player:getTown():getTemplePosition())
            end,
                                    
            sendLongMessage = function (array, class, init)
                local strings, i, position, added = {""}, 1, 1, false
                for index = 1, #array do
                    if(added) then
                        if(i > (position * 10)) then
                            strings[position] = strings[position] .. ","
                            position = position + 1
                            strings[position] = ""
                        else
                            strings[position] = i == 1 and "" or strings[position] .. ", "
                        end
                    end
                    strings[position] = strings[position] .. array[index]
                    i = i + 1
                    added = true
                end
                for i, str in ipairs(strings) do
                    if(str:sub(str:len()) ~= ",") then
                        str = str .. "."
                    end
                    sendChannelMessage(team_battle.channel, class, (init and i == 1) and (init .. str) or str)
                end
            end,
                            
            info_event = function ()
                if getGlobalStorageValue(team_battle.status) == 1 then
                    sendChannelMessage(team_battle.channel, 5, team_battle.msg_stat:format(getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_b_frags)))
                    addEvent(team_battle.info_event, team_battle.event_info*60*1000) 
                end
            end,

            getTeamPlayers = function (t)
                local list = {}
                for _, player in ipairs(Game.getPlayers()) do
                    if team_battle.getData(player, 'team') == t then
                        table.insert(list, player:getName())
                    end
                end
                return list
            end,
                        
            register = function (player)
                player:registerEvent('teambattle_stats')
                player:registerEvent('teambattle_death')
            end,
            
            unregister = function (player)
                player:unregisterEvent('teambattle_stats')
                player:unregisterEvent('teambattle_death')
                player:setStorageValue(team_battle.stor_team, -1)
            end,
                            
            cancel = function ()
                setGlobalStorageValue(team_battle.status, -1)
                for _, player in ipairs(Game.getPlayers()) do
                    if player:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                        player:teleportTo(player:getTown():getTemplePosition())
                    end
                end     
            end,
            
            finish = function ()
                if getGlobalStorageValue(team_battle.status) == 1 then
                    if getGlobalStorageValue(team_battle.team_a_frags) > getGlobalStorageValue(team_battle.team_b_frags) then
                        sendChannelMessage(team_battle.channel, 5, team_battle.msg_win:format(TEAM_BATTLE_A.name, getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_b_frags)))
                        for k, v in pairs(team_battle.team_a) do
                            local player = Player(k)
                            if player ~= nil then
                                player:addItem(team_battle.reward[1], team_battle.reward[2])
                                player:sendChannelMessage('', team_battle.msg_bonus:format(team_battle.reward[2],ItemType(team_battle.reward[1]):getName()), 5, team_battle.channel)
                                team_battle.team_a[k] = nil
                            else
                                team_battle.team_a[k] = {team_battle.reward[1], team_battle.reward[2]}
                            end
                        end
                    elseif getGlobalStorageValue(team_battle.team_b_frags) > getGlobalStorageValue(team_battle.team_a_frags) then
                        sendChannelMessage(team_battle.channel, 5, team_battle.msg_win:format(TEAM_BATTLE_B.name, getGlobalStorageValue(team_battle.team_b_frags), getGlobalStorageValue(team_battle.team_a_frags), getGlobalStorageValue(team_battle.team_b_frags)))
                        for k, v in pairs(team_battle.team_b) do
                            local player = Player(k)
                            if player ~= nil then
                                player:addItem(team_battle.reward[1], team_battle.reward[2])
                                player:sendChannelMessage('', team_battle.msg_bonus:format(team_battle.reward[2],ItemType(team_battle.reward[1]):getName()), 5, team_battle.channel)
                                team_battle.team_b[k] = nil
                            else
                                team_battle.team_b[k] = {team_battle.reward[1], team_battle.reward[2]}
                            end
                        end
                    elseif getGlobalStorageValue(team_battle.team_a_frags) == getGlobalStorageValue(team_battle.team_b_frags) then
                        sendChannelMessage(team_battle.channel, 5, team_battle.msg_draw:format(getGlobalStorageValue(team_battle.team_a_frags)))
                    end
                    setGlobalStorageValue(team_battle.status, -1)
                    setGlobalStorageValue(team_battle.team_a_frags, -1)
                    setGlobalStorageValue(team_battle.team_b_frags, -1)           
                    for _, player in ipairs(Game.getPlayers()) do
                        if team_battle.getData(player, 'team') > 0 then
                            team_battle.onEnd(player)
                        end
                    end                     
                end
            end,
            
            start = function ()
                if getGlobalStorageValue(team_battle.status) == 0 then
                    local count = 0
                    for i, player in ipairs(Game.getPlayers()) do
                        if player:getPosition():isInRange(team_battle.wait_room.from, team_battle.wait_room.to) then
                            count = count + 1
                        end
                    end
                    if count < team_battle.min_players then
                        team_battle.cancel()
                        return broadcastMessage(team_battle.msg_cancel, MESSAGE_EVENT_ADVANCE)
                    end
                    team_battle.team_a = {}
                    team_battle.team_b = {}
                    team_battle.setTeams()
                    sendChannelMessage(team_battle.channel, 5, team_battle.msg_begin)
                    team_battle.sendLongMessage(team_battle.getTeamPlayers(1), 5, '[Team ' .. TEAM_BATTLE_A.name .. ' Players] ')
                    team_battle.sendLongMessage(team_battle.getTeamPlayers(2), 5, '[Team ' .. TEAM_BATTLE_B.name .. ' Players] ')
                    setGlobalStorageValue(team_battle.status, 1)
                    setGlobalStorageValue(team_battle.team_a_frags, 0)
                    setGlobalStorageValue(team_battle.team_b_frags, 0)
                    broadcastMessage(team_battle.msg_begin, MESSAGE_EVENT_ADVANCE)
                    addEvent(team_battle.info_event, team_battle.event_info*60*1000)
                    for _, player in ipairs(Game.getPlayers()) do
                        if team_battle.getData(player, 'team') > 0 then
                            player:openChannel(team_battle.channel)
                            team_battle.teleport(player, team_battle.arena.from, team_battle.arena.to)
                            player:say('Go!', TALKTYPE_MONSTER_YELL)
                        end
                    end
                    addEvent(team_battle.finish, team_battle.finish_time*60*1000)
                    addEvent(sendChannelMessage, (team_battle.finish_time-2)*60*1000, team_battle.channel, 5, team_battle.msg_finish:format(2))
                end
            end,
        }

function Position:isInRange(fromPosition, toPosition)
    return (self.x >= fromPosition.x and self.y >= fromPosition.y and self.z >= fromPosition.z
        and self.x <= toPosition.x and self.y <= toPosition.y and self.z <= toPosition.z)
end
 
Try this script. I've replaced 'message type' 8 and 14 with 5. Now it should show message on channel and do not debug client.
Lua:
ProtocolGame parse message exception (66 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170), proto: 810): unhandled opcode 116
40 00 3e 00 6c e3 03 e7 03 07 04
aa 00 00 00 00 00 00 00 00 08 0b 00 29 00 5b 54 65 61 6d 20 42 61 74
74 6c 65 5d 20 50 61 77 6c 6f 20 68 61 73 20 6a 6f 69 6e 65 64 20 74 68 65 20 65 76 65 6e 74 2e

ProtocolGame parse message exception (1459 bytes, 31 unread, last opcode is 0x74 (116), prev opcode is 0xaa (170), proto: 810): unhandled opcode 116
b8 05 af 05 6c e3 03 e7 03 07 04 64 7b 00 5a 02 07 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff e7 00 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 a1 12 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff a1 01 a2 12 00 ff 67 00 a4 12 3f 07 00 ff 67 00 9a 12 42 07 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff a1 01 a2 12 00 ff 67 00 a4 12 3f 07 00 ff 67 00 9a 12 42 07 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 42 07 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 42 07 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 9e 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 a2 12 00 ff 67 00 9e 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff e7 00 62 00 07 00 00 10 64 02 7f 00 26 76 39 72 03 00 00 50 0b 00 00 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 a1 12 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff a1 01 a2 12 00 ff 67 00 a4 12 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff a1 01 a2 12 00 ff 67 00 a4 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 9e 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 a2 12 00 ff 67 00 9e 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff e7 00 00 ff 67 00 99 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff f4 18 99 12 00 ff a2 01 00 ff b7 16 9a 12 00 ff 67 00 a1 12 00 ff 67 00 9d 12 00 ff 67 00 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a2 01 00 ff d7 02 cc 1a 00 ff d7 02 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff b7 16 9a 12 00 ff 67 00 99 12 00 ff f4 18 a1 12 00 ff 98 01 a3 12 00 ff 67 00 9a 12 00 ff b7 16 99 12 00 ff a1 01 00 ff d7 02 cc 1a 00 ff d7 02 ff ff ff ff ff ff ff ff ff ff ff ff e4 ff a2 90 00 a2 90 00 a2 90 00 a2 90 00
aa 00 00 00 00 00 00 00 00 08 0b 00 29 00 5b 54 65 61 6d 20 42 61 74
74 6c 65 5d 20 50 61 77 6c 6f 20 68 61 73 20 6a 6f 69 6e 65 64 20 74 68 65 20 65 76 65 6e 74 2e
This happens when you go to the waiting room
This happens in the event channel after going to the arena\/
18:03 Team Battle has started!
18:03 [Team Blue Players] Maganen.
18:03 [Team Red Players] Pawlo.
18:06 [Team Battle] [Blue: 0 - Red: 0].
This is after killing any man in the event
I'm so sorry, thanks for your help
It seems to be a disgusting text, and whoever published it posted a lot of mistakes
 
How are client errors corrected?
Almost done thanks to Gesior's help
There are currently two problems, the first problem is when you go to the waiting room you get a debug error and the second is after going to the arena when you kill any player you get a debug error
Who can help feel free to share, this will be useful for me and others
Because tfs 1.2 is weak on events
A special thanks to everyone who helped and helped me, and thank you to everyone, and thank you to the otland team, without which no beginner will be able to rise♥♥
 
Back
Top