hzr
3 天以前 f6d3d3bd9b136407c1983ca3638afe3cb77ad1f2
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
¼Øoec@skddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZedƒ\ZZZZZedƒ\ZZZdZdZdd,d„ƒYZdd-d„ƒYZd    d.d
„ƒYZd „Zd „Zd „Z d„Z!d„Z"d„Z#d„Z$d„Z%e&ddd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d „Z5d!„Z6d"„Z7d#„Z8d$„Z9d%„Z:d&„Z;d'„Z<d(„Z=d)„Z>d*„Z?d+„Z@dS(/iÿÿÿÿNiiiˆt    BattleMgrcBsYeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
RS(    cCsCd|_i|_i|_g|_i|_i|_i|_dS(Ni(tzoneIDtbattlePlayerDicttbattleFamilyDicttbattleFamilySortListtallotRebornPointInfotplayerFlagDictt worldHelpDict(tself((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt__init__:s                            cCs;|jjƒ|_|jjdtjddƒdtƒdS(Ntkeytscoret scoreSortTimetreverse(RtvaluesRtsorttoperatort
attrgettertTrue(R((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytsortBattleFamilyScoreGs%cCs<||jkr|j|}nt|ƒ}||j|<|S(N(Rt BattleFamily(RtfamilyIDt    batFamily((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytgetBattleFamilyLs
  cCs<||jkr|j|}nt|ƒ}||j|<|S(N(Rt BattlePlayer(RtplayerIDt    batPlayer((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytgetBattlePlayerTs
  cCs)|j|ƒ}||_|j|ƒ|S(N(Rtnamet_BattleMgr__allotRebornPoint(RRRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytaddBattleFamily\s     c Cs¿|j|ƒ}x'|jjƒD]}||krdSqWd}|jjƒ}tjddƒ}t|ƒt|ƒkr®x3t|ƒD]"\}}||kr…|}Pq…q…Wn|dkrd}    xY|jjƒD]E\}}t|ƒ|    krÐ|t|ƒkrÐt|ƒ}    |}qÐqÐWn||}
t|
ƒdkrSt    j
d||
fƒdS||jkrrg|j|<n|j|}|j |ƒ|
|_ t    j d|||
|jf|jƒtS(NiÿÿÿÿtCrossFamilyFlagwariiŸ†is¸´»îµãÅäÖÃÒì³£! index=%s, %ssP·ÖÅäÏÉÃ˸´»îµã: familyID=%s,allotIndex=%s,rebornPoint=%s,allotRebornPointInfo=%s(RRRtkeyst IpyGameDataPYtGetFuncEvalCfgtlent    enumeratetitemst    GameWorldtErrLogtappendt rebornPointtLogRR( RRRt familyIDListt
allotIndextallotAlreadyIndexstrebornPointListtindext_t leastIDCountR)((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt__allotRebornPointbs<    $ 
          cCsˆ||j|<|jƒ}|j|ƒ}|j}|j|ƒ}|jjdiƒ}||j|j|g|t|ƒ<||jd<dS(Nt    flagOwner(    RtGetNPCIDRRRRtgetRtstr(RRtflagNPCtnpcIDRRRR3((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt setPlayerFlagˆs      " cCsm|jj|dƒ}|sdS|jƒ}|jjdiƒ}ddddg|t|ƒ<||jd<dS(NR3it(RtpoptNoneR4RR5R6(RRR7R8R3((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt popPlayerFlag”s  cCs±i}|s|j}nˆi}xr|jjƒD]a\}}|jƒ}|j|ƒ}|j}|j|ƒ}    ||j|    j|g|t|ƒ<q.Wi|d6}d}
g} xBt    |j
ƒD]1\} }    | d|    _ ||    jkr¼| }
q¼q¼W|
dkr |j
d } nP|
t |j
ƒdkr6|j
d} n'|
dkr]|j
|
d|
d!} nx<t    | ƒD].\} }    |    j|    j |    j|    j g| | <qjW| |d<i|d    6S(
NR3iÿÿÿÿiiiiýÿÿÿit
familyListtworld(RRR%R4RRRRR6R$RtsyncRankR#R (RtisAllRthelpInfoR3RR7R8RRt familyIndexR>R/ti((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytgetWorldHelpInfožs6      &     &
( t__name__t
__module__R    RRRRRR9R=RE(((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyR8s                         &         
RcBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsg||_d|_d|_d|_dddg|_g|_g|_g|_i|_d|_    dS(NR:ii‚i,i
iÿÿÿÿ(
RRR R R)tbattlePlayerIDListtbattlePlayerSortListthomePlayerIDListtfamilyHelpDictR@(RR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyR    Äs                                    cCs<||jkr"|jj|ƒnt|jƒ|jd<dS(Nt playerCount(RHR(R#RK(RR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt addJoinPlayerÕscCsW|js dS|j\}}}tj||d|ƒ}|j|jƒ|jƒƒdS(Ni(R)tGameMaptGetEmptyPlaceInAreaExtResetPostGetPosXtGetPosY(Rt    curPlayertrandPosXtrandPosYtmaxDisttposPoint((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytsetPlayerToRebornPointÛs     cCst|jƒt|jƒkrfg|_tƒ}x3|jD]%}|j|ƒ}|jj|ƒq:Wn|jjdtjddƒdt    ƒdS(NR
R R R (
R#RHRIt GetBattleMgrRR(RRRR(RtmgrRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytsortBattlePlayerScoreãs        %cCse|dkrdStd|j|ƒ|_|j|jd<d}td|ttjƒƒƒ|_dS(NiR lIÎ(tmaxR RKtintttimeR (RtaddValuetcalcTime((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytaddFamilyScoreís "cCsCi}|s|j}n i|jd6t|jƒd6}i|d6S(NR RLtfamily(RKR R#RH(RRARB((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytgetFamilyHelpInfoøs
  (RFRGR    RMRXR[RaRc(((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRÂs                 
     RcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs¯||_d|_d|_d|_d|_d|_d|_d|_d|_d|_    d|_
d|_ d|_ d|_ d|_d|_d|_d|_i|_dS(NR:ii(RRRt
familyNametaccIDtjobtrealmLVt
fightPowert restoreHPTickthealthRebornCounttcontinueKillCountR R t    hurtTotaltonlineCalcTicktoutsideFlagTicktoutsideFlagNotifySecondt
leaveStatetplayerHelpDict(RR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyR    s(                                                                            cCsy|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_    |j
ƒ|_ t j |ƒ|_||_dS(N(t GetFamilyIDRt GetFamilyNameRdtGetJobRftGetAccIDRet GetPlayerNameRtGetOfficialRankRgt PlayerControlt GetFightPowerRhRm(RRSttick((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt doPlayerEnters    cCso|dkrdStd|j|ƒ|_d}td|ttjƒƒƒ|_|jji|jd6ƒdS(NilIÎR (R\R R]R^R Rqtupdate(RR_R`((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytaddPlayerScore*s "cCs#|jd7_|j|jd<dS(NiRj(RjRq(R((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytaddHealthRebornCount4scCs=i}|s|j}ni|jd6|jd6}i|d6S(NR Rjtplayer(RqR Rj(RRARB((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytgetPlayerHelpInfo9s
 (RFRGR    R{R}R~R€(((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRs
             
    cCs5tjtƒ}|s1tƒ}tjt|ƒn|S(N(tFBCommont GetGameFBDatatGameFBData_BattleMgrRt SetGameFBData(RZ((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRYAs
    cCstjddƒS(NRi(R!R"(((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt GetBFStepTimeHscCsBtjtdƒtƒ}tjƒjƒ|_tj    t
|ƒdS(N( RR„RƒR<RYR&t GetGameWorldt GetPropertyIDRt    SetFBSteptFB_Step_Prepare(RzRZ((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytOnOpenFBJs
    cCs'tjƒjdƒtjtdƒdS(Ni(R&R†t SetPropertyIDRR„RƒR<(Rz((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt    OnCloseFBSscCsltjƒrtS|jƒs1tjd|ƒtStjƒjtj    tj
ƒshtjdtj
ƒtStS(NsÎÞÏÉÃËÎÞ·¨½øÈë: mapID=%ss)·Ç»î¶¯ÖУ¬ÎÞ·¨½øÈë: CrossDailyActionID=%s( R&t IsCrossServerRRrtDebugLogtFalseR†tGetGameWorldDictByKeyt ShareDefinet)Def_Notify_WorldKey_CrossDailyActionStatet CrossDailyActionID_FamilyWarFlag(RStmapIDtlineIDRz((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytOnEnterFBEventZs  cCstjS(N(t IPY_GameWorldt    cmeAccept(taskRz((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytOnChangeMapAskhscCs|S(N((RSR”tlineIdtipyEnterPosInfoRz((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytOnGetFBEnterPoslsc CsÒtjƒ}|jƒ}|jƒ}|jƒ}|jƒ}tƒ}|ttgks^| rtj    d|||f|j
ƒt j |ƒdStj    d|||f|j
ƒ|j ||ƒ}|j|ƒ}    |    j||ƒ|j|ƒ|    jdkr |j|ƒnd|    _|tkrktƒtd|tjƒjƒ}
|jtjdt|
dƒtƒnV|tkrÁtƒtd|tjƒjƒ}
|jtjdt|
dƒtƒntt|ƒdS(Ns<DoEnterFB... fbStep=%s,familyID=%s,playerID=%s PlayerLeaveFBs.DoEnterFB... fbStep=%s,familyID=%s,playerID=%siiiè(R&t    GetGameFBt    GetFBStept GetPlayerIDRrRsRYR‰tFB_Step_FightingR*RRxt PlayerLeaveFBRRR{RMRpRXR…t Time_Preparet GetFBStepTickt Sync_TimeTickR—t tttWaitStartR\Rt
Time_Fightt tttTowerTaketNotifyCrossFamilyFlagHelp( RSRztgameFBtfbStepRRRdRZRRt notify_tick((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt    DoEnterFBos4                  %% %% c
CsÜtƒ}|r%t||||ƒn³tjƒ}xit|jƒƒD]U}|j|ƒ}|seqDn|jƒ}||jkr†qDnt||||ƒqDWi|_    x/|j
j ƒD]}|j |ƒ}    i|    _ q¶WdS(N(RYt__notifyPlayerHelpR&tGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexR RRRR RRK(
RARSthelpExRZt playerManagerR/RRRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyR©Ÿs"           cCsÔ|stƒ}n|jƒ}|j|ƒ}|j|jƒ}i}|j|j||jƒƒ|j|j|ƒƒ|j|j|ƒƒ|r£|j|ƒnt    j
d||ƒt j ||ƒi|_ dS(Ns
FBHelp: %s(RYR RRRR|RERcR€R&RŽRt Notify_FBHelpRq(RSRZRAR³RRRthelpDict((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyR®ºs      cCsdS(N((RSRz((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytDoFBHelpÑscCs—tjƒ}|jƒ}|tkr(dStƒ}|jƒ}|j|ƒ}d|_|jdkrpd|_ntj    d|||jf|j
ƒdS(Niiis/DoExitFB... playerID=%s,fbStep=%s,leaveState=%s( R&RžRŸR¡RYR RRmRpR*R(RSRzRªR«RZRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytDoExitFBÕs             #cCsvtjƒ}|jƒ}|tkr(dStƒ}|jƒ}|j|ƒ}d|_tjd||f|j    ƒdS(Nis(DoPlayerLeaveFB... playerID=%s,fbStep=%s(
R&RžRŸR¡RYR RRpR*R(RSRzRªR«RZRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytDoPlayerLeaveFBçs            cCsdtjƒjƒ}|tkr.t||ƒn2|tkrGt|ƒn|tkr`t|ƒndS(N(    R&RžRŸR‰t__DoLogic_FB_PrepareR¡t__DoLogic_FB_FightingtFB_Step_LeaveTimet__DoLogic_FB_Leave(RzR«((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt    OnProcessøs     c Cs"tƒtd|tjƒjƒ}|dkr5dStjt|ƒtƒ}tƒt    d}tj
ƒ}x¦t |j ƒƒD]’}|j |ƒ}|jƒ}|s«q~n||jkrÀq~n|jtjd|tƒ|j|ƒ}    ||    _|j|    jƒ}
|
j|ƒq~WttƒdS(Nièi(R…R£R&RžR¤RRˆR¡RYR§R¯R°R±R²R RR¥R—R¨RRRmRRRXR©( R«Rzt remaindTickRZt    fightTimeR´R/RSRRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRº
s*%           
cCs²|tjƒjƒ}tƒtd|}|dkr¤t|ƒt|ƒtjƒ}|jtj    ƒ}||t
kr |j tj    |ƒt |ƒt ƒndSt|ƒdS(Nièi(R&RžR¤R…R§t__refreshFamilyHomet__refreshFlagoutsidetGetGameFBDictByKeytChConfigtDef_FB_NotifyFBHelpTicktFightRefreshIntervalt SetGameFBDicttrefreshCrossFamilyFlagwarR©tDoOver(RztpassTickR¿RªtlastTick((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyR»)s 
 
 
 
 
cCs`tƒtd|tjƒjƒ}|dkr5dStjƒtj|ƒtj    t
|ƒdS(Nièi( R…t
Time_LeaveR&RžR¤RtDoLogic_FBKickAllPlayertGameWorldProcesstCloseFBRˆt FB_Step_Over(RzR¿((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyR½<s% 
 cCstjddƒ}tƒ}tjƒ}xb|jjƒD]Q}|j|ƒ}|j\}}}x'|j    ddd…D]}    |j
|    ƒ}
|
s–qun|j |    ƒ} tj |
j ƒ|
jƒ||ƒ|krî|j    j|    ƒd| _qun| jr|| jdnd} | dkr quntj|
ƒ} tj|
ƒ| kr{t| |dt| dƒƒ}tj|
d|ƒn|| _quWq7WdS(NRiiÿÿÿÿig@@igY@(R!t
GetFuncCfgRYR&R¯RR RR)RJtFindPlayerByIDRtGetDistRQRRtremoveRitGameObjtGetMaxHPtGetHPR]troundt SkillCommont
SkillAddHP(RztrestoreHPPerBySecondRZt
copyMapMgrRRtsafePosXtsafePosYt
safeRadiusRRSRtrestoreSecondstmaxHPt    restoreHP((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRÁFs0     *      !cCs¡tƒ}|jsdSt}tjddƒ\}}tjƒ}xJ|jjƒD]9\}}|j|ƒ}|st    |d|ƒt }qPn|j ƒ|j ƒ}    }
|j|ƒ} tj|j ƒ|j ƒ|    |
ƒ|krôd| _d| _qP| js || _qPn|| jd} | |krs|| } | | jkrP| | _tj|d|jƒ| gƒqPqPnt    |d|ƒt }qPW|rtƒndS(NtCrossFamilyFlagwarFlagiiiètCrossFamilyFlagwarOutsideflag(RYRRR!R"R&R¯R%RÒt setFlagOwnerR<RRQRRRRÓRnRoRxt
NotifyCodeR4R©(RzRZtisUpdtoutsideRtprotectSecondsRÜRR7RStflagPosXtflagPosYRt passSecondst remainSecond((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRÂis@         *              
    "
 
cCs|s
dStjddiƒ}|jƒ}t|ƒ}|sAdStƒ}tjƒ}tjd||f|jƒx¾|j    j
ƒD]­\}}    |     sƒ||    jƒkr®qƒntjd||f|jƒ|j |ƒ|j |ƒ}
|
rƒt j|
d|gƒx*|jƒD]} tj|
| |ƒqWqƒqƒW|râ|jƒ} | |j    krç|j    | } t| ƒ}| jƒ}||kr´tjd|||f|jƒt|ƒdStjd|||f|jƒt| d|ƒn|j| ƒ}|j|jƒ}d|_|j| |ƒt j|d    |gƒtjdd
iƒ}|j|ddgƒ\}}|j|ƒ|j|ƒ|j|dƒ}|r²tj|||ƒn|j t!ƒtjd || |f|jƒn!tjd ||jƒt|ƒdS( NRãis&ÉèÖÃÕ½Æì¹éÊô: flagNPCID=%s,flagType=%ss+    ÒƳý¾É¹éÊô: flagNPCID=%s,oldPlayerID=%stCrossFamilyFlagwarFlagDropsU    Ð¹éÊôÕßÒÑÓи߼¶Õ½Æì£¬±£ÁôÔ­¹éÊô: bodyFlagNPCID=%s,bodyFlagType=%s >= flagType=%ssZ    Ð¹éÊôÕßÒÑÓеͼ¶Õ½Æì£¬Ïȹ黹ԭµÍ¼¶Õ½Æì: bodyFlagNPCID=%s,bodyFlagType=%s < flagType=%sitCrossFamilyFlagwarFlagOwnis:    ¸üÐÂйéÊô: flagNPCID=%s,newPlayerID=%s,ownerBuffID=%ss&    Ã»ÓÐйéÊô£¬¹é»¹Õ½Æì: flagNPCID=%s("R!R"R4t getFlagTypeRYR&R¯RŽRRR%R=RÒRxRæRt    BuffSkilltDelBuffBySkillIDR tsetFlagOwnerNoneRåR<RRRRnR9R5R}RaRÙtAddBuffBySkillType_NoRefurbisht
SetVisibleR(R7tnewOwnerRzt ownerBuffDictt    flagNPCIDtflagTypeRZRÜt oldPlayerIDtnpctoldOwnert    delBuffIDt newPlayerIDt bodyFlagNPCt bodyFlagTypet bodyFlagNPCIDRRt ownScoreDicttownPlayerScoretownFamilyScoret ownerBuffID((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRå”sf                 
           #
cCs(tjd|jƒƒ|jtƒdS(Ns    setFlagOwnerNone: npcID=%s(R&RŽR4RõR(R7((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRóßs cCs÷tjddƒ\}}tjddiƒ}tƒ}tjƒ}x¤|jjƒD]“}|j|ƒ}g|_|j    \}}    }
xV|j
D]K} |j | ƒ} |jj | ƒ|j | ƒ} | sÌqŒnd}| jr#td|| jƒd}|| _| j||ƒ|j||ƒntj| jƒ| jƒ||    ƒ|
krr| |jkrr|jj | ƒqrn| |jkrŒt|j| ƒ}|j|ddgƒ\}}| j||ƒ|j||ƒqŒqŒW|jƒqRW|jƒdS(NtCrossFamilyFlagwarScoreiRãiiiè(R!R"RYR&R¯RR RRIR)RHRR(RÒRmR\R}RaRÓRQRRRJRRðR5R[R(Rzt olPlayerScoret olFamilyScoretflagTimeScoreDictRZRÜRRRÝRÞRßRRRSt onlineTimesRùt ftPlayerScoret ftFamilyScore((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRÈäs>                 *
cCs\|s
dS|jƒ}tjddiƒ}x*|jƒD]\}}||kr8|Sq8WdS(NiRãi(R4R!R"R%(tcurNPCR8t flagTypeDicttftt    npcIDList((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRðs  cCsœtjƒ}|jƒ}|tkr(tS|jƒ}tƒ}||jkr˜t|j|ƒ}|t|ƒkr˜tj    d|t|ƒf|ƒtSnt
S(Ns6ÒѾ­ÓµÓиü¸ß¼¶µÄÕ½Æì£¬ÎÞ·¨²É¼¯! ownerFlagType=%s >= %s( R&RžRŸR¡RR RYRRðR*R(RSR RzRªR«RRZt ownerFlagType((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt OnCanCollect"s         cCsdS(N((RSR ((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytOnBeginCollect6scCsdS(N((RSR ((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt OnExitCollect:scCs|jƒ}|sdS|jƒtjkr/dStjƒj|jƒƒ}t|ƒ}t    j
||dƒ|r‰t |||ƒt ƒndS(NtCrossFamilyFlagwarCollectOKSlow( t GetActionObjtGetGameObjTypeR—tgotNPCR&t GetNPCManagert GetNPCByIndextGetIndexRðtAICommontClearPlayerPreparingRåR©(RSR8RzttagObjR Rù((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt OnCollectOK@s  
cCs7|jƒ}tƒ}|j|ƒ}|j|7_dS(N(R RYRRl(RSt damageValuet    tagPlayerRzRRZR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt OnPVPDamageTs
     c
Cs¨|jƒ}|jƒ}tƒ}tjddƒ\}}|j|ƒ}|j|jƒ}    |j|ƒ|    j|ƒ||j    kr¤t
|j    |||ƒt ƒnt S(NRi( R RYR!R"RRRR}RaRRåR©R(
RStdefenderRzRt defPlayerIDRZtkillPlayerScoretkillFamilyScoreRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytDoFBOnKill_Player_s        
cCsˆ|jƒ}|tjkr„tƒ}|jƒ}|j|ƒ}tjddƒ}|r„|j|kr„tj    d||j
ƒt Snt S(NtCrossFamilyFlagwarRebornis%ÒÑ´ïÔ­µØ½¡¿µ¸´»î´ÎÊýÉÏÏÞ! playerID=%s( R RÄtrebornType_HealthRYRR!RÑRjR&R*RRR(RSt
rebornTypeRRZRthealthRebornMax((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt OnCanFBRebornss      cCstS(N(R(((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytOnPlayerRebornscCsˆtƒ}|jƒ}|j|ƒ}|tjkr@|jƒn+|j|jƒƒ}|j|ƒd|_    t
j ||j t ƒƒdS(Ni(RYR RRÄR)R~RRrRXRkRRµR€R(RSR*RZRRR((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pytOnPlayerRebornOver†s           c
Cs£tƒ}|j}tjƒ}tjƒ}|jƒ}|jƒ}|tkrotjd|j|f|ƒdSt    j
t |ƒtj d|j|f|ƒt |ƒttƒtƒtd}tjƒ}itjƒjƒd6|jƒd6|d6|d6}    g}
g} x;t|jdƒD]'\} } | j}| j}| j}tj d    | ||f|ƒg}g}g}xÑt| jdƒD]½\}}|j}|j}|j}|j}tj d
||||||jf|ƒ|ji|d 6|d 6ƒ|j|||gƒ|ji|d 6|jd6|d6|d 6|d6ƒq‰Wi|d6| d6|d6}xšt| jdƒD]†\}}|j}|j |ƒ}|s¨qxn|j!t"j#d|tƒd}|j$i|d6| d6ƒt    j%|t&j'|t|ƒqxW| j| ||||gƒ|
ji|d6|d6| d6|d6ƒq Wt(|| gƒ}tj)ƒj*dddd|t+|ƒƒ|
|    d<t,j-d|    ƒdS(Ns;¿ç·þÏÉÃ˶áÆìÕ½´¥·¢Öظ´½áË㣬²»´¦Àí£¡ zoneID=%s,copyMapID=%ss+¿ç·þÏÉÃ˶áÆìÕ½½áË㣡 zoneID=%s,copyMapID=%sièR”t    realMapIDt    copyMapIDRis(familyRank=%s,familyID=%s,familyScore=%ssI     familyID=%s,playerRank=%s,playerID=%s,score=%s,hurtTotal=%s,accID=%st
playerNameR RRet
playerRankRlt familyScoret
familyRankt
playerListiRt drPlayerListtCrossFamilyFlagwarOvert batFamilyList(.RYRR&RžR†t GetCopyMapIDRŸR¡R'RRˆR¼R*RÈR©RR…RÌR¯tGetMaptGetMapIDt GetRealMapIDR$RRR RRIRRlReR(RÒR¥R—t tttLeaveMapR|t NotifyFBOverRÄtDef_FBMapID_CrossFamilyFlagwarR6tGetPlayerManagertGameServer_QueryPlayerResultR#tDataRecordPackt SendEventPack(RzRZRRªt    gameWorldR0R«t    leaveTimeRÜtdrDicttdrBatFamilyListtbattleFamilyListR4RRR3RdtoverPlayerListR6tbattlePlayerListR2RRR RRltoverDictRR•tmsgInfo((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyRɗsj             
 
 4                                 7     -(
((((ARÄRR&R‘R—R!RÎRBRxRÙRñRRÕRNRR^tranget FB_Step_OpenR‰R¡R¼RÐR£R§RÌRÆRƒRRRRYR…RŠRŒR–RšRR­RR<R©R®R·R¸R¹R¾RºR»R½RÁRÂRåRóRÈRðRRRRR"R'R,R-R.RÉ(((sŽE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossFamilyFlagwar.pyt<module>sn                    Š?@                                    0                                
    #    +    K        2