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
iÕþ[c@sùddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZedƒ\ZZZZedƒ\ZZZZZdZdZdZdZdZd    „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„Z4e5dd „Z7d!„Z8d"„Z9dS(#iÿÿÿÿNiitChaosDemon_FBNextRefreshSteptChaosDemon_FBNPCCnttChaosDemon_FBNPCNeedRefreshCnttChaosDemon_FBNPCRefreshCnttChaosDemon_FBStarcCsdS(N((t    curPlayer((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytChaosDemonOnDayIscCs tjdƒS(Nt ChaosDemonCfg(t IpyGameDataPYtGetFuncEvalCfg(((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt__GetChaosDemonnpcCfgPscCsdS(N((ttick((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytOnOpenFBYscCsdS(N((R ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt    OnCloseFBbscCstS(N(tTrue(RtmapIDtlineIDR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytOnEnterFBEventkscCs|S(N((RRtlineIdtipyEnterPosInfoR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytOnGetFBEnterPoswscCstjS(N(t IPY_GameWorldt    cmeAccept(taskR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytOnChangeMapAsk€sc
Cs_tjƒjƒ}tj|ƒ}tjƒ}tj|ƒ}tjƒs³d}tj|ƒ|j    ƒt
kr³tj t |ƒ|j tdƒ|j tdƒ|j tdƒq³ntjdtjƒ|jƒƒtj|ƒsjtj|ƒt}tj|ƒr#t}tjd|jƒƒntj||dƒtj||ƒ}tj|tjdtj|ƒn|j    ƒ}|t krë|t d|tjƒj!ƒ}    |j"t#j$dt%|    dƒtƒ|j"t#j&dt%|    dƒtƒnc|t'krN|t(d|tjƒj!ƒ}    |j"t#j)dt%|    dƒtƒt*|t|ƒnt+j,|ƒdS(Nis ChaosDemon DoEnterFB lineID=%s£¡sChaosDemon ÖúÕ½½øÈ븱±¾£¡iiè(-t    GameWorldt GetGameWorldtGetMapIDtFBCommontGetRecordMapIDt    GetGameFBtGetFBLineStepTimetGetHadSetFBPropertyMarktSetFBPropertyMarkt    GetFBStept FB_Step_Opent    SetFBSteptFB_Step_Preparet SetGameFBDictRRRtDebugLogtGetFBPropertyMarktGetIDtGetHadDelTickettSetHadDelTickettFalsetSetIsHelpFightRtAddEnterFBCountt GetFBJoinTypet EventReportt WriteEvent_FBtChConfigtDef_FBMapID_ChaosDemont CME_Log_StarttDef_PrepareTimet GetFBStepTickt Sync_TimeTickRt tttAddUpTimetmaxt tttWaitStartt FB_Step_Fightt Def_FightTimet tttTowerTaket__UpdChaosDemonFBStart FBHelpBattletRefershTeamFBMemRelation(
RR RtgameFBRRt isHelpFighttjoinTypetfbStept notify_tick((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt    DoEnterFB‰sB     "  ""% "" c    Cs,tjƒ}|jtƒ}|jtƒ}|dksB|dkrFdS|jtƒ}tƒ}tjddƒ}|t    |ƒks”|t    |ƒkr¥tj
dƒt S||}||}d}x|D]}||d7}qÆW|j t |ƒ|j t|ƒtj||||ƒ|j t|dƒdS(NiRisÒÑÊÇ×îºóÒ»²¨, Í¨¹Øi(RRtGetGameFBDictByKeyRRRR
RR    tlenR'RR&RtNPCCustomRefresht SetNPCRefresh(    RAtnpcCnttneedRefreshCntt refreshSteptrefreshNPCListt    rMarkListtrMarktrNPCListtrNPCInfo((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt__RefreshChaosDemonNextNPC¸s*     $ 
 
 cCsQtjd|jƒƒtjƒjƒ}|tkrMtj||jƒƒndS(NsChaosDemon DoExitFB...(RR't GetPlayerIDRR"R;R?R@(RR RD((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytDoExitFBÞs
 cCstjd|jƒƒdS(NsChaosDemon DoPlayerLeaveFB...(RR'RT(RR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytDoPlayerLeaveFBéscCstjd|ƒdS(Ns'ChaosDemon DoFBOnReborn...rebornType=%s(RR'(Rt
rebornTypeR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt DoFBOnRebornóscCsdS(Nt((RR((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytGetPlayerResetWorldPosFBMsgýscCsktjƒjƒ}|tkr+t|ƒn<|tkrNt|ƒt|ƒn|tkrgt    |ƒndS(N(
RRR"R%t__DoLogic_FB_PrepareR;t__ProcessOverFightR>t FB_Step_Overt__ProcessCloseFB(R RD((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt    OnProcesss   
   cCsÐtjƒjƒ}tj|ƒ}|tjƒjƒ|tdkrIdStƒtj    ƒ}xBt
|j ƒƒD].}|j |ƒ}|sqont ||ƒqoWtjt|ƒtjtj|tdƒdS(Niè(RtGetMapRRRRR6R5RStGetMapCopyPlayerManagertrangetGetPlayerCounttGetPlayerByIndextDoFBHelpR$R;tSync_Player_TimeTickRR=R<(R RtfbCfgt playerManagertiR((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR[s$ cCsmtjƒjƒ}tj|ƒt}tjƒjƒ}td|d||ƒdkr\dSt    t
|ƒdS(Niiè( RR`RRRR<Rt GetOpenFBTickR9t__DoChaosDemonOverR,(R Rt    FightTimetopenTick((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR\-s! cCsttjƒ}tjƒjƒ}||jƒtj|ƒtdkrIdStjƒt    j
|ƒtj t |ƒdS(Niè( RRR`RR6RRt Def_ExitTimetDoLogic_FBKickAllPlayertGameWorldProcesstCloseFBR$t FB_Step_Close(R RAR((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR^:s '
 c Csætjƒ}|jƒtkr"dS|tjƒjƒ}tjt|ƒtjƒjƒ}tj    |ƒ}tjƒj
t ƒ}t j dƒ}t j ddiƒ}t jddƒ}|j|dƒ}    g}
x0|jƒD]"\} } |
j| | dgƒqÙW|
t j ddiƒj|gƒ7}
tj|ƒtd} tjƒ}|jƒ}xŒt|ƒD]~}|j|ƒ}|sq`n|jtjd| tƒ|sÀtj|idtj6ƒq`ni|tj6|tj6t |ƒtj6|tj!6}t"}tj#|ƒrt}nLt$|
ƒ}t%j&|tj'|ƒ}t ||kƒ}|rt(j)d|j*ƒg|
ƒtj+d    t,|
ƒ|j*ƒƒnHxE|
D]=\} } }t-j.|| | |tj'gd
d t"igƒq”Wt(j/|ƒ}t t0|ƒ|    d ƒ}t(j(|ƒj1|ƒtj2|
ƒ|tj3<|t4j5}|t4j5}||tj6<||tj7<t8j9||d|ƒ\}}||g|tj:<tj||ƒt;j<|t=j>d||gƒtj+d t,|ƒ|j*ƒƒq`WdS(NtChaosDemonRewardiiiiiiètChaosDemonMails'±³°ü¿Õ¼ä²»¹»£¬·¢ËÍÓʼþ: mailItemList=%steventt
ChaosDemonids$__SendChaosDemonOverInfo overDict=%s(?RRR"R]R6RR$R`RRRGRRR    t
GetFuncCfgtgettitemstappendRRnRaRctxrangeRdR7Rt tttLeaveMapRtNotify_FB_Overt Over_isPasst
Over_gradetOver_dataMapIDtintt Over_costTimeR,tGetIsHelpFightRHt
ItemCommontGetItemPackSpacetrptItemt PlayerControlt SendMailByKeyRTR'tstrt ItemControlertGivePlayerItemtGetPlayerReExptevaltAddExptGetJsonItemListt Over_itemInfoR2tDef_PerPointValuetOver_expt Over_expPointR?tDoFBAddXianyuanCointOver_xianyuanCoint PlayerSuccesstDoAddSuccessProgresst ShareDefinetSuccType_ChaosDemon(tisPassR RAtcostTimeRtstartitemDicttrateDicttgiveExptratet prizeItemListtitemIDtitemCnttexitTimeRht playerCounttindexRtoverDicttisHelpt    needSpacet
emptySpacet
isSendMailtisBindtreExptaddExptexptexpPointtaddXianyuanCointreason((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyRkEsj %  4     #2    $cCs»|jƒtƒkrdStjƒ}|jtƒ}|jtƒ}|d7}|d8}|jt|ƒ|jt|ƒtjd|jƒ||fƒ|dkr·tjd|ƒndS(Nis@DoFBRebornNPC, npcID=%s,ChaosDemon_FBNPCCnt=%s,needRefreshCnt=%sis±¾²¨¹ÖÎïË¢ÐÂÍê±Ï£¡npcCnt=%s(    tGetNPCIDt__GetAllNPCIDListRRRGRRR&R'(tcurNPCR RARKRL((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt DoFBRebornNPCŽs 
 
  cCsHtƒ}g}x2|D]*}x!|D]\}}|j|ƒq#WqW|S(N(R
