hxp
2019-09-20 67bcc2ab06912fc3d9cf31ceae533da76e50d5ae
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
#!/usr/bin/python
# -*- coding: GBK -*-
#---------------------------------------------------------------------
##@package ChConfig
# @todo: ³£Á¿¶¨Òå
#
# @author panwei
# @date 2010-4-30ÏÂÎç01:46:32
# @version 2.1
#
# @change: "2010-05-21 17:30" zhengyang Ìí¼Ó×¢ÊÍ
# @change: "2010-06-24 14:10" adaws ÐÂÔögameserverÇëÇóÀàÐÍ queryType_CheckNameHasDirty 
# @change: "2010-10-08 11:05" panwei °Î³ý·þÎñÆ÷°æ±¾¿ØÖÆ´úÂë  
# @change: "2013-08-23 15:00" hxp Ôö¼Ó½øÈ븱±¾¿ç·þÇëÇóÀàÐÍ  
# @change: "2013-09-18 15:00" xmnathan ÐÂÔöÅÅÐаñÀàÐÍ
# @change: "2014-09-12 17:00" xmnathan Ôö¼ÓÖ°Òµ´óÀඨÒå
# @change: "2014-10-22 17:30" xmnathan µ÷Õû¿ª·þ»î¶¯ÅÅÐаñ¼Ç¼Ãû´Î¸öÊý
# @change: "2014-11-11 16:30" xmnathan Ôö¼Ó³äÖµÅÅÐаñ
# @change: "2014-12-17 14:50" ljd Ôö¼ÓͼÌÚÅÅÐаñ
#---------------------------------------------------------------------
"""Version = 2014-12-17 14:50"""
#---------------------------------------------------------------------
import os
import IPY_GameServer
import ShareDefine
#---------------------------------------------------------------------
#GameServer·þÎñÆ÷²¿Êð֮ǰÇë¸ù¾ÝĿ¼ʵ¼ÊÇé¿ö¸ü¸ÄÏÂÁвÎÊý
#GameServerPath Îªµ±Ç°µÄGameServerµÄ¸ùĿ¼
GameServerPath = os.getcwd() + "\\"
ScriptPath = GameServerPath + "Script"
 
#---------------------------------------------------------------------
 
#---------------------------------------------------------------------
## ³õʼ»¯½Å±¾
# @param ÎÞ
# @return ·µ»ØÖµÎÞÒâÒå
# @remarks ³õʼ»¯½Å±¾
def InitPython():
    global GameServerPath
    ScriptPath = GameServerPath+"Script"
 
#---------------------------------------------------------------------
## »ñµÃ½Å±¾Â·¾¶
# @param ÎÞ
# @return ·µ»ØÖµ, ½Å±¾Â·¾¶
# @remarks »ñµÃ½Å±¾Â·¾¶
def GetAppPath():
    return GameServerPath
 
##»ñµÃDB·¾¶
# @param ÎÞ²ÎÊý
# @return ·µ»ØÖµµ±Ç°µÄDB·¾¶
def GetDBPath():
    return GameServerPath.split("CoreServerGroup")[0]+ "db\\PyMongoDataServer\\"
 
def GetServerRootPath():
    ##»ñÈ¡·þÎñÆ÷¸ù·¾¶
    return GameServerPath.split("CoreServerGroup")[0]
 
#------Ö÷½ÇÏà¹ØÉ趨
#Ö÷½Ç·¢ÐÍÁбí [Ö°Òµ:·¢ÐÍÁбí]
Def_RoleHair = {
                 ShareDefine.PlayerJob_Warrior : [
                     [10000], #ÄÐ
                     [10000], #Å®
                                                 ], 
 
                ShareDefine.PlayerJob_Wizard : [
                     [10001], #ÄÐ
                     [10001], #Å®
                                                 ], 
 
                ShareDefine.PlayerJob_Assassin : [
                     [10002], #ÄÐ
                     [10002], #Å®
                                                 ],
 
                ShareDefine.PlayerJob_Chaplain : [
                     [10003], #ÄÐ
                     [10003], #Å®
                                                 ],  
 
                ShareDefine.PlayerJob_Knight : [
                     [10008], #ÄÐ
                     [10008], #Å®
                                                 ],  
 
                ShareDefine.PlayerJob_ForceUser : [
                     [10009], #ÄÐ
                     [10009], #Å®
                                                 ],  
 
                ShareDefine.PlayerJob_BowMaster : [
                     [10010], #ÄÐ
                     [10010], #Å®
                                                 ],  
                }
 
#Ö÷½ÇÁ³ÐÍÁбí [Ö°Òµ:Á³ÐÍÁбí]
Def_RoleFace = { 
                ShareDefine.PlayerJob_Warrior : [
                     [10004], #ÄÐ
                     [10004], #Å®
                                                ],
            
                ShareDefine.PlayerJob_Wizard : [
                     [10005], #ÄÐ
                     [10005], #Å®
                                               ], 
 
                ShareDefine.PlayerJob_Assassin : [
                     [10006], #ÄÐ
                     [10006], #Å®
                                                 ],
 
                ShareDefine.PlayerJob_Chaplain : [
                     [10007], #ÄÐ
                     [10007], #Å®
                                                 ],
                
                ShareDefine.PlayerJob_Knight : [
                     [10011], #ÄÐ
                     [10011], #Å®
                                                 ],  
 
                ShareDefine.PlayerJob_ForceUser : [
                     [10012], #ÄÐ
                     [10012], #Å®
                                                 ],  
 
                ShareDefine.PlayerJob_BowMaster : [
                     [10013], #ÄÐ
                     [10013], #Å®
                                                 ],  
                }
#Íæ¼Òʱ¼äµÄ¼Ç¼¸ñʽ
TYPE_Time_Format = "%Y-%m-%d %H:%M:%S"
 
#ÄêÔÂÈÕ¸ñʽ
TYPE_Time_YmdFormat = "%Y-%m-%d"
 
#ÊýÖµÉÏÏÞ(20ÒÚ)
Def_UpperLimit_DWord = ShareDefine.Def_UpperLimit_DWord
#Ö§³Ö³¬20ÒÚÊýÖµµÄÊýÖµµãµ¥Î»ÊýÖµ, 1ÒÚ
Def_PerPointValue = ShareDefine.Def_PerPointValue
 
#²é¿´FBÏÔʾ½çÃæ´¦Àí¼ä¸ô
Def_Show_Fb_Event_Tick = 3000
 
#ÇëÇóÇå¿Õʱ¼ä(120000Ãë)(2·ÖÖÓ)
Def_EventClearTime = 120000
 
#Íæ¼ÒÀ뿪ºó¸±±¾±£´æÊ±¼ä
Def_EmptyFBKeepTime = 5 * 60 * 1000     #5·ÖÖÓ
 
#ÏÂÏߺóÍ˳ö¶ÓÎé±£»¤Ê±³¤, Í¬¸±±¾µÄ¹Ø±Õ±£»¤Ê±³¤
Def_CountdownLeaveTeamTime = 5 * 60 * 1000     #5·ÖÖÓ
 
#×é¶ÓÔÚÏß»ØÓ¦¼ä¸ô
Def_Team_OnlineConfirmTick = 120000
 
#¶ÓÎé×îСÈËÊý
Def_Team_MinPlayerCount = 1
 
#¶ÓÎé×î´óÈËÊý
Def_Team_MaxPlayerCount = ShareDefine.Def_Team_MaxPlayerCount
 
#À뿪¶ÓÎé¹ã²¥¿Í»§¶ËÐÅÏ¢
Def_Team_Sync_LeaveMsg_Self = 0           #×Ô¼ºÀ뿪
Def_Team_Sync_LeaveMsg_OtherKick = 1      #±»ÈËÌß³ö
 
#Íæ¼ÒÔÚÏßÏìӦʱ¼ä
#ÏìÓ¦´íÎóʱ¼ä×î´óÏÞÖÆ´ÎÊý
Def_PlayerOnLineReply_ErrorCount = 100       #100
#ÔÊÐíÏìÓ¦ÑÓ³Ù¼ä¸ôʱ¼ä,5Ãë
Def_PlayerOnLineReply_NoteTick = 5000       #5000
#ÏìÓ¦ÑÓ³Ù×î´ó¼ä¸ôʱ¼ä,10Ãë
Def_PlayerOnLineReply_MaxTick = 30000        #30000
#¿Í»§¶Ë·ÅËÍÏìÓ¦·â°ü¼ä¸ô,30Ãë
Def_PlayerOnLineReply_ClientReply = 30000    #30000
#ÔÚÏß»ØÓ¦´íÎóʱ¼ä
Def_PlayerOnLineReply_Error_Tick = Def_PlayerOnLineReply_ClientReply * 2 #Def_PlayerOnLineReply_ClientReply * 2 
 
