Thread: P99 Open source
View Single Post
  #3  
Old 12-11-2021, 03:33 AM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 757
Default

Thanks, looking at the March 2000 client.

*Jaws music fades in*

[You must be logged in to view images. Log in or Register.]

[You must be logged in to view images. Log in or Register.]

[You must be logged in to view images. Log in or Register.]

Mostly just naming functions for now because it makes it easy to see how they relate. I reverse engineered the same channeling code which is nice to confirm. Probably best to start on examining the Charm function. Good thing there is a string to decode, "SpellAndSkillMessage((char)uVar4,s_Target_Too_Hig h_level_for_your_charm_005a8b14,0xd);", that way I can identify and focus directly on the Charm function.

*Jaws music reaching its' crescendo*

Kind of blows my mind looking at those two function graphs. One is Charm, the other is CastingRequirementsMet which has a ton of stuff in there reagents, movement, channeling, checks for things like if you're unconscious, everything. The Charm function is more complex though. In that Charm function graph the green box is the main function entry point and the gold circled box is where the message gets output "your target is too high for your charm." I mean look at all that shit, it's hilarious, for one spell.

Thankfully with advances in reverse engineering tools provided by the NSA via Ghidra we might finally get some insight into the classic client. I was able to find developer comments that allow for determining the function names. They used a general error message format like, "My shit broke in CastingRequirementsMet()!" and through some comparison of those comments and the functions they are contained within a large valuable portion of the client functions can be named definitively which should be enough to go on to tie things together. As functions are identified via this methodology and other ways they fill in the blanks among the other functions that call those functions so things becoming increasingly obvious and easier to figure out.
Last edited by azxten; 12-11-2021 at 03:54 AM..