lcy
2026-01-13 f10dfd5dd05466dc0f232fcb47eba70bf6494bff
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
157
158
›ºeic@s¯ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddd„ƒYZddd„ƒYZddd„ƒYZddd    „ƒYZd
„Zd „Zd „Zd „Zd„Zd„Zed„Zd„Z d„Z!d„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.pyR0s                                (t__name__t
__module__RR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR)s    tLineupcBszeZdd„Zdeed„Zd„Zd„Zd„Zd„Zd„Z    d„Z
ed    „Z d
„Z d „Z RS( icCsg||_||_||_d|_d|_i|_t|_d|_    g|_
i|_ d|_ dS(Ni( tplayerIDtlineupIDtexclusiveMapIDtNonetolPlayert    shapeTypet heroItemDicttFalset lineupChanget_Lineup__refreshStatet_Lineup__freeLineupHeroObjst_Lineup__lineupHeroDictR
(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR>s                                            cCs”|st|_n||_||_tjd|j|j|f|jƒ|j    |ƒ| r|j
j r|j rt j |j
j |jƒndS(s©±ä¸üÕóÈÝʱ¸üÐÂ
        @param heroItemDict: Î佫±³°üË÷ÒýÐÅÏ¢  {itemIndex:posNum, ...}
        @param shapeType: ÕóÐÍ
        @param refreshForce: ÊÇ·ñÇ¿ÖÆË¢ÊôÐÔ
        s*¸üÐÂÕóÈÝ: lineupID=%s,exclusiveMapID=%s,%sN(tTrueRRRt    GameWorldtDebugLogRRRtRefreshLineupAttrRt    curPlayert
PlayerHerot Sync_Lineup(RRRt refreshForcetisReload((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    UpdLineupMs         & cCs|j p|j S(N(RR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytIsEmpty]scCs |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.pytFreeLineupHeroas         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 GetLineupHerojs    
     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.pytGetLineupHeroByIDws 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.pyR1Œ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/R0RR1R3(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR;s                          
             t OnlinePlayercBsÂeZd„Zd„Zd„Zd„Zedd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z dd „Zd „Zeedd„Zedd„Zd„Zd„Zd„ZRS(cCsU||_d|_i|_i|_i|_i|_tj|ƒ|_    g|_
dS(N( RRRt _calcAttrDictt_calcSpecEffDictt _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(R;t    turnFightt    exitFight(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnClear®scCs||_||jj_dS(N(RR;R=(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·sicCsšd}|}|r9|tjkr0||f}q9d}n||jkrX|j|}n"t|j||ƒ}||j|<||_|r–|jƒn|S(Ni(RtChConfigtExclusiveBatAttrMapIDListR7RRRR1(RRt    checkAttrRtlineuptlineKey((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt    GetLineup»s          cCs|jj|ddtgƒS(Niÿÿÿÿ(R8tgetR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetHeroEffectiveCardÎscCs$|||g|j|<|jƒdS(N(R8tRefreshRoleAttr(RRt
cardAddPerRtinMain((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetHeroEffectiveCardÏscCs ||_dS(N(R8(RteffectiveCardDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetEffectiveCardDictÔscCs|jS(N(R8(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetEffectiveCardDictÕscCs|jj|iƒS(N(R6RH(Rt    calcIndex((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetCalcSpecInfo×scCs|jj|iƒS(N(R5RH(RRQ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetCalcAttrØscCs-||j|<|dkr)||j|<ndS(N(R5RR6(RRQtattrDictt specEffInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt SetCalcAttrÙs  cCsr|j}tjd|jƒi|_i|_i|_i|_t|ƒt    ||ƒt
||ƒ|j ƒdS(NsReCalcAllAttr...( RRRRR5R6R7R8t doCalcAllAttrtdoReloadLineuptreloadEffHeroCardRJ(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt ReCalcAllAttrás                    
 
cCsstjd||jƒx<|jjƒD]+}|rH|j|krHq'n|jƒq'W|ro|j||ƒndS(sÉË¢ÐÂÖ÷¹«ÊôÐÔ£¬Ó°ÏìÖ÷¹«ÊôÐԵŦÄܵãÊôÐԱ仯ʱͳһµ÷Óô˺¯Êý
        @param refreshForce: ÊÇ·ñÇ¿ÖÆÁ¢ÂíË¢ÐÂ
        @param isAllLineup: ÊÇ·ñֻͬ²½Ë¢ËùÓÐÕóÈÝÊôÐÔ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        sÇëÇóË¢ÊôÐÔ: refreshForce=%sN(RRRR7R(RR0tDoRefreshRoleAttr(RR"t isAllLineupRRE((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRJòscCs‡t}xz|jjƒD]i}|sj|r@|j|krgqqgqj|jtjks|jdkrjqqjn|jƒrt}qqW|S(s»Ö´ÐÐË¢ÊôÐÔ£¬Ä¬È϶îÍâË¢Ö÷ÕóÈÝ£¬ÆäËûÕóÈÝ¿ÉÒÔÓõ½µÄʱºòÔÙË¢ÐÂ
        @param isAllLineup: ÊÇ·ñË¢ËùÓÐÕóÈÝ£¬Èç¹ûÉèÖÃFalseÔòĬÈϽöË¢Ö÷ÕóÈÝÊôÐÔ
        @return: ÊÇ·ñÓÐË¢ÊôÐÔ£¬0-ÎÞ£»1-ÓÐ
        i(    RR7R(RRt ShareDefinet Lineup_MainR1R(RR\Rt    isRefreshRE((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR[s    !      cCsŽg}t||ƒ|jƒ}xK|jjƒD]:\}}|j|ƒr/||kri|j|ƒqiq/q/Wtjd||f|jƒdS(ssÎ佫ÎïÆ·±ä»¯Ê±ÐèÒª´¦ÀíµÄÂß¼­
        @param heroItem: ±ä»¯Î佫ÎïÆ·
        @param return: Ó°ÏìµÄÕóÈÝIDÁбí
        s'Î佫ÎïÆ·±ä»¯: itemIndex=%s, Ó°ÏìÕóÈÝ:%sN(    tcheckUpdEffHeroCardtGetItemPlaceIndexR7titemsR3R)RRR(RtheroItemteffLineupIDListRRFRE((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.pytGetLastBatBuffer,scCs||g|_dS(N(R<(Rtguidt    batBuffer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetLastBatBuffer-sN(R R RR?R@RARRGRIRMRORPRRRSRRVRZRRJR[ReRfRi(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR4›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.pyR4s        cCs[d}|jƒ}||jkr1|j|}nt|ƒ}||j|<|j|ƒ|S(N(Rt GetPlayerIDRkR4R@(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytGetOnlinePlayer9s    cCsh|jƒ}|jj|dƒ||jkrJt|ƒ}||j|<n |j|}|j|ƒdS(N(RmRlR,RRkR4R@(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOnlineDs    cCsV|jƒ}||jkrdS|j|}|jdƒttjƒƒ|j|<dS(N(RmRkR@RtintttimeRl(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytSetPlayerOfflinePs   cCs™ttjƒƒ}d}xz|jjƒD]i\}}|||krJq(n|jj|dƒ||jkrrq(n|jj|dƒ}|jƒq(WdS(Nii<i,(RpRqRlRbR,RRkR?(RtcurTimet offlineTimesRt offlineTimeR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytProcessOfflineZs(R R RRnRoRrRv(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRj1s
                  
cCs1d}tjrtj}ntƒ}|t_|S(N(Rt
PyGameDatat g_onlineMgrRj(tmgr((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt GetOnlineMgrhs              cCstƒj|ƒS(N(RzRn(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRnqscCstƒj|ƒdS(N(RzRo(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt OnPlayerLoginsscCstƒj|ƒdS(N(RzRr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnPlayerLogoffxscCstƒjƒdS(N(RzRv(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pytOnMinute}s cCs|jƒ}|jƒ}tj|ƒ}i}|rli|jƒtj6|jƒtj6|j    ƒtj
6}nt j d||ƒt |ƒjtj|ƒdS(Ns½ÇÉ«µÈ¼¶ÊôÐÔ: %s(tGetIDtGetLVt PlayerControltGetPlayerLVIpyDatatGetAtkRBt
AttrID_AtktGetDeft
AttrID_DeftGetMaxHPt AttrID_MaxHPRRRnRVtDef_CalcAttr_LV(RRtplayerLVt    lvIpyDatat
lvAttrDict((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt CalcRoleBases  c    Csòt|dƒsdS|j}|s&dS|jƒ}|jƒ}t|ƒ}|j|ƒ\}}}    |jƒjtj    ƒ}
|
j
ƒ|kr›|
j |ƒnd} | s´| j ƒråtjd|||    fƒddt}}}    n||kr¢||kr!tjd|||    ||fƒdS|j||||    ƒ||krgtjd|||    ||fƒdS|    r‘tjd|||    ||fƒdStjd|||    ||fƒ|jƒjtj    ƒ}
x¸t|
j
ƒƒD]¤} | |krôqÜn|
j | ƒ} | sÜ| j ƒrqÜn|| jƒkr4qÜnt| ƒ}||krRqÜntjd|| ||fƒt|| |ƒdSWtjd    |||fƒdS|    rÆtjd
|||fƒdS||krötjd |||||fƒdStjd |||||fƒ|j||||    ƒ|jƒ}|jtjd ƒ|oZ|jƒ|dkrî|jƒjtj    ƒ}
|
j
ƒ|kr |
j |ƒnd} | rî| j ƒ rî| jƒ}|jtjdƒ|oç| jƒqîndS(NRasHÀúÊ·ÉúЧµÄÎïÆ·²»ÔÚÁË£¬Ç¿ÖÆÉèÖÿÕ! effAddPer=%s,effItemIndex=%s,inMain=%siÿÿÿÿ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(thasattrRRat GetItemTypeIDtgetHeroCardAddPerRItGetItemManagertGetPackR]trptHerotGetCounttGetAtRR%RRRRMtrangeR`tGetItemt SetUserAttrtDef_IudetHeroCardEffectivet    Sync_Item(RRctisNotifyRRRt    curAddPert    effAddPert effItemIndexRLtcurPackt
hisEffItemtindextpackItemt packCardPertitem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyR`‘s‚       '                        ' 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ƒ}
|
dtkrøq7|    |
dkr7|    ||g||<q7q7Wi} tjd|ƒtjd|ƒd} |j|ƒx§|jƒD]™\}}
|
\}    } }| |    7} | |kr«|j| ƒqjtjd|| ||    | fƒ|j| ƒ}|jƒ}|jtj dƒ|| | <qjWtjd|ƒxF|D]>} |j| ƒ}|jƒ}|jtj dƒ|| | <qWx| jƒD]}|jƒqnWdS(    NiÿÿÿÿiisÀúÊ·ÉúЧµÄ¿¨ÅÆË÷Òý: %ss×îÐÂÉúЧµÄ¿¨ÅÆÐÅÏ¢: %ssPÉúЧµÄ¿¨ÅƱ仯µÄ: heroID=%s,itemIndex=%s,inMain=%s,cardAddPer=%s,cardPerTotal=%sisÒÆ³ýʧЧµÄ¿¨ÅÆË÷Òý: %s(RR‘R]R’R•R“R”R%RŽR t InMainLineupRt GetUserAttrR˜R)RHRRRRRORbtremoveR–R—R(R™(RRthisEffCardIndexListtupdEffectiveCardDictRžR RcRRLRKteffInfot syncItemDictt cardPerTotalRR£tsyncItem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRYÝsV   
     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¥R]tDef_IudetHeroLVtDef_IudetHeroStartDef_IudetHeroBreakLVR tGetHeroStarMaxt GetInitAddPert GetLVAddPertmaxtGetBreakLVAddPert GetStarAddPertmin(
RcRt heroIpyDatatqualitytqualityIpyDatatheroLVtstartbreakLVtstarMaxtaddPer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRs"   !cCsÂtj}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ƒƒx¨|jƒD]š\} }|j| tƒ}|j| dƒ}|j||dtƒ| tjkrxBtj D]4}|j| td|ƒ}|j||dtƒqrWqqWt j!|ƒdS(Niÿÿÿÿs ÖØÔØÕóÈÝ: %siR#R("R]t
LineupListRR‘R’R•R“R”R%tGetUserAttrCounttDef_IudetHeroLineuptGetUserAttrByIndexR tGetLineupValuetlent LineupObjMaxR(R)R–t DelUserAttrR™RRRmRbRGRRHR$RR^RBRCR!(RRtloadLineupIDListt
lineupDicttlineShapeTypeDictRªRžR Rct lineupCountt delValueListtlpIndext lineupValueRRRRR£R¬RERtexclusiveLineup((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRX/sX          
3  ! cCs™tjd|jƒƒt|ƒtj|ƒtj|ƒtj    |ƒt
j |ƒt j |ƒtj|ƒtj|ƒtj|ƒtj|ƒdS(NsdoCalcAllAttr...(RRRmRŒtChEquiptCalcRoleEquipAttrR tCalcHeroAddAttrtPlayerPrestigeSystCalcOfficialRankAttrt PlayerGubaot CalcGubaoAttrt    PlayerHJGt CalcHJGAttrt PlayerHorset CalcHorseAttrt PlayerBeautytCalcBeautyAttrt PlayerMinggetCalcMinggeAttrtGameLogic_DingjungetCalcDingjungeAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyRWls
         c–
Cs›|jƒ}|j}|j}tjd||f|ƒtjd|j|ƒ|jƒi}i}i}i}    i}
i} i} |jƒjt    j
ƒ} xŠ|jj ƒD]y\}}|dks«|| j ƒkrÛq«n| j |ƒ}| s«|jƒrq«n|jƒ}tjd|ƒ}|s-q«n|jƒ}tjd|ƒ}|sWq«n|jt    jƒ}|jt    jƒ}|jt    jƒ}|jt    jƒ}d}|jƒ}|dksÏ|t|ƒkrÜ||}n|rï|d}n|j|ƒ}||_||_||_||_i|_g|_ d|_!|j"ƒ}|j#ƒ}|j j$||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||ƒ}"|"r|"j/ƒ}#|"j0ƒ}$xZt1t2t|#ƒt|$ƒƒƒD]4}%|#|%}&|$|%}'|!j3|&dƒ|'|!|&<qFWn|!|    |<i}(tj4d|ƒ})|)rŽxâ|)D]×}*|*j5ƒ|krÌPn|*j/ƒ}#|*j0ƒ}$xWt1t2t|#ƒt|$ƒƒƒD]4}%|#|%}&|$|%}'|(j3|&dƒ|'|(|&<qW|*j6ƒ}+|*j7ƒ},|+ro|j j8|+ƒn|,r°|j |,7_ q°q°Wn|(| |<tj9dd    ƒ}-i}.tj:d
|ƒ}/|/r¤xÙ|/D]Î}0|0j;ƒ|krëPn|0j<ƒ}1t=|-|1ƒ}-|0j/ƒ}#|0j0ƒ}$xWt1t2t|#ƒt|$ƒƒƒD]4}%|#|%}&|$|%}'|.j3|&dƒ|'|.|&<q@W|0j6ƒ}+|+rÏ|j j8|+ƒqÏqÏWn|.| |<i}2|j>t    j?ƒ}3|j>t    j@ƒ}4xžt1t2|3|4|-ƒƒD]„}%|jAt    j?|%ƒ}5|jAt    j@|%ƒ}6tjd |5ƒ}7|7s?qñn|7jBƒ}&|7jCƒ|6}'|2j3|&dƒ|'|2|&<qñW|2|
|<xS|jDƒD]E}8|8|kr¯g||8<n||8}9||9kr|9j8|ƒqqW|jEƒ}:|:|krþg||:<n||:};||;kr«|;j8|ƒq«q«Wi}<x#|j ƒD]\}8}9tjd |8ƒ}=|=seq;n|=jFƒ}>tG}?x$|>D]}@|@|9kr~tH}?Pq~q~W|?sªq;n|=j/ƒ}#|=j0ƒ}$x‹t1t2t|#ƒt|$ƒƒƒD]h}%|#|%}&|$|%}'xK|>D]C}||<kr$i|<|<n|<|}A|Aj3|&dƒ|'|A|&<qWqäWq;Wi}Bxð|j ƒD]â\}:};tj4d |:ƒ}C|Cs‘qgngg}#}$t|;ƒ}DxB|CD]:}E|EjIƒ}F|D|FkrÓPn|Ej/ƒ}#|Ej0ƒ}$q±WxWt1t2t|#ƒt|$ƒƒƒD]4}%|#|%}&|$|%}'|Bj3|&dƒ|'|B|&<q    WqgWtj9dd    ƒ}Gtj9ddƒ}Htj9ddƒ}Itj9ddƒ}J|jJt'jKƒ}K|jJt'jLƒ}L|jJt'jMƒ}M|jJt'jNƒ}N|jJt'jOƒ}O|jJt'jPƒ}P|jJt'jQƒ}Q|jJt'jRƒ}R|t'jSkrF
|jJt'jTƒni}Stjd||ƒtjd||ƒtjd||ƒtjd|    |ƒtjd|
|ƒtjd| |ƒtjd| |ƒtjd|<|ƒtjd|B|ƒtjd|K|ƒtjd|L|ƒtjd|M|ƒtjd|N|ƒtjd|O|ƒtjd |P|ƒtjd!|Q|ƒtjd"|R|ƒtjd#|S|ƒd}Tx(|jUƒjVƒD]}U|T|Ud7}TqÍ W|Td$:}Ttjd%|T|ƒ|jWƒ}V|jXƒ}Wtjd&|V|Wf|ƒtjd'|Wƒ}Xd}Yx½|j ƒD]¯\}}|jY|ƒ}|s qZ ni|_d|_!|    j3|iƒ}!|
j3|iƒ}2| j3|iƒ}(| j3|iƒ}.|<j3|iƒ}Zi}[i}\xOt'jZD]D}&t'j[j3|&dƒ}]|Kj3|&dƒ}^|Lj3|&dƒ}_d}`|&t'j\kr` |T}`n|Mj3|&dƒ}a|]rŽ |Mj3|]dƒd$nd}b|Nj3|&dƒ}c|]r |Nj3|]dƒd$nd}d|Oj3|&dƒ}e|]rö |Oj3|]dƒd$nd}f|Pj3|&dƒ}g|]r*|Pj3|]dƒd$nd}h|Qj3|&dƒ}i|]r^|Qj3|]dƒd$nd}j|Rj3|&dƒ}k|]r’|Rj3|]dƒd$nd}l|Sj3|&dƒ}m|]rÆ|Sj3|]dƒd$nd}n|j3|&dƒd}o}pd    }q|&t'j]kr&t'j]|&}r|j3|rd(ƒ}q|qd$:}qn|Bj3|&dƒd}s}t|Zj3|&dƒd}u}v|!j3|&dƒd}w}x|2j3|&dƒd}y}z|(j3|&dƒd}{}||.j3|&dƒd}}}~|]r_|j3|]dƒd$}p|Bj3|]dƒd$}t|Zj3|]dƒd$}v|!j3|]dƒd$}x|2j3|]dƒd$}z|(j3|]dƒd$}||.j3|]dƒd$}~ni |^d)6|_d*6|cd+6|dd,6|`d-6|ed.6|fd/6|gd06|hd16|id26|jd36|kd46|ld56|ad66|bd76|md86|nd96|od:6|pd;6|qd<6|wd=6|xd>6|sd?6|td@6|udA6|vdB6|ydC6|zdD6|{dE6||dF6|}dG6|~dH6}|&t'j\krxt^j_dI|G|dJtHdKdƒ}'n!t^j_dL|H|dJtHdKdƒ}'tjdM|&ƒ}€|€r½|€j`ƒndN|&}dO|}‚d}ƒ|'r    ta|XdP|‚ƒr    tb|XdP|‚ƒƒ}ƒn|'|\|<|ƒ|\|‚<|'r |'|j|&<|'|[dQ|&|f<q q Wt^j_dR|I|\dJtGƒ}„tjdS||„|j f|ƒi}…x†|j D]{}+tjdT|+ƒ}†|†sºq–n|†jcƒ}‡|‡|…krß|†|…|‡<q–|…|‡}ˆ|ˆj6ƒ}‰|‰|+krq–n|†|…|‡<q–Wd}Šg|_ xv|…jVƒD]h}†|†j6ƒ}+|j j8|+ƒi|†jdƒdU6|VdV6|WdW6}‹t^j_dX|J|‹dJtGƒ}Œ|Š|Œ7}Šq1WtjdY|Š|j f|ƒ|„|Š}|Š|_e||_!|Y|7}YtjdZ|||„|Š|[|j f|ƒqZ W|Y|_!tjd[||Y|f|ƒ|t    jfksH|rLd\Stgjh||Yƒtijj|ƒ}Ž|Žjk}|rz|jlƒrz|jmrÇtjd]|ƒ|jnt'jokrwtijp|tGƒqwqŠtjd^|ƒt'jqd    }}‘|jr|ƒjs|‘ƒ}’ttjuƒ}“x||’jvj ƒD]X\}}”|“jw|”ƒ}•|•sBqn|j|ƒ}|jr|•jx|j|j ƒqqWntjd_|ƒtyjz|ƒd\S(`s° Ë¢ÐÂij¸öÕóÈÝÊôÐÔ
        »ù´¡ÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«Ìå»ù´¡¹Ì¶¨Öµ=ËùÓд©´÷×°±¸¡¾×°±¸»ù´¡¹Ì¶¨Öµ¡¿+¡¾·¨±¦»ù´¡¹Ì¶¨Öµ¡¿+¡¾ºìÑÕ»ù´¡¹Ì¶¨Öµ¡¿+¡¾ÆäËüÄ£¿éµÄ¹Ì¶¨Öµ¡¿
        2.È«Ìå°Ù·Ö±È¼Ó³É=ͼ¼ø¼Ó³É+¡¾ÁéÊÞÄ£¿é¡¿+¡¾ºìÑÕÄ£¿é¡¿+¡¾ÆäËüÄ£¿é¡¿+ËùÓÐÉÏÕó¿¨ÅÆ¡¾³õʼ¼Ó³É+Éý¼¶¼Ó³É+Í»ÆÆ¼Ó³É+ÍÌÊɼӳɡ¿
        3.¿¨ÅƼ̳бÈÀý=¿¨ÅÆÆ·Öʼ°Ö°Òµ¼Ì³Ð±ÈÀý²»Í¬
        4.¿¨ÅÆ×ÔÉíÅàÑø¼Ó³É=¡¾î¿°í¼Ó³É%+Í»ÆÆ´ÊÌõ¼Ó³É%+Ì츳¼Ó³É%¡¿
        ×îÖÕÃæ°åÉúÃü=¡¾EÈ«Ìå»ù´¡¹Ì¶¨Öµ¡¿*¡¾1+EÈ«Ìå°Ù·Ö±È¼Ó³É¡¿*¡¾¿¨ÅÆ×ÔÉí¼Ì³Ð±ÈÀý+ ¿¨ÅÆ×ÔÉíÅàÑø%¼Ó³É¡¿+¡¾¿¨ÅÆ×ÔÉí¹Ì¶¨Öµ¡¿
 
        Õ½¶·ÊôÐÔ/Õ½¶·¿¹ÐÔ/ÌØÊâÊôÐÔ-Ãæ°åÏÔʾ£º
        1.È«ÌåÕ½¶·ÊôÐÔÖµ=ËùÓд©´÷×°±¸¡¾×°±¸Õ½¶·ÊôÐÔÖµ¡¿+¡¾·¨±¦Õ½¶·ÊôÐÔÖµ¡¿+¡¾ºìÑÕÕ½¶·ÊôÐÔÖµ¡¿+¡¾ÆäËüÄ£¿éµÄÕ½¶·ÊôÐÔ¡¿
        2.¿¨ÅƼ̳бÈÀý=ĬÈÏ100%
        3.¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ=¡¾¿¨ÅƳõʼս¶·ÊôÐÔ+Í»ÆÆ´ÊÌõÕ½¶·ÊôÐÔ+Ì츳ս¶·ÊôÐÔ+¾õÐÑÕ½¶·ÊôÐÔ¡¿+¡¾·¨ÔòÏ´Á¶¡¿+¡¾ÃØÄÜ×°±¸¡¿+¡¾ÆäËüÄ£¿é¡¿
        ×îÖÕÃæ°åÕ½¶·ÊôÐÔ=¡¾EÈ«ÌåÕ½¶·ÊôÐÔÖµ¡¿*¡¾¿¨ÅƼ̳бÈÀý¡¿+¡¾¿¨ÅÆ×ÔÉíÅàÑøÕ½¶·ÊôÐÔ¡¿
    s+Ë¢ÐÂÕóÈÝÊôÐÔ: lineupID=%s,exclusiveMapID=%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    Ö÷¹«ºìÑÕÊôÐÔ=%ss    ¶¨¾üרÊôÊôÐÔ=%sgˆÃ@s    Ö÷¹«¿¨ÅƼӳÉ=%ss    PlayerLV=%s,OfficialLV=%stFightPowerRatioi'tlvValuet
equipValuet
realmValuetrealmPertcardPert
gubaoValuetgubaoPerthjgValuethjgPert
horseValuethorsePert beautyValuet    beautyPert
fatesValuetfatesPertdingjungeValuet dingjungePert 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=%ssC    ÕóÈÝ×îÖÕÕ½Á¦: lineupID=%s,lineupFightPower=%s,exclusiveMapID=%sNsÖ÷ÕóÈݱ仯£¬ÖØÐ¿ªÊ¼Õ½¶·s$Ö÷ÕóÈÝ¿¨ÅÆÊôÐÔ±ä¸ü£¬¸üÐÂÕ½¶·Î佫ÊôÐÔsÖ÷ÕóÈÝûÓÐÔÚÕ½¶·ÖУ¬²»ÐèÒª´¦Àí({RmRRRRRR+RR‘R]R’RbR“R”R%RŽR¯R°R±R¥R²R´tDef_IudetHeroAwakeLVtDef_IudetHeroSkint GetSkinIDListRÉR.RRRRRR    R
tGetNormalSkillIDtGetAngerSkillIDtextendtupdatetGetAtkInheritPerRBtAttrID_AtkInheritPertGetDefInheritPertAttrID_DefInheritPertGetHPInheritPertAttrID_HPInheritPertGetBatAttrDictRpt GetAttrIDListtGetAttrValueListR•R»RHtGetIpyGameDataListt
GetBreakLVt
GetSkillIDtGetSkillIDExListR)t
GetFuncCfgtGetIpyGameDataListNotLogt
GetAwakeLVtGetUnlockTalentSlotR¸RÅtDef_IudetHeroTalentIDtDef_IudetHeroTalentIDLVRÇt    GetAttrIDt GetAttrValuetGetFetterIDListt
GetCountryt GetHeroIDListRRtGetNeedHeroCountRSRˆtDef_CalcAttr_MainEquiptDef_CalcAttr_HeroFatestDef_CalcAttr_RealmtDef_CalcAttr_GubaotDef_CalcAttr_HJGtDef_CalcAttr_HorsetDef_CalcAttr_BeautytDef_FBMapID_DingjungetDef_CalcAttr_DingjungeRPR(RtGetOfficialRankR/tCalcBattleAttrIDListt AttrPerDicttBaseAttrIDListtAttrInheritPerDicttFormulaControltEvalt GetParameterRtgetattrtGetSkillTypeIDt GetFightPowerR R^R€t SetFightPowerR9tGetMainFightMgrR=t    isInFightRtmapIDtDef_FBMapID_Maint__doMainLevelWavet Def_FactionAt getBatFactiont getBatlineupt    BattleObjt GetBatObjMgrt posObjIDDictt    getBatObjtUpdInitBatAttrt PlayerFamilytRefreshFamilyMember(–RRRERRRtcountryHeroInfotfetterHeroInfotheroSelfAttrInfotheroLVAttrInfotheroStarTalentInfotheroBreakAttrInfotheroAwakeTalentInfoRžRRRcRR¼R½R¾R¿RÁtawakeLVt    skinIndexRt
skinIDListR-t normalSkillIDt angerSkillIDt selfAttrDicttktvtheroLVAttrDictt heroLVIpyDatat
attrIDListt attrValueListtaIndextattrIDt    attrValuet breakAttrDicttbreakIpyDataListt breakIpyDatatskillIDt skillIDExListt maxUnlockSlottawakeTalentAttrDicttawakeIpyDataListt awakeIpyDatatunlockTalentSlottstarTalentAttrDicttidCounttlvCountttalentIDttalentLVt    stIpyDatatfetterIDtfetterHeroIDListtcountrytcountryHeroIDListtheroFetterAttrInfot fetterIpyDatatneedHeroIDListt    canFettert
needHeroIDtheroFetterAttrDicttlineupHaloAttrInfothaloIpyDataListtcountryHeroCntt haloIpyDatat needHeroCountRRRRR‹t equipAttrDictt fatesAttrDictt realmAttrDictt gubaoAttrDictt hjgAttrDictt horseAttrDicttbeautyAttrDicttdingjungeAttrDictt effCardAddPerR©RRtfpRatioIpyDatatlineupFightPowertfetterAttrDictt logAttrDicttfightPowerParamDictt    attrPerIDRîRïRòRûRüRðRñRóRôRõRöR÷RøRùRúRýRþRÿRRtattrInheritPerIDRRRRRRRR    R
R R R t 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.pyR2{s¬         
                                   
  (
 
!
   (
 
 
    (
 
 
 
 
 
      (
 
 
&      (
 
"'
              """""""  &*#$!
 
 
     
       !
        
    $                   (((((%RVR9RwR]R€R¯RGR×RãRáRßR[RÝRÙR RÛRRBRÔRqRRR4RjRzRnR{R|R}RŒRR`RYRRXRWR2(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerOnline.pyt<module>sF                    `–7                             L    <        =