hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
ßtscc
@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZd„Zd„Zdd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d „Z-d!„Z.d"„Z/d#„Z0d$„Z1d%„Z2d&„Z3d'„Z4d(„Z5d)„Z6d*„Z7d+„Z8d,„Z9d-„Z:d.„Z;d/„Z<d0„Z=d1„Z>d2„Z?d3„Z@d4„ZAd5„ZBd6„ZCd7„ZDd8„ZEd9„ZFd:„ZGd;„ZHd<„ZId=„ZJd>„ZKd?„ZLd@„ZMdA„ZNdB„ZOdC„ZPdD„ZQdE„ZRdF„ZSdG„ZTdH„ZUdI„ZVdJ„ZWdK„ZXdL„ZYdM„ZZdN„Z[dO„Z\ej]e^e^dP„Z_dQdQej]e^e`e`de^gdR„    ZadS„ZbdT„ZcdU„ZddV„ZedW„ZfdX„ZgdY„ZhdZ„ZidS([iÿÿÿÿNcCsÀtjƒjƒdkrRtjƒjƒtjkrRtjƒjƒtj    krRdStj
ƒ}|j ƒtj krwdStj ƒ}x6td|jƒƒD]}t||j|ƒ|ƒq™WdS(Ni(t    GameWorldtGetMapCopyPlayerManagertGetPlayerCounttGetMapt GetMapFBTypet IPY_GameWorldtfbtNulltGetMapIDtChConfigt&Def_NoPlayerNeedProcessRefreshPointMapt GetGameWorldt GetOpenStatetfbosOpent GetNPCManagertrangetGetCustomNPCRefreshCountt__ProcessNPCRefreshtGetCustomNPCRefreshAt(ttickt    gameWorldtgameNPCti((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytProcessAllNPCRefresh&s  cCsed|jƒ}tƒj|ƒrQtjƒjƒtjkrQtƒ|||ƒSt|||ƒdS(Ns NPCRefresh_%d(    tGetRefreshMarktglobalsthas_keyRRRRtDef_FBMapID_ClearDevilt__NPCCommonRefresh(t
pointIndext
npcRefreshRtfuncName((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyR@s
-icCs…|jƒ}xrt|jƒƒD]^}|j|ƒ}tj|ƒ|jtj|ƒ|jtj    |ƒtj
|ƒj |ƒqWdS(N( RRtGetNewBornNPCCounttGetNewBornNPCAtt    NPCCommontInitNPCtSetDictRtDef_NPC_Dict_FromRefreshMarktDef_NPC_Dict_FromRefreshValuet
NPCControltDoNPCRebornCommLogic(RRtvaluet refreshMarkRtcurNPC((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt__InitNewBornNPCSs  cCs t||ƒS(N(t__RandomMapNPC(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_82gscCs t||ƒS(N(R,(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_83hsc CsM|jƒ}tjƒ}tj|}tj|}tj|}|j|ƒ}|j|ƒ}|j|ƒ}    |dkr|dS|jƒ}
|    |
} | dkr¹tj    d||    fƒdSt
j ddƒdkrætj    d|ƒdS|j |tj dtƒt||ƒtd|dƒ} |j|| ƒtjd||| fƒdS(NisCµØÍ¼Ëæ»úË¢¹Ö ±¾µã×î´óË¢¹ÖÊýÒÑÂú£¬ÎÞ·¨ÔÙË¢! refreshMark=%s,maxCnt=%sis5µØÍ¼Ëæ»úË¢¹Ö ¸ÃË¢¹ÖµãûÓÐÃüÖУ¬²»Ë¢¹Ö! refreshMark=%ss+µØÍ¼Ëæ»úË¢¹Ö mark=%s,npcID=%s,updNeedCnt=%s(RRt    GetGameFBRtMap_NPC_RandomMapNPCIDtMap_NPC_RandomMapNPCNeedCnttMap_NPC_RandomMapNPCPerMaxCnttGetGameFBDictByKeytGetCounttDebugLogtrandomtrandinttRefreshtDef_SuperBossAngryCounttFalseR+tmaxt SetGameFBDicttLog( RRR)tgameFBtnpcIDKeyt
needCntKeyt perMaxCntKeytnpcIDtneedCnttmaxCnttcurCntt    curCanCntt
updNeedCnt((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyR,js0       
  cCs t||ƒS(N(t__RefreshTDFBNPC(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_84–scCs t||ƒS(N(RH(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_85—scCs t||ƒS(N(RH(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_86˜scCs t||ƒS(N(RH(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_87™sc Csý|jƒ}tjƒ}tj|}|j|ƒ}|dkrDdS|jtj|ƒ}|jtj|ƒ}tj|}|j|ƒ}    |    r–dS|jtj    |ƒ}
|jtj
|ƒ} d|
} t j | ƒ} | | kr|j |dƒtjd| | |fƒdS| | }t|ƒ}||dkri|j |dƒtjd| | |fƒdSt j d|
ƒ}|t|ƒkr¹|j |dƒtjd| |fƒdS||}||}|jtj|ƒ}|tj}|dkr|||krdS|jƒ}d}|dkrN|dkrN||tj7}n|dkrt||jƒ|krtdS||}tjd|
| ||||fƒxm|D]e}|d}|d}t|ƒd    krÝtjn|d
}|j|||tƒt|||
ƒq¨W||dk}|t|ƒdk}|r›|r›|j |dƒ|j |dƒ|j tj|dƒtjd |ƒtj|ƒn^|rÞ|j |dƒtjd |||fƒtj||ƒn|j tj||dƒdS( Nis TD_%s_NPCIDs<TDË¢¹Ö±ê¼Çkey²»´æÔÚ: signKey=%s not in fileName=%s, rMark=%sis;TDË¢¹Ö²¨ÊýÅäÖò»´æÔÚ: fileName=%s,signKey=%s,bigWheelNum=%ss    TD_%s_Cfgs?TDË¢¹Ö×ܲ¨ÊýÓ벨ÊýÅäÖÃÐÅÏ¢ÌõÊý²»¶ÔÓ¦: fileName=%s,totalWheel=%ssKTDË¢¹Ö£ºfileNum=%s,signKey=%s,rMark=%s,bWheelNum=%s,sWheelNum=%s,npcList=%siis%    ËùÓйÖË¢ÐÂÍê±Ï£¬¹Ø±ÕË¢¹Ö!rMark=%ss4    ×îºóһС²¨¹ÖË¢ÐÂÍê±Ï(%s - %s)£¬ÔÝͣˢ¹Ö!rMark=%s(RRR/RtMap_TDNPC_RefreshStartTickR3tMap_TDNPC_RefreshBigWheelNumtMap_TDNPC_RefreshSmallWheelNumtMap_TDNPC_CurWheelIsOvertMap_TDNPC_RefreshFileNumtMap_TDNPC_RefreshSignKeyt ReadChConfigtGetEvalChConfigR<tErrLogtlentMap_TDNPC_CurWheelStartTicktFBCommontDef_TDCfg_PrepareTimeR4tDef_TDCfg_SmallWheelSpacetGetRefreshTickR5tDef_SummonNPC_Angry_CountR8R:R+tMap_TDNPC_AllWheelIsOvertFBLogictOnTDAllWheelOvertOnTDCurWheelOver(RRtrMarkR>t startTickKeyt    startTickt bigWheelNumt smallWheelNumtcurWheelIsOverKeytcurWheelIsOvertfileNumtsignKeytfileNametrefreshNPCDictt totalNPCListt
totalWheeltrefreshCfgListtbigWheelNPCListt wheelInfoListtcurWheelStartTickt prepareTimeREt refreshTicktcurRefreshNpcIdListtrefreshNPCInfotcurNpcIdt
refreshCnttangryCnttisLastBigWheeltisLastSmallWheel((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyRHs„     
 
 
 
  "
     
 
% cCst||ƒdS(N(t__DoRefreshWorldBoss(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_90
scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_91 scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_92 scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_93 scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_94scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_95scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_96scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_97scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_98scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt NPCRefresh_99scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_100scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_180scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_181scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_182scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_183scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_184scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_185scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_186scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_187scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_188scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_189scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_190scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_191 scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_192!scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_193"scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_194#scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_195$scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_196%scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_197&scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_198'scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_199(scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_200)scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_201*scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_202+scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_203,scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_204-scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_205.scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_206/scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2070scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2081scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2092scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2103scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2114scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2125scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2136scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2147scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2158scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_2169scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_217:scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_218;scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_219<scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_220=scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_221>scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_222?scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_223@scCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_224AscCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_225BscCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_226CscCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_227DscCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_228EscCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_229FscCst||ƒdS(N(R{(RR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytNPCRefresh_230Gsc&Cs¾tjƒrt||ƒdSd}d}tjƒjƒ}|jƒ}tjƒjƒ}d\}}d}    |tj    krt
j ƒ}
d} nH|tj kr³t jƒ}
d} n$|tjkr×tj ƒ}
d} ntjdi|d6|d6tdtƒ} | s
dSt| ƒdkr)| d} nCd} x:| D]2}|jƒ}|d}||kr6|} Pq6q6W| svdS| jƒ} | jƒ}
| jƒ}| jƒ}| jƒ}    | jƒ}|dkr×|d}n|
ré| rédStjƒ}tjƒ}t}d}d}|dkrVt|ƒ}tj |}|j!|ƒrMdnd}nä|d    kr|j"d
ƒ}|d}|tj#krßtj$t|ƒdkr¬|dnd ƒ}tj%||ƒ}|j&tj'dƒ}n*t(j)j&|iƒ}|j&tj'dƒ}|rdnd}ntj*|
}|j!|ƒ}d}tj+d d    iƒ}||kr{t,d||dƒ}n|r|dkr–|}n|r±||kr±d}n|j!tj-|ƒ}|j.tj/|ƒ}|oæ|}|r(||kr(t}q(n!|r(||kr(d}d} nt0j1|ƒo:|    }    d} |j2ƒdkrg|j3dƒ} n|rè| r | r| jƒ|
krdSt0j4| ƒn||krÏ|     rÏ|tj    tjgkrÏdS|rï||krïdSn| rŸ| jƒ|
kr|    rt5| ƒrdS| jƒ| kr,dS| jƒ|
kr|rtj6d |
ƒ|tj7krzt8j9d|
gƒq|tj:krqnt0j4| ƒn|j.tj;|
ƒ}!tj<dƒ}"||!|"krØdS|j=tj;|
|ƒ|rû|
n| }#|#s dStj>|#}$|j.|$ƒ}%||%dkr;dS|j?|#tj@dtƒtA||ƒ|j=|$|ƒ|r—|r—|j=tj/||ƒntjBd||||#|    f|ƒdS(sg·Ç·ÖÁ÷µØÍ¼bossÖ»ÔÚÒ»ÏßË¢
       ·ÖÁ÷µØÍ¼bossÿÌõÏß¶¼Ë¢Ð£¬ÆäËû·ÖÁ÷Ïß·bossÔÚûÈË´òµÄÇé¿öÏÂͬÉúͬËÀ
    NittBOSSInfot RefreshMarktMapIDt    isLogNoneiis|t10tMapLines/»î¶¯boss£¬»î¶¯½áÊø£¬ÏµÍ³ÉèÖÃbossËÀÍö£¡bossID=%stFairyGrabBossNoDeadtBossStoneDelayTimei2ièsUBossRefresh mapID=%s,rebornLineID=%s,refreshMark=%s,rebornNPCID=%s,isNeedShunt=%s,OK!(isiPÃ(CRt IsCrossServert__DoRefreshWorldBossCrossServerRRRR
t    GetLineIDRtDef_FBMapID_SealDemontGameLogic_SealDemontCurFBLineBOSSIDtDef_FBMapID_DemonKingtGameLogic_CrossDemonKingtGetCurFBLineBOSSIDtDef_FBMapID_ZhuXianBosstGameLogic_ZhuXianBosst IpyGameDataPYtGetIpyGameDataByConditiontTrueR:RVtNonetGetRefreshLinet GetStoneNPCIDtGetNPCIDtGetRelatedTypet GetRelatedIDtGetIsNeedShuntR/tintt ShareDefinet$Def_Notify_WorldKey_DailyActionStatetGetGameWorldDictByKeytsplittMultiActNumOperationActNameListtToIntDeft
GetActInfotgett ActKey_Statet
PyGameDatatg_operationActionDictt'Def_Notify_WorldKey_GameWorldBossReborntGetFuncEvalCfgR;t(Def_Notify_WorldKey_ActionBossRebornSignR3tMap_NPC_ActBossLastRebornSignR!tIsMapNeedBossShuntR4tGetAtt    SetDeadExtIsShuntBossNeedProcessR=tDailyActionID_FamilyRobBosst PlayerControltFBNotifytOperationActionName_BossReborntMap_NPC_WorldBossDeadTickt
GetFuncCfgR<tMap_NPC_WorldBossLastReBornTickR8R9R+R5(&RRt rebornLineIDt assignLineIDtmapIDR)tlineIDt relatedTypet    relatedIDt isNeedShunttbossIDt
stoneNPCIDt ipyDataListtipyDatatipyDt refreshLineR>t gameWorldMgrt forceReborntactBossRebornSigntmapActBossRebornSignt    actionKeytrebornBossStatet actNameInfotactNametactNumtactInfotoperationActionStatetoperationActionInfotbosskeytactivityLineIDtactivityMapLineDictR*t bossDeadTicktbossStoneDelayTimet rebornNPCIDtkeytlastRebornTick((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyR{Msü                   )   
 
+                 +$       cCstS(sH·ÖÁ÷bossÊÇ·ñÐèÒª´¦Àí
        ÎÞÉËѪ¡¢³ðºÞ¡¢Ã»ÈË¿´µ½Ëû¡¢Ëûû¿´µ½±ðÈË
    (RÐ(R*((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyRëýscCsZtjƒjƒ}|tjkr%dS|jƒ}tjƒjƒ}tjƒjƒ}tjƒjƒ}d\}}|tj    kr£t
j ƒ}    d}
t
j ƒ} n®t jdi|d6|d6dtƒ} | sÓdS| jƒ}
| jƒ}    | jƒ}| jƒ}|tjkrdStj|} t j| |||ƒ}|sEdS|jƒ} | s[dS|     rm|
rmdStjƒ}tjƒ}t}d}d}|dkrÚt|ƒ}tj|}|j|ƒrÑdnd}n7|dkrén(tj| |    f}tjƒj|ƒ}|rm|jtj|ƒ}|jtj|ƒ}|oL|}|rm||krmt }qmnd}|j"ƒdkr—|j#dƒ}n|ré|rÐ| rÀ|jƒ|    krÀdSt$j%|ƒn|re||kredSn||r|jƒ|
krdSt$j%|ƒn|jtj&|    ƒ}t j'd    ƒ}|||krNdS|j(tj&|    |ƒ|rq|    n|
}|sdStj)|}|j|ƒ}||dkr×tj*d |||||||fƒdS|j+|tj,dtƒt-||ƒ|j(||ƒ|r3|r3|j(tj||ƒntj*d |||||f|ƒdS(NiRºR»R¼R½R¾iiRÂi2ièsxCrossBossRefresh mapID=%s,realMapID=%s,copyMapID=%s,refreshMark=%s,rebornNPCID=%s,tick=%s,lastRebornTick=%s ²»Öظ´Ë¢Ð£¡sUCrossBossRefresh mapID=%s,realMapID=%s,copyMapID=%s,refreshMark=%s,rebornNPCID=%s,OK!(isiPÃ(.RR
RRtDef_CrossMapIDListRRÅt GetRealMapIDt GetCopyMapIDtDef_FBMapID_CrossDemonKingRÊRËtGetCurFBLineZoneIDRÎRÏR:RÓRÔRÕRÖtDef_CrossZoneMapTableNametGetIpyGameDataNotLogt    GetZoneIDR/RØRÙt)Def_Notify_WorldKey_CrossDailyActionStateRÛt,Def_Notify_WorldKey_GameWorldBossRebornCrossRæR3RçRÐRÑR4RéR!RêRðRñR<RòR5R8R9R+(RRRõR)Röt    realMapIDt    copyMapIDR÷RøRúRûtzoneIDt bossIpyDatat    tableNamet zoneIpyDataR>RRRRRRR R*RRRt rebornTickKeyR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyRÄsª   &                         cCs[tjd|ƒ}|sdS|jƒ}|rA||jƒfgS|jƒ}|rW|SdS(NtNPCCustomRefresh(RÎtGetIpyGameDatatGetRefreshNPCIDtGetTotalMaxCounttGetNPCIDCountList(t    refreshIDRýRBt npcCountList((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytGetNPCRefreshCountLists  c Cs‚tjd|ƒ}|sdS|jƒ}|jƒ}g}|rL|g}n6|jƒ}|jƒ}    |rs|}n|    r‚|    }n|stjd|ƒdSd}
t    |ƒdkrtj
ƒ} xVt dƒD];} t j |ƒ} | jtj| dfƒsÎ| }
PqÎqÎWn
|d}
|
dkr;tjd|ƒdSt|
||jƒ|jƒ|||jƒ|jƒ|jƒ|ƒ
dS(NR%s*Ë¢¹Ö±êÊÔµãûÓÐÅäÖÃҪˢеÄNPCIDÐÅÏ¢£¡ID=%siidis&ÎÞ·¨»ñµÃÖ¸¶¨µÄË¢¹Ö±êÊԵ㣡refreshID=%s(RÎR&tGetRefreshMarkInfoR'tGetRandNPCIDListR)RRURÑRVR/txrangeR6tchoiceR3RtDef_RMark_NPCIDt SetNPCRefresht GetMaxCountR(tGetIsLineOneOnlyt GetIsRepeatR[(R*tangrytisStarttrefreshRightNowRýt    rMarkListRBt    npcIDListt randNPCIDListR+RaR>t_trandMark((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytSetNPCRefreshByID›s@               
 !"ic  Cs²tjƒ} t|tƒsdSt|
ƒ} | dkrðtjƒ} g}xNtd| jƒƒD]7}| j|ƒ}|j    ƒ|
kr_|j
|ƒq_q_Wt|ƒ}| j t j |ƒx4t|ƒD]#\}}| j t j||ƒqÆWnt|ƒ}| j t j||ƒx~t|ƒD]p\}}t|tƒrJ|}d}n |\}}| j t j||f|ƒ| j t j||f|ƒq W| j t j||ƒ| j t j||ƒ| j t j|dƒ| j t j||ƒ| j t j|t|ƒƒ| j t j||ƒ| j t j|t|ƒƒ|rTt|ƒntjd||||||||||    f
ƒ|r®|    r®tjƒjƒ}t|ƒndS(Nis~ÉèÖñêʶµãÐÅÏ¢£ºmark=%s,npcList=%s,max=%s,tMax=%s,angry=%s,start=%s,lineOneOnly=%s,repeat=%s,refreshTick=%s,refreshRightNow=%s( RR/t
isinstancetlistRVR RRRRtappendR<RtDef_RMark_TotalForcePointCntt    enumeratetDef_RMark_ForceRefreshPointtDef_RMark_NPCListLenRØR1tDef_RMark_NPCIDCnttDef_RMark_MaxCnttDef_RMark_TotalMaxCnttDef_RMark_RefreshCnttDef_RMark_AngryCounttDef_RMark_LineOneOnlytDef_RMark_RefreshTicktDef_RMark_IsRepeattStartNPCRefreshR=R
tGetTickR(RaR:RDt totalMaxCntR6R7t isLineOneOnlytisRepeatRsR8tisForceRefreshListR>tpointCntRtrecordPointListRRttotalCnttindexRtnpcIDLentnpcInfoRBtnpcCntR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyR2ÓsN           !     &  cCs'tjƒ}|jtj|dƒdS(Ni(RR/R<RtDef_RMark_State(RaR>((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyRNs cCsbtjƒ}|jtj|ƒs&dS|jtj|dƒtj||ƒtjd|ƒdS(NisCloseNPCRefresh rMark=%s(    RR/R3RR[R<R^tOnCloseNPCRefreshR5(RaRR>((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytCloseNPCRefresh s cCsOtjƒ}x<t|jƒƒD](}|j|ƒ}t|jƒ|ƒqWdS(N(RR R/RRR]R(RRRR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytCloseFBCustomRefreshs
 cCstjƒjtj|ƒS(N(RR/R3RRI(Ra((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytGetHadRefreshCntsc Csõtjƒ}|jƒ}tj|}|j|ƒdkr>dStj|}|j|ƒrvtjƒjƒdkrvdS|jtj    |ƒ}|jtj
|ƒ}|jtj |ƒ}    |jtj |ƒ}
|jtj |ƒ} |jtj|ƒ} |jtj|ƒ} |jtjƒ}|dk}| dkr>dSg}||jƒ}| spt||    |
ƒ}n|rÂx1t|ƒD]#}|j|jtj|ƒƒqƒW||krÂ|}qÂn|dkrô|jƒdkrð|jdƒndS|jƒ}|dkr|j|ƒnt}|dkrž||jƒ|dkrž|r—||kr—|jƒdkr—|jtj|ƒdkr—|jtj|dƒxE|D]=}|jtj|ƒ}|sÌdStjd||fƒq¦W|jtj|dƒ|jtjƒd}|jtj|ƒ|t|ƒkr›xX|D]M}|jtjdƒ|jtj|dƒ|jtj|dƒt}q@Wq›q?dSn¡|r?|jtjdƒ|jtj|dƒ|jtj|dƒ|jtj ƒd}|t|ƒkr)|jtj dƒt}q?|jtj |ƒn|r|jtj!ƒd}|jtj!|ƒt"j#||ƒn|jtj$|dfƒ}|jtj%|dfƒ}|dkrsxÏt| ƒD]š}|jtj$||fƒ}|jtj%||fƒ}|dkr"qÒntjd||| |fƒ|j&|| |tƒt'||ƒ|
|7}
qÒWn$| dkr'xt|ƒD]”}t(j)d| dƒ}|jtj$||fƒ}|dkrÖqŒntjd||| dfƒ|j&|| dtƒt'||ƒ|
d7}
qŒWnp|jtj$|dfƒ}|sMdStjd||| |fƒ|j&|| |tƒt'||ƒ|
|7}
| s·|jtj ||
ƒntjd|
|    fƒ|
|    krñ| rñt*||ƒndS(    Niiièsͨ¹ý£¡£¡£¡£¡---%s--mark:%ss7Ö¸¶¨Ë¢¹Ö£ºrMark=%s,npcID=%s,angryCount=%s,refreshCnt=%ss7Ëæ»úË¢¹Ö£ºrMark=%s,npcID=%s,angryCount=%s,refreshCnt=%ss7µ¥Ö»Ë¢¹Ö£ºrMark=%s,npcID=%s,angryCount=%s,refreshCnt=%ssÒÑˢйÖÎï=%s,total=%s(+RR/RRR[R3RKR
RÅRLRGRHRIRERJRMRBR4tminR/RARDR[tSetRefreshTickR:tDef_RMark_HasRefreshPointR<tDef_RMark_HasRecordPointR5tDef_RMark_PassCntRVRÐtDef_RMark_TimePassCnttDef_RMark_RefreshStepR^tOnPointRefreshR1RFR8R+R6R7R](RRRR>Rat rMarkStateKeytisLineOneOnlyKeyRst    curMaxCntRPRwt
npcListLent
angryCountRRt totalForceCnttisForcet    indexListt
needNPCCntRWtlastRefreshTicktneedSyctpointtmarktpassCnttpoint2t timePassCnttrefreshRBRZRtnpcIndex((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyR&sÔ    '  !     &.                         
c!Cs|jƒtjkrdS|jƒ}tjd|ƒ}|sAdStjƒ}|jt    j
ƒ}|ry||dkrydS|j t    j
|ƒtj ƒ}|j |j}}|d|}    g}
xÀ|D]¸} | jƒ} |jt    j| ƒ} | rZ| jƒ}|r%|    |dkrqÆnd}n | jƒ}|s=qÆn|| |dkrZqÆqZn|j t    j| |ƒ|
j| ƒqÆW|
sŒdSi}i}tjƒ}xet|jƒƒD]Q}|j|ƒ}|jƒ}|jƒ}|j|dƒ|||<|||<q·WxŠ|
D]‚} | jƒ}| jƒ}| jƒ}| jƒ}d}x$|D]}||j|dƒ7}qVW||}|dkr’qnt|ƒ|k}|rÆt |ƒ}t!j"|ƒnxÌ|D]Ä}||kråqÍn|dkrõPn|j|dƒ}||krqÍnt#|||ƒ}||8}t|ƒdkrR|dn t!j$|ƒ} ||}|j%| t    j&|t'ƒt(||ƒqÍWqWdS(sŸ µØÍ¼×Ô¶¨ÒåËæ»úË¢¹Ö£¬Ö§³Ö¶àµãËæ»úË¢¶àÖÖ¹Ö£¬±êÊԵ㲻¿ÉÖØ¸´£¬Ö§³Ö¿ç·þµØÍ¼
            ×¢Ò⣺ͬ¸öÐéÄâÏß·ÖУ¬±êÊԵ㲻¿ÉÖØ¸´£¡±êÊԵ㲻¿ÉÖØ¸´£¡±êÊԵ㲻¿ÉÖØ¸´£¡
    Nt MapRefreshNPCièi<ii()R RR RRÎtGetIpyGameDataListNotLogRR/R3RtDef_RMark_RandomRefreshNPCTickR<tGetCurrentTimethourtminutet GetRefreshNumt!Def_RMark_RandomRefreshNPCNumTimetGetRefreshPerMinutestGetRefreshSecondsRAR R/RRR4RRàt GetNPCIDListtGetRefreshMarkListtGetPointMaxCountR(RVR@R6tshuffleR`R0R8tDef_NormalNPCAngryCountR:R+(!RRRõtrefreshIpyDataListR>t lastCheckTickt
serverTimetcurHourt    curMinutet minuteTotaltneedRefreshIpyDataListRýtnumt numLastTickt
perMinutest    refreshCDt npcCountDicttrMarkNPCRefreshDictRRRtnpcCountRaR:tmarkListtmaxCountt totalMaxCountt curTotalCountt refreshCountt isNeedRandomtcurCounttneedRefreshCountRB((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytProcessMapRandomRefreshNPC¬s                        
 
+
cCsEtjƒ}|jƒ}tjd|ƒ}|s4dSi}tjƒ}x4|D],}|jƒ}|jtj    |ƒ||<qMWi}tj
ƒ}x©t |j ƒƒD]•}    |j |    ƒ}
|
jƒ} | sÏq¢n|
jƒ} i} xIt | ƒD];}|
j|ƒ}|jƒ}| j|dƒd| |<qîW| || <q¢W||fS(NRzii(RR
RRÎR{R/R€R3RRR R/RRR4RRéRÔRà(RRõR‰tlastRefreshTickDictR>RýRt markNPCDictRRRR–RatnpcIDCountDicttjR*RB((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytGetCopyMapRandomRefreshNPCInfos2         cCs |\}}tjƒ}|jtj|ƒx1|jƒD]#\}}|jtj||ƒq8Wtjƒ}x®t|j    ƒƒD]š}|j
|ƒ}    |    j ƒ}
|
|kr±q~n||
} xZ| jƒD]L\} } tj d|
| | fƒ|    j | tj| tƒt|    |ƒqÈWq~WdS(Ns,    ¸±±¾Æô¶¯Ë¢¹Ö: rMark=%s,npcID=%s,count=%s(RR/R<RR|titemsRR R/RRRR5R8RˆR:R+(RuRR R¡R>RtsetTickRRRRaR¢RBtcount((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pytOnFBOpenSetRandomRefreshNPCInfo3s"     
(jRR!RÙRSRÇRÍRÊRíRRÎRâRRXR^R6ttimeRRR+R-R.R,RIRJRKRLRHR|R}R~RR€RR‚RƒR„R…R†R‡RˆR‰RŠR‹RŒRRŽRRR‘R’R“R”R•R–R—R˜R™RšR›RœRRžRŸR R¡R¢R£R¤R¥R¦R§R¨R©RªR«R¬R­R®R¯R°R±R²R³R´RµR¶R·R¸R¹R{RëRÄR,RˆRÐR>R:R2RNR]R^R_RRŸR¤R¨(((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCCustomRefresh.pyt<module>sÎ                                     ,                    m                                                                                                                                                                                                                                                            °        }    8 1        
            †    g