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
›5§gc@sÀddlZddlZddlZddlZddlZddlZddlZddlZddlZdd d„ƒYZ    dd d„ƒYZ
e    ƒZ d„Z ddd    „Z d
„ZdS( iÿÿÿÿNt PlayerRecDatacBsOeZd#d„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd#d„Zed„Zd„Zd„Z d„Z!d„Z"d„Z#d „Z$d!„Z%ed"„Z&RS($cCs4|stjƒ}n||_d|_t|_dS(N(tPyGameDataStructttagDBPlayerRecDatat    dbRecDatatNonet_PlayerRecData__userDataDicttFalset_PlayerRecData__userDataChange(tselfR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt__init__s             cCs#|jjƒd|_t|_dS(N(RtclearRRRR(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyR
&s         cCs
|jjS(N(RtPlayerID(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt GetPlayerID+scCs||j_dS(N(RR (RtplayerID((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt SetPlayerID,scCs
|jjS(N(RtRecType(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt
GetRecType-scCs||j_dS(N(RR(RtrecType((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt
SetRecType.scCs
|jjS(N(RtTime(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytGetTime/scCs||j_dS(N(RR(RtsTime((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytSetTime0scCs
|jjS(N(RtValue1(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue11scCs||j_dS(N(RR(Rtvalue1((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue12scCs
|jjS(N(RtValue2(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue23scCs||j_dS(N(RR(Rtvalue2((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue24scCs
|jjS(N(RtValue3(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue35scCs||j_dS(N(RR(Rtvalue3((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue36scCs
|jjS(N(RtValue4(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue47scCs||j_dS(N(RR#(Rtvalue4((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue48scCs
|jjS(N(RtValue5(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue59scCs||j_dS(N(RR'(Rtvalue5((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue5:scCs
|jjS(N(RtValue6(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue6;scCs||j_dS(N(RR+(Rtvalue6((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue6<scCs
|jjS(N(RtValue7(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue7=scCs||j_dS(N(RR/(Rtvalue7((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue7>scCs
|jjS(N(RtValue8(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetValue8?scCs||j_dS(N(RR3(Rtvalue8((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    SetValue8@scCsE|jdkr>yt|jjƒ|_Wq>i|_q>Xn|jS(N(RRtevalRtUserData(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt__GetUserDataDictAs cCs$|jƒ}||kr ||S|S(N(t_PlayerRecData__GetUserDataDict(Rtkeyt defaultValuet userDataDict((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytGetUserDataByKeyHs  cCsA| r|r|j|ƒdS|jƒ}|||<t|_dS(N(tDelUserDataByKeyR:tTrueR(RR;tvaluet
noneDelKeyR=((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytSetUserDataByKeyMs   
    cCs)|jƒ}|j|dƒt|_dS(N(R:tpopRR@R(RR;R=((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyR?Us     cCs |jr|jƒn|jjS(N(Rt SaveUserDataRR8(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt GetUserDataZs     cCsgt|ƒtkr!t|ƒ}n|jddƒ|j_t|jjƒ|j_d|_t    |_
dS(Ns t( ttypetstrtreplaceRR8tlent UserDataLenRRRR(RtuserData((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt SetUserData^s        cCs |jr|j|jƒndS(N(RRNR(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyREgs    cCs|s
tSxnt|dƒD]]\}}|dkr8qnt|d|ƒsQqnt|d|ƒƒ}||krtSqWtS(Nis
GetValue%s(Rt    enumerateRthasattrtgetattrR@(Rt    valueListtiRAtcurValue((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt IsMatchValuels  c    Csz|jƒsr|jƒsr|jƒsr|jƒdksr|jƒsr|jƒsr|jƒsr|jƒsr|jƒrvt    St
S(NRGs{}(ss{}( RRR RFR$R(R,R0R4RR@(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytIsEmpty{sB0cCs i |jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd    6|j    ƒd
6|j
ƒd 6|j ƒd 6S( NR RRRRRR#R'R+R/R3R8( R RRRRR R$R(R,R0R4RF(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt    GetStrings*44cCsd|r|jƒnxJ|jƒD]<\}}t|d|ƒr t|d||ƒ|ƒq q WdS(NsSet%s(R
titemsRPRQ(RtattrDicttisCleartktv((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytSetAttr‡s  !N('t__name__t
__module__RR    R
R RRRRRRRRRR R"R$R&R(R*R,R.R0R2R4R6R:R>RRCR?RFRNRERURVRWR](((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyRsF                                                                                                                                   tDBPlayerRecDataManagercBs›eZd„Zd„Zd„Zd„Zdd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„ZRS(cCs|jƒdS(N(tClear(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyR    ’s
cCs i|_dS(N(t recTypeDict(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyRa–s    cCs]|jj|iƒ}d}x$|jƒD]}|t|ƒ7}q(Wtjd||fƒ|S(Nis0ɾ³ýËùÓÐÍæ¼ÒÖ¸¶¨¼Ç¼ÀàÐÍ: recType=%s,delCount=%s(RbRDtvaluesRKt    GameWorldtDebugLog(RRtrecDicttdelCounttrecList((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytDelRecDataByTypešs cCsh||jkrdS|j|}|j|dƒ}|rDt|ƒnd}tjd|||fƒ|S(Nis?ɾ³ýij¸öÍæ¼ÒÖ¸¶¨¼Ç¼ÀàÐÍ: recType=%s,delPlayerID=%s,delCount=%s(RbRDRRKRdRe(RRt delPlayerIDtplayerRecDataDictt recDataListRg((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytDelRecDataByTypePlayer£s c
Csæ|s
dS||jkrdSd}|j|}x¯|jƒD]¡\}}|ra||kraq=nd}xD|ddd…D]/}    |    j|ƒr{|j|    ƒ|d7}q{q{W|r=||7}tjd||||fƒq=q=W|S(NiiÿÿÿÿisZɾ³ýij¸ö¼Ç¼ÀàÐÍËùÓÐValue1Æ¥ÅäÖµµÄ¼Ç¼: recType=%s,valueList=%s,delPlayerID=%s,delCount=%s(RbRXRUtremoveRdRe(
RRRRRjt delCountTotalRfR RlRgtrecData((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytDelRecDataByTypeValue­s&  
    cCsr|jƒ}|jƒ}||jkr+dS|j|}||krHdS||}||krn|j|ƒndS(Nii(R RRbRn(RRpR RRktplayerRecDataList((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt
DelRecDataÇs    
 cCsWtƒ}|jƒ|j|ƒ|j|ƒ|jttjƒƒƒ|j|ƒ|S(N(RR
RRRtintttimet#_DBPlayerRecDataManager__AddRecData(RRR Rp((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytAddPlayerRecDataÕs    
   cCs*tƒ}|j|tƒ|j|ƒ|S(N(RR]R@Rv(RRYRp((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytAddPlayerRecDataByDictßs     cCsx|jƒ}|jƒ}||jkr7i|j|<n|j|}||kr]g||<n||}|j|ƒdS(N(R RRbtappend(RRpR RRkRr((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt __AddRecDataæs     
 cCsJd}|j||ƒ}|r+|d}n|rF|j||ƒ}n|S(Ni(RtGetPlayerRecDataListRw(RRR tisAddNewRpRl((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytGetPlayerRecDataFirstòs cCsD|j||ƒ}|sdSx!|D]}|j|ƒr#|Sq#WdS(N(R{RU(RRR RRRlRp((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytGetPlayerRecDataýs cCsS||jkri|j|<n|j|}||krEg||<n||}|S(N(Rb(RRR RkRr((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyR{s   
cCs||jkriS|j|S(N(Rb(RR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytGetPlayerRecDataDictscCs|jdd„dtƒdS(NR;cSs
|jƒS(N(R(tr((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt<lambda>streverse(tsortR(RRl((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytSortRecDataListscCs¾d}d}d}xx|jjƒD]g}x^|jƒD]P}xG|D]?}|jƒ|jƒrdqBn|d7}||jjƒ7}qBWq5Wq"Wtjd|t|ƒfƒt    j
||ƒ|S(NRGiis%Save DBPlayerRecData count :%s len=%s( RbRcRERVRt    getBufferRdtLogRKtCommFunct
WriteDWORD(RtsavaDatatcntDatatcntRkRlRp((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt GetSaveDatas 
 
cCstj||ƒ\}}tjd|ƒ|jƒxVt|ƒD]H}tjƒ}|jƒ||j    |||ƒ7}|j
t |ƒƒq@W|S(NsLoad DBPlayerRecData count :%s( R‡t    ReadDWORDRdR†RatxrangeRRR
treadDataRvR(RtdatastpostdataslenR‹t_Rp((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytLoadPyGameData/s
 
N(R^R_R    RaRiRmRRqRsRwRxRvR}R~R{RR„RŒR”(((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyR`s                     
        
                       
            cCs^|jƒ}tjƒ}x?tjD]4}|j||ƒ}|sFq"nt|||ƒq"WdS(N(R t PyDataManagertGetDBPlayerRecDataManagertChConfigtDef_PlayerRecLoginNotifyListR{tSyncPlayerRecInfo(t    curPlayerR t playerRecMgrRRl((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt OnPlayerLogin@s  RGic Cs_|s
dS|jƒ}|tjkr=tjd||ƒdStjƒ}|j||ƒ}|rŸt|ƒt    j
j |dƒkrŸ|j |ƒ|j dƒn|j||ƒ}xPt|dƒD]?\}    }
|    dkrÝPnt|d|    ƒtt    j|
ƒƒqÁW|r|j|ƒn|dkr<t|||gƒn|dkr[t|||ƒn|S(    s
    @todo: Ìí¼ÓÍæ¼Ò¼Ç¼
    @param recType: Í¨ÓüǼÀàÐÍ, ¶ÔÓ¦ ShareDefine.Def_PlayerRecTypeList
    @param valueList: ÊýÖµÁбí[value1, value2, ...], °´Ë³Ðò, Ö§³Övalue1 ~ value8
    @param userData: ×Ô¶¨Òå×Ö·ûÐÅÏ¢
    @param notifyType: 0-²»Í¨Öª; 1-֪ͨµ¥Ìõ; 2-֪ͨȫ²¿
    NsÍæ¼Ò¼Ç¼ÀàÐÍ´íÎó: recType=%si2iiis
SetValue%si(R t ShareDefinetDef_PlayerRecTypeListRdtErrLogR•R–R{RKR—tDef_PlayerRecCountDicttgetR„RDRwRORQtmintDef_UpperLimit_DWordRNR™( RšRRRRMt
notifyTypeR R›RlRptnumRA((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pytMapServer_AddPlayerRecJs.  '  '  cCs<|s
dSg}xÛ|D]Ó}|s)qntjƒ}|jƒ|_|jƒ|_|jƒ|_|jƒ|_    |j
ƒ|_ |j ƒ|_ |jƒ|_|jƒ|_|jƒ|_|jƒ|_t|jƒ|_|j|ƒqWtjƒ}|jƒ||_||_t|jƒ|_tj||ƒdS(N( tChPyNetSendPackttagGCPlayerRecRRRRRRR RR$R#R(R'R,R+R0R/R4R3RFR8RKRLRyttagGCPlayerRecInfoRatTypet PlayerRecListtCountt NetPackCommont SendFakePack(RšRRlt playerRecListRptrect
clientPack((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyR™ps4   
        (((R—RR•RR§R­RdR‡RuRR`tPlayerRecDataTempRœR¦R™(((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerRecData.pyt<module>s         r¯        
&