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
Qö`ic@sÞddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z e dd ƒ\ZZZZZZZdZdZe dd!ƒ\ZZZZd„Zd„Zd„Zd    „Zd
„Zd „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„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 OnPlayerLogin7s
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.pytGetBeautyLVInfoEs
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.pytSetBeautyLVInfoKs,cCs|jtj|ƒdS(Ni
(RRtDef_PDict_BeautySkinInfo(RtskinID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautySkinStateRscCsO|jtj|ƒ}|ddtd|ƒ}tj|tj||ƒ|S(Ni
i(RRRRR    R
(RRR tinfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytSetBeautySkinStateUscCs|jtj|ƒddS(Nidi
(RRR(RR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautySkinUsedZscCs[|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.pytGetBeautySkinStarbscCsF|jtj|ƒ}|d|d}tj|tj||ƒ|S(Nid(RRRR    R
(RRtstarR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytSetBeautySkinStarescCsWt||ƒ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.pytIsBeautySkinCanUseks  cCs9tjƒj|ƒ}|jƒ}|j}t||ƒrQtjd||ƒdStjd|ƒ}|smdS|j    ƒ}|j
ƒ}|j ƒ}    |t kr$|}
|    } t j||
| ƒ\} } }| | |}|dkrtjd||
| |f|ƒdSt j|| | || dƒn|tkri|}tj||ƒs(tjd||f|ƒdSn¿|tkr½|    }|jtjƒ}||kr(tjd|||f|ƒdSnk|tkr|    }tj|ƒ}||kr(tjd|||f|ƒdSn|tkrhtj}|}tj|||ƒ}|s(tjd|||f|ƒdSnÀ|tkr¶|jƒ}|}||kr(tjd    |||f|ƒdSnr|t kr
|jtj!ƒ}|    }||kr(tjd
|||f|ƒdSntjd ||f|ƒdSt"||ƒdS( NsºìÑÕÒѾ­¼¤»î¹ý£¡ beautyID=%stBeautyisE¼¤»îºìÑÕÎïÆ·²»×ã! beautyID=%s,needItemID=%s,needItemCnt=%s,lackCnt=%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
ItemCommontGetPackItemBindStateIndexInfotDelCostItemByBindtUnlockWay_TaskIDt
PlayerTaskt IsTaskFinishtUnlockWay_ArenaWinCntRRtDef_PDict_ArenaWinCnttUnlockWay_GoldRushWorkertPlayerGoldRushtGetWorkerTotaltUnlockWay_FBZhanchuitDef_FBMapID_ZhanchuitFBCommontIsFBPasstUnlockWay_OfficialRanktGetOfficialRanktUnlockWay_TravelCnttDef_PDict_TravelCnttDoBeautyActivate(tindext curPackDatattickRtplayerIDRR"R#t unlockValuet unlockNeedCntt
needItemIDt needItemCnttcostItemIndexListtbindCntt    unBindCnttlackCntttaskIDt
needWinCnttwinCntt needWorkerCntt workerTotaltmapIDt
funcLineIDtisPasstrealmLVt needRealmLVt    travelCntt needTravelCnt((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytOnBeautyActivate€sz                           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 
cCsmd}tjƒ}xTt|jƒƒD]@}|j|ƒ}|jƒ}t||ƒs[q%n|d7}q%W|S(Nii(R,tIPY_DatatrangetGetBeautyCounttGetBeautyByIndext GetBeautyIDR(RtactCntt
ipyDataMgrRER"R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautyActCntÙ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 GetLVNeedExpR1R2R3RRR^(RERFRGRRHRtitemIDtisQuickR"tqualitytcurLVtcurExptcommItemIDListt commExpListtperExptexclusiveItemIDtnextLVt nextLVIpyDatat    lvNeedExpt costItemCounttneedExpRMRNRORPtaddExptupdExptupdLV((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=%siRhs"    updAwardLV=%s,awardItemList=%steventt BeautyLVAward(RR&R+R,R-RkRRRtDef_PDict_BeautyAwardLVR`tGetAwardItemListtgettitemsR    R
Rt ItemControlertGivePlayerItemOrMailR!(RRR"RsRttawardLVt
updAwardLVtitemDicttgetLVt    lvIpyDatatitemListtitemInfoRqt    itemCountt awardItemList((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautyLVAwardAsB    
 
 
+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.pytOnBeautySkinOPss                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.pyR†s 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_ItemR‰tGetItemCountByIDtDelItemCountByIDRR^R(
RRRR"R#RIRJRKRLR’((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 GetUpNeedCntR‰R¡R¢RR^R( RRRRHR"tstarMaxtcurStarRKRLR’tnextStar((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ƒ}x_t|jƒƒD]K}|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ƒ}|r‚|||}||kred|g||<n||d|||d<ntjd|ƒ}|s qInxñ|D]é}|jƒ}t||||ƒsÔq§n|j ƒ} |jƒ}!|jƒ}"t||ƒ}#x†t| ƒD]x\}$}t|!ƒ|$kr<|!|$nd}t|"ƒ|$kr^|"|$nd}%||%|#}|j|dƒ|||<qWq§WqIWtjd||ƒtjd||ƒ|t j!|<t"j#|ƒj$t%j&|ƒdS(    NRgiiiRhRœs ºìÑÕÊôÐÔ: %ss ºìÑÕЧ¹û: %s('R)R,RoR_R`RaRbRcRRkRR-t GetAttrIDListtGetAttrValueListt    enumerateRmR‡tGetTalentAttrIDListtGetTalentAttrValueListtGetTalentPerLVAddListt
GetEffTypetGetEffTypeValuet GetEffValuetGetEffPerLVAddRRžR$tGetInitAttrValueListtGetAttrPerStarAddListRR&R+t
PyGameDatatg_beautyEffTypeDictR¬R­t SetCalcAttrRtDef_CalcAttr_Beauty(&RRHtattrDictt effTypeDictt talentLVUPPerReRER"RRstbeautyLVRRt lvAttrIDListtlvAttrValueListtlvIndextattrIDt    attrValuettalentAttrIDListttalentAttrValueListttalentPerLVAddListttalentLVttIndext    initValuetperLVAddteffTypet effTypeValueteffValuet effPerLVAddRŸt skinIpyDataRt
attrIDListtinitAttrValueListtperStarAddListRtsIndext
perStarAdd((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR«êsx      ""   
""          ""& 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.pytGetBeautyEffInfo9scCsX|dkr`g}tjƒ}xEt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wn|}g}x¤|D]œ}t||ƒ}    |     r¡|dkr¡qsnt    ||ƒ\}
} t
j ƒ} || _ |    | _ |
| _| | _|jtj|ƒ| _g| _tjd|ƒ} | rðxÍ| D]Â}|jƒ}|jtj|ƒ}|dkrp||kr|q'q|n |s|q'nt
jƒ}||_t||||ƒr¬dnd|_ t||ƒ|_t||ƒ|_| jj|ƒq'Wnt| jƒ| _ |j| ƒqsW|sdSt
j!ƒ}||_"t|j"ƒ|_#t$j%||ƒdS(NRœii(&tNoneR,R_R`RaRbR£RcRRtChPyNetSendPackt tagSCBeautyR*tStatetLVtExpRRR…tAwardLVtSkinListRRžRttagSCBeautySkinR•R$RtUsedRtStarRmtSkinCntttagSCBeautyInfot
BeautyListtCountt NetPackCommont SendFakePack(Rt beautyIDListR¤tsyncBeautyIDListReRER"t
beautyListRR RRtbeautyRŸRtskinInfot
beautySkint
clientPack((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR?sZ                                     $     ii(6RR&R1R¬R    R,RÛR:RéR‰R»R5R>R`R0R4R7R9R<R@RBR R tEffType_BootyPertEffType_ArenaItemExtEffType_TravelEnergytEffType_FBZhanchuiItemExRRR RRRRRRRRRÚR$R]RDRfR‚R”R›RR—R˜R™R^R«RÙR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyt<module>sT             $                                                 M             S    2                                  O