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
›Üˆgc@sDdZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZedƒ\ZZZZdZdZdZedƒ\ZZZZZd„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,e-d„Z.e-d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5id„Z6d„Z7d „Z8d!„Z9d"„Z:d#„Z;d$„Z<d%„Z=d&„Z>d'„Z?dS((sVersion = 2017-10-10 14:30iÿÿÿÿNit DuJieFB_StartDuJieFB_RealmLVtDuJieFB_LeaderPlayerIDicCs+tjƒrdnd}tjtj|ƒS(Nii(tFBCommontGetFBPropertyMarktGetFBLineStepTimetChConfigtDef_FBMapID_DuJie(tlineID((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytGetRealmFBTimeCfg<scCsItjƒjtƒ}tj|ƒ}|s?tjd|ƒdS|jƒS(NsûÓиþ³½çµÈ¼¶Êý¾Ý! Lv=%s(t    GameWorldt    GetGameFBtGetGameFBDictByKeyRtPlayerPrestigeSystGetRealmIpyDatatErrLogt    GetBossID(trealmLVt realmIpyData((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytGetDuJieBossID@s cCsdS(N((ttick((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytDoFBInitLscCs@tjƒ}|jtdƒ|jtdƒ|jtdƒdS(Ni(R
R t SetGameFBDictRRR(RtgameFB((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytOnOpenFBTs
 cCstjƒdS(N(RtDoLogic_FBKickAllPlayer(R((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt    OnCloseFB`s
cCsA|jƒtjƒjtƒkr=tttjƒjƒƒndS(N(    tGetIDR
R R Rt__DoDoJieFBOvertFalset GetGameWorldtGetTick(t    curPlayer((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt DoPlayerDeadjs!cCst|||ƒS(N(t __CheckEnter(R tmapIDRR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytOnEnterFBEventuscCstj|tjƒs0tjd|jƒƒtS|dkso|jƒt    j
kso|dkr|j ƒdkr|j ƒ}t j|ƒ}|s¥tjd|ƒtS|jƒ}|sÕtjd||jƒƒtS|jƒ|krtjd||jƒƒtS|jƒstSntS(Ns)¾ôλ¾³½ç¹¦ÄÜ먦Æô, ÎÞ·¨¿ªÆô¶É½Ù!curLV=%siisûÓиþ³½çµÈ¼¶Êý¾Ý! Lv=%ss!¾³½çÒÑÊÇ×î´óµÈ¼¶£¬²»ÄÜÉý¼¶! Lv=%ss)µÈ¼¶²»×㣬ÎÞ·¨¿ªÆô¶É½Ù£¡needRealmPoint=%s(t GameFuncCommt GetFuncCanUset ShareDefinetGameFuncID_OfficialR
tDebugLogtGetLVRt    GetTeamLVt IPY_GameWorldt    tmlLeadert    GetTeamIDtGetOfficialRankR RRt    GetNeedLVt GetPlayerIDRtTrue(R R#Rt
curRealmLVRtneedLV((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyR"~s&?   cCs|S(N((R R#tlineIdtipyEnterPosInfoR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytOnGetFBEnterPosœscCstjS(N(R,t    cmeAccept(taskR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytOnChangeMapAsk¦sc CsÇtjƒ}|jƒ}|tkr5tj|ƒdS|jtjƒ}|jtj    ƒ}t
j ƒsÀ|rw|j ƒn|}tjƒj tj|dƒtj|||ƒt
jt|ƒn|jtjƒ}tƒ}|jtƒs3x,|tD] }    tj|tj|    dƒqõWtjdƒt|ƒn|jƒ}|tkrit||td||ƒnM|tkr¶t|td||j ƒdƒ}
|j!t"j#d|
t$ƒnt%||ƒdS(Niis Íæ¼Ò½øÈ븱±¾iè(&R
R t    GetFBSteptFB_Step_LeaveTimet PlayerControlt PlayerLeaveFBtNomalDictGetPropertyRtDef_Player_Dict_ReqFBMapIDtDef_Player_Dict_ReqFBFuncLineRtGetHadSetFBPropertyMarkR/RtMap_FBDict_PropertyMarktSetFBFuncLineIDt    SetFBSteptFB_Step_MapPrepareR tDef_FB_NPCStrengthenPlayerCntR    RtDef_HelpAddAttrIDtNomalDictSetPropertytDef_PDict_RealmFBAttrAddR)t__SetFBLeaderPlayert__EnterFBInPreparetDef_Time_MapPreparetFB_Step_FightingtmaxtDef_Time_Fightt GetFBStepTickt Sync_TimeTickR,t tttTowerTakeR2tDoFBHelp( R RRtfbSteptreqMapIDRt propertyMarkt fbPlayerCntt
DuJieFBCfgtattrIDt
notifyTick((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt    DoEnterFB¯s6              % cCsutjƒrdnd}tj|tj|tjdƒtƒ}tjt    |ƒt
||t dt j ƒ|ƒdS(Niiiè(RRt EventReportt WriteEvent_FBRRt CME_Log_StartR    RERFRLRMR
R (R RRRY((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytOnCallHelpBattleOKâs     !cCsctjƒ}|jt|jƒƒ|jt|jƒƒtj|ƒt    j
|ƒt |t ƒdS(N( R
R RRR1RR/R tSyncRealmFBStateRtUpdateFBEnterTicktOnGetMemberForHelpDujieR(R R((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRKês    cCsatjƒjƒ}|tkr+t|ƒn2|tkrDt|ƒn|tkr]t|ƒndS(N(    R
R R;RFt__DoLogic_MapPrepareRNt__DoLogic_MapFightingR<t__DoLogic_MapLeave(RRU((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt    OnProcessús      cCsudStjƒ}|jtƒ}|dkr/|Sttj||jƒdƒƒ}tƒ}|t    }d}d}x<t
|dƒD]+\}    }
||
kr|    }|
|}qqW||krÇ| rÇ|S|j t|ƒtj d||||fƒtj ƒ} xnt| jƒƒD]Z} | j| ƒ} | s4qnt| |ƒ|dkr| jtjd|dtƒqqW|S(Nig@@iisB__UpdDuJieFBStar useSecond=%s,curStar=%s,updStar=%s, diffSecond=%siè(R
R R RtinttmathtceilRQR    t Def_StarTimet    enumerateRR)tGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexRTRRR,t tttFlagTakeR2(RtisForceRtcurStart    useSecondRYt starTimeListt
diffSecondtupdStartstartstarTimet playerManagertindexR ((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt__UpdDuJieFBStars8  #    
        $cCs\t|||jƒdƒ}|jtjd|tƒ|rX|jtjd|tƒndS(Ni(RORQRRR,t tttWaitStartR2t tttAddUpTime(R tdownTimeRRt    notifyEffR[((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRL-s
cCsOtƒ}|tjƒjƒ|tdkr1dStjt|ƒt|ƒdS(Niè(    R    R
R RQRMRRERNt__OnDuJieFBStart(Rt    invadeCfg((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRd7s     $
cCsLtƒ}|tjƒjƒ|tdkr>tt|ƒdSt|ƒdS(Niè(R    R
R RQRPRRR|(RR‚((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRe@s     $ 
cCs5tƒ}|tjƒjƒ|tdkr1dSdS(Niè(R    R
R RQtDef_Time_Leave(RR‚((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRfIs    $c
Csntjƒrdnd}tjƒjtƒsât}tjƒ}x|t|j    ƒƒD]h}|j
|ƒ}|ssqRn|j ƒt j ks¦|dkrR|jƒdkrRt|ƒt}PqRqRW|sâtjdƒtjƒdSntƒ}tƒ}|sþdStjƒjƒ}tj||ƒ}    tj|    |gƒtjt j|tdƒtj|tƒt|ƒdS(Niis+    ×¼±¸µ¹¼ÆÊ±Òѹý£¬¶Ó³¤ÈÔδ½øÈ븱±¾£¡£¡£¡ iè( RRR
R R RRRmRnRoRpR+R,R-R.RKR2tLogRR    RtGetMaptGetMapIDtGetFBLineRefreshNPCtNPCCustomRefresht SetNPCRefreshtSync_Player_TimeTickRSRPtNotifyCopyMapPlayerFBHelpRTR|(
RRt
findLeaderRzR{R RYtbossIDR#trefreshBossMark((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRQs6 3
 
        
c    CsEtjƒ}|jƒtkr"dStjdƒtƒ}||jƒ}tjt    |ƒ|j
t ƒ}tj ƒ}|j |ƒ}|s‘t}nt||gƒ}tjƒjdddd|t|ƒƒ|j
tƒ}    |j
tƒ}
tjƒ} | rdnd} |td} i|tj6|    tj6|tj6}|jƒ}xùt|ƒD]ë}|j|ƒ}|dksR|jƒr…qRntj |t!j"| t!j#d|ƒ|j$t%j&d| t'ƒ|r!|r!|j(ƒ|kr!t)j*||
|    ƒtj+|t!j,t!j"dƒtj-|ƒq!ntj.|t!j"| ||ƒqRWdS(Ns´¦Àí¶É½Ù¸±±¾½áÊøÂß¼­it DuJieFBOveriiè(/R
R R;RNR)R    RQRRER<R RRmtFindPlayerByIDRtstrtGetPlayerManagertGameServer_QueryPlayerResulttlenRRRRƒt Over_costTimet
Over_gradet Over_leaderIDRoRnRptNonetIsEmptyR]R^RRt CME_Log_EndRRR,t tttLeaveMapR2R1R tDologicDujieFBPasstSetFBPDictValuetDef_PDict_LastEnterFBTicktSyncFBEnterTickt NotifyFBOver(tisPassRRR‚tcostTimetleaderPlayerIDtcopyMapPlayerManagert leaderPlayertmsgStrRsRtFBPropertyMarkRt    leaveTicktoverDictt    playerCnttiR ((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRrsD           ( $ "  c Cs|s
dS|jƒ}|s dS|j|gƒ}t|ƒ}tj|tj|ƒ}t||kƒ}|r¹tj    d|j
ƒg||j ƒgƒt j dt|ƒ|j
ƒƒnHxE|D]=\}    }
} tj||    |
dtjgddtigƒqÀWdS(Nt RealmFBTeams'±³°ü¿Õ¼ä²»¹»£¬·¢ËÍÓʼþ: mailItemList=%siteventtDojie(t GetTeamAwardtgetR”t
ItemCommontGetItemPackSpaceR,trptItemRhR=t SendMailByKeyR1t GetPlayerNameR
R)R‘t ItemControlertGivePlayerItemR( R R¥RRst teamAwardDictt prizeItemListt    needSpacet
emptySpacet
isSendMailtitemIDtitemCnttisBind((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt__GiveTeamAward§s   (#cCs<tjƒ}|jtƒ}||tj<tj||ƒdS(N(R
R R RRt Help_leaderIDt Notify_FBHelp(R RthelpDictRR£((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRTÁs
  cCst||ƒdS(N(t__FBNPCOnKilled(tattackertcurNPCR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytDoFB_Npc_KillNPCÊs cCst||ƒdS(N(RÄ(R RÆR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytDoFB_Player_KillNPCÓs cCs=|jƒ}|tƒkrdStjdƒtt|ƒdS(Ns¶É½ÙÒѱ»»÷ɱ£¡(tGetNPCIDRR
R)RR2(RÆRR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRÄ×s    cCs&tjƒ}|jƒtkr"tStS(N(R
R R;RNRR2(RÅtdefenderR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytCheckCanAttackTagObjInFBås cCs‚|jƒtjƒjtƒkr%dS||jtjƒtj    ddƒkr^tj
dƒdS|j tj|ƒt |t ƒdS(NtRealmFBHelpAttris µã»÷¹ÄÎè¼ä¸ô(R1R
R R Rt GetTickByTypeRtTYPE_Player_Tick_DuJieInspiret IpyGameDataPYt
GetFuncCfgR)t SetTickByTypeRcR2(R t
actionTypet
actionInfoR((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt
DoFBActionñs!(  cCsœdStjƒjtƒ}tj|ƒ}|s2dStjdƒ|jtj    t
j ƒ}t ||gƒ}tj ƒj|jƒddd|t|ƒƒdS(NsÏòÃËÓÑѰÇó¶É½ÙÊØ»¤£¡itGetMemberForHelpDujie(R
R R RR RR)R?RRJR'tDef_Effect_BaseAtkAddPerR‘R’R“RR”(R t    isInspireRRtatkAddR¦((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyRcÿs .c Cs/tjdƒ}i}d}xw|D]o\}}|jt|ƒiƒ}x4|jƒD]&\}}    |j|dƒ|    ||<qSW|d||f7}q"WxP|jƒD]B\}}    t|ƒtƒtkr¢tj    |t
j ||    ƒq¢q¢Wtj|ƒj ƒ|r|d }ni|d6}
t |d|
ƒdS(NRÌtis%s|%s,iÿÿÿÿthelpInfo(RÏtGetFuncEvalCfgR°R‘titemsRhR    RHR=RIRRJtRefreshPlayerAttrByBuffRT( R RÚtrealmFBHelpAttrDictt totalAttrDictt
fbhelpInfothelpTypetnametattrDictRZt    attrValueRÃ((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytOnGetDuJieHelpInfos"!  cCsÇtj|jƒƒtjkr"dStjƒjtƒ}|j    ƒ|krMdSt
ƒ}|s`dStj d|ƒx>t
ƒt D]/}|j tj|ƒ}tj|||ƒqWtj d|ƒdS(Ns»¤·¨ÊôÐÔ¼ÆËã allAttrList=%ss»¤·¨ÊôÐÔ¼ÆËã½á¹û allAttrList=%s(RtGetRecordMapIDR†RRR
R R RRR    R)RHR?RJR=tCalcAttrDict_Type(R t allAttrListR£tfbcfgRZRä((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytCalcDujieFBAttrAdd+s    cCstS(N(R2(((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pytOnPlayerRebornBs(@t__doc__RRR,R=R
RˆRÏR R%R±R'R¶t PlayerSuccesst
EventShellR]RittimetrangetFB_Step_CallHelpRFRNR<RRRRMRPRƒRkRHR    RRRRR!R$R"R7R:R\R`RKRgRR|RLRdReRfRRRÀRTRÇRÈRÄRËRÔRcRåRêRë(((sE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_DuJie.pyt<module>sl                                           
                     
            3             &
                        !    5