Por que isso importa para o seu servidor
Servidor calado parece vazio. Quando nada aparece no chat, o jogador sozinho numa zona conclui que não tem ninguém online — e sai.
Anúncio automático resolve isso sem ninguém precisar estar de plantão. Cada vez que algo relevante acontece em qualquer canto do mapa, o servidor inteiro fica sabendo: tem gente disputando boss, tem alguém numa sequência de abates, o herói acabou de entrar. É a diferença entre um servidor que parece vivo e um que parece abandonado.
Como um anúncio é montado
Todos os doze arquivos seguem a mesma forma. Um bloco <announce> com o tipo, e dentro dele um ou mais <settings> com a mensagem:
<announce type="BOSS_ALIVE">
<settings message="%type% %boss% has spawned!" />
</announce>
| Elemento | O que faz |
|---|---|
announce type | O gatilho. É o que liga o arquivo ao evento do jogo — não invente valores, use os doze da tabela abaixo. |
settings message | A frase anunciada. As variáveis disponíveis mudam conforme o tipo. |
Existem dois estilos de variável, e eles não são intercambiáveis:
%variavel%— usado na maioria dos gatilhos:%boss%,%player%,%castle%.$variavel— usado nos gatilhos de combate:$killer,$target,$player.
Cada arquivo usa um estilo só. Trocar um pelo outro faz o texto aparecer literal no chat, sem substituição — se você escrever %killer% num arquivo que espera $killer, o jogador lê %killer%.
Os doze gatilhos
| Arquivo | Tipo | Variáveis | Quando dispara |
|---|---|---|---|
bossAlive.xml | BOSS_ALIVE | %type% %boss% | Um boss nasce. |
bossDead.xml | BOSS_DEAD | %type% %boss% %player% | Um boss é derrotado. |
bossHp.xml | BOSS_HP | %boss% %type% %hp% | O HP do boss cruza uma marca. |
hero.xml | HERO | %player% %classe% | Um herói entra no mundo. |
lords.xml | LORD | %lord% %castle% %clan% | Um senhor de castelo entra. |
pvp.xml | PVP | $killer $target | Um jogador mata outro em PvP. |
pk.xml | PK | $killer $target | Um jogador comete PK. |
pvpSpree.xml | PVP_SPREE | $player $hero | Sequência de abates sem morrer. |
pvpSpree.xml | PVP_SPREE_DEAD | $player $score | A sequência é interrompida. |
crafting.xml | CRAFT | %name% %item% %enchant% | Um craft é concluído. |
self.xml | SELF | %killer% %target% | Alguém entra em modo self. |
topPk.xml | TOP_PK | %player% %pkkills% | O líder de PK entra no mundo. |
topPvp.xml | TOP_PVP | %player% %pvpkills% | O líder de PvP entra no mundo. |
Criando cada tipo
Anúncio simples
A maioria dos gatilhos precisa só da frase. Trocar o texto é toda a configuração:
<announce type="HERO">
<settings message="The Hero %player% from %classe% is now online." />
</announce>
Para deixar em português, basta reescrever mantendo as variáveis:
<settings message="O Herói %player%, da classe %classe%, acabou de entrar." />
Anúncio com faixas de HP
bossHp.xml é o único com marcas múltiplas e alcance:
<announce type="BOSS_HP">
<settings radius="10000"
hpBoss="80;60;40;20;10;5"
message="The mighty %boss% (%type%) is weakening — only %hp%% HP remains!" />
</announce>
| Atributo | O que faz |
|---|---|
radius | Distância, em unidades do mundo, dentro da qual o aviso é ouvido. É o que impede o servidor inteiro de receber o alerta de um boss do outro lado do mapa. |
hpBoss | As marcas de HP que disparam o aviso, separadas por ponto e vírgula. No exemplo: 80%, 60%, 40%, 20%, 10% e 5%. |
%hp% | Substituído pela marca atingida. |
Repare no
%hp%%da mensagem: o primeiro par de%é a variável, o segundo%é o símbolo de porcentagem que aparece no texto. Esquecer o segundo faz a frase sair sem o sinal.
Para deixar o alerta mais tenso, use menos marcas e mais baixas — hpBoss="30;15;5" avisa só quando a luta já está decidindo.
Anúncio com som e efeito: a sequência de abates
pvpSpree.xml é o mais completo do conjunto, e o único que muda o estado do jogador:
<announce type="PVP_SPREE">
<settings score="1" sound="firstblood" message="$player shed the first blood $hero" />
<settings score="2" sound="doublekill" message="$player is dominating$hero" />
<settings score="3" isHero="true" sound="triplekill" message="$player is on a rampage $hero" />
<settings score="5" isHero="true" sound="megakill" message="$player is unstoppable$hero" />
<settings score="7" sound="ultrakill" message="$player is on an ultra kill$hero" />
<settings score="10" sound="monsterkill" message="$player is on a monster kill$hero" />
<settings score="15" sound="killingspree" message="$player is on a killing spree$hero" />
</announce>
<announce type="PVP_SPREE_DEAD">
<settings message="$player died after getting $score PvP in a row and his Hero Status ended!" />
</announce>
| Atributo | O que faz |
|---|---|
score | Quantos abates seguidos, sem morrer, disparam esta linha. |
message | A frase. $player é quem está na sequência; $hero é preenchido quando ele ganha status de herói. |
sound | O som tocado para todo mundo. |
isHero | Com true, o jogador vira herói temporário até morrer. |
O isHero é o que transforma isso de enfeite em mecânica. A partir do terceiro abate seguido, quem está numa sequência ganha status de herói — e vira alvo do servidor inteiro. Cria uma caçada espontânea, sem evento, sem agendamento e sem GM.
O PVP_SPREE_DEAD fecha o ciclo: quando alguém finalmente derruba o jogador em sequência, o servidor anuncia o fim. É o momento que dá graça ao sistema, e vale caprichar na frase.
Para criar uma faixa nova, adicione um <settings> com o score desejado. As linhas não precisam ser sequenciais — o exemplo pula de 3 para 5, de 5 para 7, de 10 para 15. Quanto mais alto o score, mais rara a mensagem e mais impacto ela tem.
Sobre os sons
O sound toca um arquivo que precisa existir na instalação do Lineage II de cada jogador, na pasta music. Isso significa que:
- Os sons do exemplo (
firstblood,doublekill,triplekill,megakill,ultrakill,monsterkill,killingspree) só tocam se estiverem no patch do cliente que você distribui. - Som novo exige distribuir o arquivo junto com o patch. Um som que só existe na sua máquina não toca para ninguém.
- Deixar o atributo
soundde fora é válido: a mensagem aparece sem áudio.
Anúncio de combate
pvp.xml e pk.xml usam o estilo $variavel e a mensagem entregue termina com a preposição, porque o servidor completa com o local:
<settings message="$killer killed $target in"/>
Se você reescrever, mantenha essa estrutura — a frase é fechada pelo nome da região.
Escolhendo o que ligar
O erro que mata este sistema é ligar os doze. Chat cheio de anúncio vira ruído, o jogador aprende a ignorar tudo, e você perde a ferramenta inclusive para o que importa.
Uma seleção que funciona bem:
| Gatilho | Recomendação |
|---|---|
BOSS_ALIVE, BOSS_DEAD | Sempre ligados. São o principal motor de movimento do mapa. |
BOSS_HP | Ligado, com poucas marcas e radius limitado. |
HERO, LORD | Ligados. São status, e status faz o jogador querer. |
PVP_SPREE | Ligado a partir do score 3. |
PVP, PK individuais | Só em servidor pequeno. Em servidor cheio, viram spam em minutos. |
CRAFT | Só para craft de item raro. Anunciar todo craft é ruído. |
TOP_PK, TOP_PVP | Ligados — são poucos anúncios por dia, e alimentam a competição. |
Cuidados
- Variável errada aparece literal.
%bos%no lugar de%boss%faz o jogador ler%bos%. - Estilo trocado não substitui.
%killer%num arquivo que usa$killernão funciona. isHero="true"em score baixo deixa metade do servidor com aura de herói e esvazia o significado do status. Do terceiro abate para cima.- Anunciar o nascimento do boss entrega a localização para quem estava esperando. Em servidor com clã dominante, isso pode significar que um só grupo pega todos os boss — considere anunciar só a morte.
self.xmlnão tem gatilho de horário. Não deixe texto de teste nele.radiusalto demais noBOSS_HPfaz o servidor inteiro receber alerta de uma luta que não é dele.
Como isso conversa com o resto da base
Os anúncios automáticos são a metade reativa da conversa do servidor. A metade programada são os anúncios rotativos, que falam em intervalo fixo com link clicável. Os dois dividem o mesmo chat, então o volume precisa ser pensado junto: rotativo demais afoga o anúncio que importa. O TOP_PK e o TOP_PVP leem as mesmas posições das tabelas de recompensa de topo.