Jogadores de Final Fantasy XIV frequentemente enfrentam repetições tediosas de cenas em certas dungeons, especialmente durante atividades diárias ou farm intensivo. Um plugin para o Advanced Combat Tracker (ACT) permite pular automaticamente essas cenas em servidores específicos, como os da versão chinesa do jogo.
Problema: cenas interrompendo o fluxo do jogo
Dungeons como "Donggua Bao" (ID: 01:413) e "Animation City" (IDs: 01:414, 01:418) incluem sequências longas que se repetem a cada entrada. Isso pode consumir entre 3 e 5 minutos por run — tempo valioso desperdiçado em espera passiva.
Solução técnica: plugin baseado em manipulação de memória
O plugin FFXIV_ACT_CutsceneSkip opera injetando lógica leve no processo do jogo via ACT. Ele identifica automaticamente quando o jogador entra em uma dungeon suportada e modifica flags de memória responsáveis pela reprodução das cenas.
Instalação
- Clone o repositório: ```
git clone https://gitcode.com/gh_mirrors/ff/FFXIV_ACT_CutsceneSkip
- Compile com Visual Studio (configuração Release) para gerar o arquivo
.dll. - No ACT, vá até a aba Plugins, clique em Browse e selecione o
FFXIV_ACT_CutsceneSkip.dllcompilado.
Funcionamento interno
O plugin monitora logs do jogo em tempo real. Quando detecta uma linha contendo Territory 01:413:, 01:414: ou 01:418:, ativa um temporizador que verifica periodicamente o estado da memória do processo ffxiv_dx11.exe.
Usando as APIs do Windows ReadProcessMemory e WriteProcessMemory, ele localiza um padrão de bytes específico associado ao controle de cenas e altera seu valor para forçar o avanço imediato.
if (logLine.Contains("Territory 01:413:") ||
logLine.Contains("Territory 01:414:") ||
logLine.Contains("Territory 01:418:"))
{
EnableCutsceneSkip();
}
Cenários de uso
- Farm diário: economiza dezenas de minutos por sessão.
- Multiboxing: sincroniza múltiplas instâncias sem atrasos causados por cenas.
- Rotação de conteúdos: mantém o ritmo acelerado em runs repetitivos.
Estrutura do projeto
FFXIV_ACT_CutsceneSkip/
├── CutSceneSkip.cs # Lógica principal de leitura/escrita de memória
├── FFXIV_ACT_CutsceneSkip.csproj
├── Properties/AssemblyInfo.cs
└── FFXIV_ACT_CutsceneSkip.sln
Personalização
Para adicionar suporte a novas dungeons, basta incluir o ID correspondente na verificação de território:
// Exemplo: adicionar suporte à dungeon com ID 01:999
if (logLine.Contains("Territory 01:999:"))
{
SetActive(true);
}
O intervalo de verificação padrão é de 3000 ms. Pode ser ajustado alterando:
updateTimer.Interval = 2000; // Verifica a cada 2 segundos
Considerações de segurança
O plugin restaura o valor original da memória ao desativar ou encerrar, minimizando riscos de corrupção. No entanto, modificar a memória de um processo de jogo pode violar os termos de serviço. Recomenda-se uso apenas em contextos não competitivos e com pleno conhecimento dos riscos.
Requisitos
- .NET Framework 4.7.2 ou superior
- Advanced Combat Tracker (ACT) configurado para FFXIV
- Acesso de administrador (em alguns sistemas, para operações de memória)
O código-fonte está disponível publicamente para estudo e contribuição técnica, servindo também como exemplo prático de comunicação com processos externos no Windows.