add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
|
|
@ -184,7 +184,12 @@ How these tables relate to the binaries:
|
|||
with the `Code` as argument, then pushes each row to the server as the
|
||||
ServerInfo record (`SHARED_FRAMEWORK.md` §3, whose fields line up 1:1 with
|
||||
`ServerOption` columns).
|
||||
- To confirm this, decompile AgentManager.
|
||||
- **Confirmed for AgentManager (O, `AM:0x140002790`)**: at startup it runs
|
||||
`up_read_agentmanager(@code)`, `up_read_all_serveroption`,
|
||||
`up_read_serverfile`, `up_read_realtimeevent` on its `db_account`
|
||||
connection. The `up_read_agentmanager` row whose `Code` equals
|
||||
`server.code` **overrides** the XML addresses/ports (`AM:0x14002fe40`). The
|
||||
push to Agents (`PT_SERVER_OPTIONS`/`PT_AGENT_DATA`) is still I.
|
||||
|
||||
`ServerOption.Type` uses the **server-kind enum** (D, cross-checked against
|
||||
`MS:0x140002930`):
|
||||
|
|
@ -209,6 +214,29 @@ How these tables relate to the binaries:
|
|||
|
||||
So the "Lobby" kind *is* the GameServer binary.
|
||||
|
||||
## 5a. AgentManager option file (`AM:` = AgentManager_Release_x64)
|
||||
|
||||
Path: `option\agentmanager_serveroption.xml`, overridable by argv[1]
|
||||
(`AM:0x140001390`); numeric argv[1] = agent mode (§3). Same per-server schema
|
||||
(§2, loader `AM:0x140031000`). AgentManager uses:
|
||||
|
||||
| Element | Use (O) |
|
||||
|---|---|
|
||||
| `server.code` | selects its own `ServerOption` row (`up_read_agentmanager`) |
|
||||
| `server.private_ip` / `private_port` | Agent listener (`AM:0x140005460`); **overridden by DB row** `PrivateAddress/PrivatePort` |
|
||||
| `server.public_ip` / `public_port` | AgentMonitor listener (`AM:0x140006380`); **overridden by DB row** `PublicAddress/PublicPort` |
|
||||
| `db_account.string/timeout` | → `RustyHearts_Auth`: topology reads + `up_auth_agentaccount` |
|
||||
| `db_game_log.string/timeout` | → `RustyHearts_Log`: `up_insert_log_monitor_*`, `up_create_delete_table` |
|
||||
|
||||
A second pass (`AM:0x140032f70`) looks in the same file for
|
||||
`<db><agentmanager><db_account/><db_game_log/></agentmanager></db>` and, if
|
||||
present, overrides both strings. If missing it prints `DB PASE ERROR !!!` and
|
||||
continues. The shipped sample only has flat elements (and a flat `<db string>`),
|
||||
so the flat values win (I).
|
||||
|
||||
AgentManager **writes** `option\patch.xml` before launching the patch server
|
||||
(`AM:0x140034220`); it does not read it.
|
||||
|
||||
## 6. Other files
|
||||
|
||||
| File | Status |
|
||||
|
|
@ -216,4 +244,5 @@ So the "Lobby" kind *is* the GameServer binary.
|
|||
| `server_info.ini` | The string is in DBCServer, but there is no INI API import (`GetPrivateProfile*`) and no code reference was found. It is **probably unused** (I) |
|
||||
| `agent.xml` | `<server>` list and the agent peer (`MS:0x1400602b0`) |
|
||||
| `service_control.xml` | per-country `auth_url`, `billing_url`, feature flags (S). Reader not yet traced |
|
||||
| `patch.xml`, `log_control.xml`, `content_control.xml` | readers unknown |
|
||||
| `patch.xml` | written by AgentManager for the PatchServer (§5a); reader is the (unshipped) PatchServer (I) |
|
||||
| `log_control.xml`, `content_control.xml` | readers unknown |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue