MagicLevelEm desenvolvimento

Speed Breakpoints do Tibia

Quanto de speed (e qual level) você precisa para "bugar a speed" em cada tipo de chão.

✓ Conferido no código-fonte do Canary — cada número desta página foi extraído do servidor, não de wiki. Fórmula em src/creatures/creature.hpp:1065 e creature.cpp:1613, hastes em data/scripts/spells/support/*.lua, base por vocação em data/XML/vocations.xml, e a friction de cada chão saiu do data/items/appearances.dat (campo flags.bank.waypoints, lido em src/items/items.cpp:230).
—Speed base
—Sem magia (base+equip)
—Com magia
—ms/sqm cidade (100)
—ms/sqm padrão (150)
Pegadinha do equipamento: a descrição do item no cliente mostra metade do valor que conta de verdade (it.abilities->speed >> 1, em src/items/item.cpp:1783), mas o que entra na sua speed é o valor cheio (changePlayerSpeed(player, item->getSpeed()), em src/lua/creature/movement.cpp:573). Boots of haste aparecem como "speed +10" e valem 20. Já os imbuements de Swiftness são descritos pelo valor real: +10, +15 e +30. Se você somar o que está escrito nas botas, vai errar para menos.

Onde você buga a speed sem magia × com a sua magia

Bugar a speed é isto: no chão em que você anda a um certo tempo sem magia (só level + equipamento), a haste faz o passo cair pelo menos um degrau de 50 ms. Linha verde = com a configuração acima, a magia te faz correr de verdade nesse chão.

Chão (friction)Sem magiaCom a magiaBuga?Próximo degrau (com magia)

Tabela de breakpoints reage ao seu level e à sua haste

Esta tabela e a de baixo são a mesma coisa vista de dois jeitos: a de baixo é o dado bruto (qual friction cada chão tem, tirado do appearances.dat); esta aqui é esse mesmo número passado pela fórmula, respondendo "de quanta speed eu preciso" para cada tempo de passo. A coluna friction é a chave que liga as duas.

ChãoSeu passo

 verde  = você já tem speed para esse tempo · dourado = é o seu próximo degrau, o que falta para "bugar a speed" · cinza = ainda longe · — = inalcançável nesse chão mesmo no teto de speed do servidor (65535). O número em cada célula é a speed mínima para atingir aquele tempo.

Friction real de cada chão o dado bruto do appearances.dat

O número da esquerda é a friction — a mesma chave da tabela de cima. "Nº de chãos" é quantos pisos diferentes do jogo carregam aquele valor, então dá para ver de relance quais são comuns de verdade e quais são raridade.

FrictionNº de chãosSeu passoBuga aqui?Dá para melhorar?Exemplos no items.xml

As imagens são as sprites reais do cliente global, extraídas das sprite sheets instaladas na sua máquina e recortadas pelo sprite_id que o próprio appearances.dat associa a cada chão.

Censo conferido no cliente global 15.32 (appearances de 18/08/2026): nenhum valor de friction novo. Fora da tabela ficam só 9 raridades com 1–4 pisos cada — 121 (red planks, perto do NPC Rafzan), 260, 300/350/400/450 (magic tiles), 800, 1000 e 1200 — pisos de quest que quase ninguém caça em cima.

O padrão é 150, não 100. Em src/creatures/creature.cpp:1734 o servidor começa com walk.groundSpeed = 150 e só troca se o chão declarar um valor próprio (if (it.speed > 0)). Ou seja: qualquer piso sem friction definida — e são 272 deles — anda como 150. Cidade e depot (stone floor, wooden floor, mármore) são 100, que é o piso rápido de verdade.

Itens de speed items.xml

ItemValor realO cliente mostra

Como a conta funciona

O arredondamento para múltiplos de 50 ms (SERVER_BEAT = 0x32) é a origem do "bug": ganhar 40 de speed pode não mudar absolutamente nada, e ganhar 1 ponto pode derrubar o passo um degrau inteiro. O equipamento entra somando no fim, depois do multiplicador da haste — por isso item de speed rende igual em qualquer level, enquanto a haste rende mais quanto maior o level.

Detalhes que mudam o resultado no fio: a fórmula da haste é calculada em float de 32 bits e truncada para inteiro (condition.cpp:2470), a divisão 1000 × friction ÷ step é inteira (creature.cpp:1613), e a speed final é limitada a no mínimo 10 (PLAYER_MIN_SPEED, player.hpp:127). Esta página replica os três.

Legenda das siglas e termos

Unidades e medidas

ms
Milissegundo — um milésimo de segundo. 1000 ms = 1 segundo. É a unidade em que o servidor mede a duração de cada passo.
sqm
Square meter — o "quadrado" do mapa, a menor casa em que o personagem pisa. É a unidade de distância do Tibia.
ms/sqm
Milissegundos por quadrado — quanto tempo leva para andar uma casa. Menor é mais rápido: 100 ms/sqm é o dobro da velocidade de 200 ms/sqm.
Diagonal
Andar na diagonal custa três vezes o tempo de um passo reto. Andar em L (dois passos retos) sai mais rápido que um passo diagonal.
ln
Logaritmo natural — a função matemática que faz a speed ter retorno decrescente: cada ponto novo rende menos que o anterior.

Termos do jogo

Friction
O "atrito" do chão, um número que cada piso carrega. Quanto maior, mais devagar se anda nele. Cidade é 100, grama é 150, água rasa é 200.
Breakpoint
O ponto exato em que ganhar mais speed finalmente muda o tempo do passo. Como o tempo só existe em degraus de 50 ms, a velocidade real melhora aos saltos: é isso que o pessoal chama de "bugar a speed".
Bugar a speed
No chão em que você anda a um certo tempo sem magia (level + equipamento), a haste faz o passo cair pelo menos um degrau de 50 ms — você corre visivelmente mais. Quando ela não cruza degrau nenhum, a speed sobe no número e o passo continua idêntico.
Degrau
Cada faixa de 50 ms do tempo de passo. Você não anda "um pouquinho" mais rápido: ou fica no mesmo degrau, ou cai um inteiro. Ganhar um degrau é o que se sente no jogo; ganhar speed sem trocar de degrau não muda nada.
Haste
Magia que aumenta a velocidade. utani hur é a comum, utani gran hur é a forte, utani tempo hur (charge) é exclusiva de knight e utamo tempo san (swift foot) de paladin. Detalhe do swift foot: enquanto dura, o paladin não consegue atacar.
Imbuement
Swiftness I / II / III
Encantamento aplicado num equipamento. O de velocidade se chama Swiftness e dá +10, +15 ou +30 conforme o nível.
Speed base
Sua velocidade só por causa do level, sem haste e sem equipamento. Sobe 1 ponto por level.
Speed total
O número final depois de somar haste e equipamento. É o que aparece na janela de skills do jogo.
Step speed
interno
Um valor que o servidor calcula a partir da speed total e usa para dividir o tempo do passo. Não aparece no jogo — está aqui porque é o que realmente determina o breakpoint.
Depot
O banco/armazém das cidades. Citado porque o chão dele é 100, o piso rápido.

Do código-fonte do servidor

Canary
O servidor de Tibia de código aberto de onde cada número desta página foi tirado.
appearances.dat
items.xml · vocations.xml
Arquivos de dados do servidor. O appearances.dat guarda a friction de cada chão, o items.xml guarda o speed de cada item e o vocations.xml a velocidade base de cada vocação.
waypoints
O nome interno do campo que guarda a friction dentro do appearances.dat. Nome confuso, mas é o atrito do chão.
basespeed
A velocidade inicial da vocação no vocations.xml. Vale 110 para todas — nenhuma vocação nasce mais rápida que outra.
SERVER_BEAT
A "batida do relógio" do servidor: 50 ms. Todo tempo de passo é arredondado para cima até o próximo múltiplo dela — é a causa direta dos breakpoints.
WALK_DIAGONAL
_EXTRA_COST
A constante que vale 3 e multiplica o tempo do passo na diagonal.
PLAYER_MIN_SPEED
O piso de velocidade: mesmo paralisado, ninguém fica abaixo de 10 de speed.
Truncado
Jogar fora a parte decimal sem arredondar: 582,9 vira 582. O servidor faz isso na conta da haste, então aquele "quase 1 ponto" simplesmente some.
Divisão inteira
Divisão que também descarta o resto: 101,9 vira 101. O servidor usa na conta da duração do passo.
float32
Número decimal de precisão limitada usado pelo servidor. Muda o resultado na terceira casa e, de vez em quando, faz um breakpoint cair 1 ponto para o lado. Esta página reproduz essa imprecisão de propósito.