hzr
2 天以前 c999bc50d37b5371f92ba71b3ab70f6eeb0e5076
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
ôÐøgc@soddlZddlZddlZddlZddlZdfd„ƒYZdfd„ƒYZeƒZdS(iÿÿÿÿNt GameRecDatacBs:eZd!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„Zd„Zd„Zd„Zd„Z d„Z!d„Z"e#d „Z$RS("cCs4|stjƒ}n||_d|_t|_dS(N(tPyGameDataStructt tagDBGameRect    dbRecDatatNonet_GameRecData__userDataDicttFalset_GameRecData__userDataChange(tselfR((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt__init__s             cCs#|jjƒd|_t|_dS(N(RtclearRRRR(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyR
"s         cCs
|jjS(N(RtRecType(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt
GetRecType'scCs||j_dS(N(RR (RtrecType((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt
SetRecType(scCs
|jjS(N(RtRecID(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetRecID)scCs||j_dS(N(RR(RtrecID((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytSetRecID*scCs
|jjS(N(RtTime(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetTime+scCs||j_dS(N(RR(RtsTime((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytSetTime,scCs
|jjS(N(RtValue1(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue1-scCs||j_dS(N(RR(Rtvalue1((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue1.scCs
|jjS(N(RtValue2(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue2/scCs||j_dS(N(RR(Rtvalue2((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue20scCs
|jjS(N(RtValue3(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue31scCs||j_dS(N(RR(Rtvalue3((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue32scCs
|jjS(N(RtValue4(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue43scCs||j_dS(N(RR#(Rtvalue4((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue44scCs
|jjS(N(RtValue5(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue55scCs||j_dS(N(RR'(Rtvalue5((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue56scCs
|jjS(N(RtValue6(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue67scCs||j_dS(N(RR+(Rtvalue6((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue68scCs
|jjS(N(RtValue7(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue79scCs||j_dS(N(RR/(Rtvalue7((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue7:scCs
|jjS(N(RtValue8(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetValue8;scCs||j_dS(N(RR3(Rtvalue8((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    SetValue8<scCsE|jdkr>yt|jjƒ|_Wq>i|_q>Xn|jS(N(RRtevalRtUserData(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetUserDataDict=s cCs$|jƒ}||kr ||S|S(N(R9(Rtkeyt defaultValuet userDataDict((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetUserDataByKeyDs  cCs#|jƒ}|||<t|_dS(N(R9tTrueR(RR:tvalueR<((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytSetUserDataByKeyIs 
    cCs |jr|jƒn|jjS(N(Rt SaveUserDataRR8(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt GetUserDataNs     cCsgt|ƒtkr!t|ƒ}n|jddƒ|j_t|jjƒ|j_d|_t    |_
dS(Ns t( ttypetstrtreplaceRR8tlent UserDataLenRRRR(RtuserData((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt SetUserDataRs        cCs |jr|j|jƒndS(N(RRJR(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyRA[s    cCs|s
tSxnt|dƒD]]\}}|dkr8qnt|d|ƒsQqnt|d|ƒƒ}||krtSqWtS(Nis
GetValue%s(Rt    enumerateRthasattrtgetattrR>(Rt    valueListtiR?tcurValue((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt IsMatchValue`s  cCs 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( NRR RRRRR#R'R+R/R3t UserDataDict( RR RRRR R$R(R,R0R4R9(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt    GetStringos*44cCs||r|jƒnxb|jƒD]T\}}t|d|ƒr\t|d||ƒ|ƒq |dkr ||_q q WdS(NsSet%sRR(R
titemsRLRMR(RtattrDicttisCleartktv((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytSetAttrus  N(%t__name__t
__module__RR    R
R RRRRRRRRRR R"R$R&R(R*R,R.R0R2R4R6R9R=R@RBRJRARQRSRRY(((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyRsB                                                                                                                              tDBGameRecDataManagercBs¹eZd„Zd„Zd„Zd„Zdd„Zd„Zddd„Z    d„Z
d    „Z d
„Z e d „Ze d „Zd „Zd„Zd„Zd„Zd„Zd„ZRS(cCs|jƒdS(N(tClear(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyR    ‚s
cCsi|_i|_dS(N(t recTypeDicttrecValueIndexDict(R((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyR]†s        cCsp|jj|iƒ}d}x$|jƒD]}|t|ƒ7}q(Wtjd||fƒ|jj|iƒ|S(Nis6ɾ³ýÖ¸¶¨ÐÂͨÓüǼÀàÐÍËùÓмǼ: recType=%s,delCount=%s(R^tpoptvaluesRGt    GameWorldtDebugLogR_(RR trecDicttdelCounttrecList((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytDelGameRecDataByType‹scCs—||jkrdS|j|}|j|dƒ}|rDt|ƒnd}tjd|||fƒ||jkr“|j|}|j|dƒn|S(NisLɾ³ýÖ¸¶¨ÐÂͨÓüǼÀàÐÍij¸ö¼Ç¼IDËùÓмǼ: recType=%s,delRecID=%s,delCount=%s(R^R`RRGRbRcR_(RR tdelRecIDt recDataDictt recDataListRetrecIndexDataDict((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytDelGameRecDataByTypeID•s  c
Csâ|s
dS||jkrdSd}|j|}x«|jƒD]\}}|ra||kraq=nd}x@|ddd…D]+}    |    j|ƒr{||j|    ƒ7}q{q{W|r=||7}tjd||||fƒq=q=W|S(Niiÿÿÿÿs]ɾ³ýij¸öÐÂͨÓüǼÀàÐÍËùÓÐValue1Æ¥ÅäÖµµÄ¼Ç¼: recType=%s,valueList=%s,delRecID=%s,delCount=%s(R^RTRQtDelGameRecDataRbRc(
RR RNRht delCountTotalRdRRjRetrecData((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytDelGameRecDataByTypeValue¢s$ 
    c
Csß|jƒ}|jƒ}||jkr+dS|j|}||krHdS||}||krn|j|ƒn|j|ƒ}|rÛ|jj|iƒ}|j|iƒ}|j|gƒ}    ||    krÛ|    j|ƒqÛndS(Nii(RR R^tremovet'_DBGameRecDataManager__GetValueIndexKeyR_tget(
RRoRR RiRjtkeyStrRktvalueIndexDicttrecIndexDataList((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyRm»s$    
  ic
Cs'tƒ}|jƒ|j|ƒ|j|ƒ|jttjƒƒƒ|rŸxPt|dƒD]<\}}t|d|ƒsq\nt    |d|ƒ|ƒq\Wn|j
|ƒ}t |ƒ}    xf|r"t |ƒ|kr"|    dkr"t j d||t |ƒ|fƒ|    d8}    |j|dƒq½W|S(s0Ìí¼Ó¼Ç¼
        @param recType: ¼Ç¼ÀàÐÍ
        @param recID: ¼Ç¼ÀàÐͶÔÓ¦µÄ×ÓID£¬±ÈÈç¿ÉÒÔÊÇÍæ¼ÒID»òÕ߯äËû×Ô¶¨µÄID£¬¸ÃIDÔÚͬ¸ö¼Ç¼ÀàÐÍÖÐΨһ£¬²»Í¬¼Ç¼ÀàÐÍ¿ÉÖØ¸´
        @param valueList: [value1, value2, ...] ÉèÖõÄValueÖµÁбí
        @param maxCount: Ã¿ÖּǼID×î´ó¿É±£´æ¼Ç¼ÌõÊý£¬Ä¬ÈÏ0²»ÏÞÖÆ
        is
SetValue%sisA³¬¹ý¼Ç¼ÉÏÏÞɾ³ý¼Ç¼: recType=%s,recID=%s,recCount=%s,maxCount=%s(RR
RRRtintttimeRKRLRMt%_DBGameRecDataManager__AddGameRecDataRGRbRcRm(
RR Rt valueSetListtmaxCountRotnumRXRjtdoCount((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytAddGameRecDataÑs"    
   '#
cCs*tƒ}|j|tƒ|j|ƒ|S(N(RRYR>Ry(RRURo((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytAddGameRecDataByDictìs     c
Cs|jƒ}|jƒ}||jkr7i|j|<n|j|}||kr]g||<n||}|j|ƒ|j|ƒ}|r ||jkr¨i|j|<n|j|}||krÎi||<n||}||krñg||<n||}    |    j|ƒn|S(N(RR R^tappendRrR_(
RRoRR RiRjRtRkRuRv((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt__AddGameRecDataós,     
 
 
cCs£|jƒ}|tjkrdStj|}|s>dg}nd}xX|D]P}t|d|ƒshdS|r{|d7}n|tt|d|ƒƒƒ7}qKW|S(NiRCs
GetValue%st_(R t ShareDefinetDef_GameRecValueKeyDictRLRERM(RRoR t valueNumListRtR|((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt__GetValueIndexKey s     $c Cs|tjkr¹||jkr"dS|j|}||kr?dS||}d}x1|D])}|ro|d7}n|t|ƒ7}qVW||kr“dS||}    |    s§dS|rµ|    dS|    S|j||ƒ}
|
sÕdSg} x:|
D]2} | j|ƒsýqân|r| S| j| ƒqâW| S(s »ñÈ¡¼Ç¼ÀàÐͶÔÓ¦µÄÆ¥ÅävalueÖµ¼Ç¼
        @param recType: ¼Ç¼ÀàÐÍ
        @param recID: ¼Ç¼ÀàÐͶÔÓ¦µÄ×ÓID
        @param valueList: [value1, value2, ...] valueΪNoneʱ²»ÅжϸÃÖµ
        @param findone: ÊÇ·ñֻƥÅäÒ»ÌõÂú×ãµÄ¼Ç¼
        @return: recData or [recData, ...] or None
        NRCR‚i(RƒR„R_REtGetGameRecDataListRQR€( RR RRNtfindoneRkRuRtRXRvRjtmatchRecDataListRo((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetGameRecDataMatchs:
 
 
 cCs]||jkrdS|j|}x6|jƒD](}|j||||ƒ}|r-|Sq-WdS(s÷»ñÈ¡¼Ç¼ÀàÐͶÔÓ¦µÄÆ¥ÅävalueÖµ¼Ç¼
        @param recType: ¼Ç¼ÀàÐÍ
        @param valueList: [value1, value2, ...] valueΪNoneʱ²»ÅжϸÃÖµ
        @param findone: ÊÇ·ñֻƥÅäÒ»ÌõÂú×ãµÄ¼Ç¼
        @return: recData or [recData, ...] or None
        N(R^tkeysRŠ(RR RNRˆRiRtmatchRet((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetGameRecDataMatchExGs cCsJd}|j||ƒ}|r+|d}n|rF|j||ƒ}n|S(Ni(RR‡R~(RR RtisAddNewRoRj((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetGameRecDataFirstWs cCsS||jkri|j|<n|j|}||krEg||<n||}|S(N(R^(RR RRiRj((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyR‡bs   
cCs||jkriS|j|S(N(R^(RR ((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytGetGameRecDataDictlscCs|jdd„dtƒdS(NR:cSs
|jƒS(N(R(tr((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt<lambda>sstreverse(tsortR(RRj((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytSortGameRecDataListrscCs¬d}d}d}xf|jjƒD]U}xL|jƒD]>}x5|D]-}|d7}|jƒ||jjƒ7}qBWq5Wq"Wtjd|t|ƒfƒtj    ||ƒ|S(NRCiisSave DBGameRec count :%s len=%s(
R^RaRARt    getBufferRbtLogRGtCommFunct
WriteDWORD(RtsavaDatatcntDatatcntRiRjRo((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt GetSaveDataws 
 
c    CsÔtj||ƒ\}}tjd|ƒ|jƒxVt|ƒD]H}tjƒ}|jƒ||j    |||ƒ7}|j
t |ƒƒq@WxA|j j ƒD]0}x'|j ƒD]}|jdd„ƒq¯WqœW|S(NsLoad DBGameRec count :%sR:cSs
|jƒS(N(R(td((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyR’—s(R˜t    ReadDWORDRbR—R]txrangeRRR
treadDataRyRR^RaR”(    RtdatastpostdataslenRœR‚RoRiRj((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pytLoadPyGameData‡s
 
N(RZR[R    R]RgRlRRpRmR~RRyRrRRŠRRR‡RR•RR¥(((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyR\s$            
                      *          
            (RbRRƒR˜RxRR\tGameRecDataTemp(((s^E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameRecData.pyt<module>s     fÿ