-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjyconst.lua
3777 lines (3615 loc) · 91.7 KB
/
jyconst.lua
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
--设置全局变量CC,保存游戏中使用的常数
function SetGlobalConst()
--无酒不欢:基本完整的SDL2键码,便于设置快捷键
VK_ESCAPE=27
VK_SPACE=32 --注意这里的空格实际上不需要定义,因为底层会自动把空格转换成回车
VK_RETURN=13
VK_F1=1073741882
VK_F2=1073741883
VK_F3=1073741884
VK_F4=1073741885
VK_A = 97
VK_B = 98
VK_C = 99
VK_D = 100
VK_E = 101
VK_F = 102
VK_G = 103
VK_H = 104
VK_I = 105
VK_J = 106
VK_K = 107
VK_L = 108
VK_M = 109
VK_N = 110
VK_O = 111
VK_P = 112
VK_Q = 113
VK_R = 114
VK_S = 115
VK_T = 116
VK_U = 117
VK_V = 118
VK_W = 119
VK_X = 120
VK_Y = 121
VK_Z = 122
VK_BACKSPACE = 8
VK_UP=1073741906
VK_DOWN=1073741905
VK_LEFT=1073741904
VK_RIGHT=1073741903
VK_PGUP=1073741899
VK_PGDN=1073741902
-- 游戏中颜色定义
C_STARTMENU = RGB(132, 0, 4)
C_RED = RGB(216, 20, 24)
C_WHITE = RGB(236, 236, 236)
C_ORANGE = RGB(252, 148, 16)
C_GOLD = RGB(236, 200, 40)
C_BLACK = RGB(0, 0, 0)
M_Black = RGB(0, 0, 0)
M_Sienna = RGB(160, 82, 45)
M_DarkOliveGreen = RGB(85, 107, 47)
M_DarkGreen = RGB(0, 100, 0)
M_DarkSlateBlue = RGB(72, 61, 139)
M_Navy = RGB(0, 0, 128)
M_Indigo = RGB(75, 0, 130)
M_DarkSlateGray = RGB(47, 79, 79)
M_DarkRed = RGB(139, 0, 0)
M_DarkOrange = RGB(255, 140, 0)
M_Olive = RGB(128, 128, 0)
M_Green = RGB(0, 128, 0)
M_Teal = RGB(0, 128, 128)
M_Blue = RGB(0, 0, 255)
M_SlateGray = RGB(112, 128, 144)
M_DimGray = RGB(105, 105, 105)
M_Red = RGB(255, 0, 0)
M_SandyBrown = RGB(244, 164, 96)
M_YellowGreen = RGB(154, 205, 50)
M_SeaGreen = RGB(46, 139, 87)
M_MediumTurquoise = RGB(72, 209, 204)
M_RoyalBlue = RGB(65, 105, 225)
M_Purple = RGB(128, 0, 128)
M_Gray = RGB(128, 128, 128)
M_Magenta = RGB(255, 0, 255)
M_Orange = RGB(255, 165, 0)
M_Yellow = RGB(255, 255, 0)
M_Lime = RGB(0, 255, 0)
M_Cyan = RGB(0, 255, 255)
M_DeepSkyBlue = RGB(0, 191, 255)
M_DarkOrchid = RGB(153, 50, 204)
M_Silver = RGB(192, 192, 192)
M_Pink = RGB(255, 192, 203)
M_Wheat = RGB(245, 222, 179)
M_Wheat2 = RGB(205, 182, 139)
M_LemonChiffon = RGB(255, 250, 205)
M_PaleGreen = RGB(152, 251, 152)
M_PaleTurquoise = RGB(175, 238, 238)
M_LightBlue = RGB(173, 216, 230)
M_Plum = RGB(221, 160, 221)
M_White = RGB(255, 255, 255)
MilkWhite =RGB(255, 255, 204)
LimeGreen = RGB(100,200, 90)
Lime = RGB(0,255,0)
LightGreen = RGB(144,238,144)
LightSkyBlue = RGB(135,206,250)
green1 = RGB(145, 235, 45)
OliveDrab = RGB(107, 142, 35)
Snow3 = RGB(205, 201, 201)
grey21 = RGB(54, 54, 54)
LightSlateBlue = RGB(132, 112, 255)
Violet = RGB(208, 152, 208)
PinkRed = RGB(255, 102, 102)
LightPurple = RGB(165, 28, 218)
Color_Hurt1 = RGB(255, 215, 0)
TG_Red = RGB(216, 20, 24)
TG_Red_Bright = RGB(248, 40, 44)
Dark_Gold = RGB(216, 180, 20)
S_Yellow = RGB(245, 215, 15)
LightYellow = RGB(255, 242, 204)
LightYellow2 = RGB(255, 229, 153)
LightYellow3 = RGB(255, 217, 102)
LIFE_BAR_SELF = RGB(98, 217, 47)
LIFE_BAR_FRIEND = RGB(34, 116, 185)
LIFE_BAR_ENERMY = RGB(192,57, 98)
-- 游戏状态定义
GAME_START =0 --开始画面
GAME_FIRSTMMAP = 1 --第一次显示主地图
GAME_MMAP =2; --主地图
GAME_FIRSTSMAP = 3 --第一次显示主地图
GAME_SMAP =4; --场景地图
GAME_WMAP =5; --战斗地图
GAME_DEAD =6; --死亡画面
GAME_END =7; --结束
GAME_NEWNAME = 8; --开启新游戏
--游戏数据全局变量
CC={}; --定义游戏中使用的常量,这些可以在修改游戏时修改之
--实际的屏幕宽度与高度
CC.ScreenW=lib.GetScreenW(); --显示窗口宽高
CC.ScreenH=lib.GetScreenH();
CC.SrcCharSet=0; --源代码的字符集 0 gb 1 big5,用于转换R×。 如果源码被转换为big5,则应设为1
CC.OSCharSet=CONFIG.CharSet; --OS 字符集,-1 系统判断,0 GB, 1 Big5
CC.FontName=CONFIG.FontName; --显示字体
--定义记录文件名。S和D由于是固定大小,因此不再定义idx了。
CC.R_IDXFilename = {[0] = CONFIG.DataPath .. "ranger.idx"}
CC.R_GRPFilename = {[0] = CONFIG.DataPath .. "ranger.grp"}
CC.S_Filename = {[0] = CONFIG.DataPath .. "allsin.grp"}
CC.D_Filename = {[0] = CONFIG.DataPath .. "alldef.grp"}
CC.SavePath = CONFIG.DataPath .. "save/";
CC.R_GRP = CC.SavePath.."r%d.grp"
CC.S_GRP = CC.SavePath.."s%d.grp"
CC.D_GRP = CC.SavePath.."d%d.grp"
CC.SaveNum = 10; --存档数量为10
CC.TempS_Filename=CONFIG.DataPath .. "allsinbk.grp";
CC.PaletteFile=CONFIG.DataPath .. "mmap.col";
CC.FirstFile=CONFIG.PicturePath .. "title.png";
CC.DeadFile=CONFIG.PicturePath .. "dead.png";
CC.MMapFile={CONFIG.DataPath .. "earth.002",
CONFIG.DataPath .. "surface.002",
CONFIG.DataPath .. "building.002",
CONFIG.DataPath .. "buildx.002",
CONFIG.DataPath .. "buildy.002"};
--各种贴图文件名。这里只给出文件名,扩展名必须为idx/grp
CC.MMAPPicFile = {CONFIG.DataPath .. "mmap.idx", CONFIG.DataPath .. "mmap.grp"}
CC.SMAPPicFile = {CONFIG.DataPath .. "smap.idx", CONFIG.DataPath .. "smap.grp"}
CC.WMAPPicFile = {CONFIG.DataPath .. "wmap.idx", CONFIG.DataPath .. "wmap.grp"}
CC.EFTFile = {CONFIG.DataPath .. "Eft.idx", CONFIG.DataPath .. "Eft.grp"}
CC.FightPicFile = {CONFIG.DataPath .. "fight/fight%03d.idx", CONFIG.DataPath .. "fight/fight%03d.grp"}
CC.HeadPath = CONFIG.DataPath .. "head/";
CC.HeadNum = 1010;
CC.ThingPicFile = {CONFIG.DataPath .. "thing.idx", CONFIG.DataPath .. "thing.grp"}
CC.IconPath = CONFIG.DataPath .. "icons/";
CC.IconNum = 1010;
CC.UIPath = CONFIG.DataPath .. "UI/";
CC.UINum = 1010;
CC.PTPath = CONFIG.DataPath .. "Portrait/";
CC.PTNum = 1010;
if CONFIG.MP3 == 1 then
CC.MIDIFile=CONFIG.SoundPath .. "game%02d.mp3";
else
CC.MIDIFile=CONFIG.SoundPath .. "game%02d.mid";
end
CC.OGGFile=CONFIG.SoundPath .. "game%02d.ogg";
CC.ATKFile=CONFIG.SoundPath .. "atk%02d.wav";
CC.EFile=CONFIG.SoundPath .. "e%02d.wav";
CC.WarFile=CONFIG.DataPath .. "war.sta";
CC.WarMapFile={CONFIG.DataPath .. "warfld.idx",
CONFIG.DataPath .. "warfld.grp"};
CC.TRP = CONFIG.DataPath.."talk.grp"
CC.TDX = CONFIG.DataPath.."talk.idx"
CC.Acvmts = CONFIG.DataPath .. "Achievements"
--定义记录文件R×结构。 lua不支持结构,无法直接从二进制文件中读取,因此需要这些定义,用table中不同的名字来仿真结构。
CC.TeamNum=15; --队伍人数
CC.MyThingNum=400 --主角物品数量
CC.ItemInfoPath = CONFIG.ScriptPath .. "ItemInfo/"
--版本号
CC.Version="版本 1.42"
--动态显示提示
CC.Timer={
stime=0,
status=0,
str='',
len=0,
fun=demostr,
};
--动态显示的内容
CC.RUNSTR={
'快捷键 F1-马车 F3-队列 F4-整理物品 H-回家',
'多培养一些队友,可以让你后面的战斗更轻松',
'全球最大金庸MOD交流群是可以自由黑山的地方 QQ群号:624432140',
'建议在小村把队友和主角练至最高的30级再出门历险',
'小村的厨灶和炼丹炉可以制作提升生命和内力上限的药品'
};
CC.Base_S={}; --保存基本数据的结构,以便以后存取
CC.Base_S["乘船"]={0,0,2} -- 起始位置(从0开始),数据类型(0有符号 1无符号,2字符串),长度
CC.Base_S["无用"]={2,0,2};
CC.Base_S["人X"]={4,0,2};
CC.Base_S["人Y"]={6,0,2};
CC.Base_S["人X1"]={8,0,2};
CC.Base_S["人Y1"]={10,0,2};
CC.Base_S["人方向"]={12,0,2};
CC.Base_S["船X"]={14,0,2};
CC.Base_S["船Y"]={16,0,2};
CC.Base_S["船X1"]={18,0,2};
CC.Base_S["船Y1"]={20,0,2};
CC.Base_S["船方向"]={22,0,2};
CC.Base_S["难度"]={24,0,2};
CC.Base_S["标准"]={26,0,2};
CC.Base_S["畅想"]={28,0,2};
CC.Base_S["特殊"]={30,0,2};
CC.Base_S["单通"]={32,0,2};
CC.Base_S["周目"]={34,0,2};
CC.Base_S["天书数量"]={36,0,2};
for i=1,CC.TeamNum do
CC.Base_S["队伍" .. i]={38+2*(i-1),0,2};
end
for i=1,CC.MyThingNum do
CC.Base_S["物品" .. i]={68+4*(i-1),0,2};
CC.Base_S["物品数量" .. i]={68+4*(i-1)+2,0,2};
end
CC.PersonSize=254; --每个人物数据占用字节
CC.Person_S={}; --保存人物数据的结构,以便以后存取
CC.Person_S["代号"]={0,0,2}
CC.Person_S["头像代号"]={2,0,2}
CC.Person_S["生命增长"]={4,0,2}
CC.Person_S["无用"]={6,0,2}
CC.Person_S["姓名"]={8,2,10}
CC.Person_S["外号"]={18,2,10}
CC.Person_S["性别"]={28,0,2}
CC.Person_S["等级"]={30,0,2}
CC.Person_S["经验"]={32,1,2}
CC.Person_S["生命"]={34,0,2}
CC.Person_S["生命最大值"]={36,0,2}
CC.Person_S["受伤程度"]={38,0,2}
CC.Person_S["中毒程度"]={40,0,2}
CC.Person_S["体力"]={42,0,2}
CC.Person_S["物品修炼点数"]={44,0,2}
CC.Person_S["武器"]={46,0,2}
CC.Person_S["防具"]={48,0,2}
for i=1,5 do
CC.Person_S["出招动画帧数" .. i]={50+2*(i-1),0,2};
CC.Person_S["出招动画延迟" .. i]={60+2*(i-1),0,2};
CC.Person_S["武功音效延迟" .. i]={70+2*(i-1),0,2};
end
CC.Person_S["内力性质"]={80,0,2}
CC.Person_S["内力"]={82,0,2}
CC.Person_S["内力最大值"]={84,0,2}
CC.Person_S["攻击力"]={86,0,2}
CC.Person_S["轻功"]={88,0,2}
CC.Person_S["防御力"]={90,0,2}
CC.Person_S["医疗能力"]={92,0,2}
CC.Person_S["用毒能力"]={94,0,2}
CC.Person_S["解毒能力"]={96,0,2}
CC.Person_S["抗毒能力"]={98,0,2}
CC.Person_S["拳掌功夫"]={100,0,2}
CC.Person_S["指法技巧"]={102,0,2}
CC.Person_S["御剑能力"]={104,0,2}
CC.Person_S["耍刀技巧"]={106,0,2}
CC.Person_S["特殊兵器"]={108,0,2}
CC.Person_S["暗器技巧"]={110,0,2}
CC.Person_S["武学常识"]={112,0,2}
CC.Person_S["品德"]={114,0,2}
CC.Person_S["攻击带毒"]={116,0,2}
CC.Person_S["左右互搏"]={118,0,2}
CC.Person_S["声望"]={120,0,2}
CC.Person_S["资质"]={122,0,2}
CC.Person_S["修炼物品"]={124,0,2}
CC.Person_S["修炼点数"]={126,0,2}
for i=1,12 do
CC.Person_S["武功" .. i]={128+2*(i-1),0,2};
CC.Person_S["武功等级" .. i]={152+2*(i-1),0,2};
end
for i=1,4 do
CC.Person_S["携带物品" .. i]={176+2*(i-1),0,2};
CC.Person_S["携带物品数量" .. i]={184+2*(i-1),0,2};
end
for i=1,4 do
CC.Person_S["天赋外功"..i]={192+2*(i-1),0,2};
end
CC.Person_S["天赋内功"]={200,0,2}
CC.Person_S["天赋轻功"]={202,0,2}
CC.Person_S["实战"]={204,0,2}
CC.Person_S["出战"]={206,0,2}
CC.Person_S["休战"]={208,0,2}
CC.Person_S["主运内功"]={210,0,2}
CC.Person_S["主运轻功"]={212,0,2}
CC.Person_S["六如觉醒"]={214,0,2}
CC.Person_S["个人觉醒"]={216,0,2}
CC.Person_S["畅想分阶"]={218,0,2}
CC.Person_S["外号2"]={220,2,10}
CC.Person_S["冰封程度"]={230,0,2}
CC.Person_S["血量翻倍"]={232,0,2}
CC.Person_S["论剑奖励"]={234,0,2}
CC.Person_S["灼烧程度"]={236,0,2}
CC.Person_S["行为模式"]={238,0,2}
CC.Person_S["优先使用"]={240,0,2}
CC.Person_S["是否吃药"]={242,0,2}
CC.Person_S["生命阈值"]={244,0,2}
CC.Person_S["内力阈值"]={246,0,2}
CC.Person_S["体力阈值"]={248,0,2}
CC.Person_S["禁用自动"]={250,0,2}
CC.Person_S["特色指令"]={252,0,2}
CC.ThingSize=200; --每个人物数据占用字节
CC.Thing_S={};
CC.Thing_S["代号"]={0,0,2}
CC.Thing_S["名称"]={2,2,20}
CC.Thing_S["名称2"]={22,2,20}
CC.Thing_S["物品说明"]={42,2,30}
CC.Thing_S["练出武功"]={72,0,2}
CC.Thing_S["暗器动画编号"]={74,0,2}
CC.Thing_S["使用人"]={76,0,2}
CC.Thing_S["装备类型"]={78,0,2}
CC.Thing_S["显示物品说明"]={80,0,2}
CC.Thing_S["类型"]={82,0,2}
CC.Thing_S["未知5"]={84,0,2}
CC.Thing_S["未知6"]={86,0,2}
CC.Thing_S["未知7"]={88,0,2}
CC.Thing_S["加生命"]={90,0,2}
CC.Thing_S["加生命最大值"]={92,0,2}
CC.Thing_S["加中毒解毒"]={94,0,2}
CC.Thing_S["加体力"]={96,0,2}
CC.Thing_S["改变内力性质"]={98,0,2}
CC.Thing_S["加内力"]={100,0,2}
CC.Thing_S["加内力最大值"]={102,0,2}
CC.Thing_S["加攻击力"]={104,0,2}
CC.Thing_S["加轻功"]={106,0,2}
CC.Thing_S["加防御力"]={108,0,2}
CC.Thing_S["加医疗能力"]={110,0,2}
CC.Thing_S["加用毒能力"]={112,0,2}
CC.Thing_S["加解毒能力"]={114,0,2}
CC.Thing_S["加抗毒能力"]={116,0,2}
CC.Thing_S["加拳掌功夫"]={118,0,2}
CC.Thing_S["加指法技巧"]={120,0,2}
CC.Thing_S["加御剑能力"]={122,0,2}
CC.Thing_S["加耍刀技巧"]={124,0,2}
CC.Thing_S["加特殊兵器"]={126,0,2}
CC.Thing_S["加暗器技巧"]={128,0,2}
CC.Thing_S["加武学常识"]={130,0,2}
CC.Thing_S["加品德"]={132,0,2}
CC.Thing_S["加攻击次数"]={134,0,2}
CC.Thing_S["加攻击带毒"]={136,0,2}
CC.Thing_S["仅修炼人物"]={138,0,2}
CC.Thing_S["需内力性质"]={140,0,2}
CC.Thing_S["需内力"]={142,0,2}
CC.Thing_S["需攻击力"]={144,0,2}
CC.Thing_S["需轻功"]={146,0,2}
CC.Thing_S["需用毒能力"]={148,0,2}
CC.Thing_S["需医疗能力"]={150,0,2}
CC.Thing_S["需解毒能力"]={152,0,2}
CC.Thing_S["需拳掌功夫"]={154,0,2}
CC.Thing_S["需指法技巧"]={156,0,2}
CC.Thing_S["需御剑能力"]={158,0,2}
CC.Thing_S["需耍刀技巧"]={160,0,2}
CC.Thing_S["需特殊兵器"]={162,0,2}
CC.Thing_S["需暗器技巧"]={164,0,2}
CC.Thing_S["需资质"]={166,0,2}
CC.Thing_S["需经验"]={168,0,2}
CC.Thing_S["练出物品需经验"]={170,0,2}
CC.Thing_S["需材料"]={172,0,2}
for i=1,5 do
CC.Thing_S["练出物品" .. i]={174+2*(i-1),0,2};
CC.Thing_S["需要物品数量" .. i]={184+2*(i-1),0,2};
end
CC.Thing_S["是否特效"]={194,0,2}
CC.Thing_S["装备经验"]={196,0,2}
CC.Thing_S["装备等级"]={198,0,2}
CC.SceneSize=54; --每个场景数据占用字节
CC.Scene_S={};
CC.Scene_S["代号"]={0,0,2}
CC.Scene_S["名称"]={2,2,10}
CC.Scene_S["出门音乐"]={12,0,2}
CC.Scene_S["进门音乐"]={14,0,2}
CC.Scene_S["跳转场景"]={16,0,2}
CC.Scene_S["进入条件"]={18,0,2}
CC.Scene_S["外景入口X1"]={20,0,2}
CC.Scene_S["外景入口Y1"]={22,0,2}
CC.Scene_S["外景入口X2"]={24,0,2}
CC.Scene_S["外景入口Y2"]={26,0,2}
CC.Scene_S["入口X"]={28,0,2}
CC.Scene_S["入口Y"]={30,0,2}
CC.Scene_S["出口X1"]={32,0,2}
CC.Scene_S["出口X2"]={34,0,2}
CC.Scene_S["出口X3"]={36,0,2}
CC.Scene_S["出口Y1"]={38,0,2}
CC.Scene_S["出口Y2"]={40,0,2}
CC.Scene_S["出口Y3"]={42,0,2}
CC.Scene_S["跳转口X1"]={44,0,2}
CC.Scene_S["跳转口Y1"]={46,0,2}
CC.Scene_S["跳转口X2"]={48,0,2}
CC.Scene_S["跳转口Y2"]={50,0,2}
CC.Scene_S["场景类型"]={52,0,2}
CC.WugongSize=140; --每个武功数据占用字节
CC.Wugong_S={};
CC.Wugong_S["代号"]={0,0,2}
CC.Wugong_S["名称"]={2,2,10}
CC.Wugong_S["未知1"]={12,0,2}
CC.Wugong_S["未知2"]={14,0,2}
CC.Wugong_S["未知3"]={16,0,2}
CC.Wugong_S["未知4"]={18,0,2}
CC.Wugong_S["未知5"]={20,0,2}
CC.Wugong_S["出招音效"]={22,0,2}
CC.Wugong_S["武功类型"]={24,0,2}
CC.Wugong_S["武功动画&音效"]={26,0,2}
CC.Wugong_S["伤害类型"]={28,0,2}
CC.Wugong_S["攻击范围"]={30,0,2}
CC.Wugong_S["消耗内力点数"]={32,0,2}
CC.Wugong_S["敌人中毒点数"]={34,0,2}
for i=1,10 do
CC.Wugong_S["攻击力" .. i]={36+2*(i-1),0,2};
CC.Wugong_S["移动范围" .. i]={56+2*(i-1),0,2};
CC.Wugong_S["杀伤范围" .. i]={76+2*(i-1),0,2};
CC.Wugong_S["加内力" .. i]={96+2*(i-1),0,2};
CC.Wugong_S["杀内力" .. i]={116+2*(i-1),0,2};
end
CC.Wugong_S["冰封系数"]={136,0,2}
CC.Wugong_S["灼烧系数"]={138,0,2}
CC.ShopSize=36; --每个小宝商店数据占用字节
CC.Shop_S={};
for i=1,6 do
CC.Shop_S["物品" .. i]={0+2*(i-1),0,2};
CC.Shop_S["物品数量" .. i]={12+2*(i-1),0,2};
CC.Shop_S["物品价格" .. i]={24+2*(i-1),0,2};
end
CC.ShopScene={}; --小宝商店场景数据,sceneid 场景id,d_shop 小宝位置D*, d_leave 小宝离开D*,一般在场景出口,路过触发
CC.ShopScene[0]={sceneid=1,d_shop=16,d_leave={17,18}, };
CC.ShopScene[1]={sceneid=3,d_shop=14,d_leave={15,16}, };
CC.ShopScene[2]={sceneid=40,d_shop=20,d_leave={21,22}, };
CC.ShopScene[3]={sceneid=60,d_shop=16,d_leave={17,18}, };
CC.ShopScene[4]={sceneid=61,d_shop=9,d_leave={10,11,12}, };
--其他常量
CC.MWidth=480; --主地图宽
CC.MHeight=480; --主地图高
CC.SWidth=64; --子场景地图大小
CC.SHeight=64;
CC.DNum=200; --D*每个场景的事件数
CC.XScale=CONFIG.XScale; --贴图一半的宽高
CC.YScale=CONFIG.YScale;
CC.Frame=CONFIG.FrameRate; --每帧毫秒数
CC.BattleDelay=CONFIG.BattleDelay; --战斗点数显示的延迟(毫秒)
CC.SceneMoveFrame=100; --场景移动帧速,用于场景移动事件
CC.PersonMoveFrame=100; --主角移动速度,用于主角移动事件
CC.AnimationFrame=150; --动画显示帧速,用于显示动画事件
CC.WarAutoDelay=300; --自动战斗时显示头像的延时
CC.DirectX={0,1,-1,0}; --不同方向x,y的加减值,用于走路改变坐标值
CC.DirectY={-1,0,0,1};
CC.MyStartPicM=2501; --男主角走路起始贴图
CC.MyStartPicF=5001; --女主角走路起始贴图
CC.BoatStartPic=3715; --船起始贴图
CC.Level=30; ---人物等级和每等级经验
CC.Exp={ 50, 150, 300 ,500 , 750 ,
1050, 1400, 1800 ,2250 , 2750 ,
3850, 5050, 6350 ,7750 , 9250 ,
10850, 12550, 14350 ,16750 , 18250 ,
21400, 24700, 28150 ,31750 , 35500 ,
39400, 43450, 47650 ,52000 , 60000 , [0] = 0 };
CC.MMapBoat={}; --主地图船可以进入的贴图
local tmpBoat={ {0x166,0x16a},{0x176,0x17c},{0x1ca,0x1d0},{0x1fa,0x262},{0x3f8,0x3fe},};
for i,v in ipairs(tmpBoat) do --把这些数据变换成数组,其中有值就是可以进入
for j=v[1],v[2],2 do
CC.MMapBoat[j]=1;
end
end
--Alungky 解决船开到深海区时,显示为人的问题
local tmpForbid={{0x264,0x29E}}
for i,v in ipairs(tmpForbid) do
for j=v[1],v[2],2 do
CC.MMapBoat[j]=1;
end
end
CC.SceneWater={}; --场景人不能进入的贴图
local tmpWater={ {0x166,0x16a},{0x176,0x17c},{0x1ca,0x1d0},{0x1fa,0x262},{0x332,0x338},
{0x346,0x346},{0x3a6,0x3a8},{0x3f8,0x3fe},{0x52c,0x544},};
for i,v in ipairs(tmpWater) do --把这些数据变换成数组,其中空项就是可以进入的贴图
for j=v[1],v[2],2 do
CC.SceneWater[j]=1;
end
end
CC.WarWater={}; --战斗地图人不能进入的贴图
local tmpWater={ {0x166,0x16a},{0x176,0x17c},{0x1ca,0x1d0},{0x1fa,0x262},{0x332,0x338},
{0x346,0x346},{0x3a6,0x3a8},{0x3f8,0x3fe},{0x52c,0x544},};
for i,v in ipairs(tmpWater) do --把这些数据变换成数组,其中空项就是可以进入的贴图
for j=v[1],v[2],2 do
CC.WarWater[j]=1;
end
end
--武功招式
CC.KFMove={}
--逍遥游3招
CC.KFMove[2]={
{'饭来张口',600},
{'沿门托钵',600},
{'见人伸手',600}
}
--五毒神掌1招
CC.KFMove[3]={
{'五毒摧心',700}
}
--鹰爪功2招
CC.KFMove[4]={
{'锁喉',700},
{'探目',700}
}
--寒冰绵掌1招
CC.KFMove[5]={
{'寒冰封体',700}
}
--美女拳法3招
CC.KFMove[6]={
{'红玉击鼓',700},
{'文姬归汉',700},
{'木兰弯弓',700}
}
--绵掌1招
CC.KFMove[7]={
{'绵绵不绝',700}
}
--天山六阳掌3招
CC.KFMove[8]={
{'阳歌天钧',900},
{'阳春白雪',900},
{'阳关三叠',900}
}
--白驼雪山掌1招
CC.KFMove[9]={
{'雪山白驼',800}
}
--百花错拳2招
CC.KFMove[10]={
{'红花天梦',800},
{'天池缭乱',800}
}
--九阴白骨爪1招
CC.KFMove[11]={
{'冥华幻灭',1100}
}
--落英神剑掌3招
CC.KFMove[12]={
{'珞樱缤纷',900},
{'雨急风狂',900},
{'江城飞花',900}
}
--铁掌1招
CC.KFMove[13]={
{'壁立千仞',900}
}
--天山折梅手2招
CC.KFMove[14]={
{'踏雪折梅',1200},
{'天山灵鹫',1200}
}
--空明拳3招
CC.KFMove[15]={
{'深藏若虚',1200},
{'天马行空',1200},
{'空空如也',1200}
}
--太极拳3招
CC.KFMove[16]={
{'上步野马分鬃',1000},
{'提步高探马',1000},
{'白鹤晾翅',1000}
}
--一阳指3招
CC.KFMove[17]={
{'梵指南天',1200},
{'指矢天日',1200},
{'紫微伏龙',1200}
}
--弹指神通2招
CC.KFMove[18]={
{'弹指一瞬',1200},
{'踏月香华',1200}
}
--幻阴指1招
CC.KFMove[19]={
{'魔幻天阴',1000}
}
--龙爪手1招
CC.KFMove[20]={
{'沛然有雨',1000}
}
--玄冥神掌2招
CC.KFMove[21]={
{'玄冥侵体',1100},
{'冰毒缭绕',1100}
}
--大金刚掌3招
CC.KFMove[22]={
{'大梵炼狱',1000},
{'九仪崩乱',1000},
{'地火燃穹',1000}
}
--七伤拳2招
CC.KFMove[23]={
{'藏离精失',1000},
{'三焦齐逆',1000}
}
--须弥山神掌3招
CC.KFMove[24]={
{'色空四显',1200},
{'无色无相',1200},
{'慑伏外道',1200}
}
--黯然销魂掌6招
CC.KFMove[25]={
{'拖泥带水',1300},
{'倒行逆施',1300},
{'行尸走肉',1300},
{'魂不守舍',1300},
{'心惊肉跳',1300},
{'六神不安',1300}
}
--松风剑法3招
CC.KFMove[27]={
{'平沙落雁',300},
{'鸿飞冥冥',300},
{'碧渊腾蛟',300}
}
--雷震剑术2招
CC.KFMove[28]={
{'轰雷掣电',300},
{'雷霆万钧',300}
}
--三分剑术3招
CC.KFMove[29]={
{'冰河倒泻',400},
{'雪中奇莲',400},
{'千岩竞秀',400}
}
--恒山剑法3招
CC.KFMove[30]={
{'万花齐放',500},
{'万卉争艳',500},
{'清澈梅花',500}
}
--泰山剑法3招
CC.KFMove[31]={
{'五大夫剑',500},
{'岱宗如何',500},
{'七星落长空',500}
}
--衡山剑法3招
CC.KFMove[32]={
{'泉鸣芙蓉',600},
{'鹤翔紫盖',600},
{'天柱云气',600}
}
--嵩山剑法3招
CC.KFMove[33]={
{'叠翠浮青',600},
{'玉进天池',600},
{'天外玉龙',600}
}
--华山剑法3招
CC.KFMove[34]={
{'苍松迎客',600},
{'金雁横空',600},
{'天坤倒悬',600}
}
--雪山剑法3招
CC.KFMove[35]={
{'雪泥鸿爪',600},
{'梅雪争春',600},
{'雪山六出',600}
}
--柔云剑法3招
CC.KFMove[36]={
{'杏花春雨',700},
{'满天花雨',700},
{'玉带围腰',700}
}
--两仪剑法2招
CC.KFMove[37]={
{'金针渡劫',800},
{'峭壁断云',800}
}
--玉萧剑法5招
CC.KFMove[38]={
{'山外清音',800},
{'金声玉振',800},
{'凤曲长鸣',800},
{'响隔楼台',800},
{'棹歌中流',800}
}
--全真剑法5招
CC.KFMove[39]={
{'大江似练',800},
{'春意阑珊',800},
{'斜风细雨',800},
{'星河欲转',800},
{'桃花流水',800}
}
--金蛇剑法5招
CC.KFMove[40]={
{'金光蛇影',900},
{'蛇影万馈',900},
{'金蛇化龙',900},
{'灵蛇电闪',900},
{'蛇困愁城',900}
}
--倚天剑法3招
CC.KFMove[41]={
{'玉碎昙香',1000},
{'天劫俱灭',1000},
{'倚天照海',1000}
}
--玉女剑法6招
CC.KFMove[42]={
{'清饮小酌',800},
{'浪迹天涯',800},
{'举案齐眉',800},
{'皓腕玉镯',800},
{'冷月窥人',800},
{'竹帘临池',800}
}
--斗转星移2招
CC.KFMove[43]={
{'星落云散',1200},
{'星光日月',1200}
}
--苗家剑法6招
CC.KFMove[44]={
{'冲天掌苏秦背剑',1000},
{'黄龙转身吐须势',1000},
{'迎门腿反劈华山',1000},
{'洗剑怀中抱月',1000},
{'上步云边摘月',1000},
{'提撩剑白鹤舒翅',1000}
}
--玄铁剑法4招
CC.KFMove[45]={
{'逆击',1500},
{'倒劈',1500},
{'顺刺',1500},
{'横削',1500}
}
--太极剑法3招
CC.KFMove[46]={
{'仙人指路',1300},
{'青龙出水',1300},
{'三环套月',1300}
}
--独孤九剑9招
CC.KFMove[47]={
{'总决式',1600},
{'破剑式',1600},
{'破枪式',1600},
{'破刀式',1600},
{'破鞭式',1600},
{'破索式',1600},
{'破掌式',1600},
{'破箭式',1600},
{'破气式',1600}
}
--辟邪剑法6招
CC.KFMove[48]={
{'指打奸邪',300},
{'飞燕穿柳',500},
{'花开见佛',700},
{'锺馗抉目',900},
{'扫荡群魔',1100},
{'紫气东来',1300}
}
--柴刀十八路2招
CC.KFMove[50]={
{'砍',500},
{'劈',500}
}
--鬼头刀法1招
CC.KFMove[52]={
{'鬼见愁',600}
}
--南山刀法2招
CC.KFMove[53]={
{'铁锁横江',600},
{'燕子入巢',600}
}
--鸳鸯刀法2招
CC.KFMove[54]={
{'云蕾花开',1200},
{'玲珑偃月',1200}
}
--狂风刀法2招
CC.KFMove[55]={
{'狂风大作',700},
{'飞沙走石',700}
}
--奇门三才刀2招
CC.KFMove[56]={
{'带醉脱靴',700},
{'奇刀单鞭式',700}
}
--慈悲刀法2招
CC.KFMove[57]={
{'放下屠刀',600},
{'立地成佛',600}
}
--修罗刀1招
CC.KFMove[58]={
{'恨意绵绵',600}
}
--五虎断门刀2招
CC.KFMove[59]={
{'白虎跳涧',600},
{'剪扑自如',600}
}
--反两仪刀法2招
CC.KFMove[60]={
{'重节守义',700},
{'万劫不复',700}
}
--金乌刀法2招
CC.KFMove[61]={
{'梅雪逢夏',700},
{'赤日炎炎',700}
}
--夫妻刀法4招
CC.KFMove[62]={
{'女貌郎才珠万斛',1200},
{'天教丽质为眷属',1200},
{'清风引佩下瑶台',1200},
{'明月照妆成金屋',1200}
}
--血刀大法3招
CC.KFMove[63]={
{'呕心沥血',800},
{'批纸削腐',800},
{'流星经天',800}
}
--玄虚刀法2招
CC.KFMove[64]={
{'玄之又玄',900}
}
--燃木刀法2招
CC.KFMove[65]={
{'钻木取火',900},
{'无名孽火',900}
}
--火焰刀法2招
CC.KFMove[66]={
{'炽炎破军',1200},
{'昊火焚天',1200}
}
--胡家刀法2招
CC.KFMove[67]={
{'穿手藏刀式',1000},
{'八方藏刀式',1000}
}
--杨家枪法3招
CC.KFMove[68]={
{'回马枪',500},
{'春雷震怒',500},
{'凤点头',500}
}
--中平枪法2招
CC.KFMove[70]={
{'中正锁喉',600},
{'枪平九洲',600}
}
--裴将军帖2招
CC.KFMove[71]={
{'大君制六合',700},
{'猛将清九垓',700}
}
--棋盘招式8招
CC.KFMove[72]={
{'紧气',800},
{'提子',800},
{'大飞',800},
{'小飞',800},
{'天元',800},
{'跳',800},
{'立',800},
{'长',800}
}
--鹤蛇八打2招
CC.KFMove[74]={
{'冲天一鹤',700},
{'仙鹤穿云',700}
}
--大剪刀2招
CC.KFMove[75]={
{'咔嚓',800},
{'我剪',800}
}
--阴阳倒乱刃2招
CC.KFMove[77]={
{"假刀非刀",1000},
{"假剑非剑",1000}
}
--黄沙万里鞭2招
CC.KFMove[78]={
{"血染黄沙",800},
{"飞沙万里",800}
}
--银索金铃2招
CC.KFMove[79]={
{"银索缠身",1100},
{"锁穴金铃",1100}
}
--打狗棒法4招
CC.KFMove[80]={
{'棒打狗头',1400},
{'反截狗臀',1400},
{'獒口夺杖',1400},
{'棒打双犬',1400}
}
--灵蛇杖法2招
CC.KFMove[81]={
{'怪蟒翻身',1400},
{'毒蛇吐信',1400}
}
--金刚伏魔圈4招
CC.KFMove[82]={
{'祗园精舍',1100},
{'诸行无常',1100},
{'娑罗双树',1100},
{'幻梦一场',1100}
}
--无上大力杵3招
CC.KFMove[83]={
{'力战千钧',1200},
{'拔山填海',1200},
{'千钧压顶',1200}