#---------ïÚ³µÏà¹Ø
#ïÚ³µÏûʧʱ¼ä,5·ÖÖÓ
Def_PlayerTruckLogoffTick = 1000 * 60 * 5  
 
#---------¼Ò×åÏà¹Ø
Def_PlayerGetFamilyInfoTick = 1000      #Íæ¼ÒÇëÇóµÃµ½¼Ò×åÐÅÏ¢µÄʱ¼ä(1Ãë)
#¼ÓÈë¼Ò×åµÄ×îСµÈ¼¶
Def_Family_JionMinLV = 0
#·þÎñÆ÷¼Ò×å×î´óÊýÁ¿
Def_Family_MaxCnt = 2000
#¼Ò×å×î´óµÈ¼¶
Def_Family_MaxLv = 10
 
#ɾ³ýNÌìǰÉêÇë¼ÓÈë¼Ò×åµÄÐÅÏ¢
Def_Family_ClearRequestAddNote_Day = 3
 
#¼Ò×åÅäÖñíË÷Òý
(
Def_FamilySetting_MaxMemberCnt,       #×î´ó³ÉÔ±Êý
Def_FamilySetting_MaxHuFaCnt  ,       #×î´ó»¤·¨Êý
Def_FamilySetting_MaxZhangLaoCnt,     #×î´ó³¤ÀÏÊý
Def_FamilySetting_LvUpCost,           #¼Ò×åÉý¼¶ÐèÒªÏûºÄÉý¼¶ËùÐè×ʽð
Def_FamilySetting_WeekMissionMoneyMax,#ÿÖÜÈÎÎñ×î´ó¿É»ñµÃÏÉÃË×ʽð
Def_FamilySetting_BossFBCnt,          #BOSS¸±±¾´ÎÊý
Def_FamilySetting_Max,                #±í³¤¶ÈÒì³£(±ØÐë·Å×îºó)
) = range(0, 6 + 1)
FamilySettingDict = {
                     Def_FamilySetting_MaxMemberCnt:'MemberCnt',
                     Def_FamilySetting_MaxHuFaCnt:'DeputyLeaderCnt',
                     Def_FamilySetting_MaxZhangLaoCnt:'EliteCnt',
                     Def_FamilySetting_LvUpCost:'NeedMoney',
                     Def_FamilySetting_WeekMissionMoneyMax:'WeekMissionMoneyMax',
                     Def_FamilySetting_BossFBCnt:'BossFBCnt',
                     }
 
#¼Ò×å³ÉÔ±½Ó¿Ú¶ÔÓ¦¼Ò×åÅäÖñíË÷Òý
Def_FamilyPowLvChangeFamilySettingDict ={
                                         IPY_GameServer.fmlMember:Def_FamilySetting_MaxMemberCnt,
                                         IPY_GameServer.fmlCounsellor:Def_FamilySetting_MaxZhangLaoCnt,
                                         IPY_GameServer.fmlViceLeader:Def_FamilySetting_MaxHuFaCnt,
                                         }
 
#¼Ò×åְλ¶ÔӦȨÏÞ±í
#===============================================================================
# enum    TFamilyMemberLV
# {
#    fmlMember = 0,      ///<ÆÕͨ³ÉÔ±
#    fmlCounsellor,      ///<³¤ÀÏ
#    fmlViceLeader,      ///<»¤·¨
#    fmlLeader,          ///<×峤
# };
#===============================================================================
#{¼Ò×åµÈ¼¶:[Def_PurviewDictKey_]}
Def_Family_MemberLVList =[
                          IPY_GameServer.fmlLeader,
                          IPY_GameServer.fmlViceLeader,
                          IPY_GameServer.fmlCounsellor,
                          IPY_GameServer.fmlMember,
                          ]
                          
(
Def_PurviewDictKey_CanCall,               #ÊÇ·ñÓÐÕÐÈËȨÏÞ
Def_PurviewDictKey_CanChangeFamilyJob,    #ÊÇ·ñ¿ÉÒÔ±ä¸üְλ
Def_PurviewDictKey_CanBroadcast,          #ÊÇ·ñ¿ÉÒÔ·¢²¼¹«¸æ
Def_PurviewDictKey_CanFamilyLvUp,         #ÊÇ·ñ¿ÉÒÔÉý¼¶¼Ò×å
Def_PurviewDictKey_CanClearPack,          #ÊÇ·ñ¿ÉÒÔÇåÀí±¦¿â
Def_PurviewDictKey_CanKickMember,         #ÊÇ·ñ¿ÉÒÔÌß³ö³ÉÔ±
Def_PurviewDictKey_CanOpenBoss,           #ÊÇ·ñ¿ÉÒÔ¿ªÆôbossÕ½
Def_PurviewDictKey_CanSendRedPacket,      #ÊÇ·ñ¿ÉÒÔ¿ªÆôºì°ü
) = range(0, 8)
 
#²é¿´ËùÓмÒ×åµÄʱºò, Ò»Ò³ÄÜÏÔʾ¶àÉÙ¸ö
Def_ViewAllFamilyPageCount = 15
#---------------------------------------------------------------------
 
#ÖØ¶ÁµÄÎļþºó׺ÃûÁбí 
TYPE_Load_Module_Ext = ["py", "pyc"]
 
#´´½¨¼Ò×å,×î´ó×Ö·ûÊý
Def_CreatFamily_MaxStr = 33
#´´½¨½ÇÉ«,×î´ó×Ö·ûÊý£¬ UTF8ÊÇ3¸ö×Ö½Ú ×îÉÙ3¸ö×Öĸ  ×î´ó5ÖÐÎļÓ1¸ö×Öĸ
Def_CreatRole_MaxStr = 16
Def_CreatRole_MinStr = 3
 
 
#---------------------------------------------------------------------
#ÅÅÐаæ(1Ãë)
Def_PlayerBillboard_Tick = 1000
#---------------------------------------------------------------------
#×î´ó±¶ÂÊ
Def_MaxRateValue = ShareDefine.Def_MaxRateValue
#---------------------------------------------------------------------
#GM»î¶¯,ÌØÊâдËÀID,²»ÄÜÓëÈÎÎñID³åÍ»
#ÌØÊâ»î¶¯,È«·þ¾­Ñé±¶ÂÊ
Def_GY_GM_Game_DoubleExp = 123456
#ÌØÊâ»î¶¯,È«·þµôÂä±¶ÂÊ
Def_GY_GM_Game_DropRate = 123457
 
#ÌØÊâ»î¶¯,È«·þ¹«¸æ
Def_GY_GM_Game_Broadcast = 122222
 
