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
h-ic@sáddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z eddƒ\ZZZZZZZdZdZedd ƒ\ZZZZd„Zd„Zd„Zd    „Zd
„Z d „Z!d „Z"d „Z#d„Z$d„Z%d„Z&dd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4ddd„Z5dS(!iÿÿÿÿNiiiicCst|ƒdS(N(tSyncBeautyInfo(t    curPlayer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyt OnPlayerLogin8s
cCs|jtj|ƒdS(Ni
(tNomalDictGetPropertytChConfigtDef_PDict_BeautyLVInfo(RtbeautyID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautyState=scCsO|jtj|ƒ}|ddtd|ƒ}tj|tj||ƒ|S(Ni
i(RRRtmint PlayerControltNomalDictSetProperty(RRtstatetlvInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytSetBeautyState@scCs8|jtj|ƒ}|d}|dd}||fS(Ni'i
(RRR(RRR texptlv((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautyLVInfoFs
cCs`|jtj|ƒ}t|dƒdt|dƒd|d}tj|tj||ƒ|S(Ni@ i'içi
(RRRRR    R
(RRRRR ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytSetBeautyLVInfoLs,cCs|jtj|ƒdS(Ni
(RRtDef_PDict_BeautySkinInfo(RtskinID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautySkinStateSscCsO|jtj|ƒ}|ddtd|ƒ}tj|tj||ƒ|S(Ni
i(RRRRR    R
(RRR tinfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytSetBeautySkinStateVscCs|jtj|ƒddS(Nidi
(RRR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautySkinUsed[scCs[|jtj|ƒ}|ddtd|ƒd|d}tj|tj||ƒ|S(Nidii
(RRRRR    R
(RRtisUsedR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytSetBeautySkinUsed^s'cCs|jtj|ƒdS(Nid(RRR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautySkinStarcscCsF|jtj|ƒ}|d|d}tj|tj||ƒ|S(Nid(RRRR    R
(RRtstarR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytSetBeautySkinStarfscCsWt||ƒrtS|s.t|||ƒ}n|rS|jƒ}|tkrStSntS(N(RtTruetGetBeautySkinIpyDatat GetUnlockWaytUnlockWaySkin_DefaulttFalse(RRRtipyDatat    unlockWay((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytIsBeautySkinCanUsels  cCstjƒj|ƒ}|jƒ}|j}t||ƒrQtjd||ƒdStjd|ƒ}|smdS|j    ƒ}|j
ƒ}|j ƒ}    |t kr|}
|    } t j||
ƒ} | | krëtjd||
| | f|ƒdSt j||
| ƒn|tkrF|} tj|| ƒstjd|| f|ƒdSn¿|tkrš|    }|jtjƒ}||krtjd|||f|ƒdSnk|tkrë|    }tj|ƒ}||krtjd|||f|ƒdSn|tkrEtj}|}tj|||ƒ}|stjd|||f|ƒdSnÀ|tkr“|jƒ}|}||krtjd|||f|ƒdSnr|t krç|jtj!ƒ}|    }||krtjd    |||f|ƒdSntjd
||f|ƒdSt"||ƒdS( NsºìÑÕÒѾ­¼¤»î¹ý£¡ beautyID=%stBeautys=¼¤»îºìÑÕÎïÆ·²»×ã! beautyID=%s,needItemID=%s,itemCount=%s < %ss-¼¤»îºìÑÕËùÐèÈÎÎñδÍê³É! beautyID=%s,taskID=%ss:¼¤»îºìÑÕËùÐèÑÝÎ䳡ʤÀû´ÎÊý²»×ã! beautyID=%s,winCnt=%s < %ss5¼¤»îºìÑÕËùÐè¼à¹¤²»×ã! beautyID=%s,workerTotal=%s < %ss:¼¤»îºìÑÕËùÐ踱±¾Î´¹ý¹Ø! beautyID=%s,mapID=%s,funcLineID=%ss1¼¤»îºìÑÕËùÐè¹ÙÖ°²»×ã! beautyID=%s,realmLV=%s < %ss7¼¤»îºìÑÕËùÐèÓÎÀú´ÎÊý²»×ã! beautyID=%s,travelCnt=%s < %ss*¸ÃºìÑÕ²»Ö§³Ö¼¤»î! beautyID=%s,unlockWay=%s(#t    GameWorldtGetPlayerManagertGetPlayerByIndext GetPlayerIDtBeautyIDRtDebugLogt IpyGameDataPYtGetIpyGameDataRtGetUnlockValuetGetUnlockNeedCnttUnlockWay_Itemt ItemControlertGetItemCountByIDtDelItemCountByIDtUnlockWay_TaskIDt
PlayerTaskt IsTaskFinishtUnlockWay_ArenaWinCntRRtDef_PDict_ArenaWinCnttUnlockWay_GoldRushWorkertPlayerGoldRushtGetWorkerTotaltUnlockWay_FBZhanchuitDef_FBMapID_ZhanchuitFBCommontIsFBPasstUnlockWay_OfficialRanktGetOfficialRanktUnlockWay_TravelCnttDef_PDict_TravelCnttDoBeautyActivate(tindext curPackDatattickRtplayerIDRR"R#t unlockValuet unlockNeedCntt
needItemIDt needItemCntt    itemCountttaskIDt
needWinCnttwinCntt needWorkerCntt workerTotaltmapIDt
funcLineIDtisPasstrealmLVt needRealmLVt    travelCntt needTravelCnt((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytOnBeautyActivatesx                           cCszt||ƒrdSd\}}t||dƒt||||ƒtjd||jƒƒt|ƒt||gƒdS(NiisºìÑÕ¼¤»î³É¹¦£¡ beautyID=%s(ii(RR RR&R+R)tRefreshBeautyAttrR(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyRDÌs 
c Csitjƒj|ƒ}|jƒ}|j}|j}|j}t||ƒsctjd||ƒdSt    j
d|ƒ}|sdS|j ƒ}    t ||ƒ\}
} t    j ddƒ} t    j ddƒ} || kr| j|ƒ}t| ƒ|krû| |nd}nK|jƒ}||kr=tjd|||f|ƒdSt    jddƒ}|dkr_dS|
d}t    j
d    |    |ƒ}|s¥tjd
||    |
f|ƒdS|jƒ}d}|| }|dkr¦|rý||}||dkr|d7}qnd}|dkrdStj|||ƒ\}}}|||}|dkrx||8}tjd |||||fƒn|dkr¦tj|||||dƒq¦n||}| |}tjd ||    |
| ||||||f
ƒ|
}||kr)||8}|d7}tjd ||fƒnt||||ƒt||gƒ||kret|ƒndS(NsºìÑÕδ¼¤»î£¡ beautyID=%sR%t
BeautyLVUPiiis0·Ç¸ÃºìÑÕרÊôÐÅÎïID£¡ beautyID=%s,itemID=%s != %sitBeautyQualityLVs,ºìÑÕÒÑÂú¼¶£¡ beautyID=%s,quality=%s,curLV=%ss[ÏûºÄµÀ¾ß²»×㣬ÓжàÉÙÏûºÄ¶àÉÙ! itemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%ssqºìÑÕ¼Ó¾­Ñé: beautyID=%s,quality=%s,curLV=%s,curExp=%s,addExp=%s,updExp=%s/%s,itemID=%s,costItemCount=%s,perExp=%ss    Éý¼¶: updLV=%s,updExp=%s(R&R'R(R)R*tItemIDtIsQuickRR+R,R-tGetBeautyQualityRtGetFuncEvalCfgREtlentGetExclusiveItemIDt
GetFuncCfgt GetLVNeedExpt
ItemCommontGetPackItemBindStateIndexInfotDelCostItemByBindRRR[(RERFRGRRHRtitemIDtisQuickR"tqualitytcurLVtcurExptcommItemIDListt commExpListtperExptexclusiveItemIDtnextLVt nextLVIpyDatat    lvNeedExpt costItemCounttneedExptcostItemIndexListtbindCntt    unBindCnttlackCnttaddExptupdExptupdLV((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyt OnBeautyLVUPás~               %   
 
 
 
     "
 
    & 
 
  cCsöt||ƒs$tjd|ƒdStjd|ƒ}|s@dS|jƒ}t||ƒd}|jtj    |ƒ}||kr¢tjd||||fƒdStjd||||fƒ|}i}xt
|d|dƒD]v}tjd||ƒ}    |    sPn|    j ƒ}
x<|
D]4} | d} | d} |j | dƒ| || <qW|}qãW|sgdSg|j ƒD]\} } | | g^qt}tjd||fƒtj|tj    ||ƒt||gƒtj||d    d
tigƒdS( NsºìÑÕδ¼¤»î£¡ beautyID=%sR%isJµ±Ç°Ã»ÓкìÑյȼ¶½±Àø¿ÉÁìÈ¡£¡ beautyID=%s,quality=%s,awardLV=%s >= curLV=%ss<ÁìÈ¡ºìÑյȼ¶½±Àø: beautyID=%s,quality=%s,curLV=%s,awardLV=%siR]s"    updAwardLV=%s,awardItemList=%steventt BeautyLVAward(RR&R+R,R-R`RRRtDef_PDict_BeautyAwardLVtrangetGetAwardItemListtgettitemsR    R
RR1tGivePlayerItemOrMailR!(RRR"RkRltawardLVt
updAwardLVtitemDicttgetLVt    lvIpyDatatitemListtitemInfoRiRMt awardItemList((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautyLVAward4sB    
 
 
+cCsÄtjƒj|ƒ}|jƒ}|j}|j}|j}t||ƒsctjd||ƒdS|dkr‚t    |||ƒn>|dkr¡t
|||ƒn|dkrÀt |||ƒndS(NsºìÑÕδ¼¤»î£¡ beautyID=%siii( R&R'R(R)R*tSkinIDtOPTypeRR+tOnBeautySkinActivatetOnUseBeautySkintOnBeautySkinStarUP(RERFRGRRHRRtopType((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytOnBeautySkinOPfs                cCsGtjd|ƒ}|sdSx$|D]}|jƒ|kr#|Sq#WdS(Nt
BeautySkin(R,tGetIpyGameDataListt    GetSkinID(RRRt ipyDataListR"((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyRys c
Cs=t||ƒr*tjd||fƒdSt|||ƒ}|sFdS|jƒ}|jƒ}|jƒ}|tkr×|}|}tj    ||ƒ}    |    |krÁtjd|||    |fƒdStj
|||ƒntjd||fƒdSt ||dƒtjd||fƒt |ƒt ||g|gƒdS(Ns%ºìÑÕÆ¤·ôÒѼ¤»î! beautyID=%s,skinID=%ssA¼¤»îºìÑÕʱװÎïÆ·²»×ã! beautyID=%s,needItemID=%s,itemCount=%s < %ss)ºìÑÕÆ¤·ô²»ÐèÒª¼¤»î! beautyID=%s,skinID=%sis#ºìÑÕÆ¤·ô¼¤»î: beautyID=%s,skinID=%s(RR&R+RRR.R/tUnlockWaySkin_ItemR1R2R3RR[R(
RRRR"R#RIRJRKRLRM((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR’‚s0     
cCsý|jƒ}t|||ƒs<tjd||f|ƒdStjd||f|ƒtjd|ƒ}|srdSg}xk|D]c}|jƒ}||kr°t||dƒn%t||ƒrt||dƒnq|j    |ƒqWt
||g|ƒdS(Ns'¸ÃºìÑÕʱװ²»¿ÉÓÃ! beautyID=%s,skinID=%ss$´©´÷ ºìÑÕʱװ! beautyID=%s,skinID=%sR—ii( R)R$R&R+R,R˜R™RRtappendR(RRRRHRšt
skinIDListR"t    ipySkinID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR“¢s&    c CsŠ|jƒ}t|||ƒs<tjd||f|ƒdSt|||ƒ}|sXdS|jƒ}t||ƒ}||kr tjd|||f|ƒdS|jƒtkr¶dS|j    ƒ}|j
ƒ}| sÜ| ràdSt j ||ƒ}    |    |krtjd|||    |fƒdSt j |||ƒ|d}
tjd||
f|ƒt|||
ƒt|ƒt||g|gƒdS(Ns'¸ÃºìÑÕʱװ²»¿ÉÓÃ! beautyID=%s,skinID=%ss,ºìÑÕʱװÐǼ¶ÒÑÂú! skinID=%s,curStar=%s >= %ss?ºìÑÕʱװÉýÐÇÎïÆ·²»×ã! skinID=%s,needItemID=%s,itemCount=%s < %sis#ºìÑÕʱװÉýÐÇ! skinID=%s,nextStar=%s(R)R$R&R+Rt
GetStarMaxRRR›R.t GetUpNeedCntR1R2R3RR[R( RRRRHR"tstarMaxtcurStarRKRLRMtnextStar((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR”¸s:      
 
cCs!t|ƒtj|ƒjƒdS(N(tCalcBeautyAttrt PlayerOnlinetGetOnlinePlayertRefreshRoleAttr(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR[Øs
c&CsÄ|jƒ}i}i}tjddƒ}tjƒ}x6t|jƒƒD]"}|j|ƒ}|jƒ}t||ƒsqIn|j    ƒ}    t
||ƒd}
xªt|
dƒD]˜} tj d|    | ƒ} | sÖq¯n| j ƒ} | j ƒ}xVt| ƒD]H\}}t|ƒ|kr#||nd}|j|dƒ|||<qûWq¯W|jƒ}|jƒ}|jƒ}|
|}x†t|ƒD]x\}}t|ƒ|kr®||nd}t|ƒ|krÐ||nd}|||}|j|dƒ|||<q†W|jƒ}|jƒ}|jƒ}|jƒ}|rY|||}||g||<ntjd|ƒ}|swqInxñ|D]é}|jƒ}t||||ƒs«q~n|j ƒ} |jƒ}!|jƒ}"t||ƒ}#x†t| ƒD]x\}$}t|!ƒ|$kr|!|$nd}t|"ƒ|$kr5|"|$nd}%||%|#}|j|dƒ|||<qëWq~WqIWtjd||ƒtjd||ƒ|t j!|<t"j#|ƒj$t%j&|ƒdS(    NR\iiiR]R—s ºìÑÕÊôÐÔ: %ss ºìÑÕЧ¹û: %s('R)R,RdtIPY_DataR‚tGetBeautyCounttGetBeautyByIndext GetBeautyIDRR`RR-t GetAttrIDListtGetAttrValueListt    enumerateRbR„tGetTalentAttrIDListtGetTalentAttrValueListtGetTalentPerLVAddListt
GetEffTypetGetEffTypeValuet GetEffValuetGetEffPerLVAddR˜R™R$tGetInitAttrValueListtGetAttrPerStarAddListRR&R+t
PyGameDatatg_beautyEffTypeDictR¥R¦t SetCalcAttrRtDef_CalcAttr_Beauty(&RRHtattrDictt effTypeDictt talentLVUPPert
ipyDataMgrRER"RRktbeautyLVRR‹t lvAttrIDListtlvAttrValueListtlvIndextattrIDt    attrValuettalentAttrIDListttalentAttrValueListttalentPerLVAddListttalentLVttIndext    initValuetperLVAddteffTypet effTypeValueteffValuet effPerLVAddRšt skinIpyDataRt
attrIDListtinitAttrValueListtperStarAddListRtsIndext
perStarAdd((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR¤Ýst      ""   
""         ""& cCs1tjj|jƒiƒ}|j|ddgƒS(Ni(R¸R¹R„R)(RRÍR½((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautyEffInfo*scCs||dkr`g}tjƒ}xEt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wn|}g}x¼|D]´}t||ƒ}    |     r¡|dkr¡qsnt    ||ƒ\}
} t
j ƒj t jƒ} || _|    | _|
| _| | _|jtj|ƒ| _g| _tjd|ƒ} | rxÙ| D]Î}|jƒ}|jtj|ƒ}|dkr|||krˆq3qˆn |sˆq3nt
j ƒj t jƒ}||_t||||ƒrÄdnd|_t||ƒ|_t ||ƒ|_!| jj|ƒq3Wnt"| jƒ| _#|j| ƒqsW|s5dSt
j ƒj t j$ƒ}||_%t"|j%ƒ|_&t'j(||ƒdS(NR—ii()tNoneR,R¨R‚R©RªRœR«RRtObjPoolt
GetPoolMgrtacquiretChPyNetSendPackt tagSCBeautyR*tStatetLVtExpRRRtAwardLVtSkinListR˜R™RttagSCBeautySkinRR$RtUsedRtStarRbtSkinCntttagSCBeautyInfot
BeautyListtCountt NetPackCommont SendFakePack(Rt beautyIDListRtsyncBeautyIDListR¿RER"t
beautyListRR RRtbeautyRšRtskinInfot
beautySkint
clientPack((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR0sZ                                   $    ii(6RR&RfR¥R    R,RÜR:RêR1R¸R5R>RÙR‚R0R4R7R9R<R@RBR R›tEffType_BootyPertEffType_ArenaItemExtEffType_TravelEnergytEffType_FBZhanchuiItemExRRR RRRRRRRRRØR$RZRDR~RR–RR’R“R”R[R¤R×R(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyt<module>sT              $                                                 K        S    2                                  M