Important information: this site is currently scheduled to go offline indefinitely by end of the year.
.wz archive
"If you want one why don't you make one?" - That's a really dumb argument. It's the same like "So, you want a Mercedes S Class? Why don't you built it yourself or why don't you earn all the money and buy it?"Omega wrote:The point was to figure out the file structure, and python is a very good language to quickly put together a prototype. If you believe it's better to have a tool to browse the files, why don't you make one and release it?kolli wrote:There is a tool. It's called mapledump. But it's on Korean (or Japanese or something like that). It's written in Delphi and it's closed source.itg wrote:Hm, guys can anyone tell me is a tool for this game done? (wont read 20 pages I mean tool not some script or some thing else which searching for signatures, if no then Ill download that game, thnx.
_______________________________
Inside the game http://int0thegame.blogspot.com/
I think that this tool is just a "translation" of the Python Script as the output looks the same.
I wanted to write a Object Pascal Tool, too (With FPC and Lazarus). But I'm still having trouble to read the Python script... I know the general process of what the script does, but my Python knowledge is to small to fully understand it...
And another reason, why I am not coming further: It's hard to find all the needed functions and types for Object Pascal - zlib, all the datatypes, the basic file reading - just everything is different...
Anyone else made a script or a tool in another language and likes to share his knowledge?
If the script was at least in C, but Python? Why it had to be in Python?
Yes, it extracts all Images, fine. But it would be better to have a tool to browse the wz-files.
Python is a very easy language to learn, and lambda didn't use anything too exotic to write the script (apart from zlib, but that's a standard dll). If you have any questions, there are plenty of places to ask (here included).
You don't need to be able to make anything better to see that something is not perfect. If I could do it better I wouldn't ask but do it.
Yes, the goal was to find out the file structure. But I can't see it here. All I see is a Python script. People who don't know Python can't write a tool in another language. I could write a tool in Object Pascal (maybe also in C# .NET, what I am currently learning) - if I just could read the full Python script to find out the file structure.
It's not so much about the algorithms (loops, calculations, boolean operations etc.), they are almost the same in any language. But the problems for many people are the "Pythonish" stuff (e.g. the struct.pack and .unpack stuff, the string handling, file access is easier than in other languages, in my oppinion Python code is hard to read etc.)
So it's not possible to just "translate" the script.
That's why I asked if someone already made up a general, language independent overview about the file structure. That's all I need to write a tool.
I'll answer your questions in order:kolli wrote:"If you want one why don't you make one?" - That's a really dumb argument. It's the same like "So, you want a Mercedes S Class? Why don't you built it yourself or why don't you earn all the money and buy it?"Omega wrote:The point was to figure out the file structure, and python is a very good language to quickly put together a prototype. If you believe it's better to have a tool to browse the files, why don't you make one and release it?kolli wrote: There is a tool. It's called mapledump. But it's on Korean (or Japanese or something like that). It's written in Delphi and it's closed source.
I think that this tool is just a "translation" of the Python Script as the output looks the same.
I wanted to write a Object Pascal Tool, too (With FPC and Lazarus). But I'm still having trouble to read the Python script... I know the general process of what the script does, but my Python knowledge is to small to fully understand it...
And another reason, why I am not coming further: It's hard to find all the needed functions and types for Object Pascal - zlib, all the datatypes, the basic file reading - just everything is different...
Anyone else made a script or a tool in another language and likes to share his knowledge?
If the script was at least in C, but Python? Why it had to be in Python?
Yes, it extracts all Images, fine. But it would be better to have a tool to browse the wz-files.
Python is a very easy language to learn, and lambda didn't use anything too exotic to write the script (apart from zlib, but that's a standard dll). If you have any questions, there are plenty of places to ask (here included).
You don't need to be able to make anything better to see that something is not perfect. If I could do it better I wouldn't ask but do it.
Yes, the goal was to find out the file structure. But I can't see it here. All I see is a Python script. People who don't know Python can't write a tool in another language. I could write a tool in Object Pascal (maybe also in C# .NET, what I am currently learning) - if I just could read the full Python script to find out the file structure.
It's not so much about the algorithms (loops, calculations, boolean operations etc.), they are almost the same in any language. But the problems for many people are the "Pythonish" stuff (e.g. the struct.pack and .unpack stuff, the string handling, file access is easier than in other languages, in my oppinion Python code is hard to read etc.)
So it's not possible to just "translate" the script.
That's why I asked if someone already made up a general, language independent overview about the file structure. That's all I need to write a tool.
"Anyone else made a script or a tool in another language and likes to share his knowledge?" done, but i'm not sharing code, though I can tell how it works
"If the script was at least in C, but Python? Why it had to be in Python? " that's what I answered above.
If you want the answer that goes with your mercedes allegory, you can pay someone to make it for you.
Now, if you have specific questions, I'm willing to help.
@AngelSL: I'm kinda short on time in general, so can't really look at the code, but is there an error message (are you running it from the command prompt?)? Are you running the program directly on sound.wz?
http://strategywiki.org/wiki/MapleStory
MapleStory Wiki guide
MapleStory Wiki guide
-
- beginner
- Posts: 29
- Joined: Mon May 07, 2007 2:06 pm
- Has thanked: 1 time
- Been thanked: 6 times
- Contact:
Error:
D:\MapleStory\Dump_Store\Sound>Extractor.py
0: /Bgm00.img, 7430599, 922
Traceback (most recent call last):
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 589, in <module>
dump()
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 570, in dump
vals = dumpFile(f, file["Name"], file["Offset"])
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 537, in dumpFile
value = dumpEntryValue(f, str(name), baseOffset)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 522, in dumpEntryValu
e
elif (type == 0x09): return extract09type(f, name, baseOffset)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 411, in extract09type
result = dumpBlock(f, name, baseOffset, f.tell() + size)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 510, in dumpBlock
elif (type == 0x73): return extract73type(f, name, baseOffset, endOfBlock)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 499, in extract73type
dumpMp3(f, size, endOfBlock)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 238, in dumpMp3
g = open("%d.mp3" % mp3count, "wb")
UnboundLocalError: local variable 'mp3count' referenced before assignment
Anyway, if I put mp3count = 0 in the start of the dumpMp3 block, then it just extracts ONE mp3.
D:\MapleStory\Dump_Store\Sound>Extractor.py
0: /Bgm00.img, 7430599, 922
Traceback (most recent call last):
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 589, in <module>
dump()
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 570, in dump
vals = dumpFile(f, file["Name"], file["Offset"])
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 537, in dumpFile
value = dumpEntryValue(f, str(name), baseOffset)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 522, in dumpEntryValu
e
elif (type == 0x09): return extract09type(f, name, baseOffset)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 411, in extract09type
result = dumpBlock(f, name, baseOffset, f.tell() + size)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 510, in dumpBlock
elif (type == 0x73): return extract73type(f, name, baseOffset, endOfBlock)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 499, in extract73type
dumpMp3(f, size, endOfBlock)
File "D:\MapleStory\Dump_Store\Sound\Extractor.py", line 238, in dumpMp3
g = open("%d.mp3" % mp3count, "wb")
UnboundLocalError: local variable 'mp3count' referenced before assignment
Anyway, if I put mp3count = 0 in the start of the dumpMp3 block, then it just extracts ONE mp3.
try this:
filenames will be pretty ugly, and it may not work on older computers, but it should work....
Code: Select all
def dumpMp3(f, size, endOfBlock):
startOfMP3 = endOfBlock - size
remaining = startOfMP3 - f.tell()
unknown = f.read(remaining)
g = open("%d.mp3" % remaining, "wb")
g.write(f.read(size))
g.close()
f.seek(endOfBlock)
http://strategywiki.org/wiki/MapleStory
MapleStory Wiki guide
MapleStory Wiki guide
Are there more error messages?AngelSL wrote:That only extracted 3 sounds, 1 throwing star, 1 arrow shot, and one other silent sound. The rest were just htmls..
http://strategywiki.org/wiki/MapleStory
MapleStory Wiki guide
MapleStory Wiki guide
Which floor tiles? They seem to be in sub folders of Map.wz/Tile/AngelSL wrote:No. No errors. But they only extract 3
Still, the floor tiles aren't in Map.wz... Anyone know where it is?
And if there are no more errors, the problem is probably deeper than what I can solve right now.
http://strategywiki.org/wiki/MapleStory
MapleStory Wiki guide
MapleStory Wiki guide
That means that there is a bug somewhere in the decoding....it might be that it's expecting a 0x1B block, but getting something else, or vice versa...AngelSL wrote:Theres no Tile folder!
EDIT: Found out why. Theres an error right after it tries to extract the Tiles.
Its something like:
Unknown: 115 Expecting: 15 or something.
Maybe someone else can provide a solution? (too deep an error for me to solve)
http://strategywiki.org/wiki/MapleStory
MapleStory Wiki guide
MapleStory Wiki guide
Easy answer, because I choose to. Long answer, it contains the code to decode the new kmst encryption, and I don't have the time to rip it out. Soon after we figured the regular version out, they changed to this new encryption. I'd rather not have to figure out a new encryption scheme.ninjalm wrote:Omega why cant you share you files you have exetraded?
http://strategywiki.org/wiki/MapleStory
MapleStory Wiki guide
MapleStory Wiki guide
so can you jast upload the files you extraded?Omega wrote:Easy answer, because I choose to. Long answer, it contains the code to decode the new kmst encryption, and I don't have the time to rip it out. Soon after we figured the regular version out, they changed to this new encryption. I'd rather not have to figure out a new encryption scheme.ninjalm wrote:Omega why cant you share you files you have exetraded?
to a srver?
put it all in rar put it in srver to the night and in the morning share the link?
---
and can you tell me your msn?