summaryrefslogtreecommitdiff
path: root/CHANGELOG
blob: 065b8b27c7c03f9b3453da74774217d4e1d6453c (plain) (blame)
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
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
v20.7.6
  - fix script commands sometimes not returning values when they're expected to
v20.4.18
  - allow GM command logging to be silenced for specific commands
v19.8.26~
  - fix the errors that prevented compiling with musl-libc (now fully compatible with Alpine)
  - increase the level cap to 135
v19.8.26
  - fix a regression introduced in v19.8.23 that prevented slaves from attacking
v19.8.23
  - allow summoned mobs to use skills
  - allow to summon more than 1 mob with @summon
v19.4.15.1
  - a few refinements to automod
v19.4.15
  - add a way for GMs to prevent players from sitting on them
  - add a built-in way to delay gm log messages (to avoid relying on an external timer)
v19.1.10
  - completely remove the fifo queue in login server
  - limit the number of requests and idle sessions in login server
v18.12.30
  - Fixes a very old login/char authentication exploit
  - Fixes the double login kick exploit
  - Improves logging in login and char server
v18.12.18
  - add packets that tell ManaPlus to update player HP
v18.12.13
  - add support for sending player HP to manaplus
v18.11.11
  - add support for the online list packets
v18.11.10
  - don't display (GM) for non-60 gm levels in the txt online list
v18.6.19
  - automatically fix corrupt parties on boot
v18.4.5
  - make login server send auth data to char server witout waiting
  - fix a race condition in login server
  - make the server send keepalive (pong) packets to inactive sessions
  - make the server kill sessions after 5 minutes of being inactive
v18.3.23
  - fix npc softlock ("freeze") on destroy
v18.3.22
  - don't iterate over hidden players with @hugo
v18.3.11
  - fix custom mob name handling
  - fix out-of-memory reads
  - don't send useless info for bots
v18.3.5
  - send the base level of players in visible/update1/update2
  - fix a bug introduced by 1c5159c & d0ea549 (gm command hierarchy)
  - ignore phony npc event calls (~), used to uniquely identify mobs
  - send a name request reply (even without the client making a request) for custom mob names
  - update the travis build matrix and fix gdb tests
  - fix a bug that makes the player look alive when warping while dead
  - don't send real gm levels to old clients, follow-up on v18.2.17
v18.3.3
  - added a missing null pointer check in npc_event
  - added yet another missing vector include
v18.2.17.1
  - fix a few compilation errors
v18.2.17
  - fix players sometimes facing the wrong direction after magic attacks
  - fix attoconf build
  - allow to change GM level on-the-fly, from scripts
  - send GM levels to the client (not just 128)
  - hide (GM) in the online list of the gm level is hidden
v18.1.29.1
  - fix the previous release *facepalm*
v18.1.29
  - added missing nullpo checks in script commands
v18.1.28
  - fixed issues with magic weapon overrides
v18.1.23
  - fixed a crash that happened when trying to create item id 0
v18.1.3
  - remove mob timers (unused)
  - properly clear timers of all npcs (not just script)
  - add @setleader
v18.1.1
  - increase party limit to 120
  - add a command to change party leader
v17.11.12
  - fix a bug that did not decrease the npc counter on npc despawn (REDUX)
v16.11.28
  - revert v16.11.9
  - force sending the .gat extension in SMSG_SET_TILES_TYPE
v16.11.27
  - implement SMSG_SET_TILES_TYPE
v16.11.9
  - fix a bug that did not decrease the npc counter on npc despawn
v16.5.12
  - add target argument to the getmap() builtin
  - make builtin overrideattack dumber; make scripts handle the logic
  - make builtin aggravate dumber; make scripts handle the logic
  - send 0 for param HP when player is dead, even if player has hp
  - revert attachrid modifications (temporary measure, please avoid attachrid)
  - add target argument to the addtimer builtin
  - add target argument to the foreach builtin
  - use pc_heal when changing hp using params
  - add MUTE params (global mute, party mute, whisper mute, guild mute)
  - don't allow to talk when muted
  - allow to use custom commands (ie magic) in whispers and party
v16.4.25
  - check for null pointers in the new/modified builtins
v16.4.24
  - make tmwa use resave mapflags when you die in a pvpon map
  - make the `get` builtin silently ignore errors
  - allow to set params in mob/npcs (only some params so far)
  - explicitly check that the parent still exists for puppets
  - add INVISIBLE and HIDDEN params
  - add missing null pointer check in builtin_close