#¹«¸æ×î´ó³¤¶È
Def_GY_GM_Game_Broadcast_MaxLen = 200
#---------------------------------------------------------------------
TYPE_GetActivePlayerCount = 0     #²é¿´µØÍ¼µÄ»î¶¯ÈËÊý
TYPE_SendTimeToMapServer = 1      #ͬ²½µØÍ¼·þÎñÆ÷ʱ¼ä
TYPE_SendServerState = 2          #»Ø±¨·þÎñÆ÷״̬
TYPE_ReadDateBaseGM = 3           #¶¨Ê±¶ÁÈ¡Êý¾Ý¿âÖÐÐèÒªÖ´ÐеÄGMÃüÁî
TYPE_ImpeachTick = 4              #¾Ù±¨¼ä¸ô30Ãë
TYPE_WatchBillboardPrize = 5      #²é¿´½±ÀøÅÅÐаæ1Ãë
TYPE_SendMsg_RouteServer = 6      #·¢ËÍÏûÏ¢µ½RouteServer
TYPE_EvenByTime = 7               #ÓÎϷʼþ´¦Àí
TYPE_ActionOpenAndClose = 8       #»î¶¯¿ªÆôºÍ¹Ø±Õ¼ä¸ô
TYPE_ActionNotify = 9             #¹Ì¶¨ÊÀ½ç¹ã²¥¼ä¸ô(±ØÐë1·ÖÖÓ)
TYPE_ActionGoOn = 10              #ÖØÆô·þÎñÆ÷»î¶¯¿ªÆô
TYPE_FamilyBattleStart = 11       #¼Ò×åÕù°ÔÈü¿ªÆô¼ä¸ô
TYPE_MapServerRunningState = 12   #µØÍ¼·þÎñÆ÷״̬´¦Àí(³¬¹ýʱ¼äδÏìÓ¦»ÒµÆ)
TYPE_RefreshSceneTeam = 13        #ˢг¡¾°¶ÓÎé
TYPE_ReloadScript = 14            #½Å±¾Reload¼ä¸ô
TYPE_FamilyTechProcess = 15       #¼Ò×å¿Æ¼¼Ñ­»·´¦Àí¼ä¸ô
TYPE_LeaderImpeachTick = 16  #°ïÖ÷µ¯ÛÀÑ­»·µ÷ÓÃ
TYPE_MSBattleStart = 17       #¿ç·þÈü¿ªÆô¼ä¸ô
TYPE_SpanServerMatching = 18  #ԤѡÌÔÌ­ÈüÆ¥Åä¼ä¸ô
TYPE_SendDBCommandTick = 19  #²Ù×÷DB×î´ó»ØÓ¦¼ä¸ô
TYPE_MergeWarPreMatching = 20  #ԤѡÌÔÌ­ÈüÆ¥Åä¼ä¸ô
TYPE_ActionOpenAndCloseByDayCount = 21  # ´¦Àí¸ù¾Ý¿ª·þÌìÊý»î¶¯¿ªÆôºÍ¹Ø±Õ
TYPE_ActionOpenAndCloseByDayCountGoOn = 22  # ÖØÆô·þÎñÆ÷»î¶¯¿ªÆô´¦Àí¸ù¾Ý¿ª·þÌìÊý»î¶¯¿ªÆôºÍ¹Ø±Õ
TYPE_ViewGameWallowInfoTick = 23  # ²éѯ·À³ÁÃÔÐÅϢʱ¼ä¼ä¸ô
TYPE_MergeBroadcastTick = 24  # ¿ç·þ¹ã²¥Ê±ÖÓµ÷Óüä¸ô
TYPE_NewYearAnimalProcessTick = 25  # ÄêÊÞ½±ÀøÊ±¼ä´¦Àí¼ä¸ô
TYPE_WorldBossOnlineCntTick = 26  # ¶¨Ê±ÊÀ½çBOSSË¢ÐÂʱ¼ä¼ÆËã ÔÚÏßÍæ¼ÒÊýÁ¿
TYPE_TimeShopProcessTick = 27  # ¶¨Ê±É̵괦Àí¼ä¸ô
TYPE_WorldBossProcessTick = 28  # BOSSÖØÉú¼ì²é¼ä¸ô
TYPE_WorldBossGeTuiTick = 29  # BOSS¸öÍÆ
TYPE_WorldNewGuyGeTuiTick = 30  # µÍ¼¶ÐÂÍæ¼ÒÀ뿪5·ÖÖÓºó»½»Ø
 
TYPE_Tick_Time = [
                  1000 * 60 * 3 ,  #0 ²é¿´µØÍ¼µÄ»î¶¯ÈËÊý 3·ÖÖÓ/´Î 
                  1000 * 60     ,  #1 Í¬²½µØÍ¼·þÎñÆ÷ʱ¼ä 1·ÖÖÓ/´Î
                  1000 * 60 * 5 ,  #2 »Ø±¨·þÎñÆ÷״̬ , 5·ÖÖÓ/´Î
                  1000 * 30     ,  #3 ¶¨Ê±¶ÁÈ¡Êý¾Ý¿âÖÐÐèÒªÖ´ÐеÄGMÃüÁî   30s/´Î
                  1000 * 30     ,  #4 ¾Ù±¨¼ä¸ô30Ãë
                  1000          ,  #5 ²éѯ½±ÀøÅÅÐаæ
                  1000 * 30     ,  #6 ·¢ËÍÏûÏ¢µ½RouteServer
                  1000 * 6      ,  #7 ÓÎϷʼþ´¦Àí
                  1000 * 5      ,  #8 »î¶¯¿ªÆôºÍ¹Ø±Õ¼ä¸ô 5Ãë/´Î
                  1000 * 60     ,  #9 ¹Ì¶¨ÊÀ½ç¹ã²¥¼ä¸ô(±ØÐë1·ÖÖÓ)
                  1000 * 60     ,  #10 ÖØÆô·þÎñÆ÷»î¶¯¿ªÆô
                  1000 * 60     ,  #11 ¼Ò×åÕù°ÔÈü¿ªÆô¼ä¸ô
                  1000 * 60     ,  #12 µØÍ¼·þÎñÆ÷״̬´¦Àí(³¬¹ýʱ¼äδÏìÓ¦»ÒµÆ)
                  1000 * 60 * 5 ,  #13 Ë¢ÐÂÈ«ÊÀ½çÖеĶÓÎéÊý
                  1000 * 2      ,  #14 ½Å±¾Reload¼ä¸ô
                  1000 * 5      ,  #15 ¼Ò×å¿Æ¼¼Ñ­»·´¦Àí¼ä¸ô
                  1000 * 60     ,  #16 °ïÖ÷µ¯ÛÀÑ­»·µ÷ÓÃ
                  1000 * 60     ,  #17 ¿ç·þÈü¿ªÆô¼ä¸ô
                  1000 * 2      ,  #18 Ô¤Ñ¡ÌÔÌ­ÈüÆ¥Åä¼ä¸ô
                  1000 * 30     ,  #19 ²Ù×÷DB×î´ó»ØÓ¦¼ä¸ô
                  1000 * 2      ,  #20 Ô¤Ñ¡ÌÔÌ­ÈüÆ¥Åä¼ä¸ô
                  1000 * 5      ,  #21 ´¦Àí¸ù¾Ý¿ª·þÌìÊý»î¶¯¿ªÆôºÍ¹Ø±Õ
                  1000 * 60     ,  #22 ´¦Àí¸ù¾Ý¿ª·þÌìÊý»î¶¯¿ªÆôºÍ¹Ø±Õ
                  1000 * 2      ,  #23 ²éѯ·À³ÁÃÔÐÅϢʱ¼ä¼ä¸ô
                  1000 * 25     ,  #24 ¿ç·þ¹ã²¥Ê±ÖÓµ÷Óüä¸ô
                  1000 * 60     ,  #25 ÄêÊÞ½±ÀøÊ±¼ä´¦Àí¼ä¸ô
                  1000 * 60 * 5     ,  #26 ¶¨Ê±ÊÀ½çBOSSË¢ÐÂʱ¼ä¼ÆËã ÔÚÏßÍæ¼ÒÊýÁ¿
                  1000 * 60     ,  #27 ¶¨Ê±É̵괦Àí¼ä¸ô
                  1000 * 1     ,  #28 BOSSÖØÉú¼ì²é¼ä¸ô
                  1000*45,      #29 BOSS¸öÍÆ
                  1000*60,      #30 µÍ¼¶ÐÂÍæ¼ÒÀ뿪5·ÖÖÓºó»½»Ø
                 ]
 
TYPE_Tick_Count = len(TYPE_Tick_Time)
 
#µØÍ¼·þÎñÆ÷¶à¾ÃδÏìÓ¦»Òµô
Def_Tick_MapServer_MssNone = 1000 * 60 * 5
 