Rz(RNt    npcIDListtrListtnpcidtnpccnt((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR´žs      cCsÛ|jƒtƒkrdStjƒ}|jtƒ}|jtƒ}|d8}|jt|ƒtjd|jƒ||fƒ|dkrÄ|dkrÄtjdƒt    ƒ}|rÄt
t |ƒqÄnt j |tdƒdS(NisFDoFB_Player_KillNPC, npcID=%s,ChaosDemon_FBNPCCnt=%s,needRefreshCnt=%sis±¾²¨ËùÓйÖÎïÒѱ»»÷ɱ£¡(R³R´RRRGRRR&R'RSRkRRtNotifyCopyMapPlayerFBHelpRe(RRµR RARKRLt isAllKilled((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytDoFB_Player_KillNPC¬s  
         cCs&tjƒ}|jƒtkr"tStS(N(RRR"R;R,R(tattackertdefenderRA((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytCheckCanAttackTagObjInFBÈs cCstS(N(R(t    atkPlayert    defPlayer((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytDoFBAttackHasPunishÒscCsËtjƒ}|jtƒ}|dkr+|Stjƒjƒ}ttj||j    ƒdƒƒ}t
j |ƒ}|t }d}    d}
x<t |dƒD]+\} } || kr•| }
| |}    q•q•W||
krÛ| rÛ|S|jt|
ƒtjd|||
|    fƒ|rJt||ƒ|
dkrÇ|jtjd|    dtƒqÇn}tjƒ} xnt| jƒƒD]Z}| j|ƒ}|sŠqint||ƒ|
dkri|jtjd|    dtƒqiqiW|
S(Nig@@iis=__UpdFBStar useSecond=%s,curStar=%s,updStar=%s, diffSecond=%siè(RRRGRR`RRtmathtceilR6RRt Def_StarTimet    enumerateR&R'ReR7Rt tttFlagTakeRRaR{RcRd(R tisEnterRRAtcurStarRt    useSecondt chaosDemonCfgt starTimeListt
diffSecondtupdStarRœtstarTimeRhR¦((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR>Ös@  #
       #   $cCs*|jƒ}tjƒ}|jtƒ}|jtƒ}|jtƒ}|jtƒ}td||ƒ}||g}    t    j
ƒ}
t    j |ƒ} |j t jt jƒ} i|t    j6|t    j6|t    j6|
t    j6| t    j6| t    j6tj|ƒt    j6} t    j|| ƒtjdt| ƒ|ƒdS(Nis DoFBHelp %s(RTRRRGRRRRR9RR(RƒtNomalDictGetPropertyR2tDef_PDict_FBRealHelpCountR3t    Help_stept
Help_gradet Help_npcTotalt Help_lineIDt Help_isHelptHelp_helpCountR?tGetTeamFBMemRelationInfot Help_relationt Notify_FBHelpR'R‰(RR tplayerIDRARœtwheelNumt needKillCntt remainNPCCntt
KillNPCCnttdataRR¨t    helpCountt
fbHelpDict((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyRes     +*cCsdS(N((Rt
actionTypet
actionInfoR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt
DoFBActions(:RRRpRR‡RIRŠRR2R˜R„R–R?R0RÄRbR5R<RnRÆR#R%R;R]RrRRRRRRR
R R RRRRFRSRURVRXRZR_R[R\R^RkR¶R´R½RÀRÃR,tNoneR>ReRæ(((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt<module>s^                                                                         /    &         
    
                          I                
    /