-
Notifications
You must be signed in to change notification settings - Fork 16
/
CHANGES
345 lines (251 loc) · 14.1 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
2012-07-14 GoldenKevin (revision 1)
* Created /trunk folder to make layout more compliant with SVN best
practices.
2010-10-10 GoldenKevin (revision 2)
* Initial import, with fully working Map.wz compiling and a fully working
sample interpreter for map data.
2010-10-10 GoldenKevin (revision 3)
* Modified existing code to add an executable class for KvjInterpreter:
kvjinterpreter.WzInterpreter. (MapDataReader, WzInterpreter, DataReader)
* Replaced HashMaps in MapleMap with TreeMaps to keep the structures in the
order of the keys. Added label to signify start of Footholds and Portals
in MapleMap.toString().
* Modifed Portal.toString() to only add parenthesis after the target map id
(tm) if the target string (tn) was not empty.
* Changed LittleEndianReader into an abstract class with two
implementations: LittleEndianByteArrayReader for reading a byte array, and
LittleEndianFileStreamReader for reading a file input stream.
* Fixed problems with LittleEndianReader that were due to discrepancies
between the unsigned bytes stored in the files and Java's signed bytes.
* Changed the default path constants in the WzCompiler source file.
2010-10-11 GoldenKevin (revision 4)
* Modified XmlReader.traverseBlock so that it doesn't skip the first
element. This was necessary for the addition of mob compiling. However, it
came with a performance penalty and more complex code for map compiling.
Now I really need to refactor that huge method.
* Renamed Converter.handleSpecial to handleDir. Modified the parameters and
return type so the data is written in the method itself and it doesn't
return it as a byte array.
* Cleaned up MapleMap.toString() in the interpreter. It now prints reactors
and life as well.
* Added mob compiling and mob interpreting.
* Changed the default path (I'm now developing on a Windows environment) and
the default wz file to Mob.wz.
2010-10-12 GoldenKevin (revision 5)
* Added toString method to kvjinterpreter.map.structure.Reactor
* Renamed setTarget method in kvjinterpreter.map.structure.Portal to
setTargetName. Modified comments in kvjcompiler.map.structure.Portal.
* Added support for reactor compiling.
2010-11-19 GoldenKevin (revision 6)
* Complete rewrite of KvjCompiler. Expected behavior has not changed, and
generated code should still be identical to previous revisions. Performance
has been slightly hampered, as a trade off to simplicity. Code is more
object oriented now, and it should make the addition of Item.wz compiling
easier, which will break the current one to one file correspondence between
the WZ files and the compiled binaries by compiling individual items as
different files inside a folder that is named after the XML WZ file that
contains the specific item.
2010-11-25 GoldenKevin (revision 7)
* Added preliminary Item.wz compiling as well as part of the Kvj parser for
Item.wz. Please excuse all the comments in KvjInterpreter regarding items
because it still is a work in progress after all.
2011-01-09 GoldenKevin (revision 8)
* Replaced references of FileOutputStream with a BufferedOutputStream that
uses an underlying FileOutputStream. This should improve performance
somewhat for KvjCompiler. Both the log file and the compiled binary files
are now outputted with buffered output streams.
* Replaced references of FileInputStream with a BufferedInputStream that
uses an underlying FileInputStream. This should improve performance somewhat
for KvjInterpreter when using kvjinterpreter.LittleEndianFileStreamReader.
* Fixed the file names of kvjinterpreter.LittleEndianFileStreamReader and
kvjinterpreter.LittleEndianByteArrayReader. The names were previously
swapped. Also added a new constructor for
kvjinterpreter.LittleEndianByteArrayReader that takes in a File and
automatically fills the byte array.
* Fixed Item.wz/Pet folder not being automatically created if it did not
exist (kvjcompiler.item.ItemConverter).
* It's 2011 now people! Added current year on all license headers.
2011-01-09 GoldenKevin (revision 9)
* Finished creating the sample interpreter for Item.wz. Unlike previous
demos, there is no output and the class ItemConverter is only there to show
how you can implement a ItemInformationProvider. You can modify the main
method to output data for any item.
* Fixed PET_CONSUMABLE_BY not writing the correct integer.
* PET_EVOL_AMOUNT is no longer written in the binaries because its
redundant. kvjcompiler.item.ItemConverter.getDayByteFromString now returns
the java.util.Calendar constants instead of using magic numbers. The
constants are equivalent though.
2011-01-10 GoldenKevin (revision 10)
* String.wz compiling is now possible and the corresponding interpreter has
been released as well.
2011-01-12 GoldenKevin (revision 11)
* Added Skill.wz compiling. There are way too many properties to handle, so
I won't add a sample interpreter. I think it would be easy enough to make
one yourself. Also added a new method to kvyjcompiler.DataType to detect
whether a property has two values (isPoint()).
* Made the isNumber method from ItemConverter and StringConverter a public
static method in kvjcompiler.Converter.
* Input and output paths, as well as the WZ file and log file names can now
be specified at runtime through arguments. A sample batch file for Windows
is included with this update as well as a sample BASH script for Unix-like
operating systems. You most likely have to fix the classpath if you are not
using NetBeans, as well as the in and out paths that are specified in the
batch file variables (I believe it should be KvjCompiler\bin for Eclipse).
2011-01-20 GoldenKevin (revision 12)
* Rewrote code for Skill compiling so that the effect codes aren't with of
the rest of the Skill codes.
* Fixed Skill RANGE being coded as MASTERY.
* Item effects are now in the compiled binaries. Just like with Skill
compiling, I got lazy with creating an interpreter that reads the effects,
but you should get the general idea.
* Fixed the batch scripts. They should now print out the correct name of the
WZ files currently being compiled.
2011-01-20 GoldenKevin (revision 13)
* Fixed repeated Effects constant.
* Cleaned up code that I meant to remove last revision.
2011-01-25 GoldenKevin (revision 14)
* Cleaned up MobConverter so that unnecessary bytes aren't written.
* Somewhat started on Character.wz compiling.
2011-01-29 GoldenKevin (revision 15)
* Completed Character.wz compiling support.
* Reduced size of Mob data a little bit.
2011-02-19 GoldenKevin (revision 16)
* Reduced size of Map data a little bit. Removed SelfDestruct structure of
Mobs and replaced it with the selfDestructHp and removeAfter props.
* Added drop chances to mob Kvj files by using String.wz/MonsterBook.img
Note this probably won't work for any GMS version lower than v0.62.
2011-02-27 GoldenKevin (revision 17)
* Fixed Skill.wz compiling.
2011-03-21 GoldenKevin (revision 18)
* Reworked argument passing. Now you can specify multiple files to compile
without having to re run the program, so your logs will not be overwritten
for every WZ file you compile.
* Fixed Reactor.wz compiling giving ClassCastException.
* Fixed SkillConverter going into an infinite loop.
* Fixed MobConverter giving NumberFormatException (does Bodyguard B really
need to drain 50000 mp even though players have a max of 30000?)
* Some integer properties were reduced in size to further save space.
* Added summons to mob skills.
* Added a way to add custom monster drops by means of editing
DropConverter's source. One day, I may load custom scripts from a file so
that you won't have to recompile the converter in order to change custom
drops.
2011-04-13 GoldenKevin (revision 19)
* Updated status effect stat names to conform to ArgonMS r25.
2011-04-22 GoldenKevin (revision 20)
* Readded foothold IDs to Map.wz data.
* Updated Linux launcher to support the new argument parsing system
introduced in r17.
* All files now have updated svn:eol-style and svn:mime-type properties.
* Removed KvjInterpreter because it was extremely outdated. You may view the
source code of ArgonMS to view an up-to-date implementation of a Kvj parser.
* Moved files from KvjCompiler into the root directory now that it is the
only project in this repository (since KvjInterpreter is now gone).
2011-04-23 GoldenKevin (revision 21)
* Escaped backslashes in CompileAll.bat to fix Windows issues.
* Added support for Quest.wz compiling. Expect a lot of updates on this one
though because right now, I'm not sure exactly what data the server needs.
* Updated the README to reflect on recent (and not-so-recent) changes.
* Updated CompileAll.* to include the default classpaths of both Eclipse and
NetBeans. The versions of Java on my Linux and Windows boxes do not care if
a classpath directory is non-existant, so there's no harm done. If your
NetBeans project is named KvjBin and the project directory is set to the SVN
root and you compile a dist/KvjBin.jar, or if your Eclipse project project
directory is set to the SVN root, you should be able to run the program
without modifying the classpath. You may still have to modify the WZ, out,
or log paths however.
* Various formatting changes to match standards set by ArgonMS. ChangeLog
has been renamed to CHANGES and is now formatted according to a 4-space wide
tab; @author javadoc tags have been added to each class file; and new lines
have been added between license headers and package declarations.
2011-04-24 GoldenKevin (revision 22)
* Removed the passing of unnecessary indices to various quest structures.
* Quest id is now a 2-byte integer.
2011-04-25 GoldenKevin (revision 23)
* Added several bits of quest data that I forgot to parse and write in the
past two revisions (jobs, intervals, scripted quest names, minimum pet
tameness, minimum mount tameness, required mesos, required world population)
2011-05-05 GoldenKevin (revision 24)
* No longer hard code the skills with charge. Instead, make the skill
charged if there is a keydown property. This broke earlier revisions of
ArgonMS, but ArgonMS r32 will now function correctly for all charged skills.
2011-05-15 GoldenKevin (revision 25)
* Quest.wz compiling added to CompileAll scripts.
* Removed property for isBuff in SkillConverter. There are better ways of
determining if a skill is a buff than by having to update a hardcoded list
every version that introduces new skills. Plus it was a waste of space as
the majority of skills are buffs, and each buff skill used up one more byte.
* Renamed SkillConverter.IS_CHARGED to KEYDOWN, and added PREPARED and
KEY_DOWN_END. Two properties that ArgonMS actually needs.
* Added in info for summon skills.
2011-07-13 GoldenKevin (revision 26)
* Included script names for reactors, in case it may be used in the future.
* Npc.wz compiling - currently only extracts the storage deposit and
withdrawal fees and gets the script names for NPCs.
2012-01-29 GoldenKevin (revision 27)
* Updated copyright years.
2012-07-14 GoldenKevin (revision 28)
* Corrected changelog revision numbers after moving / to /trunk.
2012-08-09 GoldenKevin (revision 29)
* Added drops for Kerning PQ.
* Added opcode that prevents certain mobs from dropping mesos.
* Drop rate of Todd's How-to-Hunt mobs is now 80%.
* Source code formatting more consistent with other projects.
2012-08-10 GoldenKevin (revision 30)
* Field limit is now included with compiled map files.
2012-08-21 GoldenKevin (revision 31)
* Added full support for upgrade scrolls.
2012-08-22 GoldenKevin (revision 32)
* Added additional data for ship maps.
2012-08-22 GoldenKevin (revision 33)
* Fixed syntax error in Ship.
* Fixed incorrect opcodes used in CharacterConverter.
2012-09-17 GoldenKevin (revision 34)
* Added custom drops for 2nd job advancement challenges.
* The compiled Character.wz/Face.kvj and Character.wz/Hair.kvj now list the
IDs of every eye style and hair style the client supports.
2012-09-23 GoldenKevin (revision 35)
* Fixed compiling of point data types in SkillConverter.
2012-09-23 GoldenKevin (revision 36)
* trunk/CHANGES now uses native EOL style and has mime-type text/plain.
2012-09-26 GoldenKevin (revision 37)
* Henesys PQ mobs do not drop mesos.
* MobConverter writes probabilities for LOSE_ITEM.
* MobConverter writes the animation effect of self destructing mobs.
* MobConverter writes the "drop item period" of a mob.
2012-11-10 GoldenKevin (revision 38)
* Imported LightPepsi's MonsterDropCreator.getDropsNotInMonsterBook into
DropConverter.populateCustomDrops().
* Tidied up whitespace and documentation in DropConverter.
* Sap of Ancient Tree now has a four percent chance of dropping.
* Fixed buff items lasting a thousand times longer than they should.
* Support for specifying custom quest mob drops in DropConverter and
MobConverter.
2013-02-04 GoldenKevin (revision 39)
* Fixed CustomDropsMap overwriting drops from WZ files.
* Implemented loading custom drops from text files.
2013-02-05 GoldenKevin (revision 40)
* Added Maple item drops to custom_drops.txt.
* Added Black Tube and Emergency Rescue Tube drops to custom_drops.txt.
* Added Broken Mirror Glass to quest_drops.txt.
2013-02-05 GoldenKevin (revision 41)
* Updated copyright years.
* Added AGPLv3 license headers to shell/batch script files.
2013-03-06 GoldenKevin (revision 42)
* Added Typhon Feather to custom_drops.txt.
* Parse effectAfter field in kvjcompiler.mob.structure.Skill.
2013-03-13 GoldenKevin (revision 43)
* Fixed male only quest reward items being given to females too.
2013-08-03 GoldenKevin (revision 44)
* Rewrite StringConverter as to reduce overhead. Compiled files total size
reduced up to 8.7%.
* Compile cash shop related files in Etc.wz.
2013-08-22 GoldenKevin (revision 45)
* Write pet life period and pet food fullness recover in Item.wz.
2013-08-22 GoldenKevin (revision 46)
* Fixed quest repeat interval not being written if it is zero.
2013-10-13 GoldenKevin (revision 47)
* Added Black Charm to custom_drops.txt.
Copyright 2010-2013 GoldenKevin
Copying and distribution of this file, with or without modification, are
permitted provided the copyright notice and this notice are preserved.