![]() |
|
#61
|
||||
|
Quote:
https://github.com/dbsanfte/eq-archi...ter/eq-patches | |||
|
|
||||
|
#62
|
|||
|
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..
|
|
||
|
#63
|
||||
|
Quote:
Danth | |||
|
|
||||
|
#64
|
|||
|
This is big.
Azxten is a god damned big brained super hero. Maybe not the one we deserve or want. He's likely too good for us. The kind we need desperately though. | ||
|
|
|||
|
#65
|
|||
|
Imagine just logging in and having fun.
__________________
![]() | ||
|
|
|||
|
#66
|
||||
|
Quote:
| |||
|
|
||||
|
#68
|
|||
|
I can imagine a few people for who'm decompiling might actually be fun for based on experiences ive had of other ppl
| ||
|
|
|||
|
#69
|
|||
|
I tried decompiling them myself but my C++ is rusty as fuck. Good to see you're making progress azxten.
| ||
|
|
|||
|
#70
|
||||
|
Quote:
I collect my shit, dying another time in the process from a sand giant on the other side of a zone line who kills me before I even finish loading, and decide I might as well just go solo. I run around for another 2 hours finding that all the hot solo spots are taken before I decide to try a new spot of my own creation. I die again when I almost killed the mob but things looked a bit iffy and I decided to risk it only to try running to the nearby safe zone line but right I as reach it I get hit again and my run speed slows to a walk. I'm side strafing and jumping and oh no! I went THROUGH the zone but it didn't zone me! I die on the other side of the zone line in a dead end cave I'm not supposed to be able to see. I get a tell, someone wants me to join the group back in that dungeon, yes! I tell them I'll be there in 2 hours after I get my corpse and run back. I get there and the group is gone. The person that messaged me isn't even in the zone anymore. "Oh sorry I forgot" they say. I spend another hour trying to find a group and now it's 4am and I need to get ready to go back to school so I can go to bed in class. I've lost half a level. Pretty good progress for the night. | |||
|
|
||||
![]() |
|
|