#---------------------------------------------------------------------
#ÊÀ½ç·þÎñÆ÷×ÖµäKey¶¨Òå
Def_WorldKey_ProcessMinute = 'ProcessMinute'                 #ÿ·ÖÖÓ´¦Àí£¬¼Ç¼ÉÏÒ»´Î´¦ÀíµÄ·ÖÖÓ
Def_WorldKey_SavePlayer = 'SavePlayer'                       #±£´æÍæ¼ÒµÄÊôÐÔ½øÊý¾Ý¿â(23:50´æ·þÎñÆ÷ÅÅÃûǰ50µÄÍæ¼ÒÊý¾Ý)
Def_WorldKey_ExamType = 'Def_WorldKey_ExamType'              #´ðÌâÀàÐÍ
Def_WorldKey_ExamStep = 'Def_WorldKey_ExamStep'              #´ðÌâ²½Öè
Def_WorldKey_ExamStepTick = 'Def_WorldKey_ExamStepTick'      #´ðÌâ²½ÖèTick
Def_WorldKey_ExamBeginTick = 'Def_WorldKey_ExamBeginTick'    #´ðÌ⿪ʼʱ¼ä´Á
Def_WorldKey_ExamSendSubjectCnt = 'ExamSendSubjectCnt'       #µ±Ç°·¢Ìâ×ÜÊý
Def_WorldKey_BossIsAlive = 'BossIsAlive_%s'                  #bossÊÇ·ñ»î×Å
Def_WorldKey_IsGameWorldInit = 'IsGameWorldInit'             #GameWoldÊÇ·ñ³õʼ»¯Íê³É
Def_WorldKey_BossIsGeTui = "BossGeTui%s"                     #µ±Ç°¸´»î֪ͨ
Def_WorldKey_OperationActionState = "OperationActState_%s"   #ÔËÓª»î¶¯×´Ì¬£¬²ÎÊýΪÔËÓª»î¶¯Ãû
Def_WorldKey_BossRebornNeedPoint = "BossRebornNeedPoint"     #boss¸´»îÐèÒª×ܵãÊý
Def_WorldKey_CrossBossIsAlive = 'CrossBossIsAlive_%s_%s'     #¿ç·þbossÊÇ·ñ»î×Å£¬²ÎÊý(zoneID, bossID)
Def_WorldKey_GameWorldInitOK = 'GameWorldInitOK'             #GameWoldÊÇ·ñ³õʼ»¯Íê³ÉOK
Def_WorldKey_CrossPKZoneSeasonID = "CrossPKZoneSeasonID_%s"  #¿ç·þPKÈüÇø¶ÔÓ¦Èü¼¾£¬¿ç·þ·þÎñÆ÷¿ØÖÆ£¬²ÎÊý£¨zoneID£©
Def_WorldKey_CrossPKZoneSeasonState = "CrossPKZoneSeasonState_%s" #¿ç·þPKÈüÇøÈü¼¾×´Ì¬£¬¿ç·þ·þÎñÆ÷¿ØÖÆ£¬²ÎÊý£¨zoneID£©0-먦Æô£¬1-¿ªÆôÖУ¬2-ÒѽáÊø
Def_WorldKey_CrossPKBillboardSyncTick = "CrossPKBillboardSyncTick_%s_%s" #¿ç·þPK±¾Èü¼¾ÅÅÐаñͬ²½tick£¬²ÎÊý£¨zoneID, seasonID£©
Def_WorldKey_CrossSetPlayerAttrTick = "CrossSetPlayerAttrTick" #ͬ²½ÉèÖÿç·þÍæ¼ÒÊôÐÔÖµtick
#---------------------------------------------------------------------
#¸öÈËʱ¼ä¼ä¸ô
TYPE_Player_Tick_Requestkey = 0                       # Íæ¼ÒÇëÇó´¦Àí¼ä¸ô
TYPE_Player_Tick_ViewFamilyVSInfoKey = 1              # ²éѯ¼Ò×åÕù°ÔÈü±¨Ãû±í
TYPE_Player_Tick_ViewFamilyWarRaceInfoKey = 2         # ²éѯȡµÃ¼Ò×åÅÅλսÐÅÏ¢
TYPE_Player_Tick_QueryTeamInfoKey = 3                 # ²éѯ³¡¾°¶ÓÎé
TYPE_Player_Tick_LvUpFamilyTechKey = 4                # °ï»á¿Æ¼¼Éý¼¶
TYPE_Player_Tick_ViewVsRoomKey = 5                    # ²éѯ¾º¼¼³¡ÐÅÏ¢
TYPE_Player_Tick_ViewBillboardRange = 6               # ²éѯ²¿·Ö°ñµ¥µÄ·¶Î§
TYPE_Player_Tick_AddFamilyReply = 7                   # ¼ÓÈë¼Ò×åÉóºËÇé¿ö
TYPE_Player_Tick_QueryFamilySacrific = 8              # ²éѯ¼Ò×åÉÏÏãÇé¿ö
TYPE_Player_Tick_MSBattlePlayerTick = 9               # ²é¿´¿ç·þÈü²ÎÈüÈËÔ±ÐÅÏ¢
TYPE_Player_Tick_MergeRegister = 10                   # ¿ç·þÈü±¨Ãû(ÉÏ´«Êý¾Ý)/²éѯÕ˺Åʱ¼ä¼ä¸ô
TYPE_Player_Tick_MSBattleViewTick = 11                # ²é¿´¿ç·þÈü¶ÔÕ½ÐÅÏ¢
TYPE_Player_Tick_MSBattlePledgeTick = 12              # ²é¿´¿ç·þÈüѺעÐÅÏ¢
TYPE_Player_Tick_Def_ViewUniversalGameRec = 13        # ²éÑ¯Íæ¼ÒÐÅϢͨÓüǼ
Def_PlayerKey_QueryPlayerNewerKingKey = 14            # ²éѯ°Ôµ¶ÐÂÈËÍõ»î¶¯ÐÅÏ¢¼ä¸ô
TYPE_Player_Tick_SyncClientTick = 15                  # Í¬²½¿Í»§¶Ëʱ¼ä
TYPE_Player_Tick_QueryMapFestivalNPCCnt = 16          # ²éѯµØÍ¼»î¶¯¹Ö¸öÊý
TYPE_Player_Tick_QueryRecommendNearbyKey = 17         # ²éÑ¯ÍÆ¼ö×é¶ÓµÄ¸½½üÍæ¼Ò
TYPE_Player_Tick_EnterFBTeamAskTick = 18              # ÇëÇó½øÈë/Æ¥Åä×é¶Ó¸±±¾¼ä¸ô
 
TYPE_Player_Tick_Time = [
                         1000 * 60 * 10,     #0 Íæ¼ÒÇëÇó´¦Àí¼ä¸ô 10Ãë´¦ÀíÒ»´Î
                         1000 * 1,      #1 ²éѯ¼Ò×åÕù°ÔÈü±¨Ãû±í
                         1000 * 1,      #2 ²éѯȡµÃ¼Ò×åÅÅλսÐÅÏ¢
                         1000 * 1,      #3 ²éѯ³¡¾°¶ÓÎé, ²ß»®ÒªÇó1Ãë
                         1000 * 10,     #4 °ï»á¿Æ¼¼Éý¼¶
                         1000 * 1,      #5 ²éѯ¾º¼¼³¡ÐÅÏ¢
                         1000 * 1,      #6 ²éѯ²¿·Ö°ñµ¥µÄ·¶Î§
                         1000 * 2,      #7 ¼ÓÈë¼Ò×åÉóºËÇé¿ö
                         1000 * 1,      #8 ²éѯ¼Ò×åÉÏÏãÇé¿ö
                         1000 * 1,      #9 ²é¿´¿ç·þÈü²ÎÈüÈËÔ±ÐÅÏ¢
                         1000 * 5,      #10 ¿ç·þÈü±¨Ãû(ÉÏ´«Êý¾Ý)/²éѯÕ˺Åʱ¼ä¼ä¸ô
                         1000 * 1,      #11 ²é¿´¿ç·þÈü¶ÔÕ½ÐÅÏ¢
                         1000 * 1,      #12 ²é¿´¿ç·þÈüѺעÐÅÏ¢
                         1000 * 1,      #13 ²éÑ¯Íæ¼ÒÐÅϢͨÓüǼ
                         1000 * 1,      #14 ²éѯ°Ôµ¶ÐÂÈËÍõ»î¶¯ÐÅÏ¢¼ä¸ô
                         1000 * 60 * 10,      #15 Í¬²½¿Í»§¶Ëʱ¼ä
                         1000 * 10,     #16 ²éѯµØÍ¼»î¶¯¹Ö¸öÊý
                         1000 * 1,      #17 ²éÑ¯ÍÆ¼ö×é¶ÓµÄ¸½½üÍæ¼Ò, ²ß»®ÒªÇó1Ãë
                         1000 * 5,      #18 ÇëÇó½øÈë/Æ¥Åä×é¶Ó¸±±¾¼ä¸ô
                         ]
 
#------------------------------------------------------------------------------ 
#¸öÈ˱£´æ¼ä¸ô×Öµä
Def_PlayerKey_Save = 'SavePlayerData'  # ±£´æÍæ¼Ò×Öµä
 
Def_PlayerKey_Save_Tick_Default = 1000 * 60 * 60 * 5           #ĬÈÏΪ5Сʱ
Def_PlayerKey_Save_Tick = {
                           1: 1000 * 60 * 60 * 1 ,     #1000ÈË1Сʱ±£´æÒ»´Î
                           2: 1000 * 60 * 60 * 2 ,     #2000ÈË2Сʱ±£´æÒ»´Î
                           3: 1000 * 60 * 60 * 3 ,     #3000ÈË3Сʱ±£´æÒ»´Î
                           4: 1000 * 60 * 60 * 4 ,     #4000ÈË4Сʱ±£´æÒ»´Î
                           5: 1000 * 60 * 60 * 5 ,     #5000ÈË5Сʱ±£´æÒ»´Î
                           }
 
