This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Ananta-ps/pkg/protocol/methods/spirit_job_methods4229938.go

17 lines
1.1 KiB
Go

package methods
//
// SyncSpiritJobInfo (64913222) — the runtime urban-job record for one controllable character.
// Signature: void SyncSpiritJobInfo(uint spiritId, Dictionary<uint, SpiritJob> spiritJobs, uint currentJob)
// Why a runtime push and not part of the login payload: a non-empty
// SpiritJobInfo.AvailableJobs dictionary inside the big PlayerInfo packet desynchronizes
// the 4229938 Lua reader and blocks scene entry. The login payload therefore carries
// CurrentJob only; this packet is the only place allowed to populate the job dictionary.
// CurrentJob = 0 is NOT a valid UrbanJobConfig id — it makes the client's SpiritJobManager
// dereference a missing config once a job record arrives. Use 100 (Jobless).
// Wire (7k-verified 2026-09-20): the lua reader consumes the three parameters bare — no
// top-level marker — hence Inline=true; Auto.SpiritJobTalentInfo carries TypeMark=1 so the
// TalentInfo dispatch tag reads "base type" (0x00 means null and would swallow the rest of the
// record — that misalignment is what crashed the client's CheckActivateJob in the codec era).
//