Para que serve o Effect.txt
O arquivo MuServer\Data\Effect.txt reúne as definições de efeitos de personagem e monstro usados pelo GameServer, como buffs, debuffs, selos e efeitos aplicados por itens. Cada linha identifica um efeito, seu grupo, sua duração padrão, se pode ser salvo e até quatro valores usados pela lógica específica daquele efeito.
O arquivo original do Genesys Plus contém 172 entradas, com índices entre 1 e 204. Há números não utilizados nesse intervalo; não é necessário preencher as lacunas.
Formato de cada entrada
Index Group ItemIndex "Name" Save Type Flag Count Value1 Value2 Value3 Value4
São 12 campos nessa ordem. Use espaços ou tabulações, mantenha o nome entre aspas e termine o arquivo com end. Linhas iniciadas por // são comentários. O caractere * em um campo numérico é interpretado pelo servidor como -1; seu efeito concreto depende da coluna.
| Campo | O que controla |
|---|---|
Index |
Identificador interno do efeito, usado por habilidades, itens e sistemas do servidor. Preserve os índices existentes: mudar um número não muda automaticamente as referências a ele. O limite aceito pelo código é de 0 a 255. |
Group |
Grupo de exclusividade. Em um personagem, efeitos do mesmo grupo não ficam ativos ao mesmo tempo: a aplicação de outro efeito desse grupo pode substituir o anterior. Não é a categoria visual exibida ao jogador. |
ItemIndex |
Índice interno do item que pode acionar o efeito. Use * quando o efeito não estiver associado a um item por essa busca. Se dois efeitos tiverem o mesmo ItemIndex, a busca por item encontra primeiro o efeito de menor Index. |
Name |
Nome descritivo da linha para quem configura o servidor. A mecânica é identificada pelo Index; trocar só o nome não cria nem altera a habilidade. |
Save |
1 permite que o efeito ativo seja gravado com o personagem; 0 exclui o efeito dessa gravação. Isso influencia se ele pode voltar após uma nova entrada no jogo. |
Type |
0: efeito com duração contada pelo servidor e sujeito à limpeza geral de efeitos comuns. 1: duração contada, mas não removido por essa limpeza geral. 2: efeito com horário real de expiração, adequado a efeitos cujo prazo continua a correr fora do jogo. |
Flag |
Para efeitos Type = 0, 1 marca o efeito como removível pela rotina de limpeza de debuffs; 0 não. Não determina sozinho se o efeito é positivo ou negativo. |
Count |
Duração padrão em segundos quando o sistema aplica o efeito no modo que usa o arquivo. * conserva a duração fornecida pela habilidade, item ou outro sistema que o aplicou. Em Type = 2, um número como 1800 define um prazo real de 30 minutos. |
Value1 a Value4 |
Parâmetros do efeito. Um número definido aqui substitui o valor recebido do sistema que aplicou o efeito; * conserva esse valor recebido. A função de cada posição varia conforme o Index, portanto não existe uma única unidade válida para todos os efeitos. |
Exemplos do arquivo original
1 1 * "Greater Damage" 1 0 0 * * * * *
29 60 6699 "Seal of Ascension" 1 2 0 1800 50 * * *
55 27 * "Poison" 0 0 1 * * * * *
- Greater Damage usa a duração e os valores fornecidos pela habilidade que o aplica. Seu
Save = 1permite persistência, eGroup = 1o coloca no grupo próprio desse buff. - Seal of Ascension está ligado ao item de índice
6699, tem prazo padrão real de1800segundos e fixaValue1 = 50. Os demais valores vêm de quem aplica o efeito. - Poison não é salvo (
Save = 0) e está marcado para a rotina de limpeza de debuffs (Flag = 1); sua duração e seus valores vêm da origem da aplicação.
Os exemplos são linhas existentes no arquivo fornecido. Não interprete Value1 = 50 como uma porcentagem em todos os efeitos: o uso de cada valor é definido pelo código do efeito correspondente.
Grupos, itens e valores variáveis
O servidor procura um efeito ativo pelo Group. Ao aplicar outro efeito do mesmo grupo, ele pode substituir o anterior. Por isso, mudar o grupo de um buff altera sua convivência com outros buffs. No arquivo original há, por exemplo, diferentes selos de ascensão no grupo 60.
ItemIndex usa o índice interno do item, não o número da linha do Effect.txt. Para efeitos aplicados por habilidade ou script sem busca por item, normalmente aparece *. A associação com um item não basta para criar um efeito novo: a ação precisa existir no servidor e, quando aplicável, no cliente.
O * merece atenção especial: em Count e Value1 a Value4, ele deixa o valor recebido no momento da aplicação. Em ItemIndex, significa ausência de associação por índice de item. Não substitua todos os * por 0: isso pode zerar uma duração ou uma força que antes vinha da habilidade.
Ao editar
- Faça uma cópia do arquivo e preserve os
Indexusados pelo servidor e pelo cliente. - Confira
Groupantes de tentar combinar buffs: efeitos do mesmo grupo podem se substituir. Confira também se umItemIndexjá aparece em outra linha. - Ajuste
CounteValue1aValue4apenas após identificar como o efeito específico usa esses parâmetros. AlterarSave,TypeouFlagpode mudar persistência, expiração e remoção de debuffs. - Recarregue
Effect.txtpelo menu de reload do GameServer e do GameServerCS, ou reinicie os processos em uma manutenção planejada. Teste a aplicação, a expiração e, seSave = 1, a saída e o retorno do personagem.
O reload atualiza as definições. Para verificar mudanças em um efeito que já estava ativo, remova-o e aplique-o novamente no personagem de teste.