Def_PlayerKey_PrivateTalk = 'PrivateTalk'          #×·×ÙÃÜÆµ(1:¿ªÆô 0:¹Ø±Õ)
#---------------------------------------------------------------------
#GM¹¤¾ß»Ø¸´Öµ
Def_GMTool_Succeed = 1
Def_GMTool_Fail = 250
#---------------------------------------------------------------------
#ÅÅÐа浥ҳ×î´óÊýÁ¿
Def_Billboard_MaxCnt = 100
#---------------------------------------------------------------------
#ÇëÇóÀàÐÍ(ÐèÒªºÍMapServerÖеÄÒ»ÖÂ)
Def_QueryType_Count = 55
(
queryType_sqtPlayer,                  #²éÑ¯Íæ¼Ò
queryType_sqtFamilyWar,               #¼Ò×åÕ½
queryType_sqtTruck,                   #æô³µID
queryType_sqtPlayerByName,            #ÓÃÃû×Ö²éÑ¯Íæ¼Ò
queryType_sqtPlayerByAccID,           #ÓÃAccID²éÑ¯Íæ¼Ò
queryType_sqtTeamCount,               #²éѯ¶ÓÎé³ÉÔ±ÊýÄ¿
queryType_sqtMission_2010031,         #²éѯÈÎÎñ
queryType_sqtDataServer_GMCommand,    #ÍÑ»ú¹¤¾ß, ÊÀ½ç·þÎñÆ÷ÇëÇóµØÍ¼·þÎñÆ÷ÐÅÏ¢
queryType_FamilyBattle,               #ÇëÇó¼Ò×åÕù°ÔÕ½
queryType_sqtSend_Family_Item,        #ÇëÇó¼Ò×åËÍ×ʽð½±Àø
queryType_sqtRefresh_Family_Info,     #ÇëÇóÍæ¼ÒµÇ½ÊÇ·ñ¼Ò×峤
queryType_ViewFamilyBattle ,          #ÇëÇó²é¿´¼Ò×åÕù°ÔÈü¶ÔÕ½±í
queryType_KingXiHongMing ,            #¹úÍõÏ´ºìÃû
queryType_CheckNameHasDirty,          #¼ì²éÃû×ÖÖÐÊÇ·ñÓÐÔà×Ö
queryType_DelJionFamilyBattleItem,    #ɾ³ý±¨Ãû¼Ò×åÕù°ÔÈüµÀ¾ß
queryType_GoldPlatformBuyGold,        #Ôª±¦½»Òׯ½Ì¨, Éú³ÉÇó¹ºÔª±¦¶©µ¥
queryType_GoldPlatformSaleGold,       #Ôª±¦½»Òׯ½Ì¨, ³öÊÛÔª±¦
queryType_GoldPlatUnclaimedGold,      #Ôª±¦½»Òׯ½Ì¨, ÁìȡδÁìȡԪ±¦ÐÅÏ¢
queryType_GoldPlatOverdueGold,        #Ôª±¦½»Òׯ½Ì¨, ÁìÈ¡¹ýÆÚ¶©µ¥Òø×Ó
queryType_SCQDBAddBillboardPoint,     #ɳ³¡Çïµã±ø, ÀÛ¼ÓÍæ¼ÒÅÅÐаñ»ý·Ö
queryType_SCQDBGiveReword,            #ɳ³¡Çïµã±ø, ÉêÇëÁìÈ¡½±Àø
queryType_AcceptOrRefuseFamilywar,    #½ÓÊÜ»òÕ߾ܾø¼Ò×åÕ½
queryType_JionExam,                   #±¨Ãû´ðÌâ
queryType_GmOpenFB,                   #GM¿ªÆô¸±±¾
queryType_ViewVsRoom,                 #²é¿´¾º¼¼³¡
queryType_AddFamilyAction,            #¼Ò×åÐÐΪ¼Ç¼
queryType_DelFamilyAction,            #¼Ò×åÐÐΪɾ³ý
queryType_FBPassRec,                  #¸±±¾Í¨¹Ø¼Ç¼
queryType_FBPassInfo,                 #ÇëÇ󸱱¾Í¨¹ØÐÅÏ¢¸ø¿Í»§¶Ë
queryType_FamilyArrest,               #ÇëÇó¼Ò×åÐüÉÍÈÎÎñÐÅÏ¢
queryType_UniversalGameRec,           #Íæ¼ÒͨÓÃÐÅÏ¢¼Ç¼±í
queryType_RequestIsFamily,            #²éÑ¯Íæ¼ÒÊÇ·ñ»¹ÔÚÉêÇëµÄ¼Ò×åÉêÇëÁбíÖÐ
queryType_CanOnThreeDay,              #²éѯ¸ÃÍæ¼ÒÊÇ·ñ¿ÉÒÔOnThreeDay
queryType_NotePlayerFamilyInfo,       #ÇëÇó¼ÇÂ¼Íæ¼Ò¼Ò×åÐÅÏ¢ÓÃÓÚ¿ª·þ»î¶¯½±ÀøÁìÈ¡
queryType_CampaignPlayerFamily,       #²éѯ¿ª·þ»î¶¯ÆÚ¼äÍæ¼ÒËùÔÚ¼Ò×å
queryType_NoteTruckOwnerInfo,         #ÇëÇó²éÕÒÍæ¼ÒïÚ³µ²¢¼Ç¼²¿·ÖÊôÐÔ
queryType_ActionThemePlace,           #ÇëÇó²éÕÒÖ÷ÌâÖܻÅÅÃû
queryType_FamilyImpeach,              #Íæ¼ÒʹÓõ¯ÛÀ·û
queryType_RequestJoinVsRoomSuper,     #ÑûÇë¼ÓÈë
queryType_ResponsesJoinVsRoomSuper,   #¾º¼¼³¡ÑûÇë»ØÓ¦
queryType_SyncJoinVsRoomSuper,        #¾º¼¼³¡ÑûÇë֪ͨ
queryType_SyncJoinPlayerVsPlayer,     #ÇдèÑûÇë»ØÓ¦
queryType_VsRoomSuperAward,           #¾º¼¼³¡½±Àø
queryType_QuerDoubleExp,              #ÇëÇó±¾ÖÜË«±¶¾­Ñé
queryType_BeginSpanServer,            #Æ¥Åä¿ç·þԤѡÈü
queryType_JoinSpanServer,             #±¨Ãû¿ç·þԤѡÈü
queryType_SpanServerBattleResult,     #¿ç·þÈü½á¹û
queryType_CreatPlayerVsPlayer,        #´´½¨Çд跿¼ä
queryType_JoinPlayerVsPlayer,         #¼ÓÈëÇд跿¼ä
queryType_JoinMergeWarPre,            #±¨ÃûÍò¹úÌÔÌ­Èü
queryType_UpdatePlayerName,           #½ÇÉ«¸ÄÃû
queryType_ServerRewardNotify,         #È«·þ½±ÀøÌáʾ
queryType_EnterFB,                    #½øÈ븱±¾
queryType_NPCInfo,                    #²éѯNPCInfo
queryType_NPCCnt,                     #²éѯNPCÊýÁ¿
) = range(0, Def_QueryType_Count)
#------------------------------------------------------------------------------ 
#¼Ò×åijÐÐΪÀàÐͱ£´æµÄÌõÊý
ActionTypeSaveCnt = {
              ShareDefine.Def_ActionType_FamilyPray:10 ,    #¼Ò×åÆí¸£
              ShareDefine.Def_ActionType_FamilyArrest:7,     #¼Ò×åÐüÉÍ
              ShareDefine.Def_ActionType_FamilyAdd:30,       #ÉêÇë½øÈë¼Ò×å
              ShareDefine.Def_ActionType_FamilyMember:1,       #¼Ç¼¼Ò×å³ÉÔ±ÐÅÏ¢
              ShareDefine.Def_ActionType_LeaderImpeachTime:1,  # ×峤ÏÂÏßÁ˶à¾Ã
              ShareDefine.Def_ActionType_FamilyBossFB:1,  # ¼Ç¼¼Ò×åboss¸±±¾ÐÅÏ¢
              ShareDefine.Def_ActionType_FamilyStore:30,       #²Ö¿â²Ù×÷¼Ç¼
              ShareDefine.Def_ActionType_OfficerModelEquip:10,  # ¼Ç¼¼Ò×åÓÐְλµÄ³ÉԱģÐÍ×°±¸ÐÅÏ¢(ÃËÖ÷+¸±ÃËÖ÷*2+Õ½¶·¶Ó³¤*5)
              ShareDefine.Def_ActionType_FamilyEvent:50,  # ¼Ç¼¼Ò×åʼþ
              }
 
#²éѯÎÞÏÞÖÆ¼Ò×åµÄÐÐΪÀàÐÍÁбí
Def_QueryNoLimit_ActionTypeList = [ShareDefine.Def_ActionType_OfficerModelEquip]
#------------------------------------------------------------------------------ 
 
