hxp
2025-11-21 34776fbdc69f49ab239ef191ec712daf0ce09a40
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
% 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  cCs
tjƒj|ƒ}|jƒ}|j}t||ƒrQtjd||ƒdStjd|ƒ}|smdS|j    ƒ}|j
ƒ}|j ƒ}    |t kr|}
|    } t j||
ƒ} | | krëtjd||
| | f|ƒdSt j||
| ƒnø|tkrF|} tj|| ƒsùtjd|| f|ƒdSn³|tkrš|    }|jtjƒ}||krùtjd|||f|ƒdSn_|tkrë|    }tj|ƒ}||krùtjd|||f|ƒdSn|tkrEtj}|}tj|||ƒ}|sùtjd|||f|ƒdSn´|tkr“|jƒ}|}||krùtjd|||f|ƒdSnf|t krÛd    }|    }||krùtjd
|||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 < %sis7¼¤»îºìÑÕËùÐèÓÎÀú´ÎÊý²»×ã! 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_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.pyRCÌs 
c Cstjƒj|ƒ}|jƒ}|j}|j}|j}t||ƒsctjd||ƒdSt    j
d|ƒ}|sdS|j ƒ}    t ||ƒ\}
} t } t    jddƒ} t    jddƒ}|| kr
| j|ƒ}t|ƒ|kr||nd}n‡t} |jƒ}|jƒ}|tkrRtjd||f|ƒdS||krtjd|||f|ƒdSt    jdd    ƒ}|dkr¡dS|
d}t    j
d
|    |ƒ}|sçtjd ||    |
f|ƒdS|jƒ}d}|| }|dkr>|r?||}||dkrE|d7}qEnd}|dkrUdS| rîtj|||ƒ\}}}|||}|dkrÀ||8}tjd |||||fƒn|dkr;tj|||||dƒq;q>tj||ƒ}||kr|}n|dkr>tj||||ƒq>n||}| |}tjd ||    |
| ||||||f
ƒ|
}||krÁ||8}|d7}tjd||fƒnt||||ƒt||gƒ||krýt|ƒndS(NsºìÑÕδ¼¤»î£¡ beautyID=%sR%t
BeautyLVUPiiis;·ÇµÀ¾ß¼¤»îµÄ²»Ö§³ÖרÊôÐÅÎïIDÉý¼¶£¡ beautyID=%s,unlockWay=%ss0·Ç¸ÃºìÑÕרÊôÐÅÎï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-tGetBeautyQualityRRtGetFuncEvalCfgRDtlenR!RR.R0t
GetFuncCfgt GetLVNeedExpt
ItemCommontGetPackItemBindStateIndexInfotDelCostItemByBindR1R2tSetItemCountByIDRRRZ(RDRERFRRGRtitemIDtisQuickR"tqualitytcurLVtcurExpt
isCommItemtcommItemIDListt commExpListtperExpR#RHtnextLVt nextLVIpyDatat    lvNeedExpt costItemCounttneedExptcostItemIndexListtbindCntt    unBindCnttlackCntRLtaddExptupdExptupdLV((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"RjRktawardLVt
updAwardLVtitemDicttgetLVt    lvIpyDatatitemListtitemInfoRhRLt awardItemList((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytGetBeautyLVAwardBsB    
 
 
+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(RDRERFRRGRRtopType((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pytOnBeautySkinOPts                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_ItemR1R2R3RRZR(
RRRR"R#RHRIRJRKRL((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(RRRRGR™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 GetUpNeedCntR1R2R3RRZR( RRRRGR"tstarMaxtcurStarRJRKRLtnextStar((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.pyRZæ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,RbtIPY_DataRtGetBeautyCounttGetBeautyByIndext GetBeautyIDRR_RR-t GetAttrIDListtGetAttrValueListt    enumerateRaRƒtGetTalentAttrIDListtGetTalentAttrValueListtGetTalentPerLVAddListt
GetEffTypetGetEffTypeValuet GetEffValuetGetEffPerLVAddR—R˜R$tGetInitAttrValueListtGetAttrPerStarAddListRR&R+t
PyGameDatatg_beautyEffTypeDictR¤R¥t SetCalcAttrRtDef_CalcAttr_Beauty(&RRGtattrDictt effTypeDictt talentLVUPPert
ipyDataMgrRDR"RRjtbeautyLVRRŠ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.pytGetBeautyEffInfo8scCs||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$RtUsedRtStarRatSkinCntttagSCBeautyInfot
BeautyListtCountt NetPackCommont SendFakePack(Rt beautyIDListRœtsyncBeautyIDListR¾RDR"t
beautyListRR RRtbeautyR™RtskinInfot
beautySkint
clientPack((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyR>sZ                                   $    ii(6RR&RdR¤R    R,RÛR:RéR1R5R>RØR·RR0R4R7R9R<R@RBR RštEffType_BootyPertEffType_ArenaItemExtEffType_TravelEnergytEffType_FBZhanchuiAwardPerRRR RRRRRRRRR×R$RYRCR}RŽR•RR‘R’R“RZR£RÖR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeauty.pyt<module>sT              $                                                 K        a    2                                  M