Commit graph

2 commits

Author SHA1 Message Date
Kamron Batman
9da1d2e8ef perf(network): skip the redundant password verify on game login
A full login hashed the password twice: once on the account login packet
(0x80) and again on the game login (0x91). The second one re-authenticates a
session authenticated milliseconds earlier, in the same process -- the auth id
guarding it is only issued by PlayServer, which is reachable only after the
first verify succeeded.

Now that the id is bound to the account and address it was issued to, matching
it is proof enough. Per-login game loop cost drops from ~17ms to ~8.5ms.

An id that is unknown, expired, or from another address is treated as an
invalid client and disconnected, which is what an unknown id already did. An id
that is live but issued for a different account proves nothing, so that login
falls back to verifying the password exactly as before.

Also adds the missing return on the unknown-id path, which previously fell
through with a default entry and nulled the client version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 00:18:10 -07:00
Kamron Batman
47e16a03fe
feat: Moves network related events to UOContent using code generation (#1945)
### Summary
- Moves `CharacterCreated` event to UOContent using code generated event _CharacterCreatedEvent_.
- Moves `TargetByResourceMacro` event to UOContent using code generated event _TargetByResourceMacro_.
- Moves `GameLogin` event to UOContent using code generated event _GameLoginEvent_.
- Moves `ServerList` event to UOContent using code generated event _ServerListEvent_.
- Streamlines ProfessionInfo


> [!IMPORTANT]
> **Developer Note**
> Custom scripts that use any of these event sinks will need to be updated to use the new code generated events.
2024-09-06 16:57:10 -07:00