Hucaru / Valhalla

A Golang MapleStory (v28) server
MIT License
274 stars 71 forks source link

Feature/npc scripting #24

Closed Hucaru closed 4 years ago

Hucaru commented 4 years ago

Scripts load when server starts (static folder), updates to files are automatically detected and reloaded

23

Hucaru commented 4 years ago

With my very limited knowledge i have made a comment/suggestion for the JS scripts in this PR.

I have very limited knowledge of the codebase but am very excited with all the recent activity!

I would like to get involved but have no clue how how you reverse engineer the client and/or work with IDA. On a side note, any resources/guidance here would be appreciated.

Great job guys!

  1. First get a copy of IDA: https://www.hex-rays.com/products/ida/support/download_freeware/ (the free version should be ok)
  2. Download the idb from: https://hostr.co/3NYvnemS3cAJ

You can open the idb with IDA and on the left you should see a list of named and unnamed (sub_****) subroutines. Double click a named subroutine (should populate the main window with assembly) and press f5 (if this doesn't work it might be a duifferent keyboard shortcut for that version or only available in the pro version), this will change the main window to c++ code. It can look nasty sometimes as IDA will do a literal translation between the assembly and c/c++ if it's missing certain information.

If you see Decode1, Decode2 etc function calls within the c++ they are packet read calls letting you know that the subroutine you are in is reading a packet.

YouTube and google are good resources for learning more on IDA. Be prepared to spend lots of time looking for things.

ErwinsExpertise commented 4 years ago

With my very limited knowledge i have made a comment/suggestion for the JS scripts in this PR.

I have very limited knowledge of the codebase but am very excited with all the recent activity!

I would like to get involved but have no clue how how you reverse engineer the client and/or work with IDA. On a side note, any resources/guidance here would be appreciated.

Great job guys!

Always great to have more help! I would love to see this project take off. There are a lot of aspects that do not require much IDB digging but still need to be worked out. Thing such as guild, parties, chat(whisper, etc) have most of the opcodes already defined in the source and just need to be implemented. Player skills as well, however, there might be some packets that the server needs to send to apply stats from the skill.