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
F!îhc@sxddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z d„Z d„Zded„Zedd„Zd„Zdd„Zd    „Zd
„Zd „Zd „Zdd „Zded„Zedd„Zd„Zdd„Zd„Zd„Z d„Z!d„Z"dd„Z#dS(iÿÿÿÿNcCst|ƒt|ƒdS(N(t SyncFaceInfotSyncFacePicInfo(t    curPlayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt OnPlayerLogin!s
 
c
Cs¨ttjƒƒ}g}tjƒ}x§t|jƒƒD]“}|j|ƒ}|jƒ}tj    |t
j |ƒsvq7n|j t
j |ƒ}| s7||kr¥q7nt||tdƒr7|j|ƒq7q7W|rát|ƒng}x§t|jƒƒD]“}|j|ƒ}|jƒ}    tj    |t
j|    ƒs9qún|j t
j|    ƒ}| sú||krhqúnt||    tdƒrú|j|    ƒqúqúW|r¤t|ƒndS(Nt FaceTimeouttFacePicTimeout(tintttimet IpyGameDataPYtIPY_DatatrangetGetPlayerFaceCounttGetPlayerFaceByIndext    GetFaceIDt    GameWorldtGetDictValueByBittChConfigtDef_PDict_FaceStatetNomalDictGetPropertytDef_PDict_FaceEndTimetDelFacetFalsetappendtRefreshFaceAttrtGetPlayerFacePicCounttGetPlayerFacePicByIndext GetFacePicIDtDef_PDict_FacePicStatetDef_PDict_FacePicEndTimet
DelFacePictRefreshFacePicAttr(
RtcurTimet delFaceListt
ipyDataMgrtindextipyDatatfaceIDtendTimetdelFacePicListt    facePicID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytOnMinute&s:     c    Cs |dkrdS|jƒ}tjd|ƒ}|s8dS|jƒdkrbtjd||ƒdS|s|jƒ}|jƒ}| sŽ| r’dS||gg}|jƒj    t
j ƒ}    t j ||    ƒ\}
} |
rõtjd||
f|ƒdSt j||    | dƒn|jƒd} ttjƒƒ} tj|tj|ƒ}|jtj|ƒ}tjd||||| | f|ƒ|}|dkr½| |}tjd    ||f|ƒn’| dksÕ|dkrød}tjd
||f|ƒnW|| kr+|| }tjd ||f|ƒn$| | }tjd ||f|ƒtj|tj|d ƒtj|tj||ƒt|ƒt||gƒtS(Nit
PlayerFaceis·ÇµÀ¾ß¼¤»îµÄ²»ÓÃÌí¼Ó: faceID=%ss+¼¤»îËùÐèÎïÆ·²»×ã! faceID=%s,lackItemDict=%stAddFacei<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 GetPlayerIDRtGetIpyGameDatat GetUnlockWayRtDebugLogtGetUnlockValuetGetUnlockNeedCnttGetItemManagertGetPackt IPY_GameWorldtrptItemt
ItemCommontGetCostItemIndexListt DelCostItemtGetExpireMinutesRRRRRRRtLogtSetDictValueByBitt PlayerControltNomalDictSetPropertyRRtTrue(RR$tsetExpireTimestisFreetplayerIDR#titemIDt    itemCountt needItemListtitemPackt lackItemDictt delInfoDicttipyExpireSecondsRtstateR%t
updEndTime((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR*MsX         
 
 
 
tcCs7|jƒ}tjd|ƒ}|s(dStj|tj|ƒsDdStjd||f|ƒtj|tj|dƒt    j
|tj |dƒ|j ƒ|krët ƒ}|rÁtj|ƒnd}|j|ƒtjd||ƒn|rþt|ƒnt||gƒ|r3t    j||gg|gƒntS(NR)s!ɾ³ýÍ·Ïñ: faceID=%s,notifyMail=%sis3Íæ¼ÒÅå´÷µÄÍ·Ïñ±»É¾³ý£¬Ëæ»úÖØÖÃĬÈÏÍ·Ïñ! randFace=%s(R+RR,RRRRR9R:R;R<RtGetFacetGetDefaultFaceIDListtrandomtchoicetSetFaceR.RRt SendMailByKeyR=(RR$t isRefreshAttrt
notifyMailR@R#tdefaultFaceIDListtrandFace((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR†s(       cCssg}tjƒ}xZt|jƒƒD]F}|j|ƒ}|jƒ}|jƒdkr^q%n|j|ƒq%W|S(Ni(RR    R
R R R R-R(RSR!R"R#R$((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRL s  cCsžtj|tj|ƒ}|r"tS|s=tjd|ƒ}n|rš|jƒ}|jƒ}|dkrktS|dkrš|}t    j
||ƒr“tSt Snt S(NR)ii( RRRRR=RR,R-R/t
PlayerHerotGetHeroActiviteR(RR$R#RHt    unlockWayt unlockValuetheroID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt IsFaceCanUse«s    cCstj|ƒdS(N(t    PlayerHJGtRefreshHJGAttr(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR¾s cCsX|jƒ}t||ƒs3tjd||ƒdStjd||ƒ|j|ƒdS(Ns¸ÃÍ·Ïñ²»¿ÉÓÃ! faceID=%ssÍ·Ïñ»Ã»¯! faceID=%s(R+RZRR.RO(RR$R@((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt    OnUseFaceÂs  c Cs|jƒ}t||ƒs3tjd||ƒdStjd|ƒ}|sOdS|jƒ}|jtj    |ƒ}||kržtjd|||f|ƒdS|j
ƒdkr´dS|j ƒ}|j ƒ}| sÚ| rÞdS||gg}|j ƒjtjƒ}    tj||    ƒ\}
} |
rAtjd||
f|ƒdStj||    | dƒ|d} tjd|| f|ƒt||| ƒdS(    Ns¸ÃÍ·Ïñ²»¿ÉÓÃ! faceID=%sR)s(Í·ÏñÐǼ¶ÒÑÂú! faceID=%s,curStar=%s >= %sis/Í·ÏñÉýÐÇËùÐèÎïÆ·²»×ã! faceID=%s,lackItemDict=%st
FaceStarUPisÍ·ÏñÉýÐÇ! faceID=%s,nextStar=%s(R+RZRR.RR,t
GetStarMaxRRtDef_PDict_FaceStarR-R/R0R1R2R3R4R5R6R7t SetFaceStar( RR$R@R#tstarMaxtcurStarRARBRCRDRERFtnextStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt OnFaceStarUPËs:     
cCs|t||ƒsdStjd|ƒ}|s/dSt||jƒƒ}tj|tj||ƒt    |ƒt
||gƒt S(NR)( RZRR,tminR_R;R<RR`RRR=(RR$tsetStarR#((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRaës
c Csh|dkr`g}tjƒ}xEt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wn|}g}x¨|D] }tj    |t
j |ƒ}| rª|dkrªqsnt j ƒjtjƒ}    ||    _||    _|jt
j|ƒ|    _|jt
j|ƒ|    _|j|    ƒqsW|s!dSt j ƒjtjƒ}
||
_t|
jƒ|
_tj||
ƒdS(N(tNoneRR    R
R R RR RRRRtObjPoolt
GetPoolMgrtacquiretChPyNetSendPackt    tagMCFacetFaceIDtStateRRtEndTimeR`tStart tagMCFaceInfotFaceListtlentCountt NetPackCommont SendFakePack( Rt
faceIDListt
syncIDListR!R"R#tfaceListR$RHtfacet
clientPack((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR÷s2               c    Cs |dkrdS|jƒ}tjd|ƒ}|s8dS|jƒdkrbtjd||ƒdS|s|jƒ}|jƒ}| sŽ| r’dS||gg}|jƒj    t
j ƒ}    t j ||    ƒ\}
} |
rõtjd||
f|ƒdSt j||    | dƒn|jƒd} ttjƒƒ} tj|tj|ƒ}|jtj|ƒ}tjd||||| | f|ƒ|}|dkr½| |}tjd    ||f|ƒn’| dksÕ|dkrød}tjd
||f|ƒnW|| kr+|| }tjd ||f|ƒn$| | }tjd ||f|ƒtj|tj|d ƒtj|tj||ƒt|ƒt||gƒtS(Nit PlayerFacePicis"·ÇµÀ¾ß¼¤»îµÄ²»ÓÃÌí¼Ó: facePicID=%ss.¼¤»îËùÐèÎïÆ·²»×ã! facePicID=%s,lackItemDict=%st
AddFacePici<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,R-RR.R/R0R1R2R3R4R5R6R7R8RRRRRRRR9R:R;R<RRR=(RR'R>R?R@R#RARBRCRDRERFRGRRHR%RI((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR~sX         
 
 
 
cCs7|jƒ}tjd|ƒ}|s(dStj|tj|ƒsDdStjd||f|ƒtj|tj|dƒt    j
|tj |dƒ|j ƒ|krët ƒ}|rÁtj|ƒnd}|j|ƒtjd||ƒn|rþt|ƒnt||gƒ|r3t    j||gg|gƒntS(NR}s&ɾ³ýÍ·Ïñ¿ò: facePicID=%s,notifyMail=%sis8Íæ¼ÒÅå´÷µÄÍ·Ïñ¿ò¹ýÆÚ£¬Ëæ»úÖØÖÃĬÈÏÍ·Ïñ¿ò! randFacePic=%s(R+RR,RRRRR9R:R;R<Rt
GetFacePictGetDefaultFacePicIDListRMRNt
SetFacePicR.RRRPR=(RR'RQRRR@R#tdefaultFacePicIDListt randFacePic((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRQs(       cCssg}tjƒ}xZt|jƒƒD]F}|j|ƒ}|jƒ}|jƒdkr^q%n|j|ƒq%W|S(Ni(RR    R
RRRR-R(R‚R!R"R#R'((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR€js  cCsftj|tj|ƒ}|r"tS|s=tjd|ƒ}n|rb|jƒ}|dkrbtSntS(NR}i(    RRRRR=RR,R-R(RR'R#RHRW((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytIsFacePicCanUseus  cCstj|ƒdS(N(R[R\(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR„s cCsX|jƒ}t||ƒs3tjd||ƒdStjd||ƒ|j|ƒdS(Ns¸ÃÍ·Ïñ¿ò²»¿ÉÓÃ! facePicID=%ssÍ·Ïñ¿ò»Ã»¯! facePicID=%s(R+R„RR.R(RR'R@((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt OnUseFacePicˆs  c Cs|jƒ}t||ƒs3tjd||ƒdStjd|ƒ}|sOdS|jƒ}|jtj    |ƒ}||kržtjd|||f|ƒdS|j
ƒdkr´dS|j ƒ}|j ƒ}| sÚ| rÞdS||gg}|j ƒjtjƒ}    tj||    ƒ\}
} |
rAtjd||
f|ƒdStj||    | dƒ|d} tjd|| f|ƒt||| ƒdS(    Ns¸ÃÍ·Ïñ¿ò²»¿ÉÓÃ! facePicID=%sR}s-Í·Ïñ¿òÐǼ¶ÒÑÂú! facePicID=%s,curStar=%s >= %sis4Í·Ïñ¿òÉýÐÇËùÐèÎïÆ·²»×ã! facePicID=%s,lackItemDict=%st FacePicStarUPis$Í·Ïñ¿òÉýÐÇ! facePicID=%s,nextStar=%s(R+R„RR.RR,R_RRtDef_PDict_FacePicStarR-R/R0R1R2R3R4R5R6R7tSetFacePicStar( RR'R@R#RbRcRARBRCRDRERFRd((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pytOnFacePicStarUP‘s:     
cCs|t||ƒsdStjd|ƒ}|s/dSt||jƒƒ}tj|tj||ƒt    |ƒt
||gƒt S(NR}( R„RR,RfR_R;R<RR‡RRR=(RR'RgR#((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyRˆ±s
c Csh|dkr`g}tjƒ}xEt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wn|}g}x¨|D] }tj    |t
j |ƒ}| rª|dkrªqsnt j ƒjtjƒ}    ||    _||    _|jt
j|ƒ|    _|jt
j|ƒ|    _|j|    ƒqsW|s!dSt j ƒjtjƒ}
||
_t|
jƒ|
_tj||
ƒdS(N(RhRR    R
RRRRRRRRRiRjRkRlt tagMCFacePict    FacePicIDRoRRRpR‡RqttagMCFacePicInfot FacePicListRtRuRvRw( Rt facePicIDListRyR!R"R#t facePicListR'RHtfacePicR|((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyR½s2               ($RR;R3RlRRvR5RUR[RRiRMRRR(RhRR*R=RRLRZRR]ReRaRR~RR€R„RR…R‰RˆR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFace.pyt<module>s@                     '9                           !9