#Íæ¼ÒͨÓÃÐÅÏ¢¼Ç¼ÀàÐͱ£´æµÄÌõÊý
UniversalGameRecTypeSaveCnt = {
                                ShareDefine.Def_UniversalGameRecType_BossDropGoodItemInfo:100,    #bossµôÂäºÃÎïÆ·ÐÅÏ¢
                                ShareDefine.Def_UniversalGameRecType_HijackTruck:10,     #½ÙïÚ
                                ShareDefine.Def_UniversalGameRecType_Reward:1000000,     #½±Àø
                                ShareDefine.Def_UniversalGameRecType_GrabRedAllRecord:1000000,   #ÇÀºì°ü×ܼǼ
                                ShareDefine.Def_UniversalGameRecType_GrabRedNewRecord:1000000,   #ÇÀºì°ü¿ÉÇÀÐÅÏ¢¼Ç¼
                                ShareDefine.Def_UniversalGameRecType_GrabRedOldRecord:1000000,   #ÇÀºì°üÒÑÇÀÍêÐÅÏ¢¼Ç¼
                                ShareDefine.Def_UniversalGameRecType_FamilyRedPacketAllRecord:1000000,   #ÏÉÃ˺ì°ü×ܼǼ
                                ShareDefine.Def_UniversalGameRecType_FamilyRedPacketGrabRecord:10000000,   #ÏÉÃ˺ì°üÒÑÇÀÐÅÏ¢¼Ç¼
                                ShareDefine.Def_UniversalGameRecType_DujieHelpAllRecord:500,   #¶É½Ù¸±±¾»¤·¨×ܼǼ
                                ShareDefine.Def_UniversalGameRecType_DujieHelpRecord:10000,   #¶É½Ù¸±±¾»¤·¨Ïêϸ¼Ç¼
                                ShareDefine.Def_UniversalGameRecType_ZhuXianBossRecord:100,   #ÖïÏÉBOSS½áËã¼Ç¼
                                ShareDefine.Def_UniversalGameRecType_LuckyTreasure:5,   #ÐÒÔ˼ø±¦¼Ç¼
                              }
#---------------------------------------------------------------------
#±È½Ï±êʶ
Def_Cmp_Lower = -1                #СÓÚ
Def_Cmp_Equ = 0                   #µÈÓÚ
Def_Cmp_Greater = 1               #´óÓÚ
 
#-----------»î¶¯Ïà¹Ø---------------------------------------------------------
#»î¶¯±êʶ
Def_Action_Count = 4
(
Def_Action_Close,                #¹Ø±Õ±êʶ
Def_Action_Open,                 #¿ªÆô±êʶ
Def_Action_Going,                #»î¶¯³ÖÐøÖÐ
Def_Action_Pause,                #»î¶¯ÔÝÍ£
) = range( Def_Action_Count )
 
#---ÅÅÐаñ--------------------------------------------------------------------
#ÅÅÐаñ±£´æÀàÐÍ
(
    Def_BT_SaveType_NoSaveDB,       #²»±£´æÊý¾Ý¿â
    Def_BT_SaveType_SaveDB,         #±£´æÊý¾Ý¿â
) = range(0, 1 + 1)
 
#ÅÅÐаñÉϰñ¸öÊý(ºÍBillboardTypeÆ¥Åä), ×¢Ê͵ôµÄΪÔÝʱ²»ÓõÄÅÅÐаñ
Def_BT_Cnt = {
            ShareDefine.Def_BT_LV                       : 100,           #¸öÈ˵ȼ¶ÈÕ°ñ
            ShareDefine.Def_BT_FightPower               : 100,           #¸öÈËÕ½¶·Á¦
            ShareDefine.Def_BT_FightPower_Warrior       : 100,           #½£ÐÞÕ½¶·Á¦
            ShareDefine.Def_BT_FightPower_Wizard        : 100,           #µÀʦս¶·Á¦
            ShareDefine.Def_BT_FightPower_Assassin      : 100,           #ǹºÀÕ½¶·Á¦
            ShareDefine.Def_BT_FightPower_Horse         : 100,           #×øÆïÕ½¶·Á¦×ܰñ
            ShareDefine.Def_BT_FightPower_Pet           : 100,           #³èÎï×ÜÕ½Á¦°ñ
            ShareDefine.Def_BT_TrialTower               : 100,           #ÌìÉñÖ®Ëþ°ñ
            ShareDefine.Def_BT_OffLineEfficient         : 100,           #ÍÑ»úЧÂʰñ
            ShareDefine.Def_BT_Realm                    : 100,           #¾³½ç°ñ
            ShareDefine.Def_BT_TotalRecharge            : 100,           #³äÖµ°ñ
            
            ShareDefine.Def_BT_Campaign_PlusLV          : 100,           #Ç¿»¯µÈ¼¶(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_HorseLV         : 100,           #×øÆïµÈ¼¶(¿ª·þ»î¶¯°ñ)  
            ShareDefine.Def_BT_Campaign_StoneLV         : 100,           #±¦Ê¯µÈ¼¶(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_LV              : 100,           #³å¼¶ÅÅÐÐ(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_RealmLV         : 100,           #¾³½çµÈ¼¶(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_FightPower      : 100,           #Õ½Á¦ÅÅÐÐ(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_RuneLV          : 100,           #·ûÓ¡µÈ¼¶(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_GodWeaponLV     : 100,           #Éñ±øµÈ¼¶(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_Recharge        : 100,           #ÀۼƳäÖµ(¿ª·þ»î¶¯°ñ)
            ShareDefine.Def_BT_Campaign_PetLV           : 100,           #Áé³èµÈ¼¶(¿ª·þ»î¶¯°ñ)  
            ShareDefine.Def_BT_Campaign_LingGen         : 100,           #Áé¸ù×ܵã(¿ª·þ»î¶¯°ñ)  
            ShareDefine.Def_BT_Campaign_StarLV          : 100,           #ÉýÐǵȼ¶(¿ª·þ»î¶¯°ñ)  
            ShareDefine.Def_BT_FCCostGold               : 5,             #Ïû·ÑÅÅÐаñ(ÏɽçÊ¢µä)
            ShareDefine.Def_BT_NewFCCostGold            : 5,             #Ïû·ÑÅÅÐаñ(ÏɽçÊ¢µä)
            ShareDefine.Def_BT_FBHelpBattle             : 100,           #ÖúÕ½´ÎÊý°ñ
            }
 
#ÅÅÐаñ±£´æÀàÐÍ(ºÍBillboardTypeÆ¥Åä), Ä¬Èϱ£´æ, Èç¹û²»±£´æ£¬¿ÉÅäÖýøÈ¥
Def_BT_SaveType = {
                   }
 
 
 
#-----´ðÌâ-------------------------
#Ìâ¿âÀàÐͶÔÓ¦µÄÌâ¿âÃû
Def_ExamSubjectNameDict = { ShareDefine.Def_Game_Exam_ZGTX : 'Exam_ZGTX',
                            ShareDefine.Def_Game_Exam_BSL  : 'Exam_BSL' ,
                            ShareDefine.Def_Game_Exam_JQBD : 'Exam_JQBD',
                            ShareDefine.Def_Game_Exam_ZXH  : 'Exam_ZXH' ,
                          }
 
#Ìâ¿âÀàÐͶÔÓ¦µÄÌâ¿âÅÅÐаñ
Def_ExamSubjectBTDict =   { 
                          }
 
#½ûֹʹÓÃ10 01²é¿´µÄÅÅÐаñ
Def_InterdictLook_BT_Type = []
 
#Íæ¼ÒÊý¾Ý²É¼¯·þÎñ¶ËÊý¾Ý°æ±¾ºÅ
Def_DataCollect_Ver = 1.0
#Íæ¼ÒÊý¾Ý²É¼¯¼ÓÃÜkey
Def_PlayerDataCollect_Key = 0x86
 
#---SetDict  Íæ¼Ò×ֵ䲻´æÊý¾Ý¿â---
Def_Player_NoSave_Dict_PlayerExamRightCnt = 'PlayerExamRightCnt_1_%s'  # Íæ¼Ò´ðÌâÕýÈ·ÊýÁ¿
Def_Player_NoSave_Dict_PlayerExamCRightCnt = 'PlayerExamCRightCnt_1_%s'  # Íæ¼Ò´ðÌâÁ¬ÐøÕýÈ·ÊýÁ¿
 
Def_PlayerKey_KillFamilyPlayer = "KillFamilyPlayer_2_%s"  # É±ËÀ²Î¼Ó°ï»áÕù°ÔÕ½µÄ°ï»á¸÷¸öÍæ¼Ò(°ïÖ÷¡¢»¤·¨¡¢³¤ÀÏ)´ÎÊý
Def_PlayerKey_KillFamilyPlayerCnt = "KillFamilyPlayerCnt_3"  # É±ËÀ²Î¼Ó°ï»áÕù°ÔÕ½µÄ°ï»áÍæ¼Ò(°ïÖ÷¡¢»¤·¨¡¢³¤ÀÏ)×ÜÈËÊý
 