v16.4.21.1
  - send client version from map server to char server when switching char
v16.4.21
  - use the client version sent to login server, ignore client version sent to char server
  - allow remote execution for newer clients (protocol 6+)
  - implement SMSG_SCRIPT_MESSAGE, add smsg builtin
  - implement SMSG_PLAYER_CLIENT_COMMAND, add remotecmd builtin
  - add builtin areatimer
  - add builtin foreach
  - add builtin aggravate
  - add builtin overrideattack
  - add builtin injure
  - add builtin summon
  - add builtin getdir
  - add builtin addnpctimer
  - add builtin get
  - add builtin chr
  - add builtin ord
  - add builtin void
  - add builtin getarg
  - add builtin call
  - remove magic-v2, keep sexpr parser
  - implement puppet npcs
  - add scope variables
  - add npc variables
  - expose some more params
  - remove MESSAGE npc subtype
v16.4.8
  - fix pvpoff
  - broadcast map pvp status on pvpon/pvpoff
  - send nick to self in chat messages
v16.4.3
  - add player nicks back to messages
  - prevent remote execution exploit (ManaPlus)
v16.2.9
  - make crashes a (tiny) bit more verbose
  - fix @pvp broken nick problem
  - add third gender
  - allow to not allocate stats on char creation
  - move gender from account to char
v15.11.23
  - Remove warp name from warp script headers, auto-generate warp npc name
v15.10.01
  - Make travis use the container-based builds
  - Update the travis builds to use newer clang and gcc
  - Fix attack path detection
  - Add some missing pc_isdead checks to mobs (aka "mob freeze" bug)
  - Fix "warp mob freeze" bug
  - Fix how summoned mobs behave when their master leave (the summon+leave trolling)
  - Stop looking for the next victim on the map for mob deaths (aka the "pumpkin failover" bug)
  - New builtins: elif, else, if_then_else, explode, max, min, sqrt, cbrt, pow, average, array_search
  - Fix crash when doing clif_damage on undefined_gat
v15.8.17
  - Fix Broken Nick Issue
  - Change write to send
  - Mob Movement
v15.7.06
  - another fix for "do not count hidden players with getmapusers builtin"
v15.7.05
  - fix for "do not count hidden players with getmapusers builtin"
v15.6.30
  - a few modifications to make tmwa compatible with gcc 5
  - send pvp channel and rank to client
  - don't segfault when inserting remote maps into DB
  - do not count hidden players with getmapusers builtin
  - do not reset the default (1) pvp channel on death
  - fix a bug that allowed to attack with magic players that are not in the same pvp channel
  - add builtin "title"
  - add builtin "mapmask"
  - add mapflag "mask" (and remove legacy "noicewall" mapflag)
  - add builtin "npcaction"
  - add builtin "music"
v15.5.23
  - really send mob hp properly
  - add more debug with abort vs. runflag
v15.5.19
  - check client version in login server
  - make npcs sit-able
  - send mob attack range
  - send mob hp properly
  - send npc sex
  - add builtin setnpcdirection
  - make packet SMSG_BEING_VISIBLE follow manaplus spec
  - make packet SMSG_BEING_MOVE follow manaplus spec
v15.5.18
  - reject old incompatible clients
  - check client version before sending quest data
  - send mob hp to client
  - send mob walk data to client if client version >= 3
  - remove "Save" and "Random" special map names for the warp builtin
  - remove unused pc_randomwarp
  - remove builtin getitemname in favor of builtin getitemlink
  - remove builtin getequipname in favor of getitemlink combined with getequipid
  - remove item labels
  - remove OnInterIfInit event handler
  - remove OnCharIfInit event handler
  - remove long deprecated tmwa-monitor
  - allow to specify npcs in timer-related builtins
  - make the script engine more strict and die on errors
  - completely deprecate invalid npc id -1 in favor of id 32767
  - remove the motd in favor of one provided by server-data
  - make the message about the source code location be sent to General chat tab instead of Debug
  - remove leftovers from deprecation of atcommand gm
  - reset the status both on death and on respawn
v15.5.04
  - remove check for pk_mode for mapflag NOPVP
  - remove atcommand gm
  - add atcommand npc
  - remove builtin readparam
  - remove builtin statusup2
  - remove builtin changesex
  - remove builtin gmcommand
  - add builtin wgm
  - add builtin gmlog
  - do not force disconnection after sex change
  - add new parameter to builtin emotion
  - remove braces and jname from getitemlink
  - add quest log
  - add sanity check to freeloop
  - add OnPCLoginEvent handler
  - some typo fixes and rewording
