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
7Å!\c@sMddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZedƒ\ZZZedƒ\ZZZZedƒ\ZZZZZdZ dZ!dZ"dZ#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„Z3gd„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d „Z;d!„Z<d"„Z=d#„Z>d$„Z?d%„Z@d&„ZAdS('iÿÿÿÿNiiit XMZZ_WinCntt XMZZ_TotalExptXMZZ_TotalExpPointt XMZZ_ExtraExptXMZZ_ExtraExpPointtXMZZ_TotalScoretXMZZ_ExtraScoretXMZZ_NeedKillNPCIDcCstjtjƒS(N(tFBCommontGetFBLineStepTimetChConfigtDef_FBMapID_XMZZ(((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt__GetFightTimeFscCsdS(N((t    curPlayer((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt OnXMZZLoginHscCstS(N(tTrue(R tmapIDtlineIDttick((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytOnEnterFBEvent_scCs|S(N((R RtlineIdtipyEnterPosInfoR((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytOnGetFBEnterPoskscCstjS(N(t IPY_GameWorldt    cmeAccept(taskR((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytOnChangeMapAskuscCs<tjtjdƒd \}}tj|||dtƒdS(Niit
isResetPet(RtGetFBLineEnterPosInfoR
R t    GameWorldtResetPlayerPosR(R t    startPosXt    startPosY((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt
__ResetPosxscCsttjƒƒ}tj|ƒ}|s˜tj|ƒtj|tjdƒtj    |tj
|ƒt dgƒ}t j ƒj|jƒddd|t|ƒƒ|j|jƒƒ|jƒ}xXtd|jƒƒD]A}|j|ƒ}|jƒdkrÒ|jdƒ|jƒqÒqÒWxLttjtjƒD]5}tj||ƒ}    |    r-|    d}
|
jƒq-q-Wtj|ƒj ƒt!j"|tjdtj#ƒn|j$tj
ƒ} t%ƒt&} | || } | dkrâtj'|ƒdS|j(tj)d| dt*ƒt+||ƒdS(NiitXMZZStartFightiè(,tintttimeRtGetHadDelTickettSetHadDelTickettAddEnterFBCountR
R t PlayerControltNomalDictSetPropertytDef_PDict_XMZZLastStartTimetstrRtGetPlayerManagertGameServer_QueryPlayerResulttGetIDtlentSetHPtGetMaxHPtGetSkillManagertranget GetSkillCounttGetSkillByIndext GetRemainTimet SetRemainTimet
Sync_SkillRtbfProcessDeBufftbfDeBufft SkillCommontGetBuffManagerByBuffTypetCleartRefreshAllStatet EventReportt WriteEvent_FBt CME_Log_StarttNomalDictGetPropertyR t Def_TotalTimet PlayerLeaveFBt Sync_TimeTickt tttTowerTakeRtDoFBHelp(R Rtcurtimet hadDelTickettmsgInfot skillManagertitcurSkilltbuffTypet    buffTuplet    buffStatet lastStartTimet    fightTimet
remainTime((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt    DoEnterFB‚s> .  
    cCsHtjƒjƒ}|tkr+t|ƒn|tkrDt|ƒndS(N(Rt    GetGameFBt    GetFBSteptFB_Step_PreparetResetPostFB_Step_Fightingt StartXMZZPK(RtfbStep((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt    OnProcess®s     cCsS|tjƒjƒdkr dStjt|ƒtjƒ}|rOt|ƒndS(Niièiè(RRUt GetFBStepTickRt    SetFBStepRYtGetCurSingleFBPlayerR!(RR ((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyRXÀs  c Csøtjƒ}|sdSttjƒƒ}|jtjƒ}tƒt}|||}|dkredStj    t
|ƒtj ƒ}|s‹dS|d}t |ƒ}t |ƒ}    | s»|     r¿dSt jd|jƒƒ|    |k}
t||
d|    ƒdS(Nis    ÏÉħ֮Õùʱ¼äµ½£¬·¢ËͽáËãi(RR_R#R$RBR
R*R RCR^t FB_Step_Overt GetMapNPCListt
__GetHPPerRtDebugLogR.t__SendPKResult( RR RHRQRRRStnpcListtcurNPCtnpcHPPertHPPertisWin((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt __ChcekFBOverÉs,    
   cCs.tj|ƒ}|r*tj|ƒd|SdS(Nidi(tGameObjR1tGetHP(tgameObjtmaxHP((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyRbásc
Cs'd}tjƒjƒ}|tjkrNtjj|ƒ}|jddƒ}n|s·tjƒjt    ƒ}tj
ƒj |ƒ}|r·|j ƒ}|j tjƒjtjƒƒ}q·nt||||gƒ}    tjƒj|jƒddd|    t|    ƒƒtjd||||f|jƒƒdS(NttNameit
XMZZPKOvers6__SendPKResult vsName=%s, isWin=%s, isEnd=%s, HPPer=%s(Rt GetGameWorldt    GetLineIDt
PyGameDatatg_xmzzVSPlayerDatatpoptgetRUtGetGameFBDictByKeyRt GetGameDatatFindNPCDataByIDtGetNametdecodet ShareDefinetDef_Game_Character_EncodingtencodetGetCharacterEncodingR+R,R-R.R/Rc(
R RitisEndRhtvsNameRtvsPlayerPropDatatnpcIDtnpcDataRJ((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyRdås '.&cCsötjt|ƒtjtjtƒtdƒ|s8dS|\}}tj    ƒj
ƒ}|t j |<t jddƒ}|t|ƒkrœt jddƒ}n
||}tjd|||f|jƒƒtjd|gƒtjƒjt|ƒdS(Nièt    XMZZRobotiis#¶ÔÊÖÐÅÏ¢: pkPlayerID=%s,npcID=%s,%sie(RR^RWtSync_Player_TimeTickRt tttWaitStartR tDef_PrepareTimeRRrRsRtRut IpyGameDataPYtGetFuncEvalCfgR/t
GetFuncCfgRcR.tNPCCustomRefresht SetNPCRefreshRUt SetGameFBDictR(R Rt vsPlayerInfot
pkPlayerIDtpkPlayerPropDataRt robotIDListR„((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt PrepareXMZZPKös  
#c
CsÔ|jƒ}tjƒjƒ}|tjkr1iStj|}|sHiStjddƒ}tjddƒ}||krˆ||krˆiS|d}|d}i}    ||kr·|}    n|rÐt    |||ƒn|    S(NR†iitJobtLV(
tGetNPCIDRRrRsRtRuRŠR‹RŒt__DoGiveVSPlayerNPCSkill(
RftisRebornR„RRƒR“t playerNPCIDtjobtnpcLVt npcAttrDict((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytGetFBNPCStrengthenAttrs&  
 
     c
CsØ|jƒ}tjddƒ}||kr.dS||}g}x[|jƒD]M\}}||kriqKnt|tƒrˆ|j|ƒqK|t|ƒ7}qKWtj    d|||fƒx|D]}    |j
|    ƒq½WdS(NtXMZZRobotSkillis¸øNPC¼¼ÄÜ: job=%s,npcLV=%s, %s( R2RŠR‹titemst
isinstanceR#tappendtlistRRctLearnSkillByID(
RfR›RœRKt jobSkillDictt skillInfoDictt skillIDListt    skillInfotneedLVtskillID((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyR˜3s   
  cCs9t|ƒ|tjƒjƒtƒtdkr5dSdS(Niè(RjRRUR]R R‰(R((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyRZGs
'c    Cs¾tjƒjƒtkrdS|jƒtjƒjtƒkrAdSttjƒƒ}|j    t
j ƒ}t ƒt }|||}|dkr•t}nt}t|ƒ}t|d||ƒdS(Ni
i(RRURVRYR—RxRR#R$RBR
R*R RCRtFalseRbRd(    R RfRRHRQRRRSRRh((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytDoFB_Player_KillNPCTs!       cCs#t|ƒ}t|dd|ƒdS(Nii(RbRd(R Rh((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt DoPlayerDeadps cCs&tjƒ}|jƒtkr"tStS(N(RRURVRYR«R(tattackertdefendertgameFB((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytCheckCanAttackTagObjInFB|s cCsþ|s$tjd||jƒƒdStjddiƒ}t|ƒ|kritjd||jƒƒdS|t|ƒ}t|ƒ}tj|t    j
|ƒ}||kr½t j |dƒdSt|gƒ}tj ƒj|jƒddd|t|ƒƒdS(    sA
    @todo: ÁìÈ¡ÏÉħ֮ÕùʤÀû³¡Êý½±Àø
    @param prizeEx:³¡Êý
    s$ÁìÈ¡ÏÉħ֮ÕùʤÀû³¡Êý½±Àø: prizeEx=%sNt    XMZZAwardis&²»ÄÜÁìÏÉħ֮ÕùʤÀû³¡Êý½±Àø! prizeEx=%stGeRen_chenxin_998371itGetXMZZWinPrize(RRct GetPlayerIDRŠR‹R+R/t
ItemCommontGetItemPackSpaceRtrptItemR(t
NotifyCodeR,R-R.(R tprizeExtwinCntAwardDictt prizeItemListt    needSpacet
emptySpacetmsg((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyR´žs   .c
Cst|ƒ}t|ƒdkr"dS|d}tjddiƒ}t|ƒ|krqtjd||jƒƒdS|t|ƒ}xk|D]c\}}}tj    ||||t
j gt dt ƒsˆ|jƒ}    tj d||f|    ƒtSqˆWi|d6|d6}
tj|d    |
ƒdS(
NiiR²s&²»ÄÜÁìÏÉħ֮ÕùʤÀû³¡Êý½±Àø! prizeEx=%st showSysInfos4OnGetXMZZPrizeResult(), give item itemid:%s,count:%sRºR¼tXMZZWin(tevalR/RŠR‹R+RRcRµt ItemControlertGivePlayerItemRR¸RtErrLogR«tDataRecordPacktDR_FuncGiveItem( R t    funResultt
resultListRºR»R¼titemIDtitemCnttisBindtplayerIDt addDataDict((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytOnGetXMZZPrizeResult·s$ 
 cCs\| st|ƒdkrdS|\}}|r?t||ƒn|rXt|||ƒndS(s3ÏÉħ֮ÕùPKÐÅÏ¢Âß¼­´¦Àí
    @param resultList: 
    iN(R/tDoXMZZPKOverLogicR”(R RÉRtoverInfoR((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pytDoXMZZPKInfoLogicÑs c#CsÇt|ƒdkrdS|\}}}}}tj|ƒ}|rmtjddƒ}ttjd|ƒƒ}    n*tjddƒ}
ttjd|
ƒƒ}    tj|ƒj|    ƒ|j    ƒ} t
j ƒ} | j | t ƒ} | j | tƒ}|tj| }||    }|tj}|tj}| j| t |ƒ| j| t|ƒt|    t|dƒ|ƒ}| j | tƒ}| j | tƒ}|tj|}||}|tj}|tj}| j| t|ƒ| j| t|ƒ| j | tƒ}||}| j| t|ƒt|t|dƒ|ƒ}| j | tƒ}||}| j| t|ƒtj|tj|ƒ|r¼tj|tjdƒ| jt| jtƒdƒt |dƒn|sÉ| rÃ|j!tj"ƒ}tt#j#ƒƒ} | |d    }!i|t$j%6|t$j&6|t$j'6|t$j(6| t$j)6|t$j*6|!t$j+6|d
6}"t$j,|tj-d||"ƒtj.|tj"dƒ|j/t0j1dt2ƒt3d    t4ƒt$j5t6t
j7ƒj8ƒƒndS( Nit XMZZPKAwardit winXMZZAddExptfailXMZZAddExpidiiièt    conWinCnt(9R/R(tGetPlayerReExpRŠRŒRÂtFormulaControltGetCompileFormulatAddExpR.RRUtGetPlayerGameFBDictByKeyRRR
tDef_PerPointValuetSetPlayerGameFBDictR#tfloatRRRRt PlayerSuccesstDoAddSuccessProgressR}tSuccType_XMZZGetScoretSuccType_XMZZWinCntRRRxRGRBR*R$Rt
Over_scoretOver_extrScoret Over_extraExptOver_extraExpPointtOver_expt Over_expPointt Over_costTimet NotifyFBOverR R)RERt tttLeaveMapR t Def_LeaveTimeRR^R`RrtGetTick(#R RÉRiRtaddScoretaddPerRÖtreExptwinAddExpFormulataddExptfailAddExpFormulaRÍR°texptexpPointttotalExpt updTotalExptupdExpt updExpPointt addExtraExptextraExpt extraExpPointt extraTotalExptupdExtraTotalExpt updExtraExptupdExtraExpPointt
tatalScoretupdScoret addExtraScoret
extraScoret updExtraScoreRQtcurTimetcostTimetoverDict((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyRÐäsl  
 
 
 
 
$cCs0tjƒjtƒ}tj|i|d6ƒdS(NtwinCnt(RRURxRRt Notify_FBHelp(R RR    ((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyRG)sc    Csùtjƒj|ƒ}|j}|j}tjdƒ}t|ƒ|kr]tjd|ƒdSt    j
t j }tj ƒj|ƒd
krtjd|ƒdS|t|ƒ}ttjƒƒdd!}    |t|t}
} |
|    koò| kns tjd|ƒdS|t} | jƒ} | jƒtj ƒjt    jƒ}| d}x*| D]"}|t|ƒkrU|}PqUqUW| |}tj|tj|ƒs²tjd|ƒdSt|||gƒ}tjƒj|jƒddd    |t|ƒƒdS( Nt
XMZZBetCfgs.    ÏÉħ֮ÕùͶע XMZZBetTime ÅäÖÃÀïûÓÐË÷Òý %sis'    ÏÉħ֮ÕùͶע ²»ÔÚͶעʱ¼äÄÚ Ë÷Òý %si iiÿÿÿÿs    ÏÉħ֮ÕùͶע Ç®²»¹» Ë÷Òý %stXMZZBet(i(RR,tGetPlayerByIndextBetIndext    BetResultRŠR‹R+RcR}tDef_Notify_WorldKey_FBFuncStateR
R RrtGetGameWorldDictByKeytGetCurrentDataTimeStrt Bet_StartTimet Bet_EndTimet Bet_NeedMoneytkeystsortt"Def_Notify_WorldKey_WorldAverageLvR#R(t    HaveMoneyRtTYPE_Price_Silver_MoneyR-R.R/(tindext
clientDataRR tbetIndext    betResultt betTimeDicttkeytbetInfoRt    startTimetendTimet needMoneyDicttkeyListtworldLvtfindLvtlvt    needMoneyRJ((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt    OnXMZZBet:sB        
 
 
 
.cCstj|tj|ƒdS(N(R(tPayMoneyRR(R R)((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt DoXMZZBetCosths(BRR(RRR
RŠR}RÃRÆR¶RØRRßRtR?R;RkR$tmathR3RCR‰RìRRtBet_ResultTimeRt FB_Step_OpenRWRYR`t FB_Step_CloseRRRRRRRRR RRRRR!RTR\RXRjRbRdR”RžR˜RZR¬R­R±R´RÏRÒRÐRGR*R,(((sp.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_XMZZ.pyt<module>sn                                        
        
    ,                                                    "                E        .