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
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
|
Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/07/27
* The picklog will now record negative values for items sold to npcs.
[Skotlex]
* Added inmediate position and hp-bar update when a character joins a
party. [Skotlex]
* Added missing SC information to NPC_CHANGEUNDEAD [Skotlex]
* Added config setting party_update_interval so you can specify how often
the party-mate minidots should be updated (defaults to 1 sec). [Skotlex]
* Removed a bunch of broken comments in skill.c [Skotlex]
* Synced the script.c file with as much data as possible from jA's:
[Skotlex]
- A lot of functions were moved around, a bunch of indentation and
space-usage changes were done to make it easier to diff against their
files.
- Miscellanous addition and corrections were applied.
- Largest one is likely a restructuring of run_script_main, which hopes to
solve the memory leaks.
- script engine now uses the setjmp functions to restore memory state when
there's an error parsing scripts, which means that script errors won't
cause the map-server to inmediately bail out anymore.
- NOTE that the amount of changes is pretty extensive, so DON'T USE THIS on
a live server. Update only to help test and debug to see if the script
engine memory leaks are gone.
* Added a cleanup routine on shutdown to remove all characters from memory
for whom the save ack has not returned from the char-server yet. [Skotlex]
* Now when you set the guardian's HP, if the guardian is spawned, it's HP
will be updated accordingly (and if you set it to 0, the guardian is
killed) [Skotlex]
* Added functions status_set_hp/status_set_sp to set hp/sp to a given
value. Applied usage of these on the Berserk and Soul Change code.
[Skotlex]
* Added config setting "party_hp_mode" (battle/party.conf) which determines
method to use to update party-mate hp bars. Aegis style is to update HP
bars whenever HP changes, while eAthena style is to update it together with
the map party dots. Defaults to aegis style. [Skotlex]
* Fixed packet 0x22a having the manner and opt3 packets in inverted
offsets. [Skotlex]
* Readded the check which prevents Cloaking from activating when your
learned level is less than 3 and you aren't next to a wall. [Skotlex]
* Some cleanups to the Frenzy/Berserk status change, it should probably
work correctly now. [Skotlex]
* Removed a redeclared variable i in the parsing of the fame list (char-sql
server) which seems to be the cause of the random memory corruptions.
[Skotlex]
* Updated item_db.sql to latest. [Toms]
* Fix homunc & code cleanup [Toms]
- Timer problems on delete_timer
- Intimacy problem (overflow & new values)
- Homunc deleted if intimacy < 0
- base exp is now given to master
- Homunc sometimes not saved
2006/07/26
* Fixed a memory leak when reading the item_db txt. [Skotlex]
* Applied the necessary changes to make @partyoption reflect it's changes
on the alt+p window. [Skotlex]
* Modified party_item_share_type config setting so that using 1 disables
item-sharing from non-mob loot (player dropped items or pet loot) and 2
enables round-robin instead of random sharing. Using 3 obviously is
enabling both 1 and 2. [Skotlex]
* Added battle_get_master which returns the master bl of a given object.
[Skotlex]
* Recoded battle_check_target to use battle_get_master, the src/target
switch has been split into two, so that actual target and master target are
seperately treated (same for source). [Skotlex]
* Added support for "sc_end -1" which will clear all status changes. Added
the constant SC_ALL so you can use in scripts "sc_end SC_ALL;" instead.
[Skotlex]
* @pettalk will now fail when muted. [Skotlex]
* Enabled changing of equipment while stunned/asleep/petrified/etc [Skotlex]
2006/07/25
* Cleaned up run_script_main to properly free previous stack-data when
running scripts. Note that scripts may still leak memory when run by
non-players and they don't reach the "END" state, however I am not sure how
this case should be handled, so it's left as it is for now. [Skotlex]
* Added a missing ntohl call in the loginlog code. [Skotlex]
* Added a check when buying from npcs to allow buying of item_avail items.
[Skotlex]
* Fixed duel accept invite sending the packet before the duel data is set
(resulting in a packet that noone receives). Thanks to Toms for finding it
out. [Skotlex]
* Fixed a possible crash when you dual-wield and the total damage is 0.
[Skotlex]
* Added Toms's perl scripts item_db.pl and mob_db.pl (they are in tools/),
they convert the txt databases into sql. [Skotlex]
- Usage: "script" < "input file" > "output file". eg: ./tools/item_db.pl < db/item_db.txt > sql-files/item_db.sql
* Updated the sql files since now it's quick [Skotlex]
2006/07/24
* Re-updated the mob_db.sql to latest. [Skotlex]
* Cleaned up the skill_landprotector function to correctly block only magic
skills from being placed on land protectors. [Skotlex]
* Corrected itemdb_group so that it will not return the random item givers
(should give priority to actual item groups, so that the item heal bonuses
work correctly) [Skotlex]
* Cleaned up the Mistress Card related code so that the no-gemstone bonus
reduces item requirements by one rather than totally skip them. [Skotlex]
* Cleaned up the logs "can log"function to use the IT constants. Also
corrected the "only log large amounts" setting not working on negative
values (trades). [Skotlex]
* Adjusted skill_castfix_sc so that Suffragium will get consumed even on
instant cast skills, but Memorize won't. [Skotlex]
* BladeStop will now end when either of the characters is moved (knocked
out?) around. [Skotlex]
* Moved the Zeny penalty code from respawn to pc_dead. [Skotlex]
* Added a check to prevent Deluge/Volcano/Violent Gale from being placed on
top of each other. Reverted the previous 'fix' where atk was being
increased based on armor element rather than element of attack. [Skotlex]
* Removed the noreturn mapflag check from script command warp. [Skotlex]
* Homuculus cleanup [DracoRPG]
- Replaced nullpo's in parse functions by silent checks
- Removed server-side effect for menu option 0 (view status window...
why does the client send us the packet since we don't care? -_-)
- Rewrote intimacy underflow checks so they are really effective (no
need to check if an unsigned is < 0, it won't work... check before!)
* fixed unban unblocking players as well. [Skotlex]
* Fixed Volcano/Deluge/Violent Gale increasing damage based on element of
attack instead of defense element of attacker. [Skotlex]
* Cleaned up the code of Magic Rod, fixed it not giving SP. [Skotlex]
* Moved the code of Hermod and Basilica to castend_pos2 so it should work
now. [Skotlex]
* Modified the code of Ankle Snare so the status ends on unit's time-limit
rather than when the snared object moves away. [Skotlex]
* Re-worded the water check of ST_WATER skills. [Skotlex]
* Allowed sc-cast reductions to be processed even when cast-time is instant
(to let suffragium end even on instant-cast skills) [Skotlex]
2006/07/23
* Modified setting skillrange_by_weapon (skill.conf) to be a
per-object-type setting instead of yes/no. The default now is that
weapon-based skills will take the attacker's range for non-players.
[Skotlex]
* Changed the default of skillrange_by_distance to include homunculus.
[Skotlex]
* Fixed buildin_isequip not working correctly with non-cards. [Skotlex]
2006/07/22
* Updated mob_db.sql to latest. [Skotlex]
* Applied Toms's suggested corrections to homun code. [Skotlex]
* Corrected Cannibalize/Marine Sphere ignoring the selected summon spot.
[Skotlex]
* Fixed looting pets ignoring the item pick-up priority of other players.
[Skotlex]
* Should have fixed a signess warning in login txt. [Skotlex]
2006/07/21
* Added blocking of @me when muted or in berserk status. [Skotlex]
* Corrected the @follow timer not being deleted on logout. [Skotlex]
* Applied the homunculus code fixes provided by Toms. [Skotlex]
* battle_check_target will now tag homunculus as invalid target when the
source is a skill-type object. [Skotlex]
* Added a check on pc_equipitem so that when the client specifies to equip
a weapon on the right hand when the left hand is available, the weapon will
be sent to the left hand instead (when dual-wielding is possible,
obviously). Same for the left/right accessories. [Skotlex]
* Added the necessary checks so that Suiton makes Fogwall have double
duration, and to make water-requiring skills to consume their cells.
[Skotlex]
* Corrected the loadmap event description to specify that the mapflag
required is actually "loadevent", NOT "loadmap"! [Skotlex]
* Now when the char-txt server does not finds a requested party, it will
clear out said party id of all characters (will help prevent massive
spamming/overhead when for some reason the party file needs to be deleted).
[Skotlex]
* Combo skills (inf = self, inf2 = no target self) no longer check range if
you use them while your attack-timer is still active. [Skotlex]
* Added back a map_freeblock call in skill_delunitgroup which caused a
memory leak when removed... [Skotlex]
* Added a check to prevent Blind from ending while standing on a fog of
wall. [Skotlex]
* The mob Slave ai will be executed now even when the slave has a target.
This will allow for "instant" warping to the master when it changes maps or
teleports. if the slave has a target already, it won't unlock it and chase
back to the master or anything like that. [Skotlex]
* Removed a couple of checks that prevents item ids above 20000. However,
remember that the max id is still ~32k or the client is the one who's gonna
crash! [Skotlex]
2006/07/20
* Added source reporting when you do an invalid int&str or str&int
operation on a script. [Skotlex]
* Fixed the intif party creation packet having the incorrect size sent,
hence causing the leader's level to be read as garbage (which caused the
"impossible to even share" bug). [Skotlex]
* Added pc_check_weapontype to do a proper skill weapon check that takes
into account dual-wielding. That is, if a skill can be used with
daggers/axes, you'll be able to use the skill when dual-wielding them.
[Skotlex]
* Corrected Cloaking level 1-2 not letting you move across walls. [Skotlex]
* updated cloaking code so that when you set "enable cloaking without
walls", the code will consider you as "always next to a wall", thus you get
the wall-speed bonus always. [Skotlex]
* Applied the fix to homunculus name saving... [Skotlex]
* Added battle config settings agi_penalty_target and vit_penalty_target,
they define which object types will get vit/flee reductions when
multi-targetted and defaults to only players (battle/battle.conf) [Skotlex]
* Added the dummy intravision case for the changeoption packet 0x229
[Skotlex]
* Corrected Fog of Wall so that all targetted offensive skills (not only
those who do damage) will fail on cast-end 75% of the time. [Skotlex]
* corrected @homlevel up and one entry in the homun exp table as reported
on the forums by Albator. [Skotlex]
* Added the SQL fix to Homunculus skill learning/saving bug [DracoRPG]
* Added a status_check_skilluse on skill_attack_area call to prevent splash
damage skills from hitting hidden/trickdead/etc characters. [Skotlex]
* Corrected fog of wall to behave as best known currently: [Skotlex]
- Only takes effect when targetting a character inside it
- -50hit/-75% damage when using normal-ranged attacks
- -25% damage from all damage skills
- 75% chance of all targetted damage skills of failing.
* Should have fixed @refine applying multiple times to equipment that uses
multiple equip slots. [Skotlex]
2006/07/19
* Fixed the inf code update breakage which was blocking all offensive
skills. [Skotlex]
* Added battle setting homun_critical_rate (defaults to 0) [Skotlex]
* Removed enemy_str/pet_str/enemy_perfect_flee and replaced them with
enable_perfect_flee which specifies which objects can have perfect flee and
enable_baseatk which specifies which objects can have a base attack value
(both in battle.conf) [Skotlex]
* Modified the targetted skill logic to enable offensive skills to be
targetted at party/guild members if the appropiate inf2 value is set.
[Skotlex]
* Added checks to make adding items to inventory/cart fail when a char is
in finalsave state. [Skotlex]
* Fixed parse_names on irc.c crashing when receiving a null argument.
[Skotlex]
* Modified the parsing of the names line, since some servers will send @
instead of = when separating the information. [Skotlex]
* Fixed the homun creation sql statement. Why noone else did so before?
[Skotlex]
* When enabling/disabling hiding/unhiding an npc, if the npc is a warp, it
will use clearchar and spawn packets instead of changeoption. Thanks to
Toms for the fix. [Skotlex]
* Corrected Trim chars to block 'enter', as explained by the Ultra mage.
[Skotlex]
* When the client passes account version 0, the login server will set it to
1 now. [Skotlex]
* Corrected the HP bar scaling when HP is above Short Max. It should
display fine for any HP value now. [Skotlex]
* Added a check when the mob's adelay is shorter than the amotion, in which
case the adelay will be changed to the amotion value. [Skotlex]
* Some minor mapflag changes. [MasterOfMuppets]
2006/07/18
* Added atcommand @partyoption, lets you alter the party item-distribution
type on the go. Usage is "@partyoption <pickup share> <item distribution>",
where both arguments can be 0/1, yes/no, etc. [Skotlex]
* Updated @changeleader and @partyoption to use msg_Athena entries.
[Skotlex]
* Added character 013 (enter) to the list of characters that are always
removed from new character names. [Skotlex]
* Fixed a crash when trying to extend TK's infinite combo feature. [Skotlex]
* Corrected Poison React to counter regardless of distance, and to use the
skill's 50+5*lv% counter chance (instead of 100%). [Skotlex]
* Corrected Venom splasher's splash damage [Skotlex]
* You now can't move/attack/use-skills when using Cloaking of a level less
than 3 [Skotlex]
* Fixed compilation of mercenary.c [Skotlex]
* Corrected Fog of Wall's "targetted spells fail 75% of the time" feature
by making it behave like GTB, that is, you just get a skill-failed on
cast-end, no skill-animation at all. [Skotlex]
* Added a proper check to make aggressive mobs never override homun targets
regardless of distance. [Skotlex]
* Removed a bunch of homun-related variables that are not needed at all.
The alive condition is removed, now the code checks for the hp value to
know if the homun is alive or not. [Skotlex]
* Cleaned up a bit the skill-id function, homun skill checks (such as delay
and skill-lv learned) should be correct now. [Skotlex]
* Added a proper check to make aggressive mobs never override homun targets
regardless of distance. [Skotlex]
* Fixed giving the 100% damage bonus when no-splash-targets are found in
the blown path to Grandcross instead of Bowling Bash. Bowling Bash damage
equation becomes then +50*lv% rather than +40*lv% when there's no
splash-damage (the 50*lv% figure is custom, all we know is that level 10
does 600% instead of 500% damage). [Skotlex]
2006/07/17
* Updated mob_db.sql to current mob_db.txt data. [Skotlex]
* The char-server will allow off-line character saves when said char is
tagged for final-save (this is the scenario when the char-map reconnect).
[Skotlex]
* Should have fixed the Cart Termination damage code to be scaled correctly
when you change the max cart weight. Thanks to The Ultra Mage for the error
clarification. [Skotlex]
* Implemented Grandcross weird property where if there's noone on the path
it'll hit twice for the skill's reported damage, and when there is (or you
can't knockback the target) it'll do a splash attack that hits twice for
500% to all affected targets. [Skotlex]
* Some cleaning of the combo code. TK Rankers will now get their combo-time
extended each time they trigger a kick, enabling them to do "unlimited
combos". [Skotlex]
* Modified the autosave function to use a sweep across the player db
instead of across connected clients. This will cause non-connected players
(like autotraders) to also be saved on a regular interval, may help with
possible data-loss from said characters on unclean shutdowns. [Skotlex]
* Removed the code that forces aggressive mobs to go after a Homun instead
of their master (no reason why there should be such a condition). [Skotlex]
* Some sign quest map flag updates [MasterOfMuppets]
* atcommand_follow is now more verbose. [Adam]
* Manually added int_homun.c to the VS8 char_sql project, *should* work [DracoRPG]
* Orn's fix to the very critical skill level up bug [DracoRPG]
* Updated mob_db.sql to current mob_db.txt data. [Skotlex]
* Added Orn's lil fix on homun [Vicious]
* Added Homunculus system, enjoy! [orn aka Nylou]
- WARNING: This currently only works with the SQL version, as the TXT char-server
has no code for it at the moment. You TXT server won't break, but the char-server
will complain of an unknown packet if you try to get an Homunculus
* Updated nomemo mapflags based on info from http://ro.doddlercon.com/images/memo.jpg [Poki#3]
2006/07/15
* Small change in conf/battle/player.conf to say that 199 is max aspd allowed
(Haplo says that there are many reports of having over 200 is giving errors) [Evera]
2006/07/13
* Kaahi no longer shows the heal effect to everyone. [Skotlex]
* Eska no will cause defense to change randomly every second. [Skotlex]
* Tuned up some more NJ_KAENSIN based on Tharis's information. [Skotlex]
* Corrected NJ_KAENSIN as per description. [Skotlex]
* Fixed a leaking map_freeblocklock on skill_del_unitgroup. [Skotlex]
* Changed the default save interval to 5 minutes. Added support for
specifying fixed save-intervals by using negative values. [Skotlex] EG:
- Save interval set to 300 (5 minutes): all characters will be saved in
equal time-slots, so that everyone is saved every 5 minutes regardless of
number of players online.
- Save interval set to -1000 (1000 ms): One character will be saved every
second, regardless of amount of characters online.
The new fixed-time-slots method is meant for larger servers, so that they
can control the saving-induced stressed on the char-server.
* Fixed @storeall and @charstoreall failing when the target character
already had the storage open. [Skotlex]
* Reverted temporarily the Cart Termination equation until it can be
fixed... [Skotlex]
* Fixed script command "recovery". [Skotlex]
2006/07/12
* Fixed a small typo in my code [Zido]
* Added negative value in bonus exploit fix for more stat bonuses [Zido]
* Fixed exploit in pc_bonus there are no checks that check that the value being
added onto a status don't make it go below zero, which means if you have a mineral
card and reset stats it reduces your base attack to lower than zero, making it
go up to 64000. Fixed by adding a check for SP_BASE_ATK, although i recommend
doing it for other status bonuses also [Zido]
* Recoded NJ_BAKUENRYU to behave as I understand it best from the
skill-description (since Haplo told me this skill doesn't really has video
information or anything...) [Skotlex]
* Fixed NJ_TATAMIGAESHI to use ground-tiles rather than "for each in path"
calls. The skill should be working correctly now, except for the fact that
the correct "unit id" is missing (this is what would give the ground tile
it's correct display). Temporarily it is using 0xba until the correct value
is found. [Skotlex]
* Added back the undead check to turn undead/resurrection to prevent
damaging non-undead targets, removed it from the battle damage section.
[Skotlex]
* Resurrection will now silently fail when used on non-undead + not-dead
characters. [Skotlex]
* Poem of bragi/magic String's base delay reduction at level 10 (or above)
is now 50% instead of 3*lv%. [Skotlex]
* status_damage will no longer fail when the target is not on a map AND the
flag is 2 (charge rather than damage). Fixes SP-draining status changes
ending suddenly when in-between maps. [Skotlex]
* Fixed the IP value being apparently incorrectly casted before inserting
into the loginlog table on "connect success" events. [Skotlex]
* Fixed Cart Termination's damage. [Skotlex]
* Added the missing check to remove character from memory when logging out
and using the charsave_method which saves character map-server-side.
[Skotlex]
2006/07/11
* Fixed inverted check which was preventing you from buying more than 1
from any stackable item.... [Skotlex]
* Should have fixed the crash in intif gm message... [Skotlex]
* Fixed GTB card only working while you had a status-change active.
[Skotlex]
* Fixed being unable to compound cards in armor. [Skotlex]
* Made @monsterignore be an universal ignore. Means you cannot be targetted
as an enemy by anything. Also added alias "@battleignore" which does the
same as monsterignore. [Skotlex]
* Fixed magic power setting your min matk as max-matk. [Skotlex]
* Modified the packets involved in @fakename in hopes it'll refresh
correctly on nearby clients now. [Skotlex]
* Fixed clif_parse not checking for func_parse before sending data to the
connected clients. This in turn required various code-rewrites in: [Skotlex]
- duel related messaging functions (added clif targets DUEL/DUEL_WOS).
- intif whisper to gm function
- day/night timers
- Rewrote the parse_console function to stop allocating/deallocating memory
on every call.
- Modified chrif_charselectreq to receive the player's ip among the data.
* Added function clif_disp_message, which is the same as
clif_disp_onlyself, except you can specify the targets (it sends a
guild-chat packet) [Skotlex]
* Fixed the subele bonus (elemental reduction) being applied to the element
of the attacker instead of the element of the attack. [Skotlex]
* mob skills now won't trigger on unit_stopwalking calls. [Skotlex]
* Coded @reset. [Skotlex]
* Reenabled @changesex [Skotlex]
* Added function pet_create_egg which handles creating pet eggs correctly
(when passed item id is indeed a valid petegg). Applied this on @createitem
and getitem. [Skotlex]
* Cleaned up code of @item [Skotlex]
* Cleaned up the itemdb_isequip functions. itemdb_isequip will now return
if the item is equipable by players, itemdb_isstackable returns if the item
can be stacked, and itemdb_isidentified returns if the item should drop
identified. [Skotlex]
* Added defines CARD0_PET/CARD0_FORGE/CARD0_CREATED to identify if a given
item has "invalid" cards, added define function itemdb_isspecial to
simplify this check. [Skotlex]
* Removed itemdb.c considering item ids above 20000 as invalid. [Skotlex]
* Cleaned up script commands getitem and card-counting related ones.
[Skotlex]
* Cleaned up a bit more pc_isequip [Skotlex]
* Added script function warpportal(x,y,targetmap$,targetx,targety).
This creates warp portals as in the skill unit as a volatile alternative
to static warp portals. [blackhole89]
* Modified the login-sql server to do the ip-ban check only on the
auth-packets instead of on every packet. [Skotlex]
2006/07/10
* Corrected Warp Portal being unable to warp people who are standing on it
on the moment it triggers. [Skotlex]
* Fixed @follow stopping the moment you are warped. [Skotlex]
* Fixed pc_additem messing with the equip field of the passed item data.
Fixes the famous "equip stuff on your arrow slot" bug. [Skotlex]
* Fixed cart-termination crashing the server if you used level 16 of it.
[Skotlex]
* Fixed check_connect_login_server check in char-sql server. Fixes
char-server not reconnecting to the login server. [Skotlex]
* Login-sql server will no longer change an account's state to "7" when
banning a player. This should fix being able to use @ban to clear out a
@blocked player. Players will now be identified as banned only through the
banned-until timestamp. [Skotlex]
* Fixed a crash when using Gospel... [Skotlex]
* The on-place function won't be invoked on setting ground skills if the
group's tick is greater than the current tick. As Buuyo pointed out, this
should fix Sanctuary and Gospel taking effect inmediately instead of after
"x" amount of ms as they should. [Skotlex]
* Added login-char packet 0x2737. Sets all characters offline (login-server
side). [Skotlex]
* Cleaned up char server "set all offline" implementation to remove only
characters from the map-server from which the packet was invoked. It will
also now correctly kick/set-character offline from the map-server if they
are connected. [Skotlex]
* Cleaned up the char-sql reconnect code. It no longer sets everyone to
offline. [Skotlex]
* Removed setting "kick_on_disconnect", servers will no longer kick
characters out when there's a disconnection. Instead, it'll use the most
logical approach: Set characters into a "lost" state when there's a
disconnection, on reconnect, resent the list of online-characters, do a
sync, and let the difference be characters to be removed. Also, the
map-server won't release character data until it's saved and the ack
returns from the char-server to prevent data loss (all this data is resent
on reconnect for saving anyway). [Skotlex]
* Added a check in pc_equipitem so that when switching weapons and you have
the skill_range_by_weapon setting active, the skill info block (which
includes range) will be resent when the new weapon to equip has a range
different than the previous one. [Skotlex]
* One closer inspection, removed that clear in itemdb_reload for a foreach
call again. And modified itemdb_load to scrap the dummy item entry from the
item_db and replace it with proper data for the item. [Skotlex]
* itemdb_reload will clear the itemdb before reloading info instead of only
clearing the scripts now. [Skotlex]
* Some cleaning of skill_castend_pos2, fixed Gospel, and a
map_freeblock_unlock misplacement. [Skotlex]
* Sense/Estimation will now display the mob info window to all party
members in the same map. [Skotlex]
2006/07/08
* Fixed the new addeff structure not working well with SC_STONE (because
SC_STONE is 0, which was by default not handled as a valid value).
[Skotlex]
* Added back the TF_MISS walking speed bonus to assassin type classes (how
did that got lost?) [Skotlex]
* Fixed mobinfo displaying exp as signed ints rather than unsigned.
[Skotlex]
* Added status_check_visibility to check if an object is within range of
view of another. Nothing more, nothing less. It's used by unit movement to
check whether you can continue chasing your target or not when the "chase
target" directive is given. [Skotlex]
* Fixed the char table having party/guild_id as smallint when they need int
there. Thanks to hermematon for pointing it out (use svn_ugprade7580.sql)
[Skotlex]
* Applied k3dt fixes to pet-hatching, ice-wall check, and wedding skills.
[Skotlex]
* Fixed endow skills calling the skill no damage packet twice. [Skotlex]
* Fixed a crash on warpwaitingpc when the chat-room is empty. [Skotlex]
2006/07/07
* Fixed the Warm Skills [Skotlex]
* Removed the debug message when a player logs out and is removed from
memory, it is working fine (tested normal logging off and autotrade). [Skotlex]
* Corrected the pet-armor field of the pet not being updated on
equip/unequip of accessories, making them not show up inmediately. [Skotlex]
* Status_calc_bl will no longer stop you from attacking/walking when the
mode is changed unless the new mode no longer includes
"can-attack"/"can-move" respectively. [Skotlex]
* Should have fixed clif_item_sub to properly store pet egg/armor data.
There should be no more "random refine levels" bugs related to these.
[Skotlex]
* itemdb_exists will now return NULL for item_id 0. [Skotlex]
* Added a check to free a character from memory when changing map servers.
[Skotlex]
* Okay, added a chrif_save_ack packet to the char-server so now the map
server will know once a character was "final saved", and only then the
character will be removed from memory. On char-server reconnection, all
chars that are in final-save state are resent to save (if they are still in
memory, it's because the ack hasn't gotten here from the char-server). This
should effectively block all dupe problems due to heavy inter-server lag,
however as it's untested, it currently prints some debug messages when
people are saved and then removed from memory. Need testers so this can be
debugged and merged to stable! [Skotlex]
* Now, when the login-char connection is cut, the char-server won't set
everyone offline on reconnect, instead it will send the list of online
accounts to the login server. [Skotlex]
* Modified the error on the char-sql server to set chars online when it
receives a save packet from a character tagged as offline (until it can be
figured out why this is happening) [Skotlex]
* Fixed signed/unsigned comparison issues in the char txt/sql server.
[Skotlex]
* Fixed the cooking success chances. Thanks to Ishizu Chan. [Skotlex]
* Added a temporary band-aid to prevent executing the script of non-arrows
when they are equipped on the arrow-slot (until the actual cause of why
pc_unequipitem is not working correctly is discovered/fixed) [Skotlex]
2006/07/06
* Modified the party_data structure on the map server to remove some
redundant data. Added a party_data structure on the char-server to hold a
more complete set of information about parties. Added to the party_member
structure the class of each member so that the map server can do the
appropiate checks even if the character is on another mapserver/offline.
Due to the format changes in the party structure, txt servers will have to
wipe their party file... (sql save format has not been changed) [Skotlex]
* Added function char_family to check if there's a family state given the
three character ids, instead of doing individual checks all the time.
[Skotlex]
* Rewrote all the item restriction functions so that they will take into
account slotted card restrictions as well. [Skotlex]
* Added no_skill_delay setting, when set, affected object types will have
the minimum skill delay for all skills. Defaults to mobs, since they
don't have skill delays. [Skotlex]
* Cleaned up pc_equipitem. When dual wielding or equipping accessories, if
the client actually specifies one of the two positions, it will be taken
into account (now, does the client actually does this?) [Skotlex]
* Fixed GrandCross and similar skills. [Skotlex]
* FogWall will now also affect the caster. [Skotlex]
2006/07/05
* Updated NJ_KAENSIN by Saycyber21 [Vicious]
* Updated @refine to take account of MAX_REFINE, thanks to Omega... GM
Designer. [Skotlex]
- Also optimized the @refine loop for better performance.
2006/07/04
* Fixed compile issue for NJ_BAKUENRYU, by Saycyber21. [Vicious]
* Implemented Saycyber21's some NJ work. Untested. :D [Vicious]
* Implemented cooking chances. Chance of success is 70% - 7*(dish-lv)% +
12*(cooking set-lv)%. Exception: When using the legendary cooking set,
success chance is 100% regardless of dish. [Skotlex]
* Added battle config setting emergency_recall, specifies behaviour of that
skill (skill.conf): 0 - Disabled. 1 - can't be used in nowarpto maps. 2 -
Can be used everywhere. [Skotlex]
* Removed the NPC/Dance/Song inf2 check of AbraCadabra. whether a skill can
come out or not is entirely decided by the abra db file now. [Skotlex]
* Added structure s_addeffect to handle status change additions. Cleaned up
relevant code. It is now possible to specify ANY status change, not just
the basic ones. NOTE that the code is proof-read, but untested! [Skotlex]
* Added support for bonus3 bAddEff/bAddEffWhenHit as follows: [Skotlex]
bonus3 bAddEff/bAddEffWhenHit, <SC value>, <rate>, <target flag>.
Target flag is 0: Self. 1: Enemy. 2: Both.
* Added these descriptions to doc/item_bonus.txt [Skotlex]
* Added a check when joining a chat to make sure the target object is of
type BL_CHAT. [Skotlex]
2006/07/03
* Cleared up the bAutoSpellWhenHit description in doc/item_bonus.txt
[Skotelx]
* Fixed Phantasmic Arrow and Magical Bullet not being correctly tagged as a
ranged arrow-type attack. [Skotlex]
* Updated help.txt and help2.txt, thanks to Inuyasha for providing the
updated files. [Skotlex]
* Char-server SQL won't perform the reconnect cleanup routines when
kick_on_disconnect is disabled. [Skotlex]
* Renamed summons_inherit_effects to summons_trigger_autospells as the
setting now only makes the attacks of the slaves trigger the autospells of
the master (as it should be). [Skotlex]
* Corrected code capping no_spawn_on_player to 50 when the max should be
100. [Skotlex]
* Warmth will dispel when warping now (or else the effect is left on the
ground) [Skotlex]
* Fixed reading of the refine_db not working right when MAX_REFINE is
increased from 10. [Skotlex]
* Some more cleaning to the implementation of Abracadabra [Skotlex]
* Fixed a compile warning in login sql/txt [Skotlex]
* Fixed pc_makesavestatus not setting your logout position. [Skotlex]
* Fixed two dances becoming BA_DISSONANCE instead of DC_UGLYDANCE.
[Skotlex]
* Added the missing +100% damage modifier of Enchant Deadly Poison.
[Skotlex]
* Fixed SkillStatusChangeTable not working correctly for Homun/Guild
skills. [Skotlex]
2006/06/30
* Fixed a typo in msg_athena.conf, "This item cannot be drop" -> "This item cannot be dropped" [MasterOfMuppets]
* Added a check to prevent equipped items from being traded. [Skotlex]
* Added UF_SONG (0x400) to differentiate songs from dances. [Skotlex]
* Added preliminar support for making a Song+Dance turn into BA_DISSONANCE
cells. Beware of potential bugs as it's untested. [Skotlex]
* Added mapflag "nochat" to prevent chatting rooms from being created.
[Skotlex]
* Corrected some of the sleep checks when the char id does not matches with
the char-id expected by the script engine. [Skotlex]
* Cleanup in itemheal related code, fixed the item heal group bonus not
working on Groups beyond 7. [Skotlex]
* Fixed pet's loot not being moved to your inventory on logout. [Skotlex]
2006/06/29
* Made the map server send list of characters online to the char-server on
reconnection regardless of "kick_on_disconnect" setting, as otherwise, a
temporary disconnection would make the char-server tag all characters
offline and refuse to save them afterwards. [Skotlex]
* Fixed guild storage being "eternally in use" if you quit/logout before
closing it. [Skotlex]
* Ending SC_CLOAK/SC_HIDE/SC_CHASEWALK will now trigger ontouch npcs.
[Skotlex]
* [Fixed]
- Scripting system screwing up script position after mixing timers with menus.
- NPC attached AI mobs display as alive when dead.
- View data not updating after buildin_unitdeadsit.
[Improved]
- NPCE_LOADMAP to execute after all (area) objects are sent to the player.
- Simplified scripting system. sd will now use pointer to the script state itself.
[Lance]
2006/06/28
* changed:
dynamic_pass_failure_ban_how_many:from 3 to 7
dynamic_pass_failure_ban_how_long:from 60 to 5
as in official servers. [Musashiden]
* Added a check in script command "set_option" so that invoking
"set_option(0)" removes Cart/Peco/Falcon, as expected by scripts. [Skotlex]
* Added trade-range check on trade start. [Skotlex]
* Added inf2 4096 (INF2_ALLOW_ENEMY) which is to be used in conjunction
with INF2_PARTY_ONLY/INF2_GUILD_ONLY when said skill should ALSO be allowed
to be used on enemies. [Skotlex]
* Cleaned up a bit the code for @item [Skotlex]
* Fixed character/storage being sent to be saved TWICE when you logged out
while the storage is opened. [Skotlex]
* Added save_settings map config. Specifies after which events do
characters get saved (defaults to all): 1 - Trade successful, 2 - Vending
transaction, 4 - Closing storage/guild storage, 8 - hatching a pet.
[Skotlex]
* Changed the mob drop rate adjust function to receive a signed int
argument. Probably will fix those drops with 0% becoming 100% [Skotlex]
* Corrected Musical Strike having a different damage equation from Throw
Arrow. [Skotlex]
* Added state rewarp to players. It gets set when a pc_setpos call is
triggered while the player is changing maps so that when the player finish
loading the map, it is inmediately rewarped to where it has been
rewarped/recalled to. [Skotlex]
2006/06/27
* Map server will now resent the whole list of online characters to
char-server on reconnect when the kick_on_disconnect setting is active.
[Skotlex]
* Cleaned up and optimized the IP sync code. New login_athena config
setting sync_ip_interval specifies how often to sync the ip. The default is
0 (disabled). [Skotlex]
* Added mapflag "loadevent", now load-map script events will ONLY trigger
on maps with this mapflag on, rather than every map. [Skotlex]
* High Jump can now be used in all versus maps. [Skotlex]
* Added Kaite's opt3 value, taken from jA [Skotlex]
* Added state dirty == 2 to storages. Signals when a storage was sent for
final saving. Said storage is removed from memory after the ack from the
char-server, and they are sent to save if the map/char servers reconnect
before the ack arrives. In short: they are guaranteed to be saved after a
char logs out. [Skotlex]
* Put pay_arche.gat in the "no experience lost" mapflag file. [MasterOfMuppets]
2006/06/26
* Corrected the element of hunter traps. [Skotlex]
* Deadly Poison now also reduces def2 by 25% [Skotlex]
* Cleaned up a bit skill_moonlit, Moonlit Petals should work correctly now.
[Skotlex]
* Fixed @mi displaying always 0 instead of the mob's class. [Skotlex]
* Rough implementation of Ground Drift according to description and jA
info. [Skotlex]
* Implemented Tatami Gaeshi using skill description and jA implementation
for reference. [Skotlex]
* Merged Mitternacht's max_heal/max_heal_lv config settings. [Skotlex]
* Removed support of packet 0xc3 on the new packet versions. Thanks to
Meruru for pointing out they aren't being used anymore. [Skotlex]
* Autospells will now again check for the skill's nk value, so that skills
tagged "nodamage" skills will not trigger autospells. [Skotlex]
* Corrected clif_item_sub so that pet eggs will correctly be sent as
equipment (fixes them showing up "broken" and with random refine levels)
[Skotlex]
* [Added]:
- buildin_unitkill just for kicks. [Lance]
2006/06/23
* [Optimized]:
- Setting of variables with defined scope in some frequently executed script
events.
[Added]:
- Missing script_require_trigger flags for some power hungry events.
* Updated mob_db.sql and item_db.sql to latest. [Skotlex]
* Modified pc_setoption so that it will correctly update sprite AND clothes
color when mounting/unmounting changing into/from xmas/wedding sprites.
[Skotlex]
* Allowed itemdb_exists to return the dummy item. Enables "invalid" items
to be sold, traded, dropped, etc. [Skotlex]
* Corrected ASC_BREAKER. Int-based damage is applied after attribute fixes
and before card reductions. The skill now completely disregards left
hand weapon. [Skotlex]
* Standarized PF_MEMORIZE to be 50% cast time on all skills (instead of
-50% for targetted skills and -66% for ground skills >.>) [Skotlex]
* Cleared up the comment on what item_check does and how it works.
[Skotlex]
* Changed setting for skill_nocast flag 16. It is no longer a "pk-mode map"
setting, it's now a clone-forbidden skill. That is, skills with the flag 16
will never be copied by clones. If you use a PK-mode server, use flag 2 now
to forbid skills from common maps. [Skotlex]
* Default skills from not being cloned are Magnus Exorcism and Turn Undead.
* The map search free cell will now use the size of the map # of tries
before giving up when the spawn area is the whole map. Added a check to
inmediately give up when the number of spawn retries has reached the max
specified (no_spawn_onplayer = 100). [Skotlex]
* Cleaned up a bit the clone code to account for the unit flags
UF_NOPC/UF_NOMOB when the skill is not ground-based (accounts for self
skill that causes a ground-tile to be placed, like Dances). [Skotlex]
* Added pc_bonus_autospell_del, gives support for removing autospell
effects. When a negative rate is specified, it will decrease the chance of
casting (eg: You have two different cards with autospell Heal +20% each,
then do autospell -30. The second card will be cancelled, and the first one
will become Heal +10%) [Skotlex]
* npc_timers now will not restore the previous timer data when there's no
players attached (when it's strictly an npc timer). This should reenable
the old behaviour of getnpctimer returning the total ellapsed time since
"startnpctimer" even after the last label has been reached. However, this
behaviour won't apply to player-attached timers. [Skotlex]
* [Fixed]:
- MAPREGSQL overloading SQL table with temperory map registries.
- Incorrect perfomance calculation for MAPREGSQL loading and saving. [Lance]
2006/06/22
* Guessed and added support for the packets 0x22a (idle) and 0x22b (spawn).
This should complete the required packets for PACKETVER 7. [Skotlex]
* Added support for the PACKETVER 7 packets in the "dummy" current
intravision implementation. [Skotlex]
* Fixed @autoloot being off by 0.01% when entering a manual value.
[Skotlex]
* Restored the "Secret" behaviour of Blast Mine and Claymore Trap where
each target is hit N times (where N is the number of mobs in the splash
area at the moment of triggering). [Skotlex]
* Updated the tools/stackdump script to also handle sig-plugin generated
backtraces. Now it will also auto-determine whether the exe needs a .exe at
the end or not. Help me test it as I want this script on stable NOW :X
[Skotlex]
* Usage is "stackdump <login/char/map> <txt/sql> [number]". When a number
is given, sig-plugin stackdumps are assumed, otherwise it parses the normal
stackdump as before. [Skotlex]
* Corrected autoloot so that you can specify rate with decimal precision
("@autoloot 0.01" should work) [Skotlex]
2006/06/21
* [Removed]:
- Redundant mob name copying. (it's already copied in mob_parse_dataset) [Lance]
* [Fixed]:
- Compilation warnings and errors.
[Improved]:
- Changed and moved IP sync status messages to elaborate more. [Lance]
* Tested and fixed resolve_hostbyname. Applied said function around most of
the code where needed. Removed includes for the OS/network system pretty
much from every file (our socket.c file should handle this) [Skotlex]
* Made the GM mute request bypass the manner_system setting. [Skotlex]
* Applied use of parse_hostbyname() in chrif.c to fix compilation errors.
[Skotlex]
* status_percent_change will now account for when the target's max hp/sp is
above INT_MAX. [Skotlex]
* [Added]:
- DNS (WAN) sync for those pesky disconnections (dynamic ip renewal). [Lance]
2006/06/20
* Some cleaning up of OPTION related code. OPTION_XMAS and OPTION_FLYING
really ARE the same value clientside! (totally stupid), therefore I've
opted from removing the flying animation since it really just displays as
Xmas for others (and the correct fix involves adding a bunch of
class-change packets...) [Skotlex]
* Updated skill_require_db to place the Zeny requirements of ZenyNage and
Fling. [Skotlex]
* Fixed crash when non-players use ZenyNage. Added the correct Zeny check
in skill_check_condition, fixed the skill so that it's damage is based on
whatever zeny is specified in skill_require_db. [Skotlex]
* Can-act delay will not be reset when warping now. [Skotlex]
* Fixed Quagmire not altering walking-speed. [Skotlex]
* Silence now blocks skills both on begin/end casting. [Skotlex]
* Updated status_calc_bl so that when walking speed changes, the character
is made to rewalk so that the new speed takes effect inmediately. [Skotlex]
2006/06/19
* Added Ayothaya to nopenalty and nopvp mapflags. [Evera]
* Combo-used Skills with State "move_enable" will now override the "can't
move delay". Fixes Break-Fall -> Jump-Kick. [Skotlex]
* Some more cleanups of battle_calc_damage to account for absorbed damage
reductions. [Skotlex]
* Moved back Soul Drain code from mob_dead to skill_counter_additional_effect.
Now we are back to where the skill animation does not shows, but you DO
get SP T.T' [Skotlex]
* Some cleanups and corrections in battle.c to account for negative
(absorbed) damage. [Skotlex]
* Fixed fame-list updating crashing char-sql server when the given char-id
just got into ranking. [Skotlex]
* Added missing Arunafeltz maps with information from NLZ [Evera]
2006/06/18
* [Fixed]:
- Typo in status.c add_sc() using 'skill' instead of 'sk' as index, resulting in
filling the SkillStatusChangeTableArray with junk data.
- > NEEDS CONFIRMATION < Ends casting if player is knocked with freezing/stun/whatever
- Typo in parse_frommap. [Lance]
* [Fixed]:
- clif_initialstatus using SHRT_MAX instead of USHRT_MAX for status_point.
* [Temperory Fixed]:
- Crashing of SQL char-server in parse_frommap case 0x2b01. [Lance]
* [Removed]:
- Large part of scripted mob control commands are removed.
- Large part of scripted player control commands are removed.
- Scripted mob slaves changing master ID.
[Added]:
- Unit control commands.
- CALLBACK_NPCCLICK for scripted mobs, added this to db/const.txt too.
- Macro RECURSIVE_MASTER_CHECK in battle.c
[Modified]:
- buildin_skilluseid and buildin_skillusepos -> buildin_unitskilluseid
and buildin_unitskillusepos.
- md->callback_flag to short (double word). [Lance]
2006/06/17
* Devotion absorbed damage will now appear to come from oneself (instead of
the original attacker changing directions towards the Crusader) [Skotlex]
* Updated clif_refres to send inventory, cart, and weight info. [Skotlex]
* Fixed intif_guild_memberinfoshort to not leave a dangling pointer when
someone logs out <.< [Skotlex]
* Changed some mapflags related to the eye of hellion quest. [MasterOfMuppets]
* [Added]:
- buildin_checkcell, buildin_mobwarp, buildin_pcattack.
[Improved]:
- buildin_skilluseid and buildin_skillusepos to accept a few more arguments.
- mob_script_callback to return sucess value [Lance]
* Fixed the party HP packets to send max HP 10000 and scale HP accordingly
when the player's HP doesn't fits in the packet's field. Fixes HP bars not
correctly displaying the % of life when max HP is above 32k. [Skotlex]
2006/06/16
* Fixed option value being reset'ed on login (fixes cart/peco/falcon being
lost) [Skotlex]
* Corrected @speed to alter your base speed instead of battle one. Means
the change remains for much longer (until status_calc_pc is invoked, which
could be due to equipping/unequipping stuff) [Skotlex]
* Modified the bNoMagicDamage/bNoWeaponDamage bonuses to be a 0-100
setting. Meaning you can do bonus bNoMagicDamage,50; To make all magic
damage be reduced by half. This bonus stack, so two cards with
bNoMagicDamage,50 will give magic immunity. [Skotlex]
* Removed setting gtb_pvp_only and replaced it with gtb_sc_immunity which
specifies the threshold before the bNoMagicDamage starts blocking support
statuses as well. ie: gtb_sc_imunity: 75 will mean that "bonus
bNoMagicDamage,70;" reduces magic damage by 70%, but does not blocks heal
or support status, while "bonus bNoMagicDamage,80;" does. [Skotlex]
* Removed db_tables.sql as it's no longer used. [Skotlex]
* the mvp_sd is removed when the mob is the emperium and there's no
killer/exp-awarded (assumed killed by script), this prevents the on-kill
event from triggering and giving the castle to whoever damaged the most the
emperium without destroying it. [Skotlex]
* [Added]:
- Custom slave mobs to inherit the callback_flag.
- Added option #25 to buildin_setmobdata to set the callback_flag. [Lance]
* [Improved]:
- Cleaned up Custom Mob Script Callback codes. Looks much better now :B. [Lance]
2006/06/15
* [Fixed]:
- intif_parse_RenamePetOk for not compatible with ANSI-C initialzation specification.
[Lance]
* Added indexes for loginlog and ipbanlist as they did not have any.
(note, someone already put the index on loginlog on trunk.) [Euph]
* Merged Adam's patch to let the char-server handle validation of
pet-name-change requests through the allowed char letters config. [Skotlex]
* Fixed "wedding_ignore_palette: yes" not working when relogging with the
gear already equipped. [Skotlex]
* Added blocking of the Kick skills when you are a Soul Linker. [Skotlex]
* Added enabling to turn off a kick-stance regardless of class. [Skotlex]
* Altered a bit how status_set_viewdata behaves in regards to Wedding/Xmas
options. [Skotlex]
* Added back OPTION_XMAS, but the actual value is missing! [Skotlex]
* Corrected chrif_save so that the player is not set offline on map-change.
[Skotlex]
* Added change-look support in pc_setoption when specifying OPTION_XMAS
[Skotlex]
* Fixed clif_parse_RemoveOption removing all options instead of just
Falcon/Cart/Peco [Skotlex]
* Fixed clif_send not sending packets to SELF when specifying AREA if the
source is not on the map yet. [Skotlex]
* Fixed and cleaned up script command 'equip' [Skotlex]
* Fixed 'autoequip' items. [Skotlex]
* Fixed Aspd not being updated in your status window after Agi/Dex
increasing statuses take effect. [Skotlex]
2006/06/14
* Fixed map_nick2sd so that searching for "Adam" will not match a char
named "Adam Smith". Thanks to Adam for reporting it out. [Skotlex]
* Modified how luk reduces status changes by reducing the gap. Eg: resist =
vit; resist += (max - resist)*luk/300; [Skotlex]
* Added battle settings pc_max_sc_luk/mob_max_sc_luk to handle which is the
luk threshold at which you gain inmunity (defaults to 300). [Skotlex]
* Fixed buildin_getmobdata. It was trying to handle the first parameter as the
array to fill in. [blackhole89]
* Blocked again skill usage during marionette. [Skotlex]
* Fixed main.sql adding a key on char_id rather than account_id for the
char table. [Skotlex]
* Cleaned up character saving in char-sql, it no longer needs to query the
database to see if the player exists on each char-save, instead it checks
the received data against the online-players db. No such fix is required
for char-txt. [Skotlex]
* Added an error message on the char-server when the received player data
size does not matches with the expected size (should avoid the crash that
happens on such a memcpy). [Skotlex]
* [Improved]:
- script_save_mapreg for MapregSQL Saving to display perfomance only in slow
queries. [Lance]
2006/06/13
* Updated mob_db.sql and item_db.sql to latest. [Skotlex]
* Added account_id index to char table. Thanks to Buuyo for reporting it.
Sql users apply upgrade_svn7146.sql NOW. [Skotlex]
* Marionette and Devotion will now check raw distance and ignore obstacles
and the like. [Skotlex]
* Added irc_channel_pass setting and prevent crashing when irc server
lookup by host fails. Thanks to Trancid for the details. [Skotlex]
* [Fixed]:
- clif_parse_GetCharNameRequest displaying false alarm for legitimate GM snooping.
[Lance]
* Added support for reading correctly status change data from Guild and
Homun skills. [Skotlex]
* Added support for reading Homun skill data (which means the HM skills are
now safe to add to skill_db, skill_require_db, etc) [Skotlex]
* Oppositions can't be made during WoE now. [Skotlex]
* Fixed a few compiler warnings from VC [Skotlex]
* Commented out the Homunculus Skills<->Status Change link which was
causing some memory corruptions. [Skotlex]
2006/06/12
* [Fixed]:
- buildin_npcshopitem not allocating extra 1 block of terminator.
[Added]:
- Modified versions of Dj-Yhn's buildin_npcshopdelitem and buildin_npcshopadditem
[Lance]
* Updated clif_disp_onlyself to not use dynamic memory and write directly
to the player's buffer. [Skotlex]
* Updated @noask to also tell the user what he has just rejected (added
msg_athena entries for each of the different requests). Also updated it to
use clif_disp_onlyself. [Skotlex]
* Fixed a pair of missing initializers in the clif storage functions.
[Skotlex]
* @heal no longer displays a healing animation. Fixes the client believing
you couldn't be healed more than 32K. [Skotlex]
* Now you can use any skills (except encore/dancing ones) while under
Longing for Freeding. [Skotlex]
* Now you can use any skills while under Marionette Control. [Skotlex]
* Fixed npc_checknear's distance check returning the opposite of what it
should (false when the range is correct and viceversa) [Skotlex]
* Added a warning on item loading when an item is of equippable type but
has no equippable position. [Skotlex]
* Turning an alliance to an opposition won't work now during WoE [Skotlex]
* Slaves can summon other mobs now. The only ones who can't do this are
player summoned mobs. [Skotlex]
* Merged the following functions for faster processing of items: [Skotlex]
clif_storageitemlist + clif_storageequiplist = clif_storagelist
clif_guildstorageitemlist + clif_guildstorageequiplist = clif_guildstoragelist
clif_itemlist + clif_equiplist = clif_inventorylist
Note that the changes are a bit substantial and need proper testing!
* Increased max knockback value support to 25. [Skotlex]
* [Optimized]:
- buildin_npcshopitem memory allocation to calculate before reallocating.
[Lance]
* Made guild member exp an unsigned int. [Skotlex]
* Various cleanups to the npc clicking related functions. Should fix quite
some possible crashes from crafted packets. [Skotlex]
* Added overflow checks for bonus settings mdef_rate/def_rate. [Skotlex]
* Added missing update of INT after a buf. [Skotlex]
* Small cleanup of how SC_BLEEDING works. [Skotlex]
* Fixed party_foreach_samemap invoking the function on the CASTER instead
of on the party members. [Skotlex]
* Modified clif_parse_NpcClicked to handle the different situations with
different bl-objects (attack on players/mobs, click on npcs or mobs with
npc attached) [Skotlex]
2006/06/09
* [Fixed]
- Compilation warnings on guild.c and int_guild.c [Lance]
* Added structure party_data and party_member_data to the map server to
hold party-specific required information about parties including
Monk/TK/SG/SN states and party member count. Family information is still
missing, and handling of the state should probably be done by the
char-server, too... [Skotlex]
* party Hp updates are no longer done each time the Hp is modified, but
together with the party xy timer. It means HP-bars will be a bit delayed
before being updated, but packet consumption should be much less during
heated battles. [Skotlex]
* Fixed MoM's typo [Vicious]
* Fixed map_readafm missing strcpy(afm_name, m->name). [Skotlex]
* [Improved]:
- npc_click interception on BL_MOB and BL_PC to let sd act accordingly.
[Lance]
* [Fixed]:
- Execution of sleep/sleep2 more than once will hang the script_state.
[Lance]
* Fixed @mapinfo displaying incorrectly maps with nosave which send you
back to your last savepoint. [Skotlex]
* Moved guild_exp_rate from a mapserver battle config setting to a char
server config. It no longer modifies the total taxed exp as seen on the
guild information window, but directly modifies the exp that the guild
earns. [Skotlex]
* Added an error report and correction when the map server receives a guild
from the char-server with more guild members than MAX_GUILD. [Skotlex]
* Changed the interval between waterballs back to 125 [MasterOfMuppets]
* Fixed a typo in char_sql/char.c, thanks to Euph [MasterOfMuppets]
2006/06/08
* Modified guild exp to be an unsigned int rather than a signed one.
[Skotlex]
* Fixed @skilltree printing out Unknown job for most targets used.
[Skotlex]
* Cleaned clif_pvpset to not send the packet to nearby characters when the
source is GM-hidden. May help fix the crash on PvP with gm-hidden
characters. [Skotlex]
* Modified map_freeblock_unlock so that aFree errors will report the
file/line that INVOKED the function rather than the function itself.
[Skotlex]
NOTE: Do NOT disable the memory manager as that will break this change.
This change is to be temporarily set until the afree'd error can be
resolved.
* Updated mob_npc_warp to a three-state config switch. 0 disables. 1 enable
only on warps that don't lead to nobranch maps. 2 - enable on all warps.
[Skotlex]
* Adjusted Don't Forget Me, Defender, Longing to use all val entries, and
to hold the speed adjustment value rather than speed penalty (eg: 125
instead of 25). [Skotlex]
* Cleaned up status_calc_speed so that speed penalties are correctly
handled (eg: 25% penalty is speed*100/75, not +speed*25/100). Thanks to
Euph for pointing it out and Belle for the speed mechanics. [Skotlex]
2006/06/07
* Fixed Sense using mdef instead of mdef2 [Skotlex]
* Fixed item-skills not showing up on login. [Skotlex]
* Cleaned up clif_parseLoadEndAck, by testing which packets are required
only on first-login and which ones are required on all map-changes.
Skill-tree, Exp, Skill Points and most of the basic status are no longer
sent on map-change (items, cart data and zeny still need to be sent one
very map-change). [Skotlex]
* Fixed the mob state not being set to Berserk/Angry correctly after the
mob reaches the target's location. [Skotlex]
* Added config setting mob_npc_warp, when set to yes, enables mobs to be
warped between maps when stepping on a npc-warp. [Skotlex]
* Added monster_ai setting &64, when enabled makes a mob run to any nearby
npc-warp when their current target has switched maps. [Skotlex]
* Added pc_calcexp to calculate individual exp bonuses acquired from exp's
source (race bonus cards, SG Exp skills, pk-mode higher level exp) [Skotlex]
* pc_gain_exp now also receives the source of the exp, when said source
exists, bonuses are applicated as needed. [Skotlex]
* Added status_kill when capturing a mob, should take care of the mob not
respawning after caputed. [Skotlex]
* Fixed item info not displaying the found item id [Skotlex]
* Fixed item info not displaying the weight value properly. [Skotlex]
* Adjusted status resistances and durations taking as base Viccious's info
from the kro guidebook. [Skotlex]
* Moved souldrain code from skill_counter_additional_effect to mob_dead. It
should display the skill animation correctly now. [Skotlex]
* Adjusted several sc rate/time reductions as pointed out by Playtester.
[Skotlex]
- Luk now plays a luk/10 reduction role rather than a luk/3 one.
* Removed char_nick2id from char-sql server as it's no longer needed.
[Skotlex]
* Fixed quitting the map server not properly saving the storage before
deleting it. Thanks to Adam for pointing it out. [Skotlex]
* Cleaned status_get_sc_tick/status_get_sc_def to use the status_data
function. [Skotlex]
* SC_STOP's chance and duration can't be reduced anymore. [Skotlex]
* Storm Gust no longer has a 100% chance to freeze by passing mdef, now it
has a 300% base chance reduced by mdef and the like as explained out by
Tharis. [Skotlex]
* Frost Diver/Frost Nova's base freezing chance is no longer affected by
target's int. [Skotlex]
* [Improved]:
- mob_dead not to remove script controlled monsters with player sprites.
[Added]:
- buildin_mobdeadsit :D [Lance]
* [Fixed]:
- temp++ gets issued before if(mvp_damage<(unsigned int)md->dmglog[i].dmg) in
mob_damage. Thanks to seahorsix. [Lance]
* [Fixed]:
- Corrected login-server SQL to use *((ulong *)p) instead of (ulong)p [Lance]
* [Optimized]:
- list and size not being initialized (size get intialized in default: switch case)
Eliminated default case and initialized list and size at the beginning. [Lance]
2006/06/06
* Hopefully fixed for sure mobs getting extra stats when changing-class due
to the mobs level up setting. [Skotlex]
* Removed a piece of code that should no longer be needed due to the
combo-skill setting (inf = self, inf2 = no-target-self) which is blocking
self-skills from being used on others (pets/mobs should be allowed to do
that) [Skotlex]
* Added a status_check_skilluse call in Sightblaster to prevent it from
hitting hidden/cloaked/act-dead/etc players. [Skotlex]
* Fixed firewall counter going down by 2 each hit rather than 1. [Skotlex]
* Fixed Soul Burn not zapping away all SP. [Skotlex]
* The monsters can level up setting will not take effect when the mob's
level is LESS than their db counter-part (should prevent under-leveling
causing underflows and semi-immortal mobs) [Skotlex]
* Fixed mvp-exp calculations being messed up with more than one attacker.
[Skotlex]
* Changed the mob exp race bonus so that each player gets their own bonus,
rather than the killer's bonus applying to everyone. Still not the
"correct" way, but one step closer to it. [Skotlex]
* [Fixed]:
- Allocation of event_list in guild_npc_request_info to aCalloc so
memcpy(ev->name,event,strlen(event)) will have a null terminator. [Lance]
2006/06/05
* Fixed a crash when using SL_SMA and the "combo" ain't ready. [Skotlex]
* Hopefully fixed changing a mob's class causing them to get all sort of
stat bonuses due to the mobs-level-up setting. [Skotlex]
* Changed hit, flee, cri, flee2, def2 and mdef2 to signed short, def, mdef
to signed char to correctly account for cards with penalties in said stats.
[Skotlex]
* Fog of Wall won't affect the caster now in any way. [Skotlex]
* Added clif_fixpos packets before attacking for the first time to clear
any position sync issues with the client. [Skotlex]
* Fixed skill_unitsetting using layout->count for the for instead of
group->count [Skotlex]
* Added SC_INCDEXRATE/SC_INCAGIRATE. NPC_POWERUP/NPC_AGIUP now correctly
increase dex/agi by 40% per level. [Skotlex]
* Fixed char-sql server not deleting character variables when deleting a
char. [Skotlex]
* Corrected cloaking not ending on attack if you are near a wall. [Skotlex]
* Updated pc_bonus to use cap_value on all status_data modifiers to prevent
overflows/underflows. [Skotlex]
2006/06/03
* Fixed @mi/@mobinfo not showing the name collumns correcly [shadow]
* Solved the bug that made firewalls only castable a few times until [MasterOfMuppets]
you relogged. Thanks to Euph for the fix.
* Added variable other_mapserver_count to chrif.c which holds total count
of connected map-servers. By using this we prevent sending unnecessary
packets to the char-server when there's no more map-servers connected.
[Skotlex]
- Affected packets are whispers, announces, party messages, guild messages.
2006/06/02
* Fixed Visual Studio 7.1 Solution File (Login TXT and Map TXT were removed)
* Fixed a bug in unit_can_reach_bl which breaks path seeking when the
target is near obstacles. [Skotlex]
* Updated offensive use of Sanctuary to function like on the official servers [MasterOfMuppets]
* Changed the interval between waterballs from 150 to 250 milliseconds [MasterOfMuppets]
* Corrected clif_parse_takeitem to ALWAYS return a NAK packet when it
fails. Fixes cases where the client gets "stuck" and refuses to let you
pick any items. [Skotlex]
* Removed the walk delay from firewall and changed its knockback [MasterOfMuppets]
to 1 tile to make it act more like in the official servers.
* Some cleaning of the mob slave ai. [Skotlex]
* Corrected Brandish Spear to work on levels above 10. [Skotlex]
* Updated Two-HandQuicken, One-HandQuicken to give 30 +2*lv% aspd-rate for
skill levels above 10 (meant for boss casted skills) [Skotlex]
* Fixed Spear-Quicken messing with the calc_flag [Skotlex]
* Fixed Freeze/Stone/Benedictio not changing your elemental LEVEL to 1.
[Skotlex]
* [Fixed]
- Yet another compilation warning. [Lance]
2006/06/01
* Altered status_calc_pc so that equipment scripts are ran before
card-scripts. [Skotlex]
* Fixed pc_bonus to not underflow/overflow when adjusting def/mdef.
[Skotlex]
- These two together, should fix Tao Gunka Card.
* npc_debug_warps() will now be invoked if warp_point_debug is set.
[Skotlex]
* Updated item_db.sql/mob_db.sql to current. [Skotlex]
* Fixed NPC_SELFDESTRUCTION not showing nor dealing damage. [Skotlex]
* NPC_TRANSFORMATION/NPC_METAMORPHOSIS will now preserve the original mob
without removing it when the skill level is greater than one. [Skotlex]
* Added SC_DANCING declaration in the Status Change tables to signal it
modifies Walk speed. [Skotlex]
* Fixed pc_damage setting your canlog_tick even if the damage has no source
(eg: poison, berserk) [Skotlex]
* Berserk's aspd bonus now stacks with other aspd bonuses, but is still
affected by Quagmire/Forget-me-not. [Skotlex]
* Corrected setting slaves_inherit_mode to not apply to morphosis skills.
[Skotlex]
* Corrected pc_setoption to invoke status_calc_pc when getting/removing the
cart. [Skotlex]
* Fixed @mobinfo displaying the wrong element. [Skotlex]
* Fixed Autoblitz taking into account target's luck rather than attacker's
[Skotlex]
* Fixed slaves warping endlessly to their master when the master-slave
distance exceeds 30. [Skotlex]
* SC_ORCISH will now be dispelled on logout (if debufF_on_logout is set)
[Skotlex]
* Removed attackrange/attackrange_ from TBL_PC, corrected clif.c using the
incorrect range variable. [Skotlex]
* You can now equip/unequip stuff while the storage is open. [Skotlex]
2006/05/31
* Fixed Soul Drain not really giving you SP [Skotlex]
* [Fixed]:
- Suppressed compilation warning in chrif.c [Lance]
* [Fixed]:
- Guys can't go across map-servers :( [Lance]
* [Fixed]:
- Restoration and saving of sd->npc_id must be done every time. [Lance]
* Added back the Freeze/Petrify adjustments of -50%def and +25%mdef (when
where these lost?). Thanks to Buuyo for pointing it out. [Skotlex]
* Corrected the mob_ai&2 setting triggering rude-attacked due to can't walk
delay. [Skotlex]
* Made the char_name_option char_athena.conf setting apply to parties and
guilds as well. It cannot be applied to pets yet without adding a
change-name-request interserver packet. [Skotlex]
* Moved the JOB_* defines from map.h to mmo.h, update char.c to use them.
[Skotlex]
* Added function char_read_fame_list for famelist reading. Invoked it on
init, and made it be sent automatically to connecting map servers.
[Skotlex]
* Some cleaning of the fame-list reading code. [Skotlex]
* Some cleaning of the fame-update code, fixed a logic bug which made the
ranking list fail to display the correct ranker names. [Skotlex]
* Removed typedef bool from socket.h and included cbasetypes.c instead.
[Skotlex]
* Cleaned up and corrected the calculation of hit/flee/cri/lucky dodge in
status_calc_bl. [Skotlex]
* [Fixed]:
- Incorrect SQL syntax in login.c (missing collumn) [Lance]
* [Improved]:
- SQL upgrade file for the new loginlog. Thanks to ultramage. [Lance]
* [Fixed]:
- nullpo in pet.c caused by equipping without checking if the pet is available.
[Lance]
* [Fixed]:
- Latest client support completed! [Lance]
* [Fixed]:
- Missing #include for cbasetypes.h in login server SQL.
- Logic errors in run_script [Lance]
* [Added]:
- Partial support for latest login packet. But it seems to have a new security
module. [Lance]
2006/05/30
* [Improved]:
- Fake NPC interface to use real NPCs.
- Scripting interface to restore and save sd->npc_id. [Lance]
* Added function pc_check_skilltree for checking if you unlocked new
tree-skills when raising non-passive skills. [Skotlex]
* Fixed flee/hit calculation in status_calc_bl to account for bonuses from
the base status. [Skotlex]
* [Fixed]:
- Compatibility problems in login.c [Lance]
* Fixed pets ignoring can-act delays for skill usage. [Skotlex]
* [Added]:
- Mercenary.c in VS.NET 2005 project files
[Improved]:
- loginlog using unsigned long `ip` field.
(Please check for compatibility problems). [Lance]
* Fixed status_calc_pc not zero'ing ALL vars it should, allowing certain
bonuses (like effect-on-hit) to stack. [Skotlex]
* slaves inherit speed setting will now work regardless of whether the
slave or master has the MD_CANMOVE mode bit. [Skotlex]
* Call Slave now invokes slaves on a 5x5 area around master. [Skotlex]
* AL_TELEPORT will fail when used by slave mobs. [Skotlex]
* Added NPC_ENERGYDRAIN, NPC_MENTALBREAKER to the list of undodgeable
attacks. [Skotlex]
* Fixed status_damage not setting your HP to 0 when you died [Skotlex]
* Fixed the pcbonus2 warnings using the wrong value before printing the
invalid Element error. [Skotlex]
* Fixed underflow issues when calculating dmotion. [Skotlex]
* Fixed Absorb Spirit Spheres [Skotlex]
* Added battle_config min_chat_delay (default 0, battle/client.conf)
specifies in ms what is the min delay between player sent chats
(whisper/global/party/guild). Messages that exceed this threshold are
silently ignored for now (perhaps need to add a "DON'T SPAM" reply to the
player?) [Skotlex]
* [Fixed]:
- signed/usigned problem in sprintf and fscanf @ mercenary.c [Lance]
* Rewrote/cleaned up @petfriendly. [Skotlex]
* Cleaned up final part of status_calc_pc (flags 2/4 do not exist) [Skotlex]
* Updated attr_fix_table reading code to account for ELE_MAX (will
correctly read bigger elemental tables if ELE_MAX is changed) [Skotlex]
* Aggressive mobs will now use battle_check_range rather than mob_can_reach
to decide whether to lock-on or not to a target within sight-range. [Skotlex]
* Added warnings in mob_readdb when the mob's element is invalid. [Skotlex]
* Added error messages in pc_bonus* functions when an invalid element is
passed to the relevant bonuses. [Skotlex]
* [Optimized]:
- clif_specialeffect to use the enums.
[Improved]:
- buildin_specialeffect and buildin_specialeffect2 to accept effect area
definition. [Lance]
* [Added]:
- Visual Studio .NET 2003 includes for mercenary.c [Lance]
* Removed the on-die specific code from unit_remove_map and placed it on
the corresponding *_dead functions. unit_remove_map should never assume the
char died, it is just a "remove from map" function. [Skotlex]
* Updated status_damage to handle the general death code (clearing status
changes, clearing skill related data, sending death packet, etc). The
return value from the *_dead functions will tell it what to do or not with
the object (death aborted, clear it from map/memory, etc) [Skotlex]
* Cleaned up pc_dead to take advantage of the fact that status changes are
not ended until after the function. [Skotlex]
* Disabled ontouch npcs triggering on hidden/chase-walk characters.
[Skotlex]
* Updated/adapted current Homun code to use the status_data update.
[Skotlex]
* Updated map-server Makefile to compile mercenary.* files. [Skotlex]
* [Fixed]:
- Pets attacking even master is dead. [Lance]
* Fixed battle_calc_weapon_attack damage capping damage to a minimum of 0
(negative values should be allowed when attack is absorbed by target's
element) [Skotlex]
2006/05/29
* [Fixed]:
- Missing ';' in item #4358 [Lance]
* [Fixed]:
- Missing maps in map index database. [Lance]
* [Fixed]:
- Battle mechanics in battle_check_target [Lance]
* [Fixed]:
- Typo in mob_dead causing crash. Thanks to reddozen and his gang for testing.
[Lance]
* Cleaned up friend list saving and fixed loading of friends.txt file
(char-txt) [Skotlex]
* Added the Arunafeltz maps, not tested yet [Playtester]
- someone with an up-to-date client should test them
* Fixed pc_gainexp resetting your exp to 0 rather than adding it in...
[Skotlex]
* Corrected aspd calculation code to avoid negative overflows. [Skotlex]
* Fixed battle_check_target check on BCT_ALL to check versus BL_CHAR
instead of BL_PC and BL_MOB [Skotlex]
* [Fixed]:
- Declaration of int map_getcellp(struct map_data*,int,int,cell_t); [Lance]
* Removed Undead being inmune to poison status. [Skotlex]
* Removed speed penalty from SC_SKA [Skotlex]
* Fixed SC_SPURT triggering on Soul Linkers. [Skotlex]
* SC_DODGE won't be dispelled on death now. [Skotlex]
* [Fixed]:
- pc_follow_timer possible triggering crash.
- pc_reg_received to use battle_status.hp instead of status.hp
[Added]:
- macro map_id2index for non-cyptic mapid to mapindex conversion. [Lance]
* Added a division by zero check in mob_dead to prevent the (impossible)
case where a mob dies with received damage of zero. [Skotlex]
* Modified skill_get_range2 to return range 9 for skills with range 0 for
Non-Players. This usually signals Self skills, and mobs/pets should be able
to use them in other characters. [Skotlex]
* Optimized a bit the SC_PROVOKE code (to use val3/val4) [Skotlex]
* Fixed draining when the amount drained is negative (invoke zap rather
than heal) [Skotlex]
* Implemented GS_FLING as per the current skill description. [Skotlex]
* Fixed pc_readparam/pc_setparam to use battle_status.hp/sp rather than
status.hp/sp, fixes scripts reading the wrong Hp/Sp values [Skotlex]
* Added some missing SC_* entries on the initial listing (potion related
and speed up ones) [Skotlex]
* Fixed function declaration of map_getcellp() [Skotlex]
* [Fixed]:
- status.c:920: warning: 'mbl' might be used uninitialized in this function
- skill.c:6648: warning: 'matk_min' might be used uninitialized in this function
- skill.c:6648: warning: 'matk_max' might be used uninitialized in this function
- skill.c:2826: warning: 'sid' might be used uninitialized in this function [Lance]
* [Optimized]:
- Removed unused variable (account_id) in storage_guild_storagesaved.
* [Optimized]:
- Removed unused checks for unsigned data type and possible logic error for
char type (gcc treats char as unsigned). [Lance]
* [Fixed]:
- Relogging in with 0 HP didn't trigger dead event. [Lance]
2006/05/28
* Added functions status_revive, pc_revive and mob_revive to handle revival
(it doesn't handles player respawning, though). Fixed reviving @ commands.
[Skotlex]
* Added SC_BLADESTOP to the skill enum at the beginning of status.c (fixes
Bladestop causing an unknown status change message). [Skotlex]
* Fixed MSS_DEAD state skills not triggering. [Skotlex]
* Changed undeads to by default always sustain 100% of the damage from firewalls [MasterOfMuppets]
* [Fixed]:
- script functions that doesn't pass references, thanks to End_of_exam. [Lance]
* [Protected]:
- clif_parse_LGMmessage from possible hacks [Lance]
* Fixed unable to store n items into storage unless n was the total amount
of items you had. [Skotlex]
* Suppressed compilation warnings (unsigned and signed mismatches) [Lance]
2006/05/27
* Added structure status_data which holds status-related information (str,
agi, etc, speed, amotion, adelay, dmotion, weapon-damage, race, size, etc)
and weapon_atk structure with the weapon specific info (atk, atk2, element)
to be used by all combat structures (TODO: Homun needs to be updated to use
it). This in change involves a LOT of changes throughout the code and many
optimizations were done as well. Partial list (see svn changelog for complete
changes): [Skotlex]
- NOTE: Changes are substantial! I tested a bunch of stuff and all the
skills I changed the most, but it is possible there are unnoticed bugs
remaining to fix!
- Cleaned up TBL_PC, TBL_MOB, TBL_PC and mob_db structures to use status_data.
- Split damage received functions into pc_damage/pc_dead and mob_damage/mob_dead
- Added status functions to deal with damage and healing (status_damage,
status_heal, status_percent_change) and a bunch of defines for easier
handling of them (status_percent_heal, status_percent_damage,
status_fix_damage, status_kill, etc). Objects must be hurt/healed through
THIS, pc_damage/mob_damage most no longer be directly invoked!
- Rewrote and cleaned up battle_calc_misc_attack
- Merged config options pc_attack_attr_none, mob_attack_attr_none,
pet_attack_attr_none into attack_attr_none (type 4)
- Removed config options player_defense_type, monster_defense_type,
pet_defense_type in favor of weapon_defense_type
- Modified skill_calc_heal to take into account the MEDITATION bonus.
- Modified Slim Pitcher so it will work when casted by non-players. Will
now also work with SP-healing items.
- Rewrote Freedom of Cast code to use function status_freecast_switch to
switch adelay/speed when cast begins/ends.
- Modified Magic Power to store amplified MATK/MATK2 in val3/val4 for
easier updating when used in conjunction with ground skills.
- Fixed Asura Strike being usable from within a combo regardless of combo skill.
- Added status_calc_bl which does status-change related calculations using
as base the base_status of the bl object and the SCB_* flag passed. This is
invoked on status changes, and status_calc_pc will no longer be invoked
(which results on much faster status-change calculations).
- pc_clean_skilltree will now also remove item-granted skills.
- Learning skills will now only invoke status_calc_pc when the skill is passive.
- Cleaned up pc_check_base/job_lvup to only invoke the lv-up related
packets and functions ONCE regardless of skill-levls earned.
- Cleaned up pc_ regen related functions.
- Made player-sprite mobs have item pickup animation and walkdelay when taking items.
- Clones will copy a player's base status rather than battle status (so
status-change alterations are not cloned)
2006/05/26
* Part B of the homunculus code. [blackhole89]
While most of the homunculus handling functions are in now, it still lacks
code required for players to create it.
Given I haven't screwed up, you could master yourself one through the DB though.
* Fixed crashing in mob.c [Lance]
* Patches to allow everything to work right. + 1 more sample script. [Lance]
* Mob control engine tested 99% working so far. [Lance]
* Change scripting engine's NPC scope vars to dot (.) style.
* Improved and (should be fully) fixed the mob control engine. [Lance]
* Fixed typos in char.c [Lance]
* Rewrote fame rank lists system to reduce char-server load, as requested by
Skotlex: now it has a copy of those lists, and updates only the proper one
when needed instead of rebuilding all from saves everytime (which required
to always save the character before rebuilding the lists) [DracoRPG]
- Note it hasn't been compiled nor tested with SQL, please do it for me
2006/05/25
* Simplified ASC_BREAKER by making it a BF_WEAPON attack with an additional
int-based damage component (which is added right before elemental
modifiers) as described by AuronX. Pending further refining. [Skotlex]
* Resolved differences between Stable/Trunk msg_athena.conf. [Lupus]
Fixed atcommand @request MSG numbers accordinly.
On adding new MSG strings, plzm reserve them in STABLE msg_athena.conf, too
* Added NoVending mapflag. You may disable vending in the streets [Lupus]
* Increased capacity for Account Variables to 64 [Skotlex]
* Reverted Intravision implementation to that of stable's. [Skotlex]
* Corrected Login Server taking it's first argument as both login config
and lan config. [Skotlex]
* Fixed mob control commands.
* Fixed memory leak in scripts (again). Still have a few lying. [Lance]
2006/05/24
* Fix to the slave AI problem. [erKURITA], by [Skotlex], reported by Niktout.
* Item sharing now shares the same rules as exp sharing (no sharing when
dead, or idle, etc) [Skotlex]
* Fixed summoned slaves being able to cast onspawn summon-skills (slaves
aren't supposed to be able to call minions) [Skotlex]
* The clif_skill_poseffect packet will not be invoked in Snap unless the
skill was successful. May fix the client-position lag. [Skotlex]
* Merged item_db.sql from stable (the one from stable was more recent than
the one of trunk...) [Skotlex]
* Corrected SL KA* spells not working on other Soul Linkers. [Skotlex]
* Corrected a pair of incorrect sql query parsing logic in the login-sql
ban request packet. [Skotlex]
2006/05/23
* Corrected mob angry mode, now it only "restores" itself after being hit
when the mob has no target within their range of sight rather than on
picking a new target. [Skotlex]
* Fixed wedding sprite where it would stay active after unequipping. [Zido]
* Some cleanup of run_script, should fix the memory leak there. [Skotlex]
* the charname request hack message has been downgraded to only include
GM-invisible characters. [Skotlex]
* corrected clif_charnameack to send negative ID when a disguised player
asks for it's own disguised name. [Skotlex]
* Cleaned up the disguised target-id checks taking into considering that
the only character that sees a negative ID is the same disguised character.
[Skotlex]
* Modified battle_calc_weapon_attack to use new flags pdef/pdef (pierce
defense), Investigate and Icepick will now use the final def/vit-def values
rather than the base ones. [Skotlex]
* The move-enable condition checks for skills are now checked for only when
on skill use, not at cast-end time. [Skotlex]
* Corrected clif parse name request failing on disguised characters [Skotlex]
* Corrected Soul Drain draining from all non-ground-based skills including
non-magic attacks. [Skotlex]
* Corrected pc_setoption to change the option and then change class.
changing option-wedding will automatically convert the view-class as well.
[Skotlex]
* Corrected the 15% drop rate increase when killing higher level mobs in
pk-mode triggering for all mobs with lower level than yourself. Thanks to
Vayu. [Skotlex]
* Fixed typo (this time it's not my fault) in script_reload() clearing the same
db each time o_o [Lance]
* Fixed sleep command. [Lance]
* Added 'setd' support for local NPC scope (') variables. [Lance]
* [Scripting Engine Update] New variables are ready to be used. [Lance]
2006/05/22
* Updated skill_delayfix to return 0 for mobs since they have no skill
delay other than the one specified in mob_skill_db [Skotlex]
* Corrected the 20 lvl diff 15% exp bonus on pk_mode servers. Thanks to
Vayu for pointing it out. [Skotlex]
* status_get_sc_tick will now use directly Stun's formula rather than
invoking the status sc chance once. [Skotlex]
* Fixed a possible null pointer in script command misc_effect [Skotlex]
* Modified Investigate to take into consideration final def/vit-def rather
than base values for damage adjustment. [Skotlex]
* WARNING: New scripting system contains memory leak
TODO: Free all scripts using script_free_code() instead of old methods. [Lance]
* Excluded idle and auto-trade party members from TK_POWER list. [Lance]
* Fixed compilation errors.
Tidy up jobmaster for easy debugging. [Lance]
2006/05/21
* Part A of the Homunculus code.
This only features the structures, status_* and clif_* (packets) and is
not functional yet in any conventional way, but doesn't interfere
with present functionality either.
Main purpose is helping me to keep my work organized. [blackhole89]
* Fixed the "fake" mute status bug. [Zido]
* Speed up array size calculation and deletion. [Lance]
* Player must learn the skill before doing auto-spell [Lance]
* Exploit prevention in clif_parse_NpcStringInput [Lance]
* SC_SPEARSQUICKEN -> SC_SPEARQUICKEN normalized enum name [Lupus]
* Thanks to damirych & Falcon for [2006/04/30] STEAL skill [Lupus]
2006/05/20
* grfio_final moved back if any of GRF overriding is enabled so servers
with such configuration will not have different values after reloading. [Lance]
* jA1983 script.c buildin_menu fix. Thanks to End_of_exam. [Lance]
* Abit of alterations to login-server. [Lance]
2006/05/19
* Minor unsigned/signed alteration in pc_additem to shut the compiler up. [Lance]
* Small change in pc_additem that could be fixing the current bug with new
items not getting added. [Skotlex]
* Fixed loginlog definition in main.sql, thanks to Tempesta [Skotlex]
* Likely fixed the mob-skill random picking behaviour causing infinite
loops sometimes. [Skotlex]
* Modified mobskill_use behaviour to pick a random starting point and check
skills from that, rather than always checking from first to last. Fixes
skills with high priority blocking skills lower down in the list from
triggering. [Skotlex]
* Updated mob ai behaviour so that mobs use IDLE state skills when their
current target cannot be reached for melee fighting. [Skotlex]
2006/05/18
* Added 5 config settings to adjust damage in pk-mode servers (misc.conf)
[Skotlex]
* Fixed mob_max_skilllvl being capped to 11! [Skotlex]
* Rewrote/cleaned up several functions in storage.c [Skotlex]
* Optimized pc_additem comparisons to account for items with more than four
slots. [Skotlex]
* Updated clif.c to enable retrieval of items from cart/storage while
trading. Exception is retrieving items from the cart while vending.
[Skotlex]
- The reasoning is that an ongoing trade will not get "corrupted" if you
earn items before it is commited (only if you lose items from your
inventory), and it is an annoyance when you realize the stuff you want to
trade is on the cart/storage.
* skill reiteration code now does not checks for the trigger-area of the
skill in the case of non-players, which means mobs can now place traps in
cells adjacent to each other. [Skotlex]
* Applied an experimental weather code that should lower bandwidth usage to
near-none, which's only disadvantage should be the weather not clearing out
until moving to another map (even when the mapflag is removed from the
current map). Please test and report if there's any anomalies with it.
[Skotlex]
* NPC_AGIUP will now give movement boost of 50% [Skotlex]
* Fixed WZ_WATERBALL number of hits when used by non-players. [Skotlex]
* MO_BODYRELOCATION will send the slide packet with the actual src's
coordinates rather than selected tile. [Skotlex]
2006/05/17
* Modified mob_can_changetarget to return true always when the new target
is the provoked-by character. Fixes provoke not making the mob change
target when it already is locked on another player. [Skotlex]
* Added check to clear previous skill when combo time ends. Should fix TK
Rankers being unable to initiate a combo with the same kick their previous
combo was finished with. [Skotlex]
* Power Up and Agi Up now increase Hit/Flee by 20%/lv [Skotlex]
2006/05/16
* Modified "hide woe damage" to send the number of hits rather than 1 as
damage Because when the damage is less than the number of hits, the client
will display MISS. [Skotlex]
* Fire Pillar will now do 200%MATK damage per hit when level is >10.
[Skotlex]
* Blood Drain always hits now. [Skotlex]
* Fixed Mob Area Skills not updating their use-time (rendering their skill
delay useless) [Skotlex]
* Search free cell will now skip picking the center-tile as target
location. Will prevent slaves from walking on top of their master, or mobs
placing stuff right under themselves with the "around" target conditions
among other things. [Skotlex]
2006/05/15
* Small changes to the skill.conf
- Monsters now can place ground skills on top of each other by default
- Land_Skill_Limit format changed and set to "Only Players" by default
* When reading mapflags, when a map is set to be pvp or gvg, the other will
be turned off (disables pvp mapflags in gvg maps for pk-servers) [Skotlex]
* Firepillar's damage per hit is now 100% MATK (rather than 20%) when the
skill level is above 10. [Skotlex]
* Sorted out the item_data structure, getiteminfo should work correctly
now. [Skotlex]
* KA* skills can now be casted on other Soul Linkers as well without the
Spirit requirement. [Skotlex]
* Soul Drain will now show the SP drained regardless of drain display
settings. [Skotlex]
* SC_COMBO state will now end in skill_attack rather than
skill_check_condition (as it is required there to apply damage bonuses
based on combo-casted skills) [Skotlex]
* Fixed Option_Wedding in const.txt (0x1000 won't work, it has to be 4096)
[Skotlex]
* Fixed the nocast flag 2 (not usable in pvp) returning true in pk-mode
servers. [Skotlex]
* When removing a castle's owning guild, the char servers will erase the
guardian data now. [Skotlex]
* Changed the behaviour of immobile mobs when they can't chase their
target. Rather than using a longrange skill and then unlocking, they will
use an attack/angry state skill and then unlock. [Skotlex]
* Some adjustments of how disguising + gm-hiding work together. [Skotlex]
* Fixed clif_GlobalMessage being the exact same function as clif_message
(the first should send to ALL_CLIENT and the later should send to
AREA_CHAT_WOS). Should fix globalmes script command. [Skotlex]
* Added SC_BLADESTOP to the switch listing in status_change_start [Skotlex]
* Characters in vending are now always considered "idle" if the
idle_no_share setting is active. [Skotlex]
* Players with OPTION_INVISIBLE should not be sent to clients. [Lance]
* Remaining fixes for item scripts. [Lance]
* Added NPC event deprecated warnings to ease debugging old scripts. [Lance]
2006/05/12
* Supplied fake NPC ID in sd->npc_id for item scripts. [Lance]
* Bugfix on fake npc [Lance]
* Fixed mob_once_spawn not working for non-random coordinates. [blackhole89]
* Reverted again the change that stuns the caster on Ske, Ska, Swoo when
the target is a nonplayer (rather than always) [Skotlex]
* Modified mob_spawn_once so that coordinates -1,-1 are "random around the
player" while 0,0 are random around the whole map (regardless of whether
there's a player attached or not) [Skotlex]
* Knockback will no longer work on traps during woe. [Skotlex]
2006/05/11
* Fixed the definition of the KEY in the loginlog, thanks to TheUltraMage
[Skotlex]
* NPC_POWERUP and NPC_AGIUP now cause a increase in hit/flee (respectively)
of 40% per level. [Skotlex]
* Changed a bit the MAX_ZENY checks in trade.c to prevent overflows.
[Skotlex]
* Rewrote npc_selllist for a more proper-clean implementation. [Skotlex]
* Increased NPC_POWERUP's dex bonus to +25*lv [Skotlex]
* Moved TK_DOWNKICK's stun time from time to time2 [Skotlex]
* Added TK_TURNKICK's stun to splash-pushed mobs. Duration is 2secs (time2)
[Skotlex]
* Merged the code for Ska, Ske, Swoo together. Swoo stun duration is now 10
secs (reducable) if you target a mob that already has Swoo active. [Skotlex]
* Added the missing semi-comma from the upgrade_svn6533.sql file. Thanks to
Tanaous [Skotlex]
* Added back the missing code that substracts arrows when normal-attacking.
[Skotlex]
2006/05/10
* Changed the state of Asura back to explosionspirits, added a hardcoded
move_enable check when invoking Asura and NOT while in BladeStop or a
Combo. [Skotlex]
* Added back SC_XMAS to status.c, it got lost sometime during all the
previous reworkings. [Skotlex]
* Changed wedding costumes to use setoption rather than changebase.
[Skotlex]
* Modified setoption so that flag 1 or no flag adds an option, and flag 0
removes it. [Skotlex]
* Updated script_commands with the new behaviour. [Skotlex]
* Updated mob_db2.txt and mob_db2.sql to have only 10 drop slots rather
than 15. [Skotlex]
* Users are now able to use their own dnsbl servers (login_athena) [Zido]
2006/05/09
* Rewrote/cleaned up trade.c for a more clean trading implementation.
[Skotlex]
* Added @request commands, sends a request to all connected GMs of
lowest_gm_level or above as a whisper message. Defaults to gm level 20
users (UNTESTED). [Skotlex]
* Modified @commands to use Meruru's code which is faster and does a fair
attempt at tabulating the commands presented. [Skotlex]
* Updated SKA to return a random value between 0 and 99 each time
status_get_def is invoked. [Skotlex]
* Updated Making Arrow to not include unidentified items in the list.
[Skotlex]
* Reduced drop slots from 15 to 10. [Skotlex]
* Updated mob_db.sql with the current data. [Skotlex]
* Updated setoption script command to receive a second (optional) argument
flag. If the flag is 1, the option is added to what the player currently
has; likewise using flag 2 removes only that option. No flag (or any other
value) is the older behaviour of removing all other options and setting
specificly what is passed. [Skotlex]
* Updated script_commands information for setoption due to this change.
[Skotlex]
* Small fix in npc-created chat rooms to properly include the terminating 0
on the chat's event. [Skotlex]
* Fixed Fog of Wall's symmetry in respect to Misc attacks, they no longer
get reduced by 50% regardless of who is standing on the fog. [Skotlex]
* monster_ai&2 will now trigger the rude-attacked skill when the mob can't
move and the attacker is out of it's attack range. [Skotlex]
* Added missing icon for Joint Beat [Skotlex]
* Mob-search functions will now skip enemies with no exp/job_exp. [Skotlex]
* Treasure chests will now be excluded from the mob-drop listings
(@whodrops) [Skotlex]
* Fix on pc_skill which fixes overlapping when one gets more than one bonus
for the same skill. [Skotlex]
* Updated main.sql's loginlog table structure. [Skotlex]
* Added svn_update6533.sql to update the loginlog structure as suggested by
theultramage. [Skotlex]
* Cleaned up somewhat the implementation of BladeStop. [Skotlex]
* Fixed the head_bottom (pet-armor) position in packet 0x22c (walk packet)
when crafted for non-players. [Skotlex]
* Script commands sc_start, sc_start2 and sc_start4 will now start
regardless of sc defense of the target player (that is, they cannot be
avoided/blocked) [Skotlex]
* Fixed a possible counter overflow in attacked_count, changed the var size
to unsigned char since the code can handle the overflow now. [Skotlex]
* Multiple targets again reduces armor defense, as reported by Tharis.
[Skotlex]
* Increased dex bonus of NPC_POWERUP to +20 per level. [Skotlex]
* Fog of Wall's -50 hit reduction is now only for ranged attacks. [Skotlex]
2006/05/08
* Reverted the change that was making ES skills stun the caster always.
[Skotlex]
* Removed the fixpos packet which is sent whenever you are hit while moving
as Aegis doesn't sends this packet neither. [Skotlex]
* ES magic will now put the caster on stun for 0.5 secs regardless of
whether the skill-target is a mob or not. [Skotlex]
* Added function clif_party_join_info which sends packet 0x1e9 each time a
party-member joins. This packet (as redundant info as it has) should also
contain the field for "adoptability", but that needs to be coded in yet.
[Skotlex]
* Added clif_ParseAdoptRequest which does the basic adoption handling. More
checks and the reply packets still need to be coded in. [Skotlex]
* Happy State and TK stances won't dispel on death now. [Skotlex]
* Cleaned up combo-skill implementation, SC_COMBO is automatically ended in
skill_check_condition now. [Skotlex]
* Modified TK-ranker infinite combos to behave as described by AuronX.
Refer to his thread in the development section for details. [Skotlex]
* Made all Soul Link Spirit skills not be castable on self. [Skotlex]
* Changed rate of NPC status effect skills to 50+10*lv% base chance
(guessed, but better than 100% for all levels) [Skotlex]
* Changed max level of NPC status effect skills to 5 [Skotlex]
* Increased max number of tries to find a random spot in maps to 1000 since
some maps have so many non-walkable tiles it's hard to find one in just 100
tries. [Skotlex]
* status_set_viewdata will remove the Wedding Option status when you set a
class that is not wedding. [Skotlex]
* hide_gvg_damage will now send 1 instead of -1 as damage. [Skotlex]
* idletime will now be updated on attack-request, not on sit/standup
[Skotlex]
* Party members sitting will no longer be considered idle. [Skotlex]
* Removed SP_DISGUISE from the bonus list (onequip/onunequip should be used
with the disguise/undisguise script commands instead). [Skotlex]
* Moved Sharp Shooting display to the block with Auto-Counter (since that's
the other skill that can show critical as well) [Skotlex]
* Corrected some fields in the standing still packet (guild emblem being
stored as a Long when it should be Short) [Skotlex]
* Modified most fields of view_data to be unsigned shorts rather than
signed ones. [Skotlex]
* On-Touch NPCs will now make you stop walking when you trigger them.
[Skotlex]
* ShadowJump/JumpKick will make you land on the target's cell now.
[Skotlex]
* Fixed Kaahi triggering only once per skill duration. [Skotlex]
2006/05/07
* Fixed readme/changelog.html [KillerBox]
* Removed old logs. [Lupus]
TODO: 1. Add produce logging into PICKLOG 2. Replace map names with map index
2006/05/05
* Optimized clif.c clif_scriptmenu/input/inputstr to check for sd->state.using_fake_npc
before sending one (as it's not required to send twice).
* Reinitialize sd->state.using_fake_npc in clif_parse_LoadEndAck (for scripts that warps
players and still continues execution to work). [Lance]
* Updated item_db.sql to current. [Skotlex]
* Fixed a bug in @commands, most likely the reason some people were still
getting crashes. [Skotlex]
* Fixed @commands not showing the last available commands (unless the total
amount of commands is divisible by ten) [Skotlex]
* Added a npc-script-event cache to avoid looking up event-scripts every
time they need to be executed. Events cached are all those defined in
script_config (on login, logout, mapchange, death, kill, level up) [Skotlex]
- Since the cache holds direct pointers to the npcs/events, do NOT unload
the related NPCs or you'll get dangling pointer crashes. However,
@reloadscript will work fine.
- Set the etc_log to on to see a summary of npcs/events loaded for script
execution on startup.
* The Rest bonus activated by using /doridori while in rest should now
trigger with all the class tree (TK/SL/SG) [Skotlex]
* Fixed Kaupe always triggering when the one who was under Kaupe was a
player rather than the one attacking... [Skotlex]
* /doridori now won't double the HP/SP regen of TKs, it only activates
their "happy" state. [Skotlex]
* Added the -50 hit penalty when standing on Wall of Fog. [Skotlex]
* Uncommented the status_calc_mdef2 call in status_calc_pc. [Skotlex]
* Being in Enjoyable Rest state will now also trigger the HP/SP Time skills
(even if there's no other TK around). [Skotlex]
* Added battle config settings view_range_rate and chase_range_rate to
adjust the view-range and chase-range (range2/range3) of the mob_db without
having to manually change them (battle/monster.conf) [Skotlex]
* Kaupe now will only block all skills of players, for non-players, only
normal attacks can be missed. [Skotlex]
* Moved the Kaite spell-reflect code after the damage calculation function,
so the reflected damage is exactly the damage the original target would
have received. Will only trigger if the damage to be reflected is above 0.
[Skotlex]
* OnEquip scripts will now trigger on log-on. [Skotlex]
* Infinite Endure will no longer give mdef bonus. [Skotlex]
* Removed bInfiniteEndure bonus, Eddga card now uses onequip/onunequip to
start/end infinite endure. [Skotlex]
* Fixed Kaahi's SP cost per heal. [Skotlex]
* Now when walkdelay is set to 0, characters will stop walking when hit,
but will not have any walk delay. (previously setting walk delay to 0 would
not even stop characters from walking when hit) [Skotlex]
2006/05/04
* Some people think its sexy to declare variables after blocks of code. Fixed. [Zido]
* Fixed a possible infinite loop in skill_clear_unit_group [Skotlex]
* Some clean-ups in the mob_ai [Skotlex]
* Improved atcommand autoloot, now displays droprate in percents and notices
player if autoloot is already on or off. Also simplified the code [Harbin, Kain],
commited by erKURITA
* Added one grace range in the mob_loot search function which should fix
mob_can_reach failing when invoked with the same distance that distance_bl
returned. [Skotlex]
* Stun time for using ES magic on non-mobs reduced to 0.5 secs. [Skotlex]
* Eska is now usable on bosses. [Skotlex]
* Swoo will stun you if attempted on an already 'swooned' enemy. [Skotlex]
* clif_skill_failed will print out a debug line with the skill_id (since
the current null_po does not helps at all to fix it) [Skotlex]
* Applied TheUltraMage's suggested fixes to the grfio module. [Skotlex]
* Rewrote Kaahi to behave as it should. It will heal whatever amount of
damage accumulates in the time2 interval (500ms by default) after being
hit. [Skotlex]
* Changed skill_unit_move_unit_group to enable moving of all types of
ground-skills except ensembles (fixes warmth not following you) [Skotlex]
2006/05/03
* Kaahi now triggers every 500ms rather than on every hit (but it only
heals if in those 500ms an attack that would previously trigger Kaahi has
taken effect). In other words, it works just like before, except damage
gets "buffered" into 500ms slots. [Skotlex]
* Kaite, Kaute will now show a skill effect when they trigger. [Skotlex
* Knowledge will now only trigger if you logon to the memorized map, not
walk into it. [Skotlex]
* Corrected @whomap directly invoking msg_table[] rather than msg_txt()
[Skotlex]
* Guessed where the pet data goes in spawn packet 0x7c. This may be wrong
and not fix the pet issue, but I doubt it'll cause any problems that won't
be fixed by making the pet move. [Skotlex]
* Updated Charge Attack's state from none to move_enable. [Skotlex]
* Made tomahawk an NPC_SKILL so that it may not be plagiarized. [Skotlex]
2006/05/02
* Fixed standing up not really standing you up. [Skotlex]
* Moved battle_consume_ammo to the end of skill_castend_damage_id,
skill_castend_nodamage_id and skill_castend_pos2 rather than
battle_calc_weapon_attack. They will trigger when the player's arrow_atk
state is active and a ground skill was not invoked. It should fix all
issues with splash/ground skills consuming ammo per target rather than once
per skill use. [Skotlex]
* Added structure state to the ground skills, their fields are magic_power,
into_abyss and ammo_consume to indicate the states that were previously
stored in val3. [Skotlex]
* Implemented desperado as explained by Rockman-EXE. The skill-effect is
not showing up though, I'll need some logged packets to see what's missing.
[Skotlex]
* Removed the unit_can_move checks in skill cast-end, they should be
performed in skill_check_require when the skill's state is move_enabled.
[Skotlex]
* Changed extremity fist's state to move_enabled, the explosion spirits
check is now hardcoded. [Skotlex]
* Absorb Spirit Sphere now gives +10SP per sphere as per discussions with
Haplo. [Skotlex]
* Changed a <= into a < in pc_steal_item. This means drops with 0.01% are
impossible to steal unless you have at least 100% steal-rate (where steal
rate is dex - opponent dex + skill_lv*3% + 10%) [Skotlex[
* Cleaned up clif_parse_action_request to enable sitting/standing while in
shops, interacting with npcs, etc. [Skotlex]
* Kaite now works against all types of spells. [Skotlex]
* Kaupe now works against all skills. [Skotlex]
* Sanctuary now won't damage non-enemies. [Skotlex]
* Blessing now will always give you bonus stats even if you are wearing
undead armor. [Skotlex]
* Modified how Rogue's treasure works so that you get +1% to your steal
rate rather than +0.01% to the final rate. [Skotlex]
* Rewrote Warmth to use ground-skill-units, it should behave now like in
officials (implementation is not quite the same, but it should yield the
same effects while consuming less bandwidth). "Stacking", as it's called,
is possible now, but limited to eA's minimum timer skill interval (100ms).
[Skotlex]
* Modified NPC_POWERUP so that it gives +10 dex * skill level rather than
+5+lv to all stats (as explained by Playtester and Tharis on how the skill
behaves). [Skotlex]
* Allowed SG_FEEL memorizing the same map for all three. [Skotlex]
* SC_FUSION won't end when you die now. [Skotlex]
2006/05/01
* Added knockback when you run into a wall during running. However
position is not being refreshed on the client yet... [Skotlex]
* Fixed pc_disguise not allowing you to "redisguise". [Skotlex]
* Corrected a crash when sd is null in npc_event [Skotlex]
* After testing to make sure it works properly, I'm including
new battle conf options to limit MVP drops. [Reddozen]
* Removed OPTION_XMAS, it seems to not exist.... [Skotlex]
* Added SC_SMA to handle "ready to use SMA" status (rather than SC_COMBO)
since it has a visual effect to use. [Skotlex]
* Corrected the value of OPTION_FLYING [Skotlex]
* Using SG_FUSION ends Soul Linked effect. [Skotlex]
* status_setviewdata will set your option accordingly when the previous/new
view-class is wedding or xmas suit. [Skotlex]
* Added function map_foreachinshootrange, behaves the same way as
map_foreachinrange, but it also performs a "shoot-path" check before
invoking the function. Used in the skill subtimer function if
skill_wall_check is defined. [Skotlex]
* Fixed AL_WARP displaying "Unknown Area" selections when you don't have
all memo points used up. [Skotlex]
* Fixed alive_count not being reset on skill unitsetting, which leads to
some groups not being cleared once all their units expire. [Skotlex]
* Optimized Kaahi/Kahai, will now only show the amount of HP healed. Moved
to skill_counter additional effect so it may trigger even on miss. [Skotlex]
* SKA no longer blocks skills. [Skotlex]
* Optimized fake npc system. Added npc_checknear back to npc_buysellsel. [Lance]
|