v15.4.20
  - make spam warnings appear in General chat tab
  - add builtin getnpcx
  - add builtin getnpcy
  - add builtin pvp
  - add builtin getpvpflag
  - add builtin strnpcinfo
  - remove builtin cmdothernpc
  - remove builtin killmonsterall
  - remove builtin percentheal
  - remove builtin itemheal
  - modify builtin heal to include itemheal
  - remove atcommand killer
  - remove atcommand killable
  - remove atcommand charkiller
  - add atcommand pvp
  - add atcommand charpvp
  - add atcommand exprate
  - remove warp debug (npc 722)
  - add support for emote IDs over 100
v15.2.28
  - Added Freeloop
v15.1.23:
  - update changelog for this and last release
  - segregate per-server global variables
  - use namespaces for every server
  - generate all config parsers
  - support fine-tuned per-version sections in config files
  - track spans for config parsing
  - remove deprecated config settings
  - fuck adl
  - error out (after global ctors) if someone is dumb enough to run as root
  - really fix shop prices
  - add gcc 4.9 on travis
  - use an uglier bug more reliable macro for MATCH
  - fill the house with dancing elves, it is the xmas season
  - workaround the clang bug preventing shared libraries
  - fix clang 3.5 builds (previously only 3.4 worked)
  - fix infinite loop in previous release
  - flatten protocol generator and add pre/post/desc digraph and wiki
  - new script builtins: npcareawarp, iscollision
  - use manaplus url format
  - fix nightlies
v14.11.11:
  - avoid this release at all costs
  - fix an obscure bug breaking asan
  - add new way of checking for mapless events
  - fix off-by-one overflow with too many script arguments
  - more script debugging in python instead of in the executable
  - attempt to fix shops
  - eliminate buggy microoptimization with sc_count
  - fix crash with divorce
  - parse npcs and items into an ast first
  - simplify nightly cross-builds now that there's a defaults package
  - semiformalize the concept of "ranked" directories of headers
  - convert readme to markdown
  - fix bugs caused by using more Option<T>
  - bump clang version on travis
  - various build system improvements to build more, smaller, files
  - pretty-print pointers by symbol/segment
  - move more stuff to Option<T>
  - split parsing functions into their own files
  - get rid of crazy 2-based arrays for script arguments
  - finish removing offhanded weapons
v14.10.5:
  - fix the stupid refactoring bug with mob slave summons
  - officially drop support for clang, all versions are too buggy
  - implement Option<T> and Borrowed<T> with tests, but don't use them yet
  - rename enum Option to Opt0 to move it out of the way
  - add support for static libraries (clang is being retarded again)
  - critical fix for the bug in parties (thanks Rawng)
  - add support for cross-builds to the buildbot script
  - fix a refactoring bug in magic
  - fix an exposed bug in the magic 'dir_towards' function
  - fix an exposed bug in char-server whispering
v14.8.29:
  - fix testsuite
  - add missing changelog
v14.8.28:
  - stop meko from crashing the test server
  - support updating race without relogin (manaplus is still bitchy)
  - build infrastructure to debug debug scripts
  - bust up all the unions
  - burn the strings with fire
  - use more namespaces
  - safety-pin all enum -> integer conversions
  - check for statement/function mismatches in scripts
  - quieten the makefile when doing nothing
  - use/check more of the configured build dirs
  - support shared libraries in build system and rpath
  - bump attoconf
  - implement 'make bindist' and write a blessed nightly script
  - revert breakage, go back to signed numbers
  - fix compile failure with --disable-warnings (the default, but no CI)
v14.7.1:
  - avoid this and the previous release at all costs
  - keep one less rotating backup to avoid going insane
  - attempt to fix signedness breakage from the network change
v14.6.30:
  - packet names (thanks evets)
  - silence secondary output from tests
  - port the variant
  - fix anti-purge thing by giving every account a date
  - prevent null session crash during shutdown
  - specialize inventory/storage indices to avoid out-of-bounds
  - don't crash when giving invalid ID to @item
  - play with obscure corners of the C++ standard that no one can interpret
  - replace hand-coded network protocols with generate ones
  - lots source layout and formatting cleanup
  - faster dependency calculation
  - strict ids (yay less bugs, boo account/block entanglement)
  - beginning of integers
  - support libc++ (experimental)
  - drop gcc 4.6 support
  - completely remove flex/bison dependency
  - fix duplication in npctalk
