Por que isso importa para o seu servidor
O jogador que entra sem saber o que fazer sai em vinte minutos. Missão diária resolve isso pelo caminho mais barato que existe: ela dá um objetivo pequeno, alcançável na sessão, e um motivo para voltar amanhã.
O efeito colateral é o que interessa de verdade. Uma missão de PvP põe gente na zona de combate; uma de raid boss enche o mapa em horário morto; uma de craft faz o mercado girar. Você não está só dando item — está dirigindo para onde o servidor tem gente.
Cada linha vive num arquivo em mission/: pvp.xml, pk.xml, monster.xml, raidboss.xml, grandboss.xml, craftSuccess.xml, recommend.xml, recommended.xml, clanLevel.xml e tyrannosaurus.xml.
A estrutura do arquivo
<mission type="PVP">
<stage level="1" name="PvP Killer" icon="icon.skill0223"
desc="Kill %remain% more flagged players."
required="5" itemId="9244" count="1" isDaily="true" />
<stage level="2" ... required="10" itemId="9244" count="1" isDaily="true" />
<stage level="3" ... required="15" itemId="9244" count="1" isDaily="true" />
</mission>
| Atributo | O que faz |
|---|---|
type | O gatilho da missão. É o que liga o arquivo ao evento do jogo — não invente valores novos. |
level | A ordem do estágio. O jogador só vê o próximo depois de fechar o anterior. |
name | O nome mostrado na lista. Pode repetir entre estágios, como no exemplo. |
icon | O ícone exibido, no padrão do cliente (icon.skill0223). |
desc | A descrição. %remain% é substituído pelo quanto ainda falta — use sempre, é o que transforma a lista em progresso visível. |
required | Quantas vezes o gatilho precisa acontecer para fechar o estágio. |
itemId / count | O prêmio do estágio. |
isDaily | Com true, o progresso zera na virada do dia. Com false, a missão é única e não volta. |
Desenhando os estágios
O padrão entregue no pvp.xml sobe de 5 em 5 — 5, 10, 15, 20, 25 — pagando o mesmo item em todos. É uma escada simples e funciona, mas dá para fazer melhor:
- Primeiro estágio muito baixo. O jogador precisa fechar um antes de decidir se vale a pena. Um
required="3"no nível 1 converte muito mais do que umrequired="10". - Prêmio crescente nos últimos. Se todos os cinco estágios pagam igual, o jogador para no terceiro. Subir o
countno quarto e no quinto dá motivo para ir até o fim. - Cuidado com o teto. Some o prêmio de todos os estágios de todas as dez missões: é isso que entra na economia por jogador por dia. Esse número precisa caber no seu plano, não na sua boa vontade.
Missão diária x missão única
isDaily="true" é o caso normal — a missão renova e vira rotina. isDaily="false" serve para outra coisa: conteúdo de entrada. Uma missão única de "alcance nível 40" ou "entre num clã" guia o jogador novo pelos primeiros passos e nunca mais aparece.
Misturar as duas na mesma lista funciona bem: as únicas puxam o jogador novo, as diárias seguram o antigo.
Cuidados
requiredalto demais mata a missão. Se o jogador não consegue fechar numa sessão, ela deixa de ser diária e vira frustração. Calibre pelo tempo médio de sessão do seu servidor, não pelo do jogador mais dedicado.- Missão de PK precisa de cabeça. Premiar PK incentiva exatamente o comportamento que afasta jogador novo. Se for usar, deixe o prêmio simbólico.
%remain%fora dadescdeixa o jogador cego. Sem ele a lista mostra a missão mas não o progresso.- Mudar
requiredno meio do dia não zera o progresso já feito, mas muda a meta debaixo do jogador. Prefira mexer na virada.
Como isso conversa com o resto da base
As missões usam os mesmos itens do sistema de recompensas em reward/, e o .mission faz parte do menu do jogador junto com .info, .acp e .set. O login diário da Community Board cobre a outra metade da rotina: a missão premia o que o jogador faz, o login premia o fato de ele voltar.