App que lê atributos de equipamentos (R8 Up2/Up3, G17, G18) e astrolábios diretamente da memória do processo do jogo e decide automaticamente se mantém ou rola novamente com base em critérios do usuário.
- R8 Up2/Up3, G17, G18 — 4 linhas de atributos dinâmicos
- Astrolábio — slots com aptidões + lista de addons
struct addon_data {
int id; // 4 bytes — ID do tipo de atributo
int arg[3]; // 12 bytes — arg[0]=valor, arg[1]=tier, arg[2]=extra
};Cada item tem uma ADDON_LIST (vetor sequencial de addon_data).
int tipo_puro = addon_id & 0x0000FFFF; // remove flags (Embedded, Engraved, Inherited)| Atributo | Handler | IDs conhecidos |
|---|---|---|
| STR | enhance_str_addon |
1084–1087, 1098, 1104–1108, 1124–1128, 1429–1433, 1912–1917, 1936–1944, 2272, 2567–2575, 2718, 2745, 3011, 3055, 3072, 3232 |
| AGI | enhance_agi_addon |
1088–1092, 1109–1113, 1129–1133, 1434–1438, 1918–1923, 1945–1953, 2271, 2576–2584, 2719, 2746, 3015, 3056, 3073, 3234 |
| ENG (mag) | enhance_eng_addon |
1093–1097, 1114–1118, 1134–1138, 1460–1464, 1930–1935, 1963–1971, 2270, 2585–2593, 2717, 2744, 3013, 3054, 3071, 3233 |
| VIT | enhance_vit_addon |
1099–1103, 1119–1123, 1139–1143, 1444–1448, 1924–1929, 1954–1962, 2273, 2558–2566, 2720, 2747, 3017, 3057, 3074, 3235 |
| Vigor | enhance_vigour |
3043, 3044, 3148–3151, 3196, 3202, 3209–3212, 3236–3238 |
| Defesa | IA_EA_ESS<defense> |
216–220 (variantes scale 221–225) |
| Resist. | item_armor_enhance_resistance<N> |
226–260+ (N=0..4) |
O valor do atributo está em arg[0].
struct astrolabe_essence {
int exp;
unsigned char level;
unsigned short slot;
unsigned short aptit[ASTROLABE_SLOT_COUNT];
};
class astrolabe_item {
astrolabe_essence _ess;
ADDON_LIST _total_addon;
};Reroll: FlushGeniusPoint() → ShuffleSlot() + ShuffleAddon().
Jogador usa Spirit of the Forge
→ servidor gera novos addons via generate_addon()
→ substitui _total_addon[i]
→ OnRefreshItem() envia resultado ao cliente
→ app lê memória → compara com critérios → decide automaticamente
| Componente | Tecnologia |
|---|---|
| Leitura memória | ReadProcessMemory (Win32 API) |
| Cliques | SendMessage / PostMessage |
| UI | WinForms (.NET 8) |
Leitura de memória em vez de OCR (frágil, dependente de resolução) ou interceptação de pacotes (mais trabalhoso).
- Extrair lista completa de IDs do source (
item_addon.cpp) - Montar dicionário id → nome legível para a UI
- Localizar
ADDON_LISTna memória com Cheat Engine - Implementar módulo de leitura e parser de addons
- Implementar lógica de decisão + simulação de clique
- UI com seleção de atributos e valores mínimos