hxp
2025-12-11 80a910fc5c56cd038fa06b5380965f21ca1c4fc6
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
âå7ic@s—ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddd„ƒYZddd„ƒYZddd„ƒYZddd    „ƒYZd
„Zd „Zd „Zd „Zd„Zd„Zed„Zd„Zd„Zd„Z d„Z!d„Z"dS(iÿÿÿÿNt
LineupHerocBseZd„Zd„ZRS(cCs|jƒdS(N(tClear(tself((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt__init__*s
cCsLd|_d|_d|_d|_i|_g|_d|_d|_dS(Ni(t    itemIndextheroIDtskinIDtposNumtheroBatAttrDicttheroSkillIDListt
fightPowertskillFightPower(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR.s                                (t__name__t
__module__RR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR's    tLineupcBsweZd„Zdeed„Zd„Zd„Zd„Zd„Zd„Z    d„Z
ed    „Z d
„Z d „Z RS( cCs^||_||_d|_d|_i|_t|_d|_g|_    i|_
d|_ dS(Ni( tplayerIDtlineupIDtNonetolPlayert    shapeTypet heroItemDicttFalset lineupChanget_Lineup__refreshStatet_Lineup__freeLineupHeroObjst_Lineup__lineupHeroDictR
(RRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR<s                                        icCs„|st|_n||_||_tjd|j|f|jƒ|j|ƒ| r€|j    j
r€t j |j    j
|jƒndS(s©±ä¸üÕóÈÝʱ¸üÐÂ
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        s¸üÐÂÕóÈÝ: lineupID=%s,%sN( tTrueRRRt    GameWorldtDebugLogRRtRefreshLineupAttrRt    curPlayert
PlayerHerot Sync_Lineup(RRRt refreshForcetisReload((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    UpdLineupJs           cCs|j p|j S(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmptyZscCs |jjƒS(N(Rtkeys(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetPosNumList\scCsRx9|jjƒD](}||jkr|jj|ƒqqWi|_d|_dS(Ni(RtvaluesRtappendR
(RtfreeObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytFreeLineupHero^s         cCstd}||jkr%|j|}nK|jrZ|jjdƒ}|jƒ||j|<ntƒ}||j|<|S(Ni(RRRtpopRR(RRt
lineupHero((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetLineupHerogs    
     cCsXd}x9|jjƒD](}|j|ƒ}|j|kr|SqWtrTtƒ}n|S(N(RRR%R-RRR(RRR,R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLineupHeroByIDts cCs d|_dS(Ni(R(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetNeedRefreshState~s    cCs d|_|r|jƒndS(Ni(RtCheckRefreshLineupAttr(RR!((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRƒs     cCs<|js tSd|_t|jj|j|ƒt|_tS(Ni(RRtdoRefreshLineupAttrRRRR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR0‰s             cCs!||jkrdS|jƒtS(N(RRR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytCheckHeroItemUpdate’s
(R R RRR#R$R&R*R-R.R/RR0R2(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR9s                             
             t OnlinePlayercBs­eZd„Zd„Zd„Zd„Zed„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zeed „Zed „Zd„Zd„Zd„ZRS(cCsL||_d|_i|_i|_i|_tj|ƒ|_g|_    dS(N(
RRRt _calcAttrDictt _lineupDictt_effectiveCardDictt
TurnAttackt    MainFightt    mainFightt_lastBatBufferInfo(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR›s                        cCs|jjjƒdS(N(R9t    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClearªscCs||_||jj_dS(N(RR9R;(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    SetPlayer®s    cCs |jdkS(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt IsRealOnline³scCsdd}||jkr%|j|}nt|j|ƒ}||j|<||_|r`|jƒn|S(N(RR5RRRR0(RRt    checkAttrtlineup((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    GetLineup·s      cCs|jj|ddtgƒS(Niÿÿÿÿ(R6tgetR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroEffectiveCardÄscCs$|||g|j|<|jƒdS(N(R6tRefreshRoleAttr(RRt
cardAddPerRtinMain((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroEffectiveCardÅscCs ||_dS(N(R6(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDictÊscCs|jS(N(R6(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffectiveCardDictËscCs|jj|iƒS(N(R4RC(Rt    calcIndex((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttrÍscCs||j|<dS(N(R4(RRLtattrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt SetCalcAttrÎs cCsi|j}tjd|jƒi|_i|_i|_t|ƒt||ƒt    ||ƒ|j
ƒdS(NsReCalcAllAttr...( RRRRR4R5R6t doCalcAllAttrtdoReloadLineuptreloadEffHeroCardRE(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttrÓs                
 
cCsUtjd||jƒx!|jjƒD]}|jƒq'W|rQ|j|ƒndS(sÉË¢ÐÂÖ÷¹«ÊôÐÔ£¬Ó°ÏìÖ÷¹«ÊôÐԵŦÄܵãÊôÐԱ仯ʱͳһµ÷Óô˺¯Êý
        @param refreshForce: ÊÇ·ñÇ¿ÖÆÁ¢ÂíË¢ÐÂ
        @param isAllLineup: ÊÇ·ñֻͬ²½Ë¢ËùÓÐÕóÈÝÊôÐÔ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        sÇëÇóË¢ÊôÐÔ: refreshForce=%sN(RRRR5R'R/tDoRefreshRoleAttr(RR!t isAllLineupRA((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyREãs cCs[t}xN|jjƒD]=\}}| r>|tjkr>qn|jƒrt}qqW|S(s»Ö´ÐÐË¢ÊôÐÔ£¬Ä¬È϶îÍâË¢Ö÷ÕóÈÝ£¬ÆäËûÕóÈÝ¿ÉÒÔÓõ½µÄʱºòÔÙË¢ÐÂ
        @param isAllLineup: ÊÇ·ñË¢ËùÓÐÕóÈÝ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        @return: ÊÇ·ñÓÐË¢ÊôÐÔ£¬0-ÎÞ£»1-ÓÐ
        (RR5titemst ShareDefinet Lineup_MainR0R(RRUt    isRefreshRRA((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRTñs  cCsŽg}t||ƒ|jƒ}xK|jjƒD]:\}}|j|ƒr/||kri|j|ƒqiq/q/Wtjd||f|jƒ|S(ssÎ佫ÎïÆ·±ä»¯Ê±ÐèÒª´¦ÀíµÄÂß¼­
        @param heroItem: ±ä»¯Î佫ÎïÆ·
        @param return: Ó°ÏìµÄÕóÈÝIDÁбí
        s'Î佫ÎïÆ·±ä»¯: itemIndex=%s, Ó°ÏìÕóÈÝ:%s(    tcheckUpdEffHeroCardtGetItemPlaceIndexR5RVR2R(RRR(RtheroItemteffLineupIDListRRRA((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnHeroItemUpates   cCs|jS(N(R:(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetLastBatBufferscCs||g|_dS(N(R:(Rtguidt    batBuffer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetLastBatBuffers(R R RR=R>R?RRBRDRHRJRKRMRORSRRERTR^R_Rb(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR3˜s"                                                      t    OnlineMgrcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCsi|_i|_dS(N(t_OnlineMgr__onlinePlayerDictt!_OnlineMgr__offlinePlayerTimeDict(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRs        cCs[d}|jƒ}||jkr1|j|}nt|ƒ}||j|<|j|ƒ|S(N(Rt GetPlayerIDRdR3R>(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetOnlinePlayer s    cCsh|jƒ}|jj|dƒ||jkrJt|ƒ}||j|<n |j|}|j|ƒdS(N(RfReR+RRdR3R>(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOnline+s    cCsV|jƒ}||jkrdS|j|}|jdƒttjƒƒ|j|<dS(N(RfRdR>RtintttimeRe(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOffline7s   cCs™ttjƒƒ}d}xz|jjƒD]i\}}|||krJq(n|jj|dƒ||jkrrq(n|jj|dƒ}|jƒq(WdS(Nii<i,(RiRjReRVR+RRdR=(RtcurTimet offlineTimesRt offlineTimeR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytProcessOfflineAs(R R RRgRhRkRo(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRcs
                  
cCs1d}tjrtj}ntƒ}|t_|S(N(Rt
PyGameDatat g_onlineMgrRc(tmgr((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetOnlineMgrOs              cCstƒj|ƒS(N(RsRg(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRgXscCstƒj|ƒdS(N(RsRh(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt OnPlayerLoginZscCstƒj|ƒdS(N(RsRk(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnPlayerLogoff_scCstƒjƒdS(N(RsRo(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnMinuteds cCs|jƒ}|jƒ}tj|ƒ}i}|rli|jƒtj6|jƒtj6|j    ƒtj
6}nt j d||ƒt |ƒjtj|ƒdS(Ns½ÇÉ«µÈ¼¶ÊôÐÔ: %s(tGetIDtGetLVt PlayerControltGetPlayerLVIpyDatatGetAtktChConfigt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPRRRgROtDef_CalcAttr_LV(RRtplayerLVt    lvIpyDatat
lvAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt CalcRoleBasehs  cCsot|dƒsdS|j}|s&dS|jƒ}|jƒ}t|ƒ}|j|ƒ\}}}    ||kr||kržtjd|||    ||fƒdS|j||||    ƒ||krätjd|||    ||fƒdS|    rtjd|||    ||fƒdStjd|||    ||fƒ|j    ƒj
t j ƒ}
x¸t |
jƒƒD]¤} | |krqqYn|
j| ƒ} | sY| jƒr™qYn|| jƒkr±qYnt| ƒ} | |krÏqYntjd|| | |fƒt|| |ƒdSWtjd|||fƒdS|    rCtjd|||fƒdS||krstjd    |||||fƒdStjd
|||||fƒ|j||||    ƒ|jƒ}|jt jd ƒ|o×|jƒ|d krk|j    ƒj
t j ƒ}
|
jƒ|kr|
j|ƒnd}|rk|jƒ rk|jƒ}|jt jd ƒ|od|jƒqkndS( NR[s`ÉúЧµÄ¿¨ÅƲ»±äÇÒ¼Ó³ÉÒ²²»±ä£¬²»Óô¦Àí! heroID=%s,itemIndex=%s,inMain=%s,effAddPer=%s,curAddPer=%ssVÉúЧµÄ¿¨ÅƲ»±äÇÒ¼Ó³ÉÌáÉýÁË! heroID=%s,itemIndex=%s,inMain=%s,effAddPer=%s,curAddPer=%ssnÉúЧµÄ¿¨ÅÆÐ§¹û¼Ó³É½µµÍÁË£¬µ«ÔÚÖ÷ÕóÈÝÖÐÒÀ¾É±£³ÖÉúЧ! heroID=%s,itemIndex=%s,inMain=%s,effAddPer=%s,curAddPer=%sszÉúЧµÄ¿¨ÅÆÐ§¹û¼Ó³É½µµÍÁË£¬Î´ÔÚÖ÷ÕóÈÝÖÐÖØÐ¼ìË÷ÊÇ·ñÓмӳɸü¸ßµÄ! heroID=%s,itemIndex=%s,inMain=%s,effAddPer=%s,curAddPer=%ssFÓиü¸ß¼Ó³ÉµÄͬÃûÎ佫! heroID=%s,index=%s,packCardPer=%s > curAddPer=%ssIûÓиü¸ß¼Ó³ÉµÄͬÃûÎ佫£¬±£Áô±¾¿¨ÉúЧ! heroID=%s,itemIndex=%s,curAddPer=%ssVûÓÐÔÚÖ÷ÕóÈÝÖÐÇÒµ±Ç°ÉúЧµÄ¿¨ÅÆÔÚÖ÷ÕóÈÝÖв»´¦Àí! heroID=%s,effItemIndex=%s,itemIndex=%ssi¶¼Ã»ÓÐÔÚÖ÷ÕóÈÝÖÐÇÒ²»¸ßÓÚµ±Ç°ÉúЧ¿¨ÅƼӳɲ»´¦Àí! heroID=%s,itemIndex=%s,curAddPer=%s <= %s,effItemIndex=%ssl¶¼Ã»ÓÐÔÚÖ÷ÕóÈÝÖÐÇÒ¸ßÓÚµ±Ç°ÉúЧ¿¨ÅƼӳÉÌæ»»ÉúЧ¿¨ÅÆ! heroID=%s,itemIndex=%s,curAddPer=%s > %s,effItemIndex=%sii(thasattrRR[t GetItemTypeIDtgetHeroCardAddPerRDRRRHtGetItemManagertGetPackRWtrptHerotrangetGetCounttGetAtR$RZtGetItemt SetUserAttrtDef_IudetHeroCardEffectivet    Sync_ItemR(RR\tisNotifyRRRt    curAddPert    effAddPert effItemIndexRGtcurPacktindextpackItemt packCardPertitemt
hisEffItem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRZxsx                               ' cCs“g}i}|jƒjtjƒ}xèt|jƒƒD]Ô}|j|ƒ}| s7|jƒreq7n|jƒ}t    j
|ƒ}t |ƒ}    |j tj ƒr®|j|ƒn|rÊ|    ||g||<q7|j|ddtgƒd}
|    |
kr7|    ||g||<q7q7Wi} tjd|ƒtjd|ƒd} |j|ƒxÇ|jƒD]¹\}} | \}    }}| |    7} ||kr¸|j|ƒtjd||||    | fƒqWtjd||||    | fƒ|j|ƒ}|jƒ}|jtj dƒ|| |<qWWtjd|ƒxF|D]>}|j|ƒ}|jƒ}|jtj dƒ|| |<q,Wx| jƒD]}|jƒq{WdS(    NiÿÿÿÿisÀúÊ·ÉúЧµÄ¿¨ÅÆË÷Òý: %ss×îÐÂÉúЧµÄ¿¨ÅÆÐÅÏ¢: %ssPÉúЧµÄ¿¨ÅƲ»±äµÄ: heroID=%s,itemIndex=%s,inMain=%s,cardAddPer=%s,cardPerTotal=%ssPÉúЧµÄ¿¨ÅƱ仯µÄ: heroID=%s,itemIndex=%s,inMain=%s,cardAddPer=%s,cardPerTotal=%sisÒÆ³ýʧЧµÄ¿¨ÅÆË÷Òý: %s(RŠR‹RWRŒRRŽRR$RˆRt InMainLineupR‰t GetUserAttrR’R(RCRRRRJRVtremoveRR‘R'R“(RRthisEffCardIndexListtupdEffectiveCardDictR˜R™R\RRGRFtaddPert syncItemDictt cardPerTotalteffInfoRRœtsyncItem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRR¾sT    
  #    c
Cs÷|jƒ}tjd|ƒ}|s(dS|jƒ}tjd|ƒ}|sPdS|jtjƒ}|jtjƒ}|jtjƒ}t    j
|ƒ}|j ƒ}    |    |j ƒt d|dƒ7}    |    |jƒ|7}    |    |jƒt||ƒ7}    |    S(NtHeroit HeroQualityi(Rˆt IpyGameDataPYtGetIpyGameDatat
GetQualityRŸRWtDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVRtGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertmin(
R\Rt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtstarMaxR£((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR‰øs"   !cCsntj}i}i}i}|jƒjtjƒ}x•t|jƒƒD]}|j|ƒ}| sF|jƒrtqFn|j    tj
ƒ}    |    s’qFng}
xét|    ƒddd…D]Î} |j tj
| ƒ} t j | ƒ\} }}| |kr÷q²n| |kr||| <n| |kr)i|| <n|| }t|ƒtjksf||jƒksf||krv|
j| ƒq²|||<q²W|
rF|jƒ}x!|
D]} |jtj
| ƒqW|||<qFqFWx|jƒD]}|jƒqØWtjd||jƒƒxT|jƒD]F\} }|j| tƒ}|j| dƒ}|j||dtƒqWt j|ƒdS(Niÿÿÿÿs ÖØÔØÕóÈÝ: %siR"(RWt
LineupListRŠR‹RŒRRŽRR$tGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexRtGetLineupValuetlent LineupObjMaxR'R(Rt DelUserAttrR“RRRfRVRBRRCR#RR (RRtloadLineupIDListt
lineupDicttlineShapeTypeDictR¤R˜R™R\t lineupCountt delValueListtlpIndext lineupValueRRRRRœR§RA((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRQsP          
3   cCstjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RRRfR†tChEquiptCalcRoleEquipAttrRtCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttrt PlayerHorset CalcHorseAttrt PlayerBeautytCalcBeautyAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRPFs
       c‘
Csâ|jƒ}|j}tjd||ƒtjd|j|ƒ|jƒi}i}i}i}i}    i}
i} |jƒjtj    ƒ} xf|jj
ƒD]U\} }| dksœ| | j ƒkrÌqœn| j | ƒ}| sœ|j ƒrôqœn|jƒ}tjd|ƒ}|sqœn|jƒ}tjd|ƒ}|sHqœn|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}d}|jƒ}|dksÀ|t|ƒkrÍ||}n|rà|d}n|j|ƒ}| |_||_||_||_i|_g|_d|_ |j!ƒ}|j"ƒ}|jj#||gƒi}|j$i|j%ƒt&j'6|j(ƒt&j)6|j*ƒt&j+6ƒx0|j,ƒj
ƒD]\}}||t-|ƒ<q²W|||<i} tjd||ƒ}!|!rr|!j.ƒ}"|!j/ƒ}#xZt0t1t|"ƒt|#ƒƒƒD]4}$|"|$}%|#|$}&| j2|%dƒ|&| |%<q7Wn| ||<i}'tj3d|ƒ}(|(r[x¾|(D]³})|)j4ƒ|kr½Pn|)j.ƒ}"|)j/ƒ}#xWt0t1t|"ƒt|#ƒƒƒD]4}$|"|$}%|#|$}&|'j2|%dƒ|&|'|%<q÷W|)j5ƒ}*|*r¡|jj6|*ƒq¡q¡Wn|'|
|<tj7dd    ƒ}+i},tj8d
|ƒ}-|-rqxÙ|-D]Î}.|.j9ƒ|kr¸Pn|.j:ƒ}/t;|+|/ƒ}+|.j.ƒ}"|.j/ƒ}#xWt0t1t|"ƒt|#ƒƒƒD]4}$|"|$}%|#|$}&|,j2|%dƒ|&|,|%<q W|.j5ƒ}*|*rœ|jj6|*ƒqœqœWn|,| |<i}0|j<tj=ƒ}1|j<tj>ƒ}2xžt0t1|1|2|+ƒƒD]„}$|j?tj=|$ƒ}3|j?tj>|$ƒ}4tjd |3ƒ}5|5s q¾n|5j@ƒ}%|5jAƒ|4}&|0j2|%dƒ|&|0|%<q¾W|0|    |<xS|jBƒD]E}6|6|kr|g||6<n||6}7||7kr]|7j6|ƒq]q]W|jCƒ}8|8|krËg||8<n||8}9||9krœ|9j6|ƒqœqœWi}:x#|j
ƒD]\}6}7tjd |6ƒ};|;s2qn|;jDƒ}<tE}=x$|<D]}>|>|7krKtF}=PqKqKW|=swqn|;j.ƒ}"|;j/ƒ}#x‹t0t1t|"ƒt|#ƒƒƒD]h}$|"|$}%|#|$}&xK|<D]C}||:krñi|:|<n|:|}?|?j2|%dƒ|&|?|%<qÒWq±WqWi}@xð|j
ƒD]â\}8}9tj3d |8ƒ}A|As^q4ngg}"}#t|9ƒ}BxB|AD]:}C|CjGƒ}D|B|Dkr Pn|Cj.ƒ}"|Cj/ƒ}#q~WxWt0t1t|"ƒt|#ƒƒƒD]4}$|"|$}%|#|$}&|@j2|%dƒ|&|@|%<qÞWq4Wtj7dd    ƒ}Etj7ddƒ}Ftj7ddƒ}Gtj7ddƒ}H|jHt&jIƒ}I|jHt&jJƒ}J|jHt&jKƒ}K|jHt&jLƒ}L|jHt&jMƒ}M|jHt&jNƒ}N|jHt&jOƒ}O|jHt&jPƒ}Ptjd||ƒtjd||ƒtjd||ƒtjd||ƒtjd|    |ƒtjd|
|ƒtjd| |ƒtjd|:|ƒtjd|@|ƒtjd|I|ƒtjd|J|ƒtjd|K|ƒtjd|L|ƒtjd|M|ƒtjd |N|ƒtjd!|O|ƒtjd"|P|ƒd}Qx(|jQƒjRƒD]}R|Q|Rd7}Qq_ W|Qd#:}Qtjd$|Q|ƒ|jSƒ}S|jTƒ}Ttjd%|S|Tf|ƒtjd&|Tƒ}Ud}Vx{|j
ƒD]m\}}|jU|ƒ}|s qì ni|_d|_ |j2|iƒ} |    j2|iƒ}0|
j2|iƒ}'| j2|iƒ},|:j2|iƒ}Wi}Xi}Yx t&jVD]}%t&jWj2|%dƒ}Z|Ij2|%dƒ}[|Jj2|%dƒ}\d}]|%t&jXkrò |Q}]n|Kj2|%dƒ}^|Zr  |Kj2|Zdƒd#nd}_|Lj2|%dƒ}`|ZrT |Lj2|Zdƒd#nd}a|Mj2|%dƒ}b|Zrˆ |Mj2|Zdƒd#nd}c|Nj2|%dƒ}d|Zr¼ |Nj2|Zdƒd#nd}e|Oj2|%dƒ}f|Zrð |Oj2|Zdƒd#nd}g|Pj2|%dƒ}h|Zr$|Pj2|Zdƒd#nd}i|j2|%dƒd}j}kd    }l|%t&jYkr„t&jY|%}m|j2|md'ƒ}l|ld#:}ln|@j2|%dƒd}n}o|Wj2|%dƒd}p}q| j2|%dƒd}r}s|0j2|%dƒd}t}u|'j2|%dƒd}v}w|,j2|%dƒd}x}y|Zr½|j2|Zdƒd#}k|@j2|Zdƒd#}o|Wj2|Zdƒd#}q| j2|Zdƒd#}s|0j2|Zdƒd#}u|'j2|Zdƒd#}w|,j2|Zdƒd#}yni|[d(6|\d)6|`d*6|ad+6|]d,6|bd-6|cd.6|dd/6|ed06|fd16|gd26|hd36|id46|^d56|_d66|jd76|kd86|ld96|rd:6|sd;6|nd<6|od=6|pd>6|qd?6|td@6|udA6|vdB6|wdC6|xdD6|ydE6}z|%t&jXkrÈtZj[dF|E|zdGtFdHdƒ}&n!tZj[dI|F|zdGtFdHdƒ}&tjdJ|%ƒ}{|{r |{j\ƒndK|%}|dL||}}d}~|&rYt]|UdM|}ƒrYt^|UdM|}ƒƒ}~n|&|Y||<|~|Y|}<|&r• |&|j|%<|&|XdN|%||f<q• q• WtZj[dO|G|YdGtEƒ}tjdP|||jf|ƒi}€x†|jD]{}*tjdQ|*ƒ}|s
qæn|j_ƒ}‚|‚|€kr/||€|‚<qæ|€|‚}ƒ|ƒj5ƒ}„|„|*krWqæn||€|‚<qæWd}…g|_xv|€jRƒD]h}|j5ƒ}*|jj6|*ƒi|j`ƒdR6|SdS6|TdT6}†tZj[dU|H|†dGtEƒ}‡|…|‡7}…qWtjdV|…|jf|ƒ||…}ˆ|…|_a|ˆ|_ |V|ˆ7}VtjdW||ˆ||…|X|jf|ƒqì W|V|_ tjdX||Vf|ƒ|tjbkr“dYStcjd||Vƒtejf|ƒ}‰|‰jg}Š|ŠrÁ|ŠjhƒrÁ|jirtjdZ|ƒ|Šjjt&jkkr¾tejl|tEƒq¾qÑtjd[|ƒt&jmd    }‹}Œ|Šjn|‹ƒjo|Œƒ}tpjqƒ}Žx||jrj
ƒD]X\}}|Žjs|ƒ}|s‰qbn|j|ƒ}|jrb|jt|j|jƒqbqbWntjd\|ƒtujv|ƒdYS(]s° Ë¢ÐÂij¸öÕóÈÝÊôÐÔ
        »ù´¡ÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«Ìå»ù´¡¹Ì¶¨Öµ=ËùÓд©´÷×°±¸¡¾×°±¸»ù´¡¹Ì¶¨Öµ¡¿+¡¾·¨±¦»ù´¡¹Ì¶¨Öµ¡¿+¡¾ºìÑÕ»ù´¡¹Ì¶¨Öµ¡¿+¡¾ÆäËüÄ£¿éµÄ¹Ì¶¨Öµ¡¿
        2.È«Ìå°Ù·Ö±È¼Ó³É=ͼ¼ø¼Ó³É+¡¾ÁéÊÞÄ£¿é¡¿+¡¾ºìÑÕÄ£¿é¡¿+¡¾ÆäËüÄ£¿é¡¿+ËùÓÐÉÏÕó¿¨ÅÆ¡¾³õʼ¼Ó³É+Éý¼¶¼Ó³É+Í»ÆÆ¼Ó³É+ÍÌÊɼӳɡ¿
        3.¿¨ÅƼ̳бÈÀý=¿¨ÅÆÆ·Öʼ°Ö°Òµ¼Ì³Ð±ÈÀý²»Í¬
        4.¿¨ÅÆ×ÔÉíÅàÑø¼Ó³É=¡¾î¿°í¼Ó³É%+Í»ÆÆ´ÊÌõ¼Ó³É%+Ì츳¼Ó³É%¡¿
        ×îÖÕÃæ°åÉúÃü=¡¾EÈ«Ìå»ù´¡¹Ì¶¨Öµ¡¿*¡¾1+EÈ«Ìå°Ù·Ö±È¼Ó³É¡¿*¡¾¿¨ÅÆ×ÔÉí¼Ì³Ð±ÈÀý+ ¿¨ÅÆ×ÔÉíÅàÑø%¼Ó³É¡¿+¡¾¿¨ÅÆ×ÔÉí¹Ì¶¨Öµ¡¿
 
        Õ½¶·ÊôÐÔ/Õ½¶·¿¹ÐÔ/ÌØÊâÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«ÌåÕ½¶·ÊôÐÔÖµ=ËùÓд©´÷×°±¸¡¾×°±¸Õ½¶·ÊôÐÔÖµ¡¿+¡¾·¨±¦Õ½¶·ÊôÐÔÖµ¡¿+¡¾ºìÑÕÕ½¶·ÊôÐÔÖµ¡¿+¡¾ÆäËüÄ£¿éµÄÕ½¶·ÊôÐÔ¡¿
        2.¿¨ÅƼ̳бÈÀý=ĬÈÏ100%
        3.¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ=¡¾¿¨ÅƳõʼս¶·ÊôÐÔ+Í»ÆÆ´ÊÌõÕ½¶·ÊôÐÔ+Ì츳ս¶·ÊôÐÔ+¾õÐÑÕ½¶·ÊôÐÔ¡¿+¡¾·¨ÔòÏ´Á¶¡¿+¡¾ÃØÄÜ×°±¸¡¿+¡¾ÆäËüÄ£¿é¡¿
        ×îÖÕÃæ°åÕ½¶·ÊôÐÔ=¡¾EÈ«ÌåÕ½¶·ÊôÐÔÖµ¡¿*¡¾¿¨ÅƼ̳бÈÀý¡¿+¡¾¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ¡¿
    sË¢ÐÂÕóÈÝÊôÐÔ: lineupID=%ss    itemIndex-posNum : %siR¨R©t HeroQualityLVt    HeroBreaktHeroStarTalentit    HeroAwaket
HeroTalentt
HeroFettertHeroLineupHalotHeroAttrFormulaiiis    ¹ú¼ÒÎ佫ͳ¼Æ=%ss    î¿°íÎ佫ͳ¼Æ=%ss    Î佫×ÔÉíÊôÐÔ=%ss    Î佫µÈ¼¶ÊôÐÔ=%ss    Î佫ÍÌÊÉÊôÐÔ=%ss    Îä½«Í»ÆÆÇ±ÄÜ=%ss    Î佫¾õÐÑÌ츳=%ss    Î佫íÊôÐÔ=%ss    ÕóÈݹ⻷ÊôÐÔ=%ss    Ö÷¹«µÈ¼¶ÊôÐÔ=%ss    Ö÷¹«×°±¸ÊôÐÔ=%ss    Ö÷¹«ËÞÔµÊôÐÔ=%ss    Ö÷¹«¹ÙÖ°ÊôÐÔ=%ss    Ö÷¹«¹Å±¦ÊôÐÔ=%ss    Ö÷»Ã¾³¸óÊôÐÔ=%ss    Ö÷¹«×øÆïÊôÐÔ=%ss    Ö÷¹«ºìÑÕÊôÐÔ=%sgˆÃ@s    Ö÷¹«¿¨ÅƼӳÉ=%ss    PlayerLV=%s,OfficialLV=%stFightPowerRatioi'tlvValuet
equipValuet
realmValuetrealmPertcardPert
gubaoValuetgubaoPerthjgValuethjgPert
horseValuethorsePert beautyValuet    beautyPert
fatesValuetfatesPert heroSelfValuet heroSelfPert
inheritPert heroLVValuet    heroLVPertlineupHaloValuet lineupHaloPert fetterValuet    fetterPertstarTalentValuet starTalentPert breakLVValuet
breakLVPertawakeTalentValuetawakeTalentPertbaseAttrFormulattoInttndigitstotherAttrFormulat
PlayerAttrs%ss%sRatiosGet%ss%s-%stfightPowerFormulas.    heroID=%s,fightPower=%s,heroSkillIDList=%stSkillt
SkillPowertPlayerLVt
OfficialLVtskillFPFormulas)    skillFightPower=%s,heroSkillIDList=%ssB    Î佫×îÖÕÕ½Á¦: heroID=%s,fightPower=%s(%s+%s),%s,skillIDList=%ss1    ÕóÈÝ×îÖÕÕ½Á¦: lineupID=%s,lineupFightPower=%sNsÖ÷ÕóÈݱ仯£¬ÖØÐ¿ªÊ¼Õ½¶·s$Ö÷ÕóÈÝ¿¨ÅÆÊôÐÔ±ä¸ü£¬¸üÐÂÕ½¶·Î佫ÊôÐÔsÖ÷ÕóÈÝûÓÐÔÚÕ½¶·ÖУ¬²»ÐèÒª´¦Àí(wRfRRRRR*RŠR‹RWRŒRVRŽRR$RˆRªR«R¬RŸR­R¯tDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListRÃR-RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerR|tAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictRit GetAttrIDListtGetAttrValueListRR¶RCtGetIpyGameDataListt
GetBreakLVt
GetSkillIDR(t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotR³R¿tDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVRÁt    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCountRMR‚tDef_CalcAttr_MainEquiptDef_CalcAttr_HeroFatestDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGtDef_CalcAttr_HorsetDef_CalcAttr_BeautyRKR'RxtGetOfficialRankR.tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDicttFormulaControltEvalt GetParameterR‡tgetattrtGetSkillTypeIDt GetFightPowerR RXRyt SetFightPowerR7tGetMainFightMgrR;t    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrt posObjIDDictt    getBatObjtUpdInitBatAttrt PlayerFamilytRefreshFamilyMember(‘RRRARRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfoR˜RRR\RR·R¸R¹RºR¼tawakeLVt    skinIndexRt
skinIDListR,t normalSkillIDt angerSkillIDt selfAttrDicttktvtheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndextattrIDt    attrValuet breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountRRRR R…t equipAttrDictt fatesAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDictt effCardAddPerR¦R    R
tfpRatioIpyDatatlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDRãRäRçRðRñRåRæRèRéRêRëRìRíRîRïRòRóRôtattrInheritPerIDR÷RøRùRúRõRöRûRüRýRþRÿRt attrParamDictt attrIpyDatatattrNamet attrRatioNamet
ratioValueR
tskillTypeIDDictt    skillDatat skillTypeIDt befSkillDatat
befSkillIDR t    paramDictt sFightPowertfightPowerTotalt mainFightMgrt mainTurnFighttfactiontnumt    batLineupt    batObjMgrtobjIDtbatObj((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR1Ssš     
                                   
  (
 
!
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"
              """"""  &*#$!
 
 
     
       !
        
    $                   (((((#RFR7RpRWRyRªR7RÐRØRKRÖRÒRRÔRR|RÍRjRRR3RcRsRgRtRuRvR†RRZRRR‰RQRPR1(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>sB                  _€7                             F    :        8