xdh
2019-02-21 92eee67f85cbd29feb1287ae5a15ad0c787e95cb
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
x{[c@sãddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z dZ dZdZdefd„ƒYZd„Zd„Zd    „ZdS(
iÿÿÿÿNiiitFamilyStoreItemManagercBsqeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Z    gd    „Z
d
„Z d „Z RS( cCs i|_dS(N(tFamilyStoreItems(tself((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pyt__init__(s    cCs|jj|iƒS(N(Rtget(RtfamilyID((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytGetFamilyStoreItems,scCs|jj|iƒj|ƒS(N(RR(RRt    itemIndex((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytGetFamilyStoreItem/scCs4|jj|iƒ}tjdƒ}t|ƒ|kS(NtFamilyStoreSpace(RRt IpyGameDataPYt
GetFuncCfgtlen(RRtstoreItemsDicttfamilyStoreMaxSpace((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytCheckFamilyStoreHasSpace2sc CsŒd}tjdƒ}|jj|iƒ}x*t|ƒD]}||kr7|}Pq7q7W|dkrxtjd|ƒdStj    |||d|ƒ|j
dƒ}    t j |dt ƒ}
tjƒ} | jƒ|| _|| _|    | _|
| _t| jƒ| _| ||<||j|<tjd|||    |
f|jƒƒtj|jƒ|tjt|jƒ|    g|t|
ƒ|jd||ƒtS(NR    sÕ½Ã˲ֿâ¿Õ¼äÒÑÂú£¡familyID=%stDonatetItemIDt ensure_asciisAAddFamilyStoreItem familyID=%s,itemIndex=%s,itemID=%s,userData=%s( tNoneR
R RRtxranget    GameWorldtDebugLogtDataRecordPacktDR_FamilyStoretpoptjsontdumpstFalsetPyGameDataStructttagDBPyFamilyStoreItemtcleartFamilyIDt    ItemIndexRtUserDataR t UserDataLent GetPlayerIDtPlayerFamilyActiontAddFamilyActionNotetGetNamet ShareDefinetDef_ActionType_FamilyStoretDef_Store_DonatetTruetSyncFamilyStoreItem( Rt    curPlayerRtitemInfottickt
emptyIndexRt storeItemDicttititemIDtuserDatat    storeItem((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytAddFamilyStoreItem8s8   
                
     c     CsK||jkr$tjd|ƒdStjd||f|jƒƒ|j|}xà|D]Ø}||kr‡tjd||fƒqXn|j|ƒ}|j}    |j}
t|
ƒ} | j    i|    d6ƒ|t
krÚdnd} t j |||| | ƒt j|jƒ|tj||jƒ|    g|t|
ƒqXW|j|d|ƒ| S(NsÕ½Ã˲ֿâûÓÐÎïÆ·: familyID=%ss.DelFamilyStoreItem familyID=%s,delIndexList=%ss+Õ½Ã˲ֿâûÓиÃÎïÆ·: familyID=%s,delIndex=%sRtExchangetDeletei(RRRR$tErrLogRRR"tevaltupdatetDef_Store_ExchangeRRR%R&R'R(R)R+tSyncFamilyStoreItemClear( RR-Rt delIndexListtopTypeR/R1tdelIndexR5R3R4titemDictt    eventName((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytDelFamilyStoreItem`s(             #cCsV||jkrdSt|jj|ƒƒ}tjd||fƒ|j|dƒ|S(Nis1DelFamilyStoreItemAll familyID=%s,delItemCount=%si(RR RRRR=(RRt delItemCount((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytDelFamilyStoreItemAll}s iÿÿÿÿc    Cs|jj|iƒ}||kr-|g}n|dkrH|jƒ}ndStjƒ}|jƒg|_xq|D]i}||}tjƒ}|jƒ||_|j    |_    |j
|_ t |j ƒ|_ |jj|ƒqrWt |jƒ|_|r
tj||ƒntj||ƒdS(sJ
        @param index: -1-ͬ²½ËùÓÐÎïÆ·£» >=0-ͬ²½Ö¸¶¨¸ñ×ÓÎïÆ·ÐÅÏ¢
        iÿÿÿÿN(RRtkeystChPyNetSendPackttagGCFamilyStoreItemInfotCleart StoreItemListttagGCFamilyStoreItemtIndexRR"tItemDataR t ItemDataLentappendtCountt NetPackCommont SendFakePackt PlayerFamilytSendFamilyFakePack(    RR-RtindexR1t syncIndexListR.R5titem((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pyR,ˆs.    
     
 
      cCsNtjƒ}|jƒ||_||_t|jƒ|_tj||ƒdS(s‹
        @param clearType: 0-µ¥¸ñ×ÓÇå³ý; 1-ËùÓÐÎïÆ·Çå³ý
        @param index: Çå³ýµÄ¸ñ×ÓË÷Òý, ½öµ¥¸ñ×ÓÇå³ýʱÓÐЧ,´Ó0¿ªÊ¼´ú±íµÚÒ»¸ñ
        N(    RGttagGCFamilyStoreItemClearRIt    ClearTypet    IndexListR t
IndexCountRSRT(RRt    clearTypet    indexListt    itemClear((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pyR=§s 
        cCs‚d}d}d}xH|jjƒD]7}x.|jƒD] }|d7}||jƒ7}q5Wq"Wtjd|ƒtj||ƒ|S(NtiisSaveFamilyStoreItem cnt :%s(Rtvaluest    getBufferRtLogtCommFunct
WriteDWORD(RtsavaDatatcntDatatcntR1R5((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pyt GetSaveDataµs
c
Csºtj||ƒ\}}tjd|ƒi|_xt|ƒD]s}tjƒ}|jƒ||j    |||ƒ7}|j
}|j }|jj |iƒ}    ||    |<|    |j|<q?W|S(NsLoadFamilyStoreItem cnt :%s( Rct    ReadDWORDRRbRRRRRtreadDataR R!R(
RtdatastpostdataslenRgt_R5RRR1((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytLoadPyGameDataÂs     
        
( t__name__t
__module__RRRRR6RCRER,R=RhRo(((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pyR&s                    (               cCs0|jƒ}|sdStjƒj||ƒdS(N(t GetFamilyIDt PyDataManagertGetFamilyStoreItemManagerR,(R-R((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pyt OnPlayerLoginÕs
 c    CsÝtjƒj|ƒ}|j}|jƒ}|jƒ}|dkrVtjd|ƒdS|j|ƒ}|dkr…tjd|ƒdSt    j
|t j ƒs®tjd|ƒdSt jƒ}|j||jƒ|t|ƒdS(Nsɾ³ý¼Ò×å²Ö¿âÎïÆ· -> Íæ¼ÒÎÞ¼Ò×åsɾ³ý¼Ò×å²Ö¿âÎïÆ· -> ÕÒ²»µ½³ÉÔ±sɾ³ý¼Ò×å²Ö¿âÎïÆ· -> ÄãûÓÐȨÏÞ(RtGetPlayerManagertGetPlayerByIndextStoreItemIndexR$t    GetFamilyRRt
FindMemberRStGetFamilyMemberHasPowtChConfigtDef_PurviewDictKey_CanClearPackRsRtRCRrt Def_Store_Del(    RUt
clientDataR/R-R>t curPlayerIDt    curFamilyt    curMembert familyItemMgr((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytOnFamilyStoreDeläs"         c Cs9|d}tjƒ}|jƒ}|dkrH|j|ƒ}||gS|dkrz|j|||d|ƒ}d|gS|dkr5|d}|d}    |j||ƒ}
|
sÂ|
j|    krätjd||    fƒ|igS|j    |||gt
|ƒ} | s*tjd||    fƒ|igS|| gSd    S(
Nit    DonateReqt
DonateItemiR7is<Õ½Ã˲ֿâÄ¿±êλÖÃûÓÐÎïÆ·»òÎïÆ·ID´íÎó£¡itemIndex=%s,itemID=%ss0Õ½Ã˲ֿâÄ¿±êÎïÆ·É¾³ýʧ°Ü£¡itemIndex=%s,itemID=%sR_( RsRtRrRR6RRRRRCR<( R-tmsgListR/R?RƒRthasSpacetisOKRR3R5RA((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pytDoMapServerFamilyStoreüs,
 
 
 
   (RRcRR
RsRR%R(RSRGRQR|RR*R<R~tobjectRRuR„RŠ(((sL.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamilyStore.pyt<module>s&             ¯