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
³`þ[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+||ƒ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__UpdChaosDemonFBStartDoFBHelp(
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(    R@tnpcCnttneedRefreshCntt refreshSteptrefreshNPCListt    rMarkListtrMarktrNPCListtrNPCInfo((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt__RefreshChaosDemonNextNPC·s*     $ 
 
 cCstjd|jƒƒdS(NsChaosDemon DoExitFB...(RR't GetPlayerID(RR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pytDoExitFBÝscCstjd|jƒƒdS(NsChaosDemon DoPlayerLeaveFB...(RR'RS(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 RC((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è(RtGetMapRRRRR6R5RRtGetMapCopyPlayerManagertrangetGetPlayerCounttGetPlayerByIndexR?R$R;tSync_Player_TimeTickRR=R<(R RtfbCfgt playerManagertiR((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyRZs$ 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 R@R((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR]6s '
 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_RRRFRRR    t
GetFuncCfgtgettitemstappendRRlR`RbtxrangeRcR7Rt tttLeaveMapRtNotify_FB_Overt Over_isPasst
Over_gradetOver_dataMapIDtintt Over_costTimeR,tGetIsHelpFightRGt
ItemCommontGetItemPackSpacetrptItemt PlayerControlt SendMailByKeyRSR'tstrt ItemControlertGivePlayerItemtGetPlayerReExptevaltAddExptGetJsonItemListt Over_itemInfoR2tDef_PerPointValuetOver_expt Over_expPointt FBHelpBattletDoFBAddXianyuanCointOver_xianyuanCoint PlayerSuccesstDoAddSuccessProgresst ShareDefinetSuccType_ChaosDemon(tisPassR R@tcostTimeRtstartitemDicttrateDicttgiveExptratet prizeItemListtitemIDtitemCnttexitTimeRft playerCounttindexRtoverDicttisHelpt    needSpacet
emptySpacet
isSendMailtisBindtreExptaddExptexptexpPointtaddXianyuanCointreason((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyRiAsj %  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__GetAllNPCIDListRRRFRRR&R'(tcurNPCR R@RJRK((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
Rx(RMt    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³RRRFRRR&R'RRRiRRtNotifyCopyMapPlayerFBHelpR?(RR´R R@RJRKt 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(tattackertdefenderR@((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è(RRRFRR_RRtmathtceilR6RRt Def_StarTimet    enumerateR&R'R?R7Rt tttFlagTakeRR`RyRbRc(R tisEnterRR@tcurStarRt    useSecondt chaosDemonCfgt starTimeListt
diffSecondtupdStarR›tstarTimeRfR¥((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR>Òs@  #
       #   $c Csñtjƒ}|jtƒ}|jtƒ}|jtƒ}|jtƒ}td||ƒ}||g}tj    ƒ}    tj
|ƒ}
|j t j t jƒ} i|tj6|tj6|tj6|    tj6|
tj6| tj6} tj|| ƒdS(Ni(RRRFRRRRR9RR(RtNomalDictGetPropertyR2tDef_PDict_FBRealHelpCountR3t    Help_stept
Help_gradet Help_npcTotalt Help_lineIDt Help_isHelptHelp_helpCountt Notify_FBHelp( RR R@R›twheelNumt needKillCntt remainNPCCntt
KillNPCCnttdataRR§t    helpCountt
fbHelpDict((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyR?s   +cCsdS(N((Rt
actionTypet
actionInfoR ((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt
DoFBActions(:RRRnRR…RHRˆRR2R—R‚R•R’R0RÃRaR5R<RlRÅR#R%R;R\RpRRRRRRR
R R RRRRERRRTRURWRYR^RZR[R]RiRµR³R¼R¿RÂR,tNoneR>R?Râ(((s†E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ChaosDemon.pyt<module>s^                                                                         .    &        
    
                          I                
    /