-
Notifications
You must be signed in to change notification settings - Fork 20
/
Readme
19957 lines (17479 loc) · 577 KB
/
Readme
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
--------------------
//1092 by lizorett
・遠距離攻撃のパス検索アルゴリズムを本鯖と同じになるよう変更
・ストームガスト、ロードオブヴァーミリオンを重ねた場合、片方からだけダメージを
受けるよう修正(仕様が不明なので先に見つけたユニットから攻撃するようにしています)
・アイテムが一つしかない場合、アイテムを使用してもエフェクトが表示されない問題
を修正
・セーフティーウォール使用時にアドレス不正となる場合がある問題を修正
・map_getcell/map_setcellの仕様変更
・1085のビットマップ対応の痕跡の消去
・1088のアイスウォールの変更を巻き戻し(本鯖に合わせる)
・全角判断(npc.c)を修正(For English User Forum >>54)
(注意) map_athena.confのマップキャッシュ指定を行うパラメータ名を変更しています
(conf)
map_athena.conf - read_map_from_bitmapをread_map_from_cache に変更
- map_bitmap_pathをmap_cache_fileに変更
(src/map)
map.h - セルタイプ名称変更(CELL_CHKHIGH,CELL_CHKTYPE)、
削除(CELL_SET*)
- skill_unit_group_ticksetメンバ名変更(group_id -> id)
- ビットマップ関連の記述の痕跡を削除
map.c - map_getcell() セルタイプ名称変更と若干のコード変更
- map_setcell()を1084以前の仕様に戻し、CELL_SETNPCの
フラグを追加
- map_cache関連の細かな修正
npc.c - 全角判断(is_zenkaku)を正確に行うよう変更
- map_getcell()のセルタイプ名称変更に追従
pc.c - アイテムが一つしかない場合、使用時のエフェクトが表示
されない問題を修正
- map_getcell()のセルタイプ名称変更に追従
skill.c - ストームガスト、ロードオブヴァーミリオンを重ねた場合
片方からだけダメージを受けるよう修正
- セーフティーウォール使用時にアドレス不正となる場合が
ある問題を修正
- map_getcell()のセルタイプ名称変更に追従
skill.h - 関数定義変更
path.c - 遠距離攻撃のパス検索処理を追加(path_search_long)
- map_getcell()のセルタイプ名称変更に追従
battle.c - 遠距離攻撃のパス検索を使用するよう変更
--------------------
//1091 by End_of_exam
** 注意 **
今回のパッチは改造内容が複雑なので、導入は慎重に行ってください。
status.c / h への分離は、関数名の置き換えだけに留めたつもりですが、
思わぬバグが潜んでいる可能性があります。
・スパゲティ対策の一環として、ステータス計算、状態異常に関わる部分を
status.c / h として分離。battle.c から39KB程 , skill.c から41KB程 ,
pc.c から38KB程移動できました。少々強引ですが、スキル使用や攻撃などの
処理の流れをつかみやすくするためには、battle.c / skill.c の中身を
減らす必要があると考えたためです。
battle_get_* => status_get_*
skill_status_change_* => status_change_*
pc_calcstatus => status_calc_pc
pc_calc_sigma => status_calc_sigma
pc_getrefinebonus => status_getrefinebonus
pc_percentrefinery => status_percentrefinery
・battle.c , script.c の巻き戻りを戻す
・npc.c の怪しい変更を戻し、きちんとNUL を付け加えるようにする
・script.c のミスを直す(jump_non_zero => jump_zero 意味が逆になってました…)
・skill.c の武器修理 のコメントミスを修正
・WIN32でコンパイルした時、最大接続人数が60人程に制限されていたバグを修正
(/)
athena.dsw , athena.dsp , bcc32_make.bat , src/login/login.dsp
src/char/char.dsp , src/map/map.dsp
コンパイル条件の変更
(src/map/)
上の分離に合わせてコンパイルエラーの出ないように修正
--------------------
//1090 by Sapientia
・チャットの便利さのために叫ぶ追加 (ギルドチャットと区分するためにウェチギシの前に [叫ぶこと]が付き)
・atcomand_athena.conf で onlymes を 0で設定して皆使うように活性化
オリジナルなのでデフォルトで GMだけ使うことができるように設定しました.
・@mes [言うこと] で使用
(src/map)
atcommand.c atcommand_charkami 追加
atcommand.h
clif.c clif_onlymessage 追加
clif.h
(src/conf)
atcommand_athena.conf onlymes 追加
help.txt @mes 説明追加
--------------------
//1089 by 聖
・VC.NET2003でコンパイルすると大量に警告が出るのを修正
・その他バッファオーバーフロー等の細かいバグ修正
(src/char)
int_guild.c 警告箇所を修正
(src/map)
atcommand.c, battle.c, clif.c, itemdb.c, pc.c, pc.h, script.c, skill.c
警告箇所を修正
npc.c 警告箇所とバッファオーバーフロー修正
--------------------
//1088 by Sapientia
・ウィザドスキル Icewall このキャラクターやモンスター足もとに設置されることを防止
・ロードナイトスキル Berserk 使用の時 HPが 1/3になれば回復するバグ修正
(src/map)
pc.c Berserk 修正
skill.c Icewall 修正
--------------------
//1087 by End_of_exam
・マップキャッシュに圧縮機能を追加(1MB程に縮まるようです)
・npc.c の巻き戻りを修正(質問スレッド Part14 , 111)
・map_athena.conf のコメントアウトを修正(Athena雑談スレッドPart7 , 146)
・Windows 用の起動スクリプトを追加してみる(eAthena のを元に改造)
(/)
win32_start.bat Windows 用の起動ファイル
(src/map)
map.c 圧縮機能の追加
npc.c 巻き戻りを修正
(src/common)
grfio.c decode_zip , encode_zip のエクスポート
grfio.h decode_zip , encode_zip のエクスポート
(conf/)
map_athena.conf 修正
--------------------
//1086 by End_of_exam
主に1085のバグ修正だったりもします。
「てめー、1から書き直しやがって」という突っ込みだけは勘弁してくださいませ。
・データ構造の大変更(map.c)
マップを削除&追加しても正しく動くように変更
マップキャッシュ作成中に強制終了すると再起動時に不安定になるバグを修正
圧縮フラグの追加(需要あるのか不明。compressを真にすると、現在のソースで
読めなくなります。)
・なんか衝動があやしすぎるので、ビットマップ処理を撤廃する(map.c map.h)
npc_touch_areanpc : some bug がたくさん出てくる -> 原因不明?
恐らく通行可能判定が正しく設定されていないっぽいんですが謎です。
#read_map_from_bitmap の設定を省くとログイン時に落ちるバグを修正
・キャッシュ内に全てのマップがあれば、grf 無しでも動作するように変更。(grfio.c map.c)
(src/map)
map.c バグ修正他
map.h バグ修正他
(src/common)
grfio.c ファイルが見つからない時にexit を呼ばないように修正
--------------------
//1085 by zalem
・マップデータの読み込みはビットマップファイルから行なえるような機能追加
grfファイルから一度ビットマップファイルを作成して以後はその
作成されたビットマップフォーマットのファイルからマップ情報を読み込む
という方法を採ることによって、map-serverが立ち上がる時マップ情報を読み取る
のに掛かる時間がほとんどなくなる、また1intに32個のセル情報が格納できるの
で、map情報に関するメモリ使用量も3割り近くまで減るので(そのかわりに
ある程度CPUの負担が大きくなる)、追加してみた。
conf/map_athena.confのread_map_from_bitmapオプションで利用する
かどうかを指定でき、その下にあるmap_bitmap_pathでファイル名を変更する
(デフォルトでdb/map.info)
まだテスト段階なので、導入はご慎重に(一応Linuxで、いろいろと
テストしてみたが...)
・map_getcell()に4番目引数の追加とmap_setcell()の4番目引数の変更
関数の利用意図がわかりやすいように、そしてこれからの変更を容易にする
ために、map_getcell()とmap_setcell()のそれぞれ4番目の引数を追加、変更してみた、
map_getcell()の4番目の引数はmap.hで定義されてるCELL_CHK列挙型、map_setcell()
の4番目の引数はmap.hで定義されてるCELL_SET列挙型をとるように変更.また、上の
Featureに対応するため、map_getcell()をポインタに変更した。
主な変更点:
src/map/map.h read_gat(),read_gatp()マクロの変更
列挙型 CELL_CHK,CELL_SETを追加,map_getcell(),map_setcel()用
map_data構造体にメンバーint* gat_fileused[MAX_CELL_TYPE+2]追加
src/map/map.c map_getcell()を関数型ポインタに変更,map_getcellp()をread_gatp()
のために追加,実際に下の四つの関数のどっちに指すかはmap_read_flagによる
map_getcell_gat(),map_getcell_bitmap() 追加
map_getcellp_gat(),map_getcellp_bitmap() 追加
map_setcell() 変更
map_createbitmap() 追加
map_readmapfromfile() 追加
map_readallmap() 変更
map_config_read() 変更
do_final() 変更
以下の*.cファイル内のmap_getcell(),map_setcell(),read_gat(),read_gatp()を呼出した部分をすべて変更
src/map/atcommand.c
src/map/mob.c
src/map/npc.c
src/map/path.c
src/map/pc.c
src/map/pet.c
src/map/skill.c
conf/map_athena.conf read_map_from_bitmap,map_bitmap_path 追加
--------------------
//1084 by lizorett
・経験値獲得のバグ修正(バグ報告スレッド part7 >>134)
(src/map)
mob.c 経験値計算修正
--------------------
//1083 by End_of_exam special thanks to lizorettさん
・ソケットのデストラクタ処理の追加
(common/socket.c common/socket.h login/login.c char/char.c map/clif.c map/chrif.c)
ソケットを閉じる時の処理の流れが変更になります。今までソケットを閉じる場合は、
まずsession[fd]->eof を真にした後、パーズルーチン内で後処理(メモリ解放など)
していました。ですが、close(fd); が2重に実行されてサーバーが落ちるなどの
バグが発生していたり、処理の流れがつかみにくいといった理由から、socket.c 内部で
全て処理するように変更しました。ソケットを閉じる時の主な流れは次の通りです。
1. ソース内からsession[fd]->eof = 1; をする
2. socket.c 内からsession[fd]->destruct() が呼ばれる
3. メモリの解放&後処理(socket.c delete_session内部)
close(fd) は、session[fd]->eof = 1; に置き換えました(#define)。
また、delete_session() を明示的に呼ぶ必要はありません。
・マップ鯖分配時のアイテムdupe問題修正(map/map.c map/pc.c map/chrif.c)
ソケット切断時に倉庫データのキャッシュを消すように変更
2重ログイン時にマップサーバーが違った場合にも切断できるように修正
・古いバージョンでログインした時にmap鯖が落ちるバグを修正(map/clif.c)
clif_parse() 内部
if(packet_db[cmd].len==0) {
-> if(cmd<MAX_PACKET_DB && packet_db[cmd].len==0) {
・gcc でコンパイルした時にtimer.c でwarning が出たのを修正(common/timer.c)
timer.c:116: warning: `check_timer_heap' defined but not used
(src/common/)
socket.c ソケットのデストラクタ処理を追加
socket.h ソケットのデストラクタ処理を追加
timer.c warning 修正
(src/map/)
clif.c ソケットのデストラクタ処理を追加
chrif.c ソケットのデストラクタ処理を追加
map.c マップ鯖分配時のアイテムdupe問題修正
pc.c マップ鯖分配時のアイテムdupe問題修正
(src/char/)
char.c ソケットのデストラクタ処理を追加
(src/login/)
login.c ソケットのデストラクタ処理を追加
--------------------
//1082 by lizorett (2004/12/18) special thanks to 名無し様@g@me
・白刃取りをボスに無効に変更
・1079の変更部分にNULLチェックを追加
・カードの効果が乗らないスキルにエンチャントデッドリーポイズン効果が乗らないよ
うに変更
・エンチャントデッドリーポイズンの効果に左手が載らないように変更
・サクリファイスを実装
・ストームガストのノックバックがスキル指定位置を中心とするよう変更
・スキルの射程距離から1セル離れた場所を指定してスキルを使うと何も起こらない問題
を修正
・経験値の配分を修正(ダメージを与えた人がいない場合や、毒ダメージがある場合に経
験値が少なくなっていた)
・装備していない箇所へのストリップスキルが失敗するよう変更
・パッチアップスレッド Part 6?の>>116,>>125,>>126 のファイルを念のためマージ
(db/)
skill_db.txt, skill_cast_db.txt, skill_require_db.txt
- サクリファイスの記述を修正/追加
(src/map/)
battle.c - エンチャントデッドリーポイズンの変更
- サクリファイスの実装
- ストームガストのノックバック方向を変更
- 白刃取りをボスに無効に変更
skill.h - SC_SACRIFICEを追加
skill.c - サクリファイスの実装
- skill_castend_damage_id()のMG_FROSTDIVER/MG_STONECURSEに
NULLチェックを追加
mob.c - 経験値の配分を修正
script.c - 個別に出されていたファイルをマージ(>>125)
npc.c - 個別に出されていたファイルをマージ(>>126)
(src/common)
core.c - 個別に出されていたファイルをマージ(>>116)
--------------------
//1081 by End_of_exam
・「ループ構文の方も実装してください」という要望を貰ったので、
for , while , do - while 構文を導入。個人的に余り需要は無いと思うのですが…。
・elseが完全に解析できてなかったバグを修正。
・switch のbreak; が場所によってはコンパイルエラーになるバグを修正。
(src/map/)
script.c : 構文を拡張。色々整理。
(doc/)
script_ref.txt : 上の修正に合わせて変更。
--------------------
//1080 by End_of_exam
・スクリプトを if - else if - else 構文 , switch 構文に対応させました。
多重ネストが可能ですので、今までより見やすいスクリプトが書けると思います。
if(aa) { aaa(); } else if(bb) { cc; if(dd) { ee() } else { ff(); } }
それに伴い、__ から始まる変数やラベルを用いると、不都合が生じる可能性があります。
・スクリプトに新しい関数(select関数・menu命令の関数版)を追加しました。
(src/map/)
script.c : 構文を拡張
npc.c : npc_perse_script の修正( { , } のネストに対応 )
(script/)
npc/town/npc_town_alberta.txt : 一カ所 goto が抜けてたので修正
sample/npc_debug_pota.txt : switch , select を使って書き直し
(デバッグに使わせて貰いました)
(doc/)
script_ref.txt : 上の修正に合わせて変更
--------------------
//1079 by Yuuki
・石化中にストーンカースを使うと石化解除
・FDでスキル追加効果を使うと氷化中ダメージ判定で先に割れてもう一度氷化判定がくるのでスキル追加効果つかわず
・BBで睡眠石化氷化が割れないバグの修正(独自のダメージ判定使ってたので消して正規のダメージ判定に戻した)
・ディレイ0のスキルにadelay/2追加(G鯖でTS使って検証した結果最もこれが近かった通常攻撃よりはやかったので)
(src/map)
skill.c
--------------------
//1078 by End_of_exam
・Visual C++ 6.0 / bcc32 でコンパイル出来るように修正(別途zlib.dll が必要)
・1074は欠番にします。色々とご迷惑をかけた事をお詫びします。
** 注意 **
今回のバージョンの完全な動作確認はしていません(人柱版扱いにしてください)。
本格的な運用に踏み切る前には、必ず動作確認をするようにしてください。
場合によっては、コンパイル出来ない、不正な動作になる…等々の問題が起こるかも
しれませんが、そのときは、騒がず、慌てずに、ネ申の降臨を待つようお願いします。
** お願い **
このパッチを完全版にしてくれる方、使用感レポートを投稿してくれる方を募集します。
パッチを公開するついでに、大量のwarning を修正してくれたら嬉しいな~、と思ってみたり。
(/)
bcc32_make.bat , bcc32_clean.bat
bcc32 でコンパイル / クリーン を簡単にするためのバッチファイル。
athena.dsp , athena.dsw , src/login/login.dsp , src/char/char.dsp ,
src/map/map.dsp
Visual C++ 用のプロジェクトファイル & ワークスペース
(src/)
コンパイル出来るように色々修正。
(src/common/timer.c)
独自の手抜きアルゴリズム(2分ソート)を採用したバージョン。
--------------------
//1077 by sylpheed
・サーバースナップショット
・下記二つを取り込み
質問スレッド Part14-41 Plalaさん
バグ報告スレッド part7-68 ...さん
1074は取り込んでいません。
--------------------
//1076 by mare
・韓国公知の通りアリスとジルタスのエサの変更。
・GMのアブラカタブラ専用スキルのフラグが消えてたので復活。
・ブラックスミスギルド員にプリーストの場合のセリフを追加。
・クラスチェンジで全ての指定IDボスが出るように(なってるといいなぁ)
(db)
pet_db.txt
(conf)
battle_athena.conf
(script/npc/job)
npc_job_10blacksmith.txt
(src/map)
mob.c
--------------------
//1075 by kag
・弓手用の指貫の効果実装の布石
・効果がはっきりとしないのでitem_dbの修正はいれていません。
・1075番でいいのかなぁと思ったり。
(db)
const.txt
bWeponAtk=1073とbWeponAtkRate=1074を追加
(src/map)
battle.c
int battle_get_baseatk()修正
static struct Damage battle_calc_pc_weapon_attack()修正
map.h
int weapon_atk[16],weapon_atk_rate[16];
SP_WEPON_ATK,SP_WEPON_ATK_RATE, // 1073-1074を追加
pc.c
memset(sd->weapon_atk,0,sizeof(sd->weapon_atk));
memset(sd->weapon_atk_rate,0,sizeof(sd->weapon_atk_rate));を追加
pc_bonus2() 修正
(doc)
item_bonus.txt
bWeponAtk,bWeponAtkRate,bHPDrainValue,bSPDrainValue 追加。
--------------------
//1073 by LP@@
・アコスキルの一部及びサイトスキルの修正(日本には今月末に来る筈?@2004/12/06)
速度減少は移動速度減少量が、シグナムクルシスは成功率、DEF減少量の増加量が
はっきりしなかったので弄っていません。
(src/map)
battle.c
デーモンベイン、ディバインプロテクション計算式を修正。
skill.c
ルアフ、サイトの有効範囲を修正(両方10x10→ルアフ5x5,サイト7x7)。
(db)
skill_cast.db
アクアベネディクタの詠唱及びディレイを修正。
//1072 by kag
・転生スキルを中心に修正
(src/map)
battle.c
魔法力増幅をスキルレベル*5%に修正。
矢撃ちに矢のATKが乗らなくなるように修正。
オーラブレードの追加ダメージを100に修正。
バーサークの与ダメを2倍になるように修正。
ヘッドクラッシュの計算式を修正。
スパイラルピアースの計算式だけ修正。
プレッシャーの計算式を修正。
連柱崩撃の計算式を修正。
ソードリジェクトの反射率をスキルレベル*15%に修正。
アローバルカンの計算式を修正。矢の属性が乗るように修正。
ファルコンアサルトの計算式を修正。頑強フラグで1ダメになるように修正。
ブリッツビートを頑強フラグで1ダメになるように修正。
デモンストレーションを必中、カードを乗らないように修正。
アシッドテラーを防御無視、必中、無属性、カードを乗らないように修正。
skill.c
魔法力増幅に0.7秒の固定詠唱追加。
LP@@ さんのアスムキリエ重複不可を追加。
(db)
skill_db.txt
狂気孔を詠唱妨害できるように修正。
skill_cast_db.txt
プレッシャーの詠唱、ディレイを追加。
猛虎硬派山のディレイを追加。
ライフ置き換えのディレイを追加。
ファルコンアサルトの詠唱、ディレイを追加。
ウインドウォークのディレイ、持続時間を変更。
アローバルカンの詠唱、ディレイを追加。
クリエイトデッドリーポイズンのディレイを追加。
skill_require_db.txt
オーラブレードの消費SPを修正。
コンセントレーションの消費SPを修正。
魔法力増幅の消費SPを修正。
ナパームバルカンの消費SPを修正。
プレッシャーの消費SPを修正。
サクリファイスの消費SPを修正。
猛虎硬派山の消費SPを修正。
リジェクトソードの消費SPを修正。
//1071 by ICO
・npc_job_09wizard.txt,npc_job_16sage.txtを修正
・取り巻きが召喚系スキルを使用する際の挙動を修正
(src/map)
mob.c
取り巻きの召喚系スキルを規制するタイミングを変更
skill.c
召喚系スキルの発動条件を修正
//1070 by sylpheed
・ドロップ率のレートごとの調整を追加
ドロップ設定1~9 10~99 100~999 1000~10000で個別に倍率と最低/最高値の設定が可能です
・@weather 0 が動かないのを修正
・転生二次職のHP/SP25%上昇実装
ドロップ倍率はeAthenaのアイテム種類毎の設定を移植しても良かったのですが
種類毎だとレートの開きが大きい場合があり、あまり意味がないため
このような形でレート詳細設定を追加してみました。
mob_dbを弄るより楽にドロップ率の変更ができると思います。
weather 0が動かないのは理由が良くわからなかったので
動くように修正するついでに、雨フラグ消去時に
虹が出るように追加してみました。
転生のHP/SPに関しては、転生していても二次職になってない場合
増加はしないようなので、そのように実装してみました。
wedding_modifydisplay: yes の時にドレス/タキシードを装備解除すると
増加分が消えてしまいます・・・
わかる方いたら修正お願いしますorz
(src/map)
atcommand.c
@weather関連の修正(case 0を実行するように修正)
雨フラグを消した場合虹が出るようにしてみました(JP蔵で使えるか不明)
(マップ移動しないと天候が消えないのはragexeの仕様かな?)
battle.c
battle.h
mob.c
item_rate_details関連を追加
pc.c
転生二次職時のHP/SP最大値25%増加を追加
転生していても二次職でない場合はHP/SP増加は無しのようです
(conf)
help.txt 修正
msg_athena.conf 112追加
(doc)
conf_ref.txt 修正
help.txt 修正
//1069 by lizorett (2004/11/26) special thanks to 名無し様@g@me
・メルトダウンの実装
・魔法力増幅が詠唱のある魔法で有効にならなかった問題を修正
・map-serverがダウンする問題の修正(質問スレッド Part13 >>55)
・map-serverに不正IDでログインするとchar-serverがダウンする問題の修正
・サフラギウムが無詠唱スキルで取り消されない問題を修正
・重複して猛毒状態とならないよう修正
・マグナムブレイクのダメージを修正
・バーサク中にHP/SP吸収、毒などのダメージを受けるよう修正
・月光剣のSP吸収量が増加していく問題を修正(暫定)
・@helpにキーワード検索機能を追加
(src/map)
battle.c - マジックパワーによるMATK増加の実装
- 武器鎧破壊をpc_break_equip()に書き換え
- HP/SP吸収を修正
map.h - 装備破壊の定義を追加
pc.c - pc_break_armor()/pc_break_weapon()を、新規の装備破壊の
関数pc_break_equip()に統合
- 魔法力増幅のコードを削除(battle.cで行う)
- HP/SP吸収関係の変数の初期化を追加
pc.h - 関数定義を修正
skill.c - メルトダウンによる装備破壊を実装
- 魔法力増幅に関する修正
- 重複して猛毒状態とならないよう修正
clif.c - map-serverがダウンする問題の修正
atcommand.c - @helpにキーワード検索を追加("@help jobchange"など)
(src/char)
char.c - char-serverがダウンする問題の修正
(db)
const.txt - bUnbreakableHelm, bUnbreakableShield追加
skill_cast_db.txt
- メルトダウンの状態異常時間を設定
//1068 by huge
・atcommandをいくつか追加と、eAthenaからいくつか移植。(help.txt参照)
・非GMキャラが@で始まる発言をした時、そのまま表示するようにした。(GMレベル0のコマンドは実行)
・天気コマンドに合わせて、mapflag設定できるように。
・scriptをいくつか追加と、eAthenaから一つ移植。
・初期HP倍率とSP倍率をbattle_athenaで設定できるようにした。
・全キャラが、GMには位置・HPを通知させるようbattle_athenaで設定できるようにした。
・ドクロドロップについて、battle_athenaで設定できるようにした。
・GMのアイテムドロップや交換についてGMレベルを制限できるようにした。
・ディテクティングスキル修正。
※デフォルトの日本クライアントだと、雨で落ちます。
(conf/)
atcommand_athena.conf 修正
battle_athena.conf 修正
help.txt 修正
msg_athena.conf 修正
(doc/)
help.txt 修正
script_ref.txt 修正
conf_ref.txt 修正
(src/map/)
atcommand.c
atcommnad.h
guild.h party.hを読む様に修正
is_atcommand() 修正
atcommand() 修正
※移植・新規コマンドについては help.txt を確認して下さい。
battle.c
battle.h
hp_rate,sp_rate,hp_meter,bone_drop 追加
clif.c
clif.h
clif_spawnpc() 修正
clif_hpmeter() 追加
guild.c
guild.h
guild_searchname() 追加
guild_searchname_sub() 追加
map.h
天候に関するflag追加
npc.c
npc_parse_mapflag() 修正
party.c
party.h
party_searchname() 追加
party_searchname_sub() 追加
pc.c
pc.h
pc_calcstatus() 修正
pc_damage() 修正
pc_walk() 修正
pc_can_drop() 追加
script.c
gmcommand 移植追加
dispbottom 追加
getusersname 追加
recovery 追加
petinfo 追加
checkequipedcard 追加
getexp 削除(setを使うようにして下さい)
skill.c
skill.h
skill_castend_pos2() 修正
+Athena雑談スレッドPart7 >>54 もっさりさんの分
記述漏れがあったらすいません。
--------------------
//1067 by kai
・メディテイティオによるヒール回復量増加の効果を修正
・アドバンスドカタール研究の修正
・PvP時におけるアスムプティオの効果を修正
(src/map)
skill.c
2120行 heal += heal*(skill*2)/100; //メディテイティオの修正
battle.c
1723行 damage += dmg*(10+(skill * 2))/100; //アドバンスドカタール研究の修正
2598~2599、3580~3582行 アスムプティオの修正
if(map[target->m].flag.pvp)としダメージ計算を2/3に修正
--------------------
//1066 by lizorett (2004/11/17) special thanks to 名無し様@g@me
・デッドリーポイズン作成実装
・エンチャントデッドリーポイズン実装
・ソウルブレイカー実装
・battle_weapon_attackで未初期化の値が戻されるバグ修正
・他使用SPの変更等の細かい修正
(db)
const.txt - 猛毒(SC_DPoison)を追加
item_db.txt - 緑ハーブ,緑ポーション,万能薬に猛毒を治す効果を追加
produce_db.txt - デッドリーポイズンの材料の定義を追加
skill_cast_db.txtエンチャントデッドリーポイズン、ソウルブレイカー
の定義を修正/追加
skill_db.txt - ソウルブレイカー/エンチャントデッドリーポイズン/
デッドリーポイズン作成の定義を修正
- ナパームバルカンのヒット数修正
skill_require_db.txt
- エンチャントデッドリーポイズンが毒薬の瓶を使用する
ように修正
- ソウルブレーカー/メテオアサルトの使用SPを修正
(src/map)
battle.h - battle_config.cdp_rateを追加
battle.c - ソウルブレーカー実装
- メテオアサルトにカード効果がかからないよう変更
- 4213行の条件で未初期化の値が戻されるバグ修正
- battle_config.cdp_rateを追加
skill.h - デッドリーポイズン作成の材料が7つなので、テーブル
を追加。材料の最大数をdefineで変更できるよう修正
- SC_DPOISON(182)/SC_EDP(183)を追加
skill.c - 猛毒効果を追加
- デッドリーポイズン作成を実装
--------------------
//1065 by End_of_exam
・サーバーゾンビ化に暫定対処
・calc_index(path.c)の不都合を修正
(common/)
timer.c
TIMER_MIN_INTERVEL(タイマーの最小インターバル)を追加しました。
それに伴い、do_timer() の戻り値の最低を 10ms から 50ms に変更しました。
selectが10ms以内に終わらない環境だと、モンスターを大量召還した時などに、
クライアントからのパケットに反応しなくなる模様です。
ローカルテスト(モンスター大量召還)をしてみたところ、25msに変更した時点で
改善しましたが、環境によっては50msでも不十分かもしれません。
その場合は、TIMER_MIN_INTERVELを増やして様子を見てください。
同様の現象として、多数のクライアントが接続するとサーバーが反応しなくなる
というのがありますが、このパッチによってある程度改善されるかもしれません。
(map/)
map.h : MAX_WALKPATH
path.c 内の calc_indexが不都合を起こす(48*48-1 = 1000 1111 1111(b)) ため、
MAX_WALKPATHを 48 から 32 に変更しました。(32*32-1 = 0011 1111 1111(b))
#define calc_index(x,y) (((x)+(y)*MAX_WALKPATH) & (MAX_WALKPATH*MAX_WALKPATH-1))
--------------------
//1064 by nameless
・GCC 3.3.0/3.3.1が内包する0/0=変数最大値の問題対策(int:65535/long:4294967294)
・魔法防御・防御・属性防御が正しく適用されない問題を修正
・ナパームバルカンを単体魔法のコードに修正し、呪い効果を実装
(src/map)
skill.c
442~448行 不等号[<]を[>]に修正
512~519行 不等号[>]を[<]に修正
529~538行 コンパイラバグの訂正方法と例/*~*/の部分を
gccのバージョンに合わせて生かしたり殺したり
してください。3.3.2からは直っているようです
1857行 ナパームバルカンを追加
660~664行 ナパームバルカンの呪い効果を追加
(src/char)
char.c
修正しきれていなかった部分を修正しました。
--------------------
//1063 by 七誌
・月光剣の効果実装
・左手カードによる、武器攻撃時のHP/SP吸収効果が右手に影響する様に修正(本鯖仕様)
(left_cardfix_to_rightがyesの時のみ。noだと従来通り)
(db)
const.txt
bHPDrainValue=1071とbSPDrainValue=1072を追加
item_db.txt
月光剣のEquipScriptにbonus2 bSPDrainValue,100,3を追加
(src/map)
battle.c
battle_weapon_attack() 修正
map.h
short hp_drain_value,sp_drain_value,hp_drain_value_,sp_drain_value_;を追加
SP_HP_DRAIN_VALUE,SP_SP_DRAIN_VALUE, // 1071-1072を追加
pc.c
pc_bonus2() 修正
--------------------
//1062 by nameless
・パケット送受信での誤送信修正
・バグ報告スレッド part7 からの取り込み・修正 >> 56,57,58
・fix1059の取り込み
・ハイウィズのネイパームバルカンの実装(eA取り込み)
・CPU最適化コードの修正(athlon系)・追加(玄人箱/Linux Zaurus)
(/)
Makefile
athlon系最適化の修正
玄人箱(Kuro-Box 200MHz版[PPC 603x])
玄人箱(Kuro-Box 266MHz版[PPC 604x])
Linux Zaurus (SL-C7xx)
の最適化コードを記述
(db)
skill_cast_db.txt
400,500,1200:1600:2000:2400:2500,0,0 //HW_NAPALMVULCAN#ナパームバルカン#
(src/map)
clif.c
clif_parse() 修正
(src/char)
char.c
1367行 cmd = RFIFOW(fd,0);追加
(src/map)
skill.c
switch(skillid)にcase HW_NAPALMVULCAN:以下20行ほど追加
--------------------
//1061 by lizorett (2004/11/9)
・不正なギルドスキルパケットを受けた場合にmap/charサーバが落ちる現象を修正
・不正なパケットを受けた場合にcharサーバが落ちる現象を修正
・結婚したキャラを削除するとcharサーバが落ちる現象を修正
・青箱を一つだけ持った状態で青箱から青箱がでると、青箱が消えるたように見える
(リログすると見える)問題を修正
・スナッチャーのスキル失敗を表示しないようにできる設定を追加
・デボーションのレベル制限(10レベル差)を変更できる設定を追加
(src/common)
mmo.h
ギルドスキルのenumを追加(src/map/skill.hから移動)
(src/map)
skill.h
ギルドスキルのenumを削除(src/common/mmo.hに移動)
guild.c
guild_checkskill スキルの範囲チェックを追加
guild_skillup スキルの範囲チェックを追加
skill.c
skill_additional_effect display_snatcher_skill_failの処理を追加
skill_castend_nodamage_id devotion_level_differenceの処理を追加
battle.c
display_snatcher_skill_fail,devotion_level_differenceの初期化を追加
(src/char)
int_guild.c
guild_checkskill スキルの範囲チェックを追加
mapif_parse_GuildSkillUp スキルの範囲チェックを追加
char.c
parse_char 不正なパケットを受けた場合にはダンプするよう修正
char_divorce i<MAX_INVENTORYをj<MAX_INVENTORYに変更
(conf)
battle_athena.conf
display_snatcher_skill_fail,devotion_level_differenceを追加
--------------------
//1060 by mosya
・モンスターがスキル詠唱中に座標ズレを起こす問題を修正
・MOBのAI変更。前衛がタゲを取っているのに、後衛に攻撃をしにゆくのを修正
(src/map)
mob.c
mob_ai_sub_hard() 変更
mobskill_castend_id() 変更
mobskill_castend_pos() 変更
mobskill_use_id() 変更
mobskill_use_pos() 変更
--------------------
//1059 by SPDFMember
・eAthenaを参考にリロードDB系統を追加しました。
(conf/)
atcommand_athena.conf
reloaditemdb
reloadmobdb
reloadskilldbを追加
help.txt
reloaditemdb
reloadmobdb
reloadskilldbの説明を追加
msg_athena.conf
89
90
91を追加
(src/map)
atcommand.c
reloaditemdb
reloadmobdb
reloadskilldbを追加。
atcommand.h
AtCommand_ReloadItemDB,
AtCommand_ReloadMobDB,
AtCommand_ReloadSkillDB,を追加
itemdb.c
static int itemdb_readdb(void);追加
itemdb.h
void itemdb_reload(void);追加
mob.c
void mob_reload(void)追加
mob.h
void mob_reload(void);追加
skill.c
void skill_reload(void)追加
skill.h
void skill_reload(void);追加
--------------------
//1058 by lizorett
・ギルド倉庫アイテムがMAX_STORAGE個以上あると取り出せないものがある問題を修正
(src/map)
clif.c
clif_parse_DropItem item_index/item_amountの範囲チェックを削除
(pc_dropitem でチェックする)
clif_parse_MoveToKafra item_amountのチェックを削除
(storage_*storageaddでチェックされている)
clif_parse_MoveFromKafra item_index/item_amountのチェックを削除
(storage_*storagegetでチェックされている)
pc.c
pc_dropitem n/amountの範囲チェックを追加
--------------------
//1057 by BDPQ銀
・ウォーターボールのダメージを本鯖告知値→実測値に修正。
[ MATK+SkillLv*30 → MATK*(1+SkillLv*0.3) ]
(src/map)
battle.c
battle_calc_magic_attack 変更 [ 3848行目あたり ]
--------------------
//1056 by robert
順番を検査するのは不法かどうか
(src/map)
clif.c
clif_parse_DropItem
clif_parse_MoveToKafra
clif_parse_MoveFromKafra
--------------------
//1055 by Nameless
・各種CPUに対するコード最適化オプションを設定(全27種) ※GCC 3.3.1 準拠
・Pentium 3のオプションがSSE2になっていたのを訂正
・稀枝さん、robertさんのPacket情報の取り込み(お二人に感謝)
(/)
makefile
i486/586/p54c/mmx/P3/P4/Cele
k6/k6-2/k6-3/athlon系
Via C3(Eden)
PowerPC/G4系
(src/map/)
clif.c
clif_parse_MoveToKafra{}
コード取り込み
--------------------
//1054 by Nameless
・Cygwinでコンパイルしたathenaが接続53~58人付近で接続不能になるバグを解消
(src/common/)
socket.h
#ifdef CYGWIN
#undef FD_SETSIZE
#define FD_SETSIZE 4096
#endif
以上の行を削除
(/)
makefile
OS_TYPE = -DCYGWIN
↓
OS_TYPE = -DCYGWIN -DFD_SETSIZE=4096
に修正
#optimize for Athlon-4(mobile Athlon)
#CFLAGS += -march=athlon -mcpu=athlon-4 -mfpmath=sse
#optimize for Athlon-mp
#CFLAGS += -march=athlon -mcpu=athlon-mp -mfpmath=sse
#optimize for Athlon-xp
#CFLAGS += -march=athlon -mcpu=athlon-xp -mfpmath=sse
#optimize for pentium3
#CFLAGS += -march=i686 -mcpu=pentium3 -mfpmath=sse -mmmx -msse2
各種CPUの最適化を追加gcc3.1以上を使っている場合は#を外し
て最適化を行うことができると思います。
※makefileでセットしておかないと、コンパイルの際に一部
FD_SETSIZEが小さくなってしまうバグ(?)があるらしく、接続人数が
60人弱で接続不能が発生してしまいます。
--------------------
//1053 by TEILU
・パケットパーサーをタイマー呼出しに変更できる設定の追加
・精錬の可否判定でDBにどのような設定を入れてもアクセサリは
精錬できなかった不具合を修正
(conf/)
map_athena.conf
packet_parse_time: 0 追加
(src/common/)
core.c
packet_parse_time 追加
main() 変更
socket.c
parsepacket_timer() 追加
socket.h
parsepacket_timer() 追加
(src/map/)
map.c
packet_parse_time 追加
map_config_read() 変更
script.c
buildin_getequipisenableref() 変更
--------------------
//1052 by
居場所つきで検索コマンド追加。
GMコマンド追加
@who+ 居場所つき検索
(conf/)
atcommand_athena.conf
who+: 1 追加
(/src/common/)
version.h
Ver 1051->1052 変更
(/src/map)
atcommand.c
ATCOMMAND_FUNC(whop); 追加
{ AtCommand_WhoP,"@who+",0, atcommand_whop }, 追加
atcommand.h
AtCommand_WhoP, 追加
--------------------
//1051 by Plala
・ペコペコ騎乗時MAX Weightを増やせるようにしました。
battle_athena.confで設定可能です。
(conf/)
battle_athena.conf
riding_weight 追加
(map/)
battle.c
battle_config.riding_weight 追加
battle.h