+ Reply to Thread
Page 1 of 9 1 2 3 4 ... LastLast
Results 1 to 15 of 122

Thread: .Wz Editing 101

  1. #1
    Follower of Directions Necromancer of the Light cyclicalevents's Avatar
    Join Date
    17th Mar 2008
    Posts
    698

    .Wz Editing 101

    [Note] - Due to post limits, the full tutorial (yes this time it's the absolute complete version) is available for download at the bottom. This post only represents a portion of it, and is actually not completely updated to represent the actual text in the final version

    Table Of Contents
    1. Introduction
    2. Stuff You Will Need / Useful Links
    3. Setup
    4. Background Information
    5. Example One - Finding The Accuracy of Monsters - Melee Godmode / Miss Godmode
      The First Step - Obtaining Information
      The Second Step - Finding What You Want To Search For/Modify
      The Third Step - Finding Offsets
      The Fourth Step - Editing Values
    6. Example Two - No-Delay Box Breaker
      The First Step - Obtaining Information
      The Second Step - Finding What You Want To Search For/Modify
      The Third Step - Finding Offsets
      The Fourth Step - Editing Values
    7. Example Three - Map Proof
      The First Step - Obtaining Information
      The Second Step - Finding What You Want To Search For/Modify
      The Third Step - Finding Offsets
      The Fourth Step - Editing Values
    8. Contents of .Wz Files
    9. Conclusion
    10. Version History
    Introduction

    Hello hello. Welcome to my 6th tutorial on how to do stuff and things. Don't remember the previous ones? They were for other things, before your time. So, as few of you know, I refuse to publicly release anymore edited .wz files. The main reason is that it's time consuming and I don't know how to make an auto edit script in python to save me time. The other reason is that people ask very stupid questions / spam my inbox with requests / are asses and complain about it about releases not working, not including something, etc. So yes, instead I figured that instead of releasing things, it would be far more beneficial to write a tutorial so that all of you fine people can learn to make your own things Just what will you be making? I dunno. This is just a tutorial so that you can learn what you would need to know if you wanted to pursue editing .wz files to do a certain thing. So let's get write into it.

    Stuff You Will Need / Useful Links
    1. learnme.py + Config.txt - (link is at the bottom) Script written by Saludos in Python that unpacks .wz files to find offsets which we use to do things. This download is updated from the original to not dump .img files, making it a lot faster. I've renamed it learnme.py for those who want to keep the original learn.py intact.
    2. Python - Used to run/write/read scripts in Python.
    3. i.Hex - A hex editor used to edit values within .wz files. Any hex editor should work, but this one is the one I learned with, so let's keep it simple.
    4. Notepad - My favorite text editor for taking notes on the fly. So under appreciated.
    5. Adventure Island v2 - [Note - For the rest of this tutorial I will refer to this as MapleDump.] This nifty little thing allows you to view what's inside of those .wz files and dump them as well. This is extremely useful and essential for finding those offsets we so desperately need.
    6. http://sauna.gibbed.us/ - This website is extremely convenient for when you're trying to find the location of an item/skill/etc in your MapleStory folder as well as for determining what item/skill/etc the offsets printed by learnme.py are referring to. For example, if you want to find where the skill Endure is located in your maplestory folder, just search it up at that site and you'll see this http://sauna.gibbed.us/skill/4200001/#top. The 4200001 is like a location ID. If you go search in your skills folder, in your MapleStory folder, in that folder number, you'll find all the information you need for Endure. In addition, this same number will refer to a particular offset after using learnme.py, so that you can match an offset with it's item/skill/etc.
    7. http://www.paulschou.com/tools/xlate/ - A great tool. Bookmark it. Great for converting decimals to hexidecimal values and such.
    8. Monster Offset List - A nice compilation of various monster offsets than can be fiddled with that DevilGoku was kind enough to make.

    Setup

    So first there's some stuff that has to be set up before we get into anything:
    1. Install Python
    2. Place learnme.py as well as the Config.txt in your maplestory folder/directory
    3. Install i.Hex
    4. Place MapleDump on your desktop, or somewhere easily accessible.
      That takes care of that.

    Background Information

    You may have noticed that you can't just double click a .wz file and see what's inside. Luckilly a bunch of incredibly smart people have developed the tools for us to do just that. They've made it so that we can "see" and modify values within .wz files. For our purposes, the method we rely on heavily is by using offsets. For those that know, offsets are useful because they tell you were in the code a particular item/value that you're interested in is. That's not exactly the definition, but it's simple enough to understand the concept. So basically, if we want to modify a value, we need to know where it is so that it can be modified.

    Example 1 - Finding the Accuracy of Monsters
    The First Step - Obtaining Information

    It's certainly convenient when people post offsets for you, but you won't always be able to rely on other people, so I'll show you how to find various offsets. I will give three examples, so you can see what to do/look for when trying to get offsets.
    Let's say you wanted to find the accuracy of monsters, but you didn't know how to search for it. Here's how.
    1. Open MapleDump. In the top left corner, click the icon "Browse". So far you know that you want to edit the accuracy of monsters. Well, most people would know that mob refers to the monsters in game. If you didn't you know now.
    2. So open up Mob.wz. After doing so you'll get a big list of .img files. (If you don't see this look in the bottom left corner and make sure it's on the "Content" tab.) These hold the image of the monster as well as reference all the information we'll need to do this.
      [Note] - This would be a great time to use sauna.gibbed.us to focus on editing a small group or a single item. This is useful for when you want to test something, so you can choose what you want to test, instead of having to edit every single monster/thing that you're working on]
    3. Okay, so let's try just a few monsters. Snails (0100100), Blue Snails (0100101) , and Red Snails (0130101). Remember to use sauna.gibbed.us to search for things, if you don't want to go clicking every single .img trying to find what you want. Well now we found our monsters, how do we get learn.py to search for accuracy?
    4. To start, double click on 0100100.img. You should see the Green Snail picture.
    5. Now on the bottom left of the window you should see a tab labeled "Data". Click it. This should make the list in the panel you were just on significantly smaller.
    6. Tick the [+] sign next to the folder labeled 0100100.img. 5 more folders should appear, info move, stand, hit1, and die1. For the purposes of this tutorial, we'll focus on the "info" folder.
    7. So tick the [+] sign on "info" and a bunch more folders should appear. From here most of the names of the folders should be pretty clear. Now you've found a wealth of things modifiable. But we are looking for accuracy of the monster. In the list you should see one labeled "acc". I think it would be safe to assume this is the value you want. If your unsure, check the value you see here with what sauna.gibbed.us, or what with hidden-street.net say the particular monster's accuracy (or any other attribute) is. Okay. So now we've found the number we want.

    The Second Step - Finding What You Want To Search For/Modify

    NOW HOW DO WE EDIT IT? This is where learn.py comes in. However before we use it, we have to close MapleDump. Why? Because all these programs freak out if you are looking/editing the same file at one time. But how do I keep this information for reference? You can either write it all down (time consuming), or you can highlight 0100100.img and click on "Save HTML" at the top. This will save an html version of all this information in a folder named "Output" in your MapleDump directory. So go ahead and do that and open the html file. It will open in your browser. Okay...we still haven't done anything yet, but we're getting closer.
    1. In the html file, you'll see a bunch of stuff, most of it looking like gibberish. You don't need most of the information here. What you do need is accuracy. It'll say info.acc. Okay....so we're totally about to do this.
    2. Go to your maplestory directory. Right click learnme.py. Click "Edit with IDLE". A new window should pop up, or possibly two.
    3. In the window with the lots of code, click on Options > Configure IDLE. On the General Tab, tick the following "Open Edit Window", "Propt to Save". Save and close.
    4. Now in the learn.py window, with all the code, scroll down to Line 240. The line number is displayed in the bottom right corner. You should see this line
      Code:
      if result.startswith('undead'):
      THIS is the line that seaches for stuff. We want to look for accuracy. If you're remember from the mapledump, it was labeled "acc", so for this line of code, change the search parameter to "acc" so that it looks like this:
      Code:
       if result.startswith('acc'):
      Now click on File > Save

    The Third Step - Finding Offsets

    Now then, we've told it WHAT we want to search for. (Keep this window open for the time being) Now we have to tell it WHERE we want it to search. If you remember from the MapleDump, we were looking under Mob.wz. Open up Config.txt This file is what learnme.py references for the directory.
    1. To tell it where to search, make all the numbers next to the item 0, EXCEPT for the one that deals with what you're looking for (Leave ForceDump at 1). So in this case, we want to search in Mob.wz, so change the 0 to a 1 for Mob. Save and close.
    2. OKAY NOW WE ARE READY. Go back to the learnme.py window (which you hopefully kept open). Now. Hit F5.

      ZOMGWTFBBQZKITTEN.
    3. At this point a window should've popped up spewing out data like crazy. You should see something like this:
      Code:
       1:787 Mob/0100100.img
      acc 21451 0
      2:787 Mob/0100101.img // Green Snail
      acc 33091 0
      3:787 Mob/0120100.img // Blue Snail
      acc 39919 0
      4:787 Mob/0130100.img
      acc 47044 0
      5:787 Mob/0130101.img
      acc 56273 0
      6:787 Mob/0210100.img
      acc 63121 0
      7:787 Mob/1110100.img
      acc 85619 0
      8:787 Mob/1110101.img
      acc 99476 0
      9:787 Mob/1120100.img
      acc 108668 0
      10:787 Mob/1130100.img // Red Snail
    4. If you see this, you've done good. If not, you effed up something. As I was doing this, I still had MapleDump open, so I got an error. Make sure to close mapledump. Now then, we must make sense of this gibberish. Let's look at it closely:
      Code:
       1:787 Mob/0100100.img
      acc 21451 0
      0100100.img!? That sounds familiar. Like the name of the Green Snails directory. Now you know that this particular portion deals with snails. And what's that "acc"?! Zomg, This has something to do with accuracy. But this 21451? What is this number? This is what you want. This is called an offset and tells you where the value for a Green Snail's accuracy is stored in the Mob.wz file for you to modify. Huh?...Don't worry, it'll make sense (hopefully) in a bit.
    The Fourth Step - Editing Values

    Okay so now we have all the tools necessary for this modifiying business. Now then. Open up i.Hex. Click Open in the top left corner. Navigate to the Mob.wz file in your Maplestory directory. When you find it, open it. You should be greeted by the most frightening combination of numbers and letters you've ever seen. Sooo...let's get started. First off, on the top part, make sure not to mess with stuff. UNCHECK Hex and Signed, CHECK LittleEndian.
    1. Okay sooo, remember that 21451? It's an offset. There happens to be a box at the top of the window labeled Offset. Try putting the number in there and hitting enter. This will cause the giant mass of matrix looking code to shift. It should place the cursor at the offset you're looking for. Just stare hard enough till you see it. Or move the arrow keys left and right till you notice where it's moving.
    2. The offset should be at 03. If you're lost it looks lke 03 14 00 FD CF...
    3. Now then, we wanted to modify Green Snail's accuracy. If you'll recall, a Green Snail has 20 accuracy. If you don't recall, look back on the html thing you dumped, or check hidden-street. But those numbers are in decimal numbers. This has letters in it!!! These are called hexidecimal numbers. The system we're used to is base10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), hex is base16 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F). Basically it's another counting system. Think about it how after we reach 9 we go to 2 digits to represent bigger numbers. In this system after you hit F (15) you go to two digits as well. Anywho, nobody wants to learn a new counting system, so that's why the link above to a hex converter is included. (Note: The calculator included in Windows can do this too.)
    4. Okay, so you have 20 accuracy, but that's a decimial, and you need it as a hex value. Stick it in the convertor and you'll get this value (14) So 14(hex) = 20?(dec). Now look back at the array you have in i.Hex. OH MY GOOD LORD. It says 03 14!! That must be the number we want!!
    5. Okay so, first off, let me remind you that numbers you enter here must be HEX numbers. So before you change anything make sure that you made a back up of your mob.wz, for if you screw up. Now then, lets say we want to reduce the accuracy to 0 so that they always miss. Change the 14 to 00. Now File > Save. Success! Congrats. The end. No really, you're done....
      ...
      ...
    6. Okay so we want to do the same thing with the blue snails as well as red snails. Good thing we looked up their img ID thing at the beginning.
      Code:
       1:787 Mob/0100100.img
      acc 21451 0
      2:787 Mob/0100101.img // Green Snail
      acc 33091 0
      3:787 Mob/0120100.img // Blue Snail
      acc 39919 0
      4:787 Mob/0130100.img
      acc 47044 0
      5:787 Mob/0130101.img
      acc 56273 0
      6:787 Mob/0210100.img
      acc 63121 0
      7:787 Mob/1110100.img
      acc 85619 0
      8:787 Mob/1110101.img
      acc 99476 0
      9:787 Mob/1120100.img
      acc 108668 0
      10:787 Mob/1130100.img // Red Snail
      I've labeled them already for convience. Sooo...take the offsets. Stick them in i.hex. Change the values from 03 XX to 03 00, or whatever value you want. You can do this selectively for each individual mosnter, or take that giant list that you got and do it for all monsters! Before you go about doing this for all monsters, it would be a good time to save and actually test it. So do that. Go in game, if these monsters can't seem to hit you, you've succeeded. You've just made your own Godmode!
    [Notes of importance] Through other peoples testing, you will encounter the following problems.
    1. If you stand in a large mob of monsters and they miss you 25 times, you will disconnect. However this was reported with a different form of godmode, in which collision detection was set to never occur. This is likely a check from the server when it sees that you're character is on a monster but not getting hit. I'm not sure if this form of godmode would do the same. I would suggest you make the accuracy not 0, but low...like 10 (0A in hex). You will get hit, but not as often.
    2. At some point you will run into monsters with very high accuracy that are larger than two hex digits. Like...if a monster has 350 accuracy, that's 3 digits in decimal form and 15E in hex. Unfortunately you can't have 3 digits because there's only two bytes XX for you to modify. To overcome this, the way .wz files are packed is to put things in this form (03 80 XX). The 80 is what Saludo's calls a "packed integer" and it's basically a place holder for 256(decimal) in hex. This tells it to take the 80 (256) and add it with the byte that follows. So if you see 03 80 5E, convert 5E to decimal and you get 94. Add 94 + 256(the 80 placeholder) and you get 350. If that all confuses you, just note that if the offset leads you to this (03 80 XX), you're modifying whatever XX is.

    ~~~~~~~~~~`
    Crap I deleted the version history.
    Okay so I revised this again. There's also an entire second part that's not here, because I'm limited to some 20,000 characters or so, which apparently I exceed if I add more, So I'm gonna reformat the rest and make it a download, so you can just download the attachment if you wish to continue the tutorial.
    Last edited by That Asian Guy; 12th July 2008 at 23:15.
    23:07:18 cyclicalevents: T0m|| is gay?
    23:07:43 cyclicalevents: bi?
    23:08:28 @T0m||: hmm, maybe bi-curious

  2. #2
    Man 'O' Steel Lord of Destiny duperdylan1's Avatar
    Join Date
    21st Jul 2006
    Location
    Fortress of Solitude
    Posts
    56
    nicee..
    very clear on whats going on
    and i agree it is very time consuming..
    Watch the Obama Deception!

    He will leave this world in ruins!

  3. #3
    SDSU's Devil of Hell Hat~'s Avatar
    Join Date
    19th Mar 2008
    Location
    San Diego
    Posts
    334
    Wow, I am actually getting this a little. Now if only I had some time...
    -Signature in Progress-
    Til then, Hat~
    And don't forget to go here.

  4. #4
    Follower of Directions Necromancer of the Light cyclicalevents's Avatar
    Join Date
    17th Mar 2008
    Posts
    698
    Quote Originally Posted by BlckHatMagic View Post
    Wow, I am actually getting this a little. Now if only I had some time...
    I'll probably make it double format. Like...the simplified version. And then a subsection explaining processes. That took me a bit of time to write though...so maybe I'll get started after awhile

    If anyone has suggestions of things that need to be added (NOT FIXED...I know stuff needs to be fixed, I'll get to it), just reply here, and I'll work it in.
    23:07:18 cyclicalevents: T0m|| is gay?
    23:07:43 cyclicalevents: bi?
    23:08:28 @T0m||: hmm, maybe bi-curious

  5. #5
    Umm....Since when was I a Platinum Dragon logicalmale's Avatar
    Join Date
    10th Apr 2007
    Location
    Up Your....NVM I wont even go there.
    Posts
    1,157
    Skimmed through it, seems great.

    A few suggestions for when you fix it up.

    Just space it out a bit more and add headings in underlined and bigger font to seperate.

    Also you could add a contents at the top, but it doesn't have a great deal of sections so it probably doesn't ened one too drastically.

    Good job!
    I'm kinda back, yay me?

    Don't play MS anymore though, but what's up you guys

  6. #6
    ~ Gibsons > Ibanez ~ Devil of Hell :Tingu:'s Avatar
    Join Date
    11th Mar 2007
    Location
    In ur Topics.. Flaming u Upp. <333
    Posts
    301
    Very nice guide, Thanks for being one of the main producers for MPC.

    [ Sig removed: Sexiness exceeded limits described in the MPC Rules ]

    Lol @ that pl0x?

    Oh & btw, no im not realeasing any Chinese meso farmer, bots or Jump quest coordinates.

    .ChiN3s3 FtW.

  7. #7
    Follower of Directions Necromancer of the Light cyclicalevents's Avatar
    Join Date
    17th Mar 2008
    Posts
    698
    Quote Originally Posted by :Tingu: View Post
    Very nice guide, Thanks for being one of the main producers for MPC.

    Thanks :p For the second and third example I'll show how to do two edits that aren't public They aren't as nice as an undead hack, but I made them because they're actually useful for me.
    23:07:18 cyclicalevents: T0m|| is gay?
    23:07:43 cyclicalevents: bi?
    23:08:28 @T0m||: hmm, maybe bi-curious

  8. #8
    omg he mentioned my adventure island upload lol.....

    i feel so proud

  9. #9
    Global Moderator Power Overwhelming scruie's Avatar
    Join Date
    25th Nov 2004
    Posts
    15,919
    -=STICKY=-


    Sometimes with a topic like this it is better to make a word type document or .pdf; attach to the post and so on.

    Otherwise, nice tut. Keep it up.
    AgeRage Shop - Buy Your Valid CD-Key Today!

  10. #10
    Magician Apprentice
    Join Date
    26th Mar 2008
    Posts
    10
    thanks for the tutorial.
    i tried to change value of the exp on mobs but didnt work, so im guessing it is server side. now in the mob data section from mapledump i noticed "pddamage" and "mddamage", anyone know what they mean?

  11. #11
    Wow!!! woot for you, make sure to finish your to do list you are doing great!
    Reading : C++ For dummies

  12. #12
    Follower of Directions Necromancer of the Light cyclicalevents's Avatar
    Join Date
    17th Mar 2008
    Posts
    698
    Quote Originally Posted by drujin012 View Post
    thanks for the tutorial.
    i tried to change value of the exp on mobs but didnt work, so im guessing it is server side. now in the mob data section from mapledump i noticed "pddamage" and "mddamage", anyone know what they mean?
    Oh damn, made the stickies

    PDDamage is Physical defense damage
    MDDamage is magical defense damage

    Pure guesses. Never tested them. Seems logical though.
    23:07:18 cyclicalevents: T0m|| is gay?
    23:07:43 cyclicalevents: bi?
    23:08:28 @T0m||: hmm, maybe bi-curious

  13. #13
    ŻŻ▀▀MPC Mod▀▀ŻŻ Somewhat Evil That Asian Guy's Avatar
    Join Date
    25th Apr 2007
    Posts
    3,556
    learnme.py added to mpcd http://www.mpcdownloads.com/forums/d...o=file&id=7326

    for some reason i cant upload python, ill see what i can do with that

    nice job btw
    That Asian Guy
    MPC MS Mod


    My Programs:
    Web Updates Checker | Window Hider "Lite" | Window Hider | Asian Smuggler | PressTest Bot/Macro Tester | Asian Web Browser
    Tutorials:
    Basic C++ Window Program | How to bot without dc
    My Hack Packs:
    My GMSv41 FULL hack pack | My GMSv39 FULL hack pack


    Join the Asian Invasion group now! | My Page
    Don't like the forum search? Go to Google and type in: <Search Term> site:mpcforum.com

  14. #14
    Hello you have a very good guide and i tried it but i have a problem, you see when I try to log onto maple after i have edited it tells me that i have no data for it. Is there a cure for this???

  15. #15
    Follower of Directions Necromancer of the Light cyclicalevents's Avatar
    Join Date
    17th Mar 2008
    Posts
    698
    Quote Originally Posted by soulboy300 View Post
    Hello you have a very good guide and i tried it but i have a problem, you see when I try to log onto maple after i have edited it tells me that i have no data for it. Is there a cure for this???
    you have either Ihex still open or mapledump or learnme.py

    close all of these. then retry. it should take one or two tries for maple to load properly
    23:07:18 cyclicalevents: T0m|| is gay?
    23:07:43 cyclicalevents: bi?
    23:08:28 @T0m||: hmm, maybe bi-curious

+ Reply to Thread
Page 1 of 9 1 2 3 4 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts