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
š\c@s&ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZedƒ\ZZZedƒ\ZZZZZdZdZdZdZdZd    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/dd„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d „Z7d!„Z8d"„Z9d#„Z:d$„Z;d%„Z<dd&„Z=dS('iÿÿÿÿNiit RefreshStept SetGameFBDictt
NextLineIDsNeedKillNPCNum sNeedKillNPCID_%ssNeedKillNPCCount_%ssKillNPCCount_%st IsInFBOnDayt
RewardLinecCsatj|jƒƒ}|tjkr(dStjƒj|jƒt    dƒtj
d|jƒƒdS(NisÉèÖÃæ´»ÊÌôÕ½ÖйýÌ죡( tFBCommontGetRecordMapIDtGetMapIDtChConfigtDef_FBMapID_QueenRelicst    GameWorldt    GetGameFBtSetPlayerGameFBDictt GetPlayerIDtFBPKey_IsInFBOnDaytDebugLog(t    curPlayertmapID((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytOnFBPlayerOnDayAs cCsœ|s
tS|d}tj|ƒ}ttj||ƒƒ}tj|tj|t    |gƒ}||k}|s˜tj
d||||f|j ƒƒt    StS(NisXÉÏÒ»²ã·Ç×î´óÆÀ¼¶¹ý¹Ø£¬ÎÞ·¨ÌôÕ½ÏÂÒ»²ã£¡lineID=%s,preLineID=%s,preLineGrade=%s,maxGrade=%s( tTrueRRtlentGetFBLineGradeR
tGetDictValueByBitRt"Def_Player_Dict_PlayerFBStar_MapIdtFalseRR (RRtlineIdttickt    preLineIDtmaxGradet preLineGradetcanEnter((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytOnEnterFBEventRs
!     cCs|S(N((RRRtipyEnterPosInfoR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytOnGetFBEnterPoshscCstjS(N(t IPY_GameWorldt    cmeAccept(taskR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytOnChangeMapAskoscCstS(N(R(((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytOnPlayerRebornsscCsGtjƒjƒ}tjƒ}t||ƒ\}}|j||ƒdS(N(R
tGetMapRRtGetFBPropertyMarkt__GetQueenRelicsLinePostResetPos(Rt rebornPlaceRRtlineIDtenterXtenterY((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytOnResetFBRebornPlacePosws
 cCs tjƒ}t|||ƒdS(N(RR(tDoQueenRelicsLinePrepare(RRR,((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytOnCallHelpBattleOKs c Csƒ|jƒ}tjd|ƒ|jtjtjƒ}tj|tjƒ}||krwtj    d|ƒt
j |ƒdStj ƒ}tj |ƒsëtj|tjƒjƒƒdsÛt
j |ƒtjd|jƒƒdStj|ƒntj}tjƒ}|jtjƒ}|jƒ}    |    tkrWtj||ƒ|}tj|||ƒdS||krŒtj||ƒ|}t|||ƒnætjtj|ƒ}
|    tkrô|
td|tj ƒjƒ} |jt j!dt"| dƒt#ƒn~|    t$krr|
t%d|tj ƒjƒ} |jt j&dt"| dƒt#ƒtj'|tj(tjƒjƒ|ƒ|ƒnt)||ƒdS(Ns DoEnterFB...s½øÈë´ÎÊýÒÑÂú£¬²»¿É½ø£¡is½øÈ븱±¾¿Û³ýÃÅÆ±Ê§°Ü£¡iè(*R R
RtNomalDictGetPropertyRtDef_Player_Dict_EnterFbCntDayR    RtGetEnterFBMaxCnttLogt PlayerControlt PlayerLeaveFBR tGetHadDelTickettDelFBEnterTickett GetGameWorldRtErrLogtSetHadDelTicketR(tDef_Player_Dict_ReqFBFuncLinet    GetFBSteptFB_Step_CallHelptSetFBPropertyMarkt FBHelpBattlet&SendGameServer_RefreshHelpBattlePlayerR0tGetFBLineStepTimetFB_Step_PreparetDef_PrepareTimet GetFBStepTickt Sync_TimeTickR"t tttWaitStarttmaxRtFB_Step_Fightingt Def_FightTimet tttTowerTaket UpdateFBGradeRtDoFBHelp( RRtplayerIDtenterCnttmaxCnttgameFBRR,t    reqLineIDtfbStept
fbLineTimet notify_tick((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyt    DoEnterFBˆsL    "          "% "". cCsòtjd||jƒƒtjƒ}|jtdƒ|jtdƒ|jtdƒ|jtj    dƒt
j ||ƒt
j t |ƒttt||ƒt
jtj|ƒ}|jtjd|tdtƒtj|tj|tjƒdS(Ns#¹¦ÄÜÏß¿ªÊ¼£¬½øÈë×¼±¸½×¶Î; lineID=%siiè(R
RR R RtFBKey_RefreshSteptFBKey_IsLastRefreshSteptFBKey_NextLineIDRt Def_FB_GradeRR@t    SetFBStepRDt__RefreshQueenRelicsNPCRRRCR    RGR"RHREt EventReportt WriteEvent_FBt CME_Log_Start(RR,RRRRU((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyR0·s !cCs³tjƒjƒ}tjƒ}tjtj|ƒ}|tkrOt    ||ƒn`|t
kr“tj |tj tj ƒjƒ|ƒƒt||ƒn|tkr¯t||ƒndS(N(R
R R>RR(RCRR    RDt__DoLogic_FB_PrepareRJRMRR:Rt__DoLogic_FB_Fightingt FB_Step_Overt__DoLogic_FB_Over(RRTR,RU((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyt    OnProcessÌs   ( cCsg|tjƒjƒ|tdkr(dSttt|ƒtjt    |ƒtj
t j |t dƒdS(Niè(R
R RFRER]RRRR\RJtSync_Player_TimeTickR"RLRK(RRU((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyRaâs $cCs9|tjƒjƒ|tdkr(dStt|ƒdS(Niè(R
R RFRKt__DoQueenRelicsOverR(RRU((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyRbðs$ cCsM|tjƒjƒ|tddkr,dStj|ƒtjt|ƒdS(Nièi N(    R
R RFt Def_LeaveTimetGameWorldProcesstCloseFBRR\t FB_Step_Close(RRU((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyRdüs
( cCsÄtjƒ}tjtj|ƒ}|s<tjd|ƒdStjƒ}|jt    ƒ}|rj|d7}nt
|ƒ}||krtj d||fƒdS||d}    i}
xp|    j ƒD]b\} } | sÖq¾nt j| ƒ} | sïdSx.| D]&\}}|
j|dƒ||
|<qöWq¾W|
sEtjd||fƒdSt||kƒ}|jt    |ƒ|jt|ƒ|
jƒ}t
|ƒ}|jt|ƒxFt|ƒD]8\}}|jt||ƒ|jt||
|ƒq¬W|rtj d|||    |
fƒn|rXtj d|||    |
fƒx$|    jƒD]} t j| ƒq>Wn|rot||ƒdStjƒ}xBt|jƒƒD].}|j|ƒ}|s¯qŽnt||ƒqŽWdS(NsûÓÐÅäÖÃË¢¹ÖÐÅÏ¢!lineID=%sis#³¬¹ý×î´óË¢¹Ö½×¶Î!step=%s,maxStep=%sis/ûÓÐÐèÒª»÷ɱ²Å¿É¹ý¹ØµÄNPCÅäÖÃ!lineID=%s,step=%ssCË¢¹Ö×¼±¸: step=%s,isLastStep=%s,refreshIDDict=%s,needKillNPCDict=%ssCˢйÖÎï: step=%s,isLastStep=%s,refreshIDDict=%s,needKillNPCDict=%s(RR(tGetFBLineRefreshNPCRR    R
R;R tGetGameFBDictByKeyRXRRtitemstNPCCustomRefreshtGetNPCRefreshCountListtgettintRRYtkeystFBKey_NeedKillNPCNumt    enumeratetFBKey_NeedKillNPCIDtFBKey_NeedKillNPCCounttSetNPCRefreshByIDRNtGetMapCopyPlayerManagertrangetGetPlayerCounttGetPlayerByIndex(t
isNextStept isRefreshNowRt notifyPlayerR,t refreshNPCCfgRRtsteptmaxStept refreshIDDicttneedKillNPCDictt    refreshIDtneedKillt npcCountListtnpcIDtcountt
isLastSteptneedKillNPCIDListt needKillNumtit playerManagerR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyR]sj     "            cCsdS(N((R((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyt    OnCloseFBQscCsdS(N((RR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytDoExitFBYscCstj|tj|ƒdS(N(t    BuffSkilltDelBuffBySkillIDRtDef_SkillID_QueenRelicsItemBuff(RR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytDoPlayerLeaveFB`sc Csïtjƒ}|jtƒ}|jtjƒ}tjƒ}i}|jtƒ}xDt    |ƒD]6}|jt
|ƒ}    |jt |    ƒ}
|
||    <q[Wi|tj 6|tj 6tj|ƒtj6} |rØ|| tj<ntj||| ƒdS(N(R
R RmRXRR[RR(RttxrangeRvtFBKey_KillNPCCountt Help_lineIDt
Help_gradetGetJsonNPCKillListtHelp_npct    Help_stept NotifyFBHelp( RRRRRtgradeR,tnpcDicttneedNumRRˆt    killCountt
fbHelpDict((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyRNks   cCst||ƒdS(N(t__FBNPCOnKilled(tattackertcurNPCR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytDoFB_Npc_KillNPC€s cCst||ƒdS(N(R¢(RR¤R((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytDoFB_Player_KillNPCŠs cCs‹|jƒ}tjƒ}|jt|ƒd}|jt||ƒt}t}|jtƒ}x€t    |ƒD]r}|jt
|ƒ}    ||    kr™t}n|rk|jt |    ƒ}
|jt|    ƒ} | |
krÝt}qÝqkqkW|sB|r>tj ƒ} xBt    | j ƒƒD]+} | j| ƒ}|r t||ƒq q WndS|jtƒrw|r‡tjdƒtt|ƒq‡nttt|ƒdS(NisËùÓйÖÎïÒÑ»÷ɱ£¡¹ý¹Ø£¡(tGetNPCIDR
R RmR–RRRRtR•RvRwRyR{R|RNRYRRgR](R¤RtcurNPCIDRRt killNPCCounttisNeedKillNPCIDt    isAllKillRŸRRˆt needKillCountR RŽtindextplayer((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyR¢Žs<          cCs&tjƒ}|jƒtkr"tStS(N(R
R R>RJRR(R£tdefenderRR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pytCheckCanAttackTagObjInFB¸s c
Csltjƒjƒtkr)tjdƒdS|tjƒjƒ}tj|ƒtjƒj    ƒ}t
j ƒ}t
j |ƒ}t
j |t
j||ƒƒtjƒjtjƒ}t
jt|ƒt
jtj|ƒ}t
j|ƒ}t|ƒ}    d}
|r7||    kr7t
j||dtƒ} | s*dn|d}
ntjƒ} | jt|
ƒtjd||||
fƒtjƒ} xét| jƒƒD]Õ}| j|ƒ}|s°qnt||ƒ|j ƒ}| j!|t"ƒ}t}i}|r i|t
j#6|t
j$6}t%|||d|||    |ƒ}|ru|\}}}}|j&i|t
j'6t
j(|ƒt
j)6|d6ƒn|d|j*tj+|ƒkr¶t,j-|tj+||dƒn||    kråt.j/|t0j1d|dgƒnt2j3|||ƒt2j4|dƒn|d}| j5|t"|ƒ|rÍ| rÍ| j!|t6ƒ}|s¤tjd|ƒt7}t
j8||ƒt9j:|||ƒ\}}||g|t
j;<ntjd|ƒt.j/|t0j<dƒn|
s÷|j=t>j?d|t@d    t7ƒn;|j=t>jAd|t@d    t7ƒtjd
||
f|ƒ|rKt
jB||ƒnt
jC|||||ƒqWdS( NsÒѾ­½áËã¹ý£¡²»Öظ´½áËã!iis8¿ªÊ¼¹ý¹Ø½áËã: lineID=%s,grade=%s,isPass=%s,nextLineID=%ststartRewardLineIDtqueenrelics_passsÊ״νáËã½±Àø£¬Ôö¼ÓÌôÕ½´ÎÊý£¡s¸±±¾ÖйýÌ죬²»Ôö¼ÓÌôÕ½´ÎÊý£¡iès0    ¿É½øÈëÏÂÒ»¹Ø: updRewardLine=%s,nextLineID=%s(DR
R R>RcRRFRotCloseFBCustomRefreshR'RRR(RRMRRmRR[R\RCR    tGetFBGradeRewardRateListRtGetFBLineIpyDataRRRZRyR•R{R|RNR tGetPlayerGameFBDictByKeytFBPKey_RewardLinet Over_costTimet
Over_gradet__GivePlayerQueenRelicsRewardtupdatetOver_sptGetJsonItemListt Over_itemInfoR2t Def_Player_Dict_FBHistoryMaxLineR6tNomalDictSetPropertyt PlayerSuccesstDoAddSuccessProgresst ShareDefinetSuccType_QueenRelicst
EventShelltEventRespons_PassQueenRelecstEventRespons_FBEventR RRtAddEnterFBCountRAtDoFBAddXianyuanCointOver_xianyuanCointSuccType_QueenRelicsExRGR"t tttLeaveMapRht tttFBAddTimetSync_FBPlayerFBInfoDatat NotifyFBOver(tisPassRtcostTimeRR,t    dataMapIDRRUtrewardRateListRt
nextLineIDtnextLineIpyDataRRRŽR­RROt
rewardLinetneedSyncFBDatatoverDictt    rewardRetR±ttotalSPtrewardItemListt updRewardLinet isInFBOnDaytaddXianyuanCointreason((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyRg¾s€        "& ! #
 $!c Csžd}i}||kr<tjd||f|jƒƒdS|d}    t}
x9t|    |dƒD]$} | |krx|n|} tj|tj| t|gƒ} | | krütjd|| | | f|jƒƒtj    |tj| | t|gƒt
}
nt j || ƒ}|d}|d}| |kr4dn|| }|dks\|t |ƒkr‹tjd| | |||f|jƒƒq`n||}|dkrtt||dƒƒ}g}xY|D]B\}}tdtt||dƒƒƒ}|j||gƒqÈWn |}|}tjd| | ||||f|jƒƒ||7}x.|D]&\}}|j|dƒ|||<qZWq`Wtj||d    d
ƒg}x0|jƒD]"\}}|j||dgƒq±Wt |ƒ}tj|tj|ƒ}||kr&tjd |jƒg|ƒnHxE|D]=\}}}tj||||tjgd d
tigƒq-Wtjd ||f|jƒƒ|
|    ||fS(Nis9Íæ¼ÒÖØ¸´½áËãæ´»Ê¹ý¹Ø½±Àø£¡rewardLineID=%s >= curLineID=%sisG    ¸üйý¹ØÆÀ¼¶: dataMapID=%s,giveLineID=%s,curGrade=%s,rewardGrade=%ssk    ÆÀ¼¶¶ÔÓ¦½±Àø±ÈÀýË÷ÒýÒì³£: giveLineID=%s,rewardGrade=%s,rewardRateList=%s,maxGrade=%s,rewardRateIndex=%sidgY@se    ¸ø¹Ø¿¨½±Àø: giveLineID=%s,rewardGrade=%s,rewardRateList=%s,rewardRate=%s,addSP=%s,giveItemList=%st    eventNamet QueenRelicstQueenRelicsMailtevents(    ×ܽ±Àø£ºtotalSP=%s,rewardItemList=%s(R
R;R RR•RRRRtSetDictValueByBitRRtGetFBLineRewardRRrtroundRItappendRqR6tPlayerAddZhenQiRnt
ItemCommontGetItemPackSpaceR"trptItemt SendMailByKeyt ItemControlertGivePlayerItem(RRÒt rewardLineIDt    curLineIDt    passGradeRRÓRÚttotalItemCountDictR±R×t
giveLineIDt rewardGradetcurGradet
lineRewardtrewardSPRÛtrewardRateIndext
rewardRatetaddSPt giveItemListtitemIDt    itemCountt rewardCountt    needSpacet
emptySpacetisBind((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyRºsb  
!     "    
 
     
 #    #
"  2 cCs_|tjkrdS|}tjƒ}tjd|||f|jƒƒtjƒjƒ}||kr»t||ƒ\}}t    j
|||||ƒtjd|||f|jƒƒdStj ƒj ƒ}    |    t krîtjd|    ƒdS||dkrtjd||fƒdStj ƒ}
|
jtjƒ} ttj||ƒƒ} | | kr‚tjd|| | f|jƒƒdStj||tƒ} | s²tjd|ƒdS|jƒtjkrötjd|jƒƒtj|tj|ƒnt||| ƒ\}}t    j
|||||ƒtj|tj|ƒr[t    j    |ƒ}|j ƒndS(    Ns3DoFBAction actionType=%s, toLineID=%s, curLineID=%ssIÒѾ­Êǵ±Ç°¹¦ÄÜÏß·, Çл»µ½¸Ã¹¦ÄÜÏßÂ·×ø±ê: toPosX=%s,toPosY=%s,toLineID=%ss·Ç½áÊø×´Ì¬!fbStep=%sis(Ö»ÄܽøÈëÏÂÒ»¹Ø, curLineID=%s,toLineID=%ssA·Ç×î´óÆÀ¼¶¹ý¹Ø£¬ÎÞ·¨ÌôÕ½ÏÂÒ»²ã£¡curLineID=%s,grade=%s,maxGrade=%ssûÓÐÄ¿±ê¹¦ÄÜÏß·£¡toLineID=%ss#½øÈëÏÂÒ»²ãÊ±Íæ¼ÒÊÇËÀÍö״̬£¬Ïȸ´»î!(!RtDef_FbActionChangeLineR(R
RR R'RR)R6tPlayerResetWorldPosFBLineIDR R>RcRmRR[RRRµRR;tGetPlayerActionR"tpaDieR5tChPlayertPlayerRebornByTypetrebornType_SystemR‘R’R“tRefreshPlayerAttrByBuff(Rt
actionTypet
actionInfoRttoLineIDRðRttoPosXttoPosYRTRRRRt toLineIpyDatat playerControl((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyt
DoFBActionasN #             cCsOtj|||ƒ}|\}}}tj|||ƒ}|jƒ|jƒfS(N(RtGetFBLineEnterPosInfotGameMaptGetEmptyPlaceInAreatGetPosXtGetPosY(RR,RtposInfoR-R.tdisttposPoint((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyR)s(>R"RiRoR6RíRéR
RRRR‘RÁRÃRÅR^RRARzRERKRhR?RDRJRcRkRXRYRZRtRvRwR–RR·RRR!R%R&R/R1RWR0ReRaRbRdtNoneR]RRR”RNR¥R¦R¢R°RgRºRR)(((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_QueenRelics.pyt<module>sj                                                         /                      J                     
        *        W    L    .