hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
í¼gc@srddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
d„Z d„Z dd„Zedd„Zd„Zd„Zdd    „Zedd
„Zdd „Zdd „Zd „Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Zdd„Z dd„Z!dd„Z"dS(iÿÿÿÿNcCst|ƒt|ƒdS(N(t SyncFaceInfotSyncFacePicInfo(t    curPlayer((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt OnPlayerLogins
 
c
CsÞttjƒƒ}g}tjƒ}xËt|jƒƒD]·}|j|ƒ}|jƒ}|jƒrjq7n|j    ƒr|q7nt
j |t j |ƒsšq7n|jt j|ƒ}| s7||krÉq7nt||tdƒr7|j|ƒq7q7W|rt|ƒng}x¹t|jƒƒD]¥}|j|ƒ}|jƒ}    |jƒrQqnt
j |t j|    ƒsoqn|jt j|    ƒ}| s||kržqnt||    tdƒr|j|    ƒqqW|rÚt|ƒndS(Nt FaceTimeouttFacePicTimeout(tintttimet IpyGameDataPYtIPY_DatatrangetGetPlayerFaceCounttGetPlayerFaceByIndext    GetFaceIDtGetUnlockDefaulttGetCustomPlayerIDt    GameWorldtGetDictValueByBittChConfigtDef_PDict_FaceStatetNomalDictGetPropertytDef_PDict_FaceEndTimetDelFacetFalsetappendtRefreshFaceAttrtGetPlayerFacePicCounttGetPlayerFacePicByIndext GetFacePicIDtDef_PDict_FacePicStatetDef_PDict_FacePicEndTimet
DelFacePictRefreshFacePicAttr(
RtcurTimet delFaceListt
ipyDataMgrtindextipyDatatfaceIDtendTimetdelFacePicListt    facePicID((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytOnMinute$sF        c
Cs|dkrdS|jƒ}tjd|ƒ}|s8dS|jƒr\tjd||ƒdS|jƒr€tjd||ƒdS|jƒd}tt    j    ƒƒ}tj
|t j |ƒ}|j t j|ƒ}tjd||||||f|ƒ|}    |dkr/||}    tjd||    f|ƒn’|dksG|dkrjd}    tjd||    f|ƒnW||kr||}    tjd    ||    f|ƒn$||}    tjd
||    f|ƒtj|t j |d ƒtj|t j||    ƒt|ƒt||gƒtS( Nit
PlayerFaces!ĬÈϽâËøµÄÍ·Ïñ²»ÓÃÌí¼Ó: faceID=%ss!Íæ¼Ò¶¨ÖƵÄÍ·Ïñ²»ÓÃÌí¼Ó: faceID=%si<sXÌí¼ÓÍ·Ïñ: faceID=%s,setExpireTimes=%s,state=%s,endTime=%s,ipyExpireSeconds=%s,curTime=%ss)    Ö¸¶¨Í·Ïñʱ³¤: faceID=%s,updEndTime=%ss)    Ìí¼ÓÓÀ¾ÃÍ·Ïñ: faceID=%s,updEndTime=%ss)    ÀÛ¼ÓÍ·Ïñʱ³¤: faceID=%s,updEndTime=%ss)    ÖØÐ¼¤»îÍ·Ïñ: faceID=%s,updEndTime=%si(t GetPlayerIDRtGetIpyGameDataRRtDebugLogRtGetExpireMinutesRRRRRRRtLogtSetDictValueByBitt PlayerControltNomalDictSetPropertyRRtTrue(
RR&tsetExpireTimestplayerIDR%tipyExpireSecondsR!tstateR't
updEndTime((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytAddFaceTsF         
 
 
 
tcCs;|jƒ}tjd|ƒ}|s(dS|jƒr8dS|jƒrHdStjd||f|ƒtj|tj    |dƒt
j |tj |dƒ|j ƒ|krïtƒ}|rÅtj|ƒnd}|j|ƒtjd||ƒn|rt|ƒnt||gƒ|r7t
j||gg|gƒntS(NR+s!ɾ³ýÍ·Ïñ: faceID=%s,notifyMail=%sis3Íæ¼ÒÅå´÷µÄÍ·Ïñ±»É¾³ý£¬Ëæ»úÖØÖÃĬÈÏÍ·Ïñ! randFace=%s(R,RR-RRRR0R1RRR2R3RtGetFacetGetDefaultFaceIDListtrandomtchoicetSetFaceR.RRt SendMailByKeyR4(RR&t isRefreshAttrt
notifyMailR6R%tdefaultFaceIDListtrandFace((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRƒs,         cCsmg}tjƒ}xTt|jƒƒD]@}|j|ƒ}|jƒ}|jƒsXq%n|j|ƒq%W|S(N(RR    R
R R R RR(RDR#R$R%R&((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR=Ÿs   cCsmg}tjƒ}xTt|jƒƒD]@}|j|ƒ}|jƒ}|jƒsXq%n|j|ƒq%W|S(N(RR    R
RRRRR(tdefaultFacePicIDListR#R$R%R)((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytGetDefaultFacePicIDListªs   c
Csî|dkrdS|jƒ}tjd|ƒ}|s8dS|jƒr\tjd||ƒdS|jƒd}ttjƒƒ}tj    |t
j |ƒ}|j t
j |ƒ}tjd||||||f|ƒ|}    |dkr ||}    tjd||    f|ƒn’|dks#|dkrFd}    tjd||    f|ƒnW||kry||}    tjd||    f|ƒn$||}    tjd    ||    f|ƒtj|t
j |d
ƒtj|t
j ||    ƒt|ƒt||gƒtS( Nit PlayerFacePics&ĬÈϽâËøµÄÍ·Ïñ¿ò²»ÓÃÌí¼Ó: facePicID=%si<s]Ìí¼ÓÍ·Ïñ¿ò: facePicID=%s,setExpireTimes=%s,state=%s,endTime=%s,ipyExpireSeconds=%s,curTime=%ss.    Ö¸¶¨Í·Ïñ¿òʱ³¤: facePicID=%s,updEndTime=%ss.    Ìí¼ÓÓÀ¾ÃÍ·Ïñ¿ò: facePicID=%s,updEndTime=%ss.    ÀÛ¼ÓÍ·Ïñ¿òʱ³¤: facePicID=%s,updEndTime=%ss.    ÖØÐ¼¤»îÍ·Ïñ¿ò: facePicID=%s,updEndTime=%si(R,RR-RRR.R/RRRRRRRR0R1R2R3R RR4(
RR)R5R6R%R7R!R8R'R9((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt
AddFacePicµs@        
 
 
 
cCs+|jƒ}tjd|ƒ}|s(dS|jƒr8dStjd||f|ƒtj|tj|dƒt    j
|tj |dƒ|j ƒ|krßt ƒ}|rµtj|ƒnd}|j|ƒtjd||ƒn|ròt|ƒnt||gƒ|r't    j||gg|gƒntS(NRHs&ɾ³ýÍ·Ïñ¿ò: facePicID=%s,notifyMail=%sis8Íæ¼ÒÅå´÷µÄÍ·Ïñ¿ò¹ýÆÚ£¬Ëæ»úÖØÖÃĬÈÏÍ·Ïñ¿ò! randFacePic=%s(R,RR-RRR0R1RRR2R3Rt
GetFacePicRGR>R?t
SetFacePicR.R RRAR4(RR)RBRCR6R%RFt randFacePic((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRás(        cCs‚tj|tj|ƒ}|r"tS|s=tjd|ƒ}n|r~|jƒrStS|jƒr~|jƒ|j    ƒkr~tSnt
S(NR+( RRRRR4RR-RRR,R(RR&R%R8((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt IsFaceCanUseús $cCsZtj|tj|ƒ}|r"tS|s=tjd|ƒ}n|rV|jƒrVtSntS(NRH(    RRRRR4RR-RR(RR)R%R8((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytIsFacePicCanUse
s cCs!t|ƒtj|ƒjƒdS(N(t CalcFaceAttrR2tRefreshPlayerAttrState(R((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRs
cCs!t|ƒtj|ƒjƒdS(N(tCalcFacePicAttrR2RP(R((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR s
cCs™d}gtdƒD] }i^q}tjƒ}x5t|jƒƒD]!}|j|ƒ}|jƒ}t|||ƒs}qDn||jƒ7}|jƒ}|j    ƒ}    x7t
|ƒD])\}}
|    |} t j |
| |ƒq²W|j tj|ƒ} tjd|| ƒ} | rD| jƒ}| jƒ}x:t
|ƒD])\}}
||} t j |
| |ƒq5WqDqDWt j|tj|ƒt j|tj|ƒdS(NiitPlayerFaceStar(R
RR    R R R RMtGetLightFightPowertGetLightAttrTypetGetLightAttrValuet    enumerateR2tCalcAttrDict_TypeRRtDef_PDict_FaceStartGetIpyGameDataNotLogtGetStarAttrTypetGetStarAttrValuetSetCalcAttrListValuetDef_CalcAttrFunc_FacetSetMFPExFightPowert ShareDefinetDef_MFPType_Face(Rt fightPowerExtit allAttrListR#R$R%R&t lightAttrTypetlightAttrValuetattrIDt    attrValuetfaceStart starIpyDatat starAttrTypet starAttrValue((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRO"s2    
 
cCs™d}gtdƒD] }i^q}tjƒ}x5t|jƒƒD]!}|j|ƒ}|jƒ}t|||ƒs}qDn||jƒ7}|jƒ}|j    ƒ}    x7t
|ƒD])\}
} |    |
} t j | | |ƒq²W|j tj|ƒ} tjd|| ƒ}|rD|jƒ}|jƒ}x:t
|ƒD])\}
} ||
} t j | | |ƒq5WqDqDWt j|tj|ƒt j|tj|ƒdS(NiitPlayerFacePicStar(R
RR    RRRRNRSRTRURVR2RWRRtDef_PDict_FacePicStarRYRZR[R\tDef_CalcAttrFunc_FacePicR^R_tDef_MFPType_FacePic(RRat_RcR#R$R%R)RdReRbRfRgt facePicStarRiRjRk((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRQFs2    
 
cCsvtjƒj|ƒ}|jƒ}|j}t||ƒsQtjd||ƒdStjd||ƒ|j|ƒdS(Ns¸ÃÍ·Ïñ²»¿ÉÓÃ! faceID=%ssÍ·Ïñ»Ã»¯! faceID=%s(RtGetPlayerManagertGetPlayerByIndexR,tFaceIDRMR.R@(R$t
clientDatattickRR6R&((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt OnFaceChangeqs      c Cs…tjƒj|ƒ}|jƒ}|j}t||ƒsQtjd||ƒdS|jtj    |ƒ}|d}t
j d||ƒ}|sªtjd||f|ƒdS|j ƒ}    |    sÀdS|j ƒjtjƒ}
tj|    |
ƒ\} } | rtjd|||    | f|ƒdStj||
| dƒtj|tj    ||ƒtjd|||f|ƒt|ƒt||gƒdS(Ns¸ÃÍ·Ïñ²»¿ÉÓÃ! faceID=%siRRs'²»´æÔÚ¸ÃÍ·ÏñÐǼ¶! faceID=%s,nextStar=%ssKÍ·ÏñÉýÐÇËùÐèÎïÆ·²»×ã! faceID=%s,nextStar=%s,needItemList=%s,lackItemDict=%st
FaceStarUPs*Í·ÏñÉýÐÇ! faceID=%s,curStar=%s,nextStar=%s(RRrRsR,RtRMR.RRRXRR-tGetStarUpNeedItemListtGetItemManagertGetPackt IPY_GameWorldtrptItemt
ItemCommontGetCostItemIndexListt DelCostItemR2R3RR( R$RuRvRR6R&tcurStartnextStart nextIpyDatat needItemListtitemPackt lackItemDictt delInfoDict((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt OnFaceStarUP„s6     
     
cCsèt||ƒstd|fS|dkrL|jtj|ƒ}|d}n|}|dkrŠtjd||ƒsŠtd||ffSntj    |tj||ƒt
j d||f|j ƒƒt |ƒt||gƒtdfS(Ns+The player has not activated the faceID(%s)iiRRs%The faceID(%s) star(%s) is not exist.s$GMÉèÖÃÍ·ÏñÐǼ¶: faceID=%s,setStar=%sR;(RMRtNoneRRRXRR-R2R3RR0R,RRR4(RR&tsetValueRtsetStar((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt GMSetFaceStar¦s    
cCsvtjƒj|ƒ}|jƒ}|j}t||ƒsQtjd||ƒdStjd||ƒ|j|ƒdS(Ns¸ÃÍ·Ïñ¿ò²»¿ÉÓÃ! facePicID=%ssÍ·Ïñ¿ò»Ã»¯! facePicID=%s(RRrRsR,t    FacePicIDRNR.RK(R$RuRvRR6R)((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytOnFacePicChangeÄs      c Cs…tjƒj|ƒ}|jƒ}|j}t||ƒsQtjd||ƒdS|jtj    |ƒ}|d}t
j d||ƒ}|sªtjd||f|ƒdS|j ƒ}    |    sÀdS|j ƒjtjƒ}
tj|    |
ƒ\} } | rtjd|||    | f|ƒdStj||
| dƒtj|tj    ||ƒtjd|||f|ƒt|ƒt||gƒdS(Ns¸ÃÍ·Ïñ¿ò²»¿ÉÓÃ! facePicID=%siRls,²»´æÔÚ¸ÃÍ·Ïñ¿òÐǼ¶! facePicID=%s,nextStar=%ssPÍ·Ïñ¿òÉýÐÇËùÐèÎïÆ·²»×ã! facePicID=%s,nextStar=%s,needItemList=%s,lackItemDict=%st FacePicStarUPs/Í·Ïñ¿òÉýÐÇ! facePicID=%s,curStar=%s,nextStar=%s(RRrRsR,RRNR.RRRmRR-RyRzR{R|R}R~RR€R2R3R R( R$RuRvRR6R)RR‚RƒR„R…R†R‡((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytOnFacePicStarUP×s6     
     
cCsèt||ƒstd|fS|dkrL|jtj|ƒ}|d}n|}|dkrŠtjd||ƒsŠtd||ffSntj    |tj||ƒt
j d||f|j ƒƒt |ƒt||gƒtdfS(Ns.The player has not activated the facePicID(%s)iiRls&The setStar(%s) star(%s) is not exist.s)GMÉèÖÃÍ·Ïñ¿òÐǼ¶: facePicID=%s,setStar=%sR;(RNRR‰RRRmRR-R2R3RR0R,R RR4(RR)RŠRR‹((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytGMSetFacePicStarùs    
c CsS|dkr`g}tjƒ}xEt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wn|}g}xŸ|D]—}t||ƒrŽdnd}| r­|dkr­qsnt    j
ƒ}    ||    _ ||    _ |j tj|ƒ|    _|j tj|ƒ|    _|j|    ƒqsW|sdSt    jƒ}
||
_t|
jƒ|
_tj||
ƒdS(Nii(R‰RR    R
R R RR RMtChPyNetSendPackt    tagMCFaceRttStateRRRtEndTimeRXtStart tagMCFaceInfotFaceListtlentCountt NetPackCommont SendFakePack( Rt
faceIDListt
syncIDListR#R$R%tfaceListR&R8tfacet
clientPack((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRs2                 c CsP|dkr`g}tjƒ}xEt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wn|}g}xœ|D]”}tj    |t
j |ƒ}| rª|dkrªqsnt j ƒ}    ||    _||    _|jt
j|ƒ|    _|jt
j|ƒ|    _|j|    ƒqsW|sdSt jƒ}
||
_t|
jƒ|
_tj||
ƒdS(N(R‰RR    R
RRRRRRRRR’t tagMCFacePicRR”RRR•RmR–ttagMCFacePicInfot FacePicListR™RšR›Rœ( Rt facePicIDListRžR#R$R%t facePicListR)R8tfacePicR¡((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR/s2                 (#RR_R2R|R’RR›R~RR>RRR*R‰R:R4RR=RGRIRRMRNRR RORQRwRˆRŒRŽRR‘RR(((sjE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt<module>s@                   0 /          ,              $    +        "         "