v14.4.20:
  - fix potential file corruption with partial writes
v14.4.19:
  - emergency backport of security fix, since v14.7.1 is too buggy
v14.4.18:
  - fix some fatal bugs related to logout in the previous release
  - fix out-of-bounds in trades exposed in the previous commit
  - fix use-after-free when player is kicked with a delay
v14.4.9:
  - fix tarball timestamps
  - added all missing copyright notices
  - use AGPL for my new files; add @source command and makefile support
  - fix a multiline span assertion missed by the testsuite
  - @tee no longer duplicates the speaker's name
  - fix @npcmove between blocks
  - fix out-of-bounds crash when unarmed (exposed by shrinking character)
  - bounds-checks for most arrays
  - lots of deprecation warnings in the script parser (sorry)
  - finally merge wushin's "local savepoint override" patch
  - new magic frontend with sexpr; temporary converter
  - if doing nothing, stop doing anything
  - script variables of all types can now be used by magic
  - flexible mapflags
  - split out the character keys for better paging (network ABI change)
  - lower priority for background processes
  - add a more efficient string for temporaries
  - make build prettier
  - strictify sessions and fds
  - recover nonexistent party member slots
  - remove the middle makefile
v14.1.27:
  - new tracking IO for better errors
  - Unified config parsing! This *requires* new config files in server-data
  - reimplement shared string better
  - fix IO-related abort during shutdown
  - fix the numbering of certain map logs
  - add mapexit script command, since @mapexit doesn't work without a player
  - start enforcing code format automatically
  - add debug printers
v13.11.24:
  - don't consume spell components when under @hide
  - tmwa-admin no longer logs passwords in cleartext
  - tmwa-admin help slightly fixed (still terrible)
  - make tmwa-finger work for tmwa-map also
  - allow setting class
  - I/O rewrite
  - allow checking whether arrows are equipped
  - more printers
v13.10.31:
  - make debug printers more compatible with older systems
  - fix account creation with ladmin
  - fix building out of tree
v13.10.29:
  - show MOTD in a way that works
  - ignore hidden GMs in more scripts
  - make @hide persist without crashing
  - rewrite @help and other dispatch
  - fix totally broken status_option, which caused GM invisibility to fail
  - add @charkiller
  - make @hide to persist
  - flush the GM log all the time
  - add debug printers
  - use config for internal server userid/passwd instead of accounts.txt
    This requires updated config files in the data repo.
    IF YOU DO NOT UPDATE THIS, YOUR SERVER WILL NOT WORK.
  - fix reversed error condition in ladmin changesex
  - actually kick the player when their sex is changed by a script
  - implement 'make dist'
  - fix crash due to logging after log is closed
v13.10.2:
  - remove some asserts that shouldn't fail, but do anyway
v13.9.31:
  - don't show different GM level types, it breaks guildbot
v13.9.30:
  - streamline release process
  - fix drop order assignment
  - show different GM level types in online list
  - remove logging of failed whispers (successful ones were never logged)
  - fix some warnings
v13.9.29:
  - fix monster elements
v13.9.28:
  - also make login server startup much faster
  - fix turning right
  - fix pathfinding a bit
  - fix a small part of ladmin help
v13.9.27:
  - fix a bug with trades
  - make char server startup much faster
v13.9.21:
  - With the new Makefile, the binary names have changed. Instead of
    login-server, ladmin, etc., they are now tmwa-login, tmwa-admin, etc.
    (properly namespaced). Please remove any instances of the following
    files from your system: ladmin, login-server, char-server, map-server,
    eathena-monitor, deps.make
  - Fix statup2 not actually doing anything.
  - Add 'return' to the list of script commands that don't work properly
    inside an 'if' statement.
v13.9.12:
  - Also allow "true" and "false" as boolean values in config files.
  - The format of lan_support.conf has changed slightly.
    If you have made any adjustments, you MUST update it.
  - Increase maximum size of a script array from 128 to 256.
  - Fix scissors bug.
v13.8.28:
  - First release - finally cleaned up enough to feel good about.
  - For a partial list of changes since branch 'unsupported', see
    http://forums.themanaworld.org/viewtopic.php?f=2&t=17670