Def_PlayerKey_BoonActionNoticeType = "BoonActionNoticeType_4_%s"  # ¸£Àû»î¶¯Í¨Öª¹ýµÄÀàÐÍ
 
Def_PlayerKey_PyTableType = "PyTableType"  #²éѯµÄpytableÀàÐÍ
Def_PlayerKey_IsStopSendDBCommand = "StopSendDBCom"  #ÊÇ·ñÍ£Ö¹·¢ËÍÊý¾Ý¿â²Ù×÷ÃüÁî
Def_PlayerKey_SendDBComTick = "SendDBComTick"  #·¢ËÍDBÃüÁîʱ¼ä
 
Def_PlayerKey_CrossRegisterMap = "CrossRegisterMap"  #¿ç·þ×¢²á»î¶¯µØÍ¼, dataMapID
Def_PlayerKey_MergeRegisterRoomID = "MergeRegisterRoomID"  #µ±Ç°ÉÏ´«Êý¾ÝµÄroomID
Def_PlayerKey_IsLoginToMergeServer = "IsLoginToMergeServer"  #ÊÇ·ñÒªµÇ½¿ç·þ·þÎñÆ÷
Def_PlayerKey_IsCrossPKMatching = "IsCrossPKMatching"  #ÊÇ·ñ¿ç·þÆ¥ÅäÖÐ
 
Def_PlayerKey_PlayerFromPID = "PlayerFromPID"  #pid
 
Def_PDict_LoginMapID = "LoginMapID"  #µÇ¼´¦ÀíʱµÄµØÍ¼ID
 
Def_PlayerKey_OnGotoMergeServerTick = "OnGotoMergeServerTick"  #¼´½«Ìø×ªµ½¿ç·þ·þÎñÆ÷µÄʱ¼ä
 
Def_OnlineType = "onlinetype"   # ÔÚÏßÇé¿ö Çø·ÖÍÑ»ú¹ÒÔÚÏß    C++Ò²ÔÚÓÃÐÞ¸ÄÐè֪ͨ
Def_TJGTime = "TJGTime"   # Ê£ÓàÍÑ»úʱ¼ä
 
Def_ForbiddenTalk = "ForbiddenTalk"   # ½ûÑÔ
Def_TalkTick = "ForbiddenTalk"   # ÁÄÌì¼ä¸ô
 
Def_PDict_GeTuiSet = "GetuiSet"     # ÍÆËÍÌáÐѵÄÉèÖÃ
Def_PDict_NoGeTuiTime = "NoGetuiTime"     # ÍÆËÍÌáÐÑÃâ´òÈÅʱ¼ä£¬½«×Ö·û´®×éºÏÊý×Ö
 
Def_PlayerKey_ViewCrossPKBillboardTick = "ViewCrossPKBillboardTick_%s_%s"  #²éѯPKÅÅÐаñtick£¬²ÎÊý£¨zoneID, seasonID£©
 
#Ö÷³ÇµØÍ¼¡¢çÎç¿×Ú
Def_FBMapID_MainCity = 10010
#¶É½Ù¸±±¾
Def_FBMapID_DuJie = 31110
#ÏÉÃËÁªÈü
Def_FBMapID_FamilyWar = 31220
#ÏÉÃËÑç»á
Def_FBMapID_FamilyParty = 31230
#Õ½Ã˸±±¾-Òì½çÈëÇÖ¡¢ÊØÎÀÈË»Ê
Def_FBMapID_FamilyInvade = 31170
#·âħ̳
Def_FBMapID_SealDemon = 52010
#ÖïÏÉBOSS
Def_FBMapID_ZhuXianBoss = 31380
#ÏÉħ֮Õù
Def_FBMapID_XMZZ = 31010
#ÏÉÃËboss¸±±¾
Def_FBMapID_FamilyBossMap = 31210
#¶àÏÉÃËBoss
Def_FBMapID_AllFamilyBoss = 31260
#×ÚÃÅÊÔÁ¶
Def_FBMapID_MunekadoTrial = 60010
#»ìÂÒÑýÓò
Def_FBMapID_ChaosDemon = 31180
#æ´»ÊÒż£
Def_FBMapID_QueenRelics = 51010
#¿ç·þ¾º¼¼³¡
Def_FBMapID_CrossRealmPK = 32010
#¿ç·þÅîÀ³Ïɾ³
Def_FBMapID_CrossPenglai = 32020
#¿ç·þÑýÍõ
Def_FBMapID_CrossDemonKing = 32030
#±¾·þÑýÍõ
Def_FBMapID_DemonKing = 22030
#Æï³èBoss
Def_FBMapID_HorsePetBoss = 31200
#¿ç·þÁé²ÝÔ°
Def_FBMapID_CrossGrasslandLing = 32040
#¿ç·þÏɲÝÔ°
Def_FBMapID_CrossGrasslandXian = 32050
 
#ÐèҪˢÊÀ½çBOSSµÄ¸±±¾
WorldBossFBMapIDList = [Def_FBMapID_SealDemon, Def_FBMapID_ZhuXianBoss, Def_FBMapID_DemonKing]
#¿ç·þµØÍ¼
Def_CrossMapIDList = [Def_FBMapID_CrossRealmPK, Def_FBMapID_CrossPenglai, Def_FBMapID_CrossDemonKing, Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian]
#¿ç·þ·ÖÇøÀàÐÍÅäÖÃ, Ã»ÅäÖõÄĬÈÏ CrossZoneComm
Def_CrossZoneTypeName = {0:"CrossZoneComm", # ÌØÊâ0£¬Ä¬Èϳ£¹æ·ÖÇø
                         Def_FBMapID_CrossPenglai:"CrossZoneComm",
                         Def_FBMapID_CrossRealmPK:"CrossZonePK",
                         Def_FBMapID_CrossDemonKing:"CrossZonePK",
                         Def_FBMapID_CrossGrasslandLing:"CrossZonePK",
                         Def_FBMapID_CrossGrasslandXian:"CrossZonePK",
                         }
#¿ç·þ·ÖÇø¶ÔÓ¦µØÍ¼ÅäÖñíÃû - ½öÊÊÓÃÓڹ̶¨µØÍ¼¼°ÐéÄâ·ÖÏߵĿç·þÍæ·¨
Def_CrossZoneMapTableName = {Def_FBMapID_CrossPenglai:"CrossPenglaiZoneMap",
                             }
#ÐèÒª¶¯Ì¬·ÖÅäÏß·µÄ¿ç·þµØÍ¼
Def_CrossDynamicLineMap = [Def_FBMapID_CrossDemonKing, Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian]
 
#ÐèҪͳ¼Æ¸±±¾¹¦ÄÜÏß·IDÈËÊýµÄ¿ç·þµØÍ¼
Def_NeedCountFBFuncLinePlayerCrossMap = [Def_FBMapID_CrossDemonKing]
 
#ͬϵְҵö¾Ù
JOB_TYPY_COUNT = 5
(
TYPE_NONE,          #ÎÞ
TYPE_WARRIOR,       #սʿϵ/ǹ
TYPE_WIZARD,        #·¨Ê¦Ïµ/ÕÈ
TYPE_ASSASSIN,      #¹­ÊÖϵ/½£
TYPE_CHAPLAIN,      #ħ½£Ïµ
) = range(0 , JOB_TYPY_COUNT)
 
#Ö°ÒµÀà±ð¶ÔÓ¦×Öµä
JOB_TYPE_DICT = {
ShareDefine.PlayerJob_Warrior : TYPE_WARRIOR,      #½£Ê¿¶ÔӦսʿϵ
ShareDefine.PlayerJob_Wizard : TYPE_WIZARD,        #·¨Ê¦¶ÔÓ¦·¨Ê¦Ïµ
ShareDefine.PlayerJob_Assassin : TYPE_ASSASSIN,    #¹­ÊÖ¶ÔÓ¦¹­ÊÖϵ
ShareDefine.PlayerJob_Chaplain : TYPE_CHAPLAIN,    #ħ½£¶ÔӦħ½£Ïµ
ShareDefine.PlayerJob_Knight : TYPE_WARRIOR,       #ÆïÊ¿¶ÔӦսʿϵ
ShareDefine.PlayerJob_ForceUser : TYPE_WIZARD,     #ħµ¼¶ÔÓ¦·¨Ê¦Ïµ
ShareDefine.PlayerJob_BowMaster : TYPE_ASSASSIN,   #ÉäÊÖ¶ÔÓ¦¹­ÊÖϵ
ShareDefine.PlayerJob_Max : TYPE_CHAPLAIN,         #ħ½£¶ÔӦħ½£Ïµ
}
 
# Óʼþ£¨²¹³¥£©Ä¬ÈÏ·¢¼þÈË, ¾ßÌå×ö»î¶¯ÔÙ¶¨
Def_Mail_SenderSys = "SenderSys"    # Ä¬ÈÏÓʼþ·¢ËÍÈË
 
# Êú¸Ü
Def_Str_Montant = "|"
 
# 0 ²»ÔÚÏß  1 ÔÚÏß 2 ÍÑ»úÔÚÏß 
Def_Offline = 0
Def_Online = 1
Def_OnlineNoClient = 2
 
# ·Ö×é 1 ×î½üÁªÏµÈË 2 ºÃÓÑ 3 ³ðÈË 4 ºÚÃûµ¥
(
Def_SocialGroup_Contacts,
Def_SocialGroup_Friend,
Def_SocialGroup_Enemy,
Def_SocialGroup_Black,
) = range(1, 5)
 
Def_CDBPlayerRefresh_Online = "OnlineType"
 
 
# µØÍ¼ÀàÐÍ
MapFBType = (
    fbtNull,            # 0³£¹æµØÍ¼
    fbtSingle,          # 1µ¥È˸±±¾
    fbtTeam,            # 2×é¶Ó¸±±¾
    fbtFamily,          # 3¼Ò×帱±¾
    fbtFamilyWar,       # 4¼Ò×åÕ½¸±±¾
    fbtCountryExam,     # 5¹ú¼Ò´ðÌâ
    fbtCountry,         # 6¹ú¼Ò¸±±¾
    fbtAllByCountry,    # 7ÕóÓª¸±±¾
    fbtAll,             # 8ËùÓÐ
    fbtVsRoom,          # 9PK·¿¼ä
) = range(10)
 
#VIPÌØÈ¨±àºÅÁбí, Ê¹Óõ½¾ßÌåÌØÈ¨Ê±£¬ÐÞ¸ÄϾßÌåµÄÃüÃû
VIPPrivilegeList = (
VIPPrivilege_VIPKillNPCAddAtk, #1 vip·¨±¦-¼Ó¹¥ - ·ÏÆú
VIPPrivilege_2, #2 vip±¦Ê¯¿×-·ÏÆú£¬¶Á¹¦ÄÜÅäÖñí GemOpenVip
VIPPrivilege_TeamVIPBuff, #3 VIPbuff-¹¥ÊØÍ¬ÃË, ×é¶ÓÊôÐÔ¼Ó³É
VIPPrivilege_BourseTax, #4 ½»Ò×˰¼õÃâ¶î¶È(Íò·Ö±È)
VIPPrivilege_5, #5 Ë½ÈËÃØÊ飨ÏûÏ¢ÍÆËÍ£©
VIPPrivilege_FreeTransport, #6 Ãâ·Ñ´«ËÍ
VIPPrivilege_7, #7 ×Ô¶¯ÏÉÃËÈÎÎñ - Ç°¶Ë
VIPPrivilege_CollTimeReduceRate, #8 ²É¼¯´óʦ, ²ÉÆìʱ¼ä¼õÉÙÍò·Ö±È
VIPPrivilege_9, #9 °ÙÕ½²»ËÀ - ·ÏÆú
VIPPrivilege_FightExpRate,    #10 É±¹Ö¾­ÑéÌáÉý(Íò·Ö±È)
VIPPrivilege_EatItem,    #11 ÍÌÊÉ×°±¸¾­ÑéÌáÉý(Íò·Ö±È)
VIPPrivilege_NPCSPRate,    #12 É±¹ÖSPÖµ(Íò·Ö±È)
VIPPrivilege_MoneyPray,    #13 ½ð±ÒÆíÔ¸
VIPPrivilege_ExpPray, #14 ¾­ÑéÆíÔ¸
VIPPrivilege_15,    #15 ¸öÈËboss¶îÍâ´ÎÊý - ¸±±¾×ܱíͳһ´¦Àí
VIPPrivilege_BossHome,    #16 bossÖ®¼Ò²ãÊýȨÏÞ
VIPPrivilege_17,    #17 Áé³è¸±±¾¹ºÂò´ÎÊý - ¸±±¾×ܱíͳһ´¦Àí
VIPPrivilege_18,    #18 Ï´Á¶¸±±¾¹ºÂò´ÎÊý - ¸±±¾×ܱíͳһ´¦Àí
VIPPrivilege_19,    #19 ÐéÎÞ½ûµØ¶îÍâ´ÎÊý - ¸±±¾×ܱíͳһ´¦Àí
VIPPrivilege_20,    #20 Äº¹âÉñÃí¹ºÂò´ÎÊý
VIPPrivilege_21,    #21 ¶ñħÉîÔ¨¹ºÂò´ÎÊý - ¸±±¾×ܱíͳһ´¦Àí
VIPPrivilege_22,    #22 ºÚ°µÖ®ÃŹºÂò´ÎÊý
VIPPrivilege_FamilyGoldPack,    #23 ÏÉÃË×êʯºì°ü
VIPPrivilege_BoursePwd,    #24 ¼¯ÊÐÉϼÜʹÓÃÃÜÂë
VIPPrivilege_25,    #25 ·âħ̳¹ºÂò´ÎÊý - ¸±±¾×ܱíͳһ´¦Àí
VIPPrivilege_BoursePwd,    #26 VIP±»¶¯¼¼Äܿסª¡ªVIP4רÊô±»¶¯¼¼ÄÜ¿×
VIPPrivilege_BOSSHomeKillLimit,    #27 BOSSÖ®¼ÒÆ£ÀÍÖµÉÏÏÞ
VIPPrivilege_FMTDouble,    #28 ·âħ̳˫±¶»÷ɱ
VIPPrivilege_29,    #29 æ´»ÊÒż£¹ºÂò´ÎÊý - ¸±±¾×ܱíͳһ´¦Àí
VIPPrivilege_BindJadeWheel,    #30 °óÓñתÅÌ´ÎÊý
VIPPrivilege_PrayElixir,    #31 µ¤Ò©Æí¸£´ÎÊý
VIPPrivilege_32,    #32 ·âħ̳×Ô¶¯ÌôÕ½
VIPPrivilege_XianyuanCoinUpperAdd,    #33 ÏÉÔµ±ÒÉÏÏÞ¼Ó³É
VIPPrivilege_XianyuanCoinAddPer,    #34 ÏÉÔµ±Ò»ñµÃ±¶Âʼӳɣ¨Íò·Ö±È£©
) = range(1, 35)
 
#ÓÎÏ·»õ±ÒÀ´Ô´ÀàÐͶ¨Òå
(
Def_GiveMoney_Unknown, # Î´Öª 0
Def_GiveMoney_GM,
Def_GiveMoney_CTG,
Def_GiveMoney_GMTCTG,
Def_GiveMoney_CoinToGold,
Def_GiveMoney_SuperAccountCreate, # ´´½ÇÔùËÍ 5
Def_GiveMoney_Mission, # ÈÎÎñ
Def_GiveMoney_Pray, # Æíµ»
Def_GiveMoney_UseItem, # Ê¹ÓÃÎïÆ·
Def_GiveMoney_Pickup, # Ê°È¡
Def_GiveMoney_Bourse, # ½»Ò×Ëù 10
Def_GiveMoney_GoldInvest, # °ó×êͶ×Ê
Def_GiveMoney_Recover, # ×ÊÔ´ÕÒ»Ø
Def_GiveMoney_RedPacket, # ºì°ü
Def_GiveMoney_RefineGift, # Á¶Öƽ±Àø
Def_GiveMoney_Mail, # Óʼþ£¨²¹³¥£© 15
Def_GiveMoney_RuneDecompose, # ·ûÓ¡
Def_GiveMoney_Warehouse, # ²Ö¿â
Def_GiveMoney_SellPackItem, # ³öÊÛ±³°üÎïÆ·
Def_GiveMoney_CollectNPC, # ²É¼¯NPC
Def_GiveMoney_BossFirstKill, # BossÊ×ɱ
Def_GiveMoney_21,
Def_GiveMoney_Trade, # ½»Ò×
Def_GiveMoney_Truck, # ÔËïÚ
Def_GiveMoney_FreeGoods, # ¼«Æ·°×Äà
Def_GiveMoney_BindJadeWheel, # °óÓñתÅÌ 25
Def_GiveMoney_GatherSoulDecompose, #¾Û»ê·Ö½â 26
Def_GiveMoney_AuctionBidReturn, #ÅÄÂô¾º¼Û·µ»¹
Def_GiveMoney_AuctionGain, #ÅÄÂô»ñµÃÀûÈó
) = range(1000, 1000 + 29)