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
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
104
105
106
107
108
109
110
111
112
|í[c@sødZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZiaiadZdZd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.de/fd „ƒYZ0d!e/fd"„ƒYZ1dS(#sVersion = 2014-10-20 18:00iÿÿÿÿNiicCs"tjdƒ}tjtj|ƒS(NtBourseDefState(t IpyGameDataPYt
GetFuncCfgtPlayerDBGSEventtGetDBGSTrig_ByKeytDef_BourseState(R((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyt GetOpenState0scCstjtj|dkƒdS(Ni(RtSetDBGSTrig_ByKeyR(tvalue((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyt SetOpenState4scCs~tjdƒ}|r)||kr)||S|s8i}ntjd|ƒ}|sTiS|jƒ}|||<tjd|ƒ|S(NtBourseQueryTypeDictt MarketQuery(Rt GetConfigExtGetIpyGameDatat GetLimitInfot SetConfigEx(t    queryTypeR
tipyDatat    LimitInfo((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytGetBourseQueryTypeDefineDict<s     
cCs'tƒs dStjtƒ||ƒdS(N(Rt    GameWorldt GetPsycoFunct__Func_QueryPlayerBourseItem(tindexttick((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnQueryPlayerBourseItemQs    cCsCtjdƒtjƒ}|j|ƒ}t|ƒtjdƒdS(Ns"Bourse### QueryPlayerBourseItem ins#Bourse### QueryPlayerBourseItem out(RtDebugLogtGetPlayerManagertGetPlayerByIndextSyncPlayerBourseItem(RRt playerManagert    curPlayer((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR[s
 
cCstƒs dS|jƒdS(N(RtSync_PlayerBourseItem(R((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRes    
cCsß|jƒ}tjƒ}|j|ƒ}g}xt|ƒD]}|j||ƒ}|s^q:n|jƒr:|jƒdkr:|jƒ|jƒkr:t    |ƒr¹|j
|j ƒƒq¹q:q:Wx|D]}|j |ƒqÄWdS(Ni( tGetIDRtGetBourseManagertGetPlayerBourseItemCounttxrangetGetPlayerBourseItemByIndext GetIsSoldOuttGetCustomerPlayerIDt GetPlayerIDt__GivePlayerBourseGainstappendt GetItemGUIDt DeleteByGUID(Rt curPlayerIDt bourseManagertcurPlayerItemCountt DelItemListtitcurBourseItemDatatitemGUID((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytCheckPlayerEarningsms    cCs.tjƒj|tƒt|ƒt|ƒdS(N(t PyDataManagertGetBourseRecordManagertSyncBourseRecordtTrueR4R(R((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyt OnPlayerLogins
 
cCs'tƒs dStjtƒ||ƒdS(N(RRRt__Func_QueryBourseItemOnSale(RR((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnQueryBourseItemOnSales    cCsdS(N((RR((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR:—scCsétjƒj|ƒ}|j}|j}|j}|s<|r^tjƒ}|jƒ}g}    x•t|dddƒD]}}
|j    |
ƒ} t
| ƒr˜qqn|rÃ|| j ƒkrÃ|    j | ƒqqn|rq|| j ƒkrq|    j | ƒqqqqqqWt|    ƒ} |j|d| | ƒx|    D]} |j| ƒqW|jƒ|rØtjƒj||ƒqØnzt||ƒ}t|ƒ}tjd||fƒ|j|d||ƒx%t|ƒD]}
|j||
ƒq³W|jƒtjdƒdS(Niiÿÿÿÿis?Bourse### QueryBourseItemOnSale queryTypeCount=%s, queryType=%ss#Bourse### QueryBourseItemOnSale out(RRRt    QueryTypetItemNametItemIDR"tCountR$tAttCheckBourseItemDataSaleStatet GetItemNameR*t GetItemTypeIDtlentBegin_AddBourseItemOnSaletAdd_BourseItemOnSaletSync_BourseItemOnSaleR5tGetBourseItemLastPriceManagertSyncBourseItemPricet GetTypeListR(Rt
clientDataRRRtitemNametitemIDR.tbourseItemCounttbourseItemDataListR1R2t
queryCounttbourseItemDatat queryTypeListtqueryTypeCount((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnPYQueryBourseItemOnSale£sD                  
 
 
 cCs|tj|dƒ}tj|dƒ}tjdƒ}|dksO|||krlt|ƒ|}|t|<ntj|gƒS(NitBourseUpdataCD(tg_lastSortTimeForQueryTypeDicttgettg_dict_Of_QueryTypeIndexListtNoneRRt SortIndexList(RRt lastSortTickRRtDef_Sort_IndexList_Interval((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRJÔs
 cCsg}tjƒ}|jƒ}x^t|dddƒD]F}|j|ƒ}t|ƒr\q5nt||ƒr5|j|ƒq5q5W|t|<dS(Niiÿÿÿÿ(    RR"R?R$R@RAtCheckQueryTypeItemR*RX(RtcurQueryTypeListR.RNRR2((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRZæs   
c
CsPt|ƒ}|ikrtS|jdgƒ}|rM|jƒ|krMtSn|jdgƒ}|r~|jƒ|kr~tSn|jdgƒ}|r¯|jƒ|kr¯tSn|jdgƒ}|rê|jƒd}||krêtSn|jdgƒ}|r|jƒ|krtSn|jdgƒ}    |    rL|jƒ|    krLtSnt    S(Nt SpecialItemIDtItemTypet
EquipPlacetJobidt
LimitUseLVt ItemQuality(
RtFalseRWRCtGetTypet GetEquipPlacet GetJobLimittGetUseLVtGetItemQualityR8(
R2Rt curDefineDicttSpecialItemIDListt ItemTypeListtEquipPlaceListtJobListtJobLimitRcRd((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR]ûs:   cCs|jƒrtStS(N(R&R8Re(R2((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRA-s cCs^tjjƒ}tj|ƒ}|dks6|dkr:dS||}|jdd|jdS(Niii<(tdatetimettodayRtGetDateTimeByStrRYtdaystseconds(tcompareTimeStrt curDataTimetcompareDataTimet pastTimeDelta((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyt GetPastMinute8s 
c    Cstjd|jƒtƒs!dStjd|j|j|j|j|jfƒ|j}tjƒ}|j    |ƒ}tjd|ƒt
j dƒ}t j ƒ}||_|j|_|j|_|j|_|j|_|j|_||k|_tj|||ƒtjd|jƒdS(Ns3Bourse### MGCheckAddPlayerBourseItem in,PlayerID %ssaBourse### MGCheckAddPlayerBourseItem PlayerID=%s ItemIndex=%s Count=%s PriceType=%s PriceCount=%ss1Bourse### MGCheckAddPlayerBourseItem now count %stBourseSaleLimits2Bourse### MGCheckAddPlayerBourseItem out Result %s(RRtPlayerIDRt    ItemIndexR?t    PriceTypet
PriceCountR"R#RRtChGameToMapPyPackt#tagGMCheckAddPlayerBourseItemResulttPwdtResultt NetPackCommontSendPyPackToMapServer(    t
routeIndextmapIDt curPackDataRR-R.tcounttBourseCountLimittsendPack((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnMGCheckAddPlayerBourseItemNs*                    c    CsÓtjdƒtƒsdStjd|jƒ|j}tjƒ}tjƒ}|j|_|j|_    |j
|_
|j ||j |ƒ}|j |jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j |j!j"ƒƒ|j#|j$j"ƒƒ|j%|j&ƒ|j'|j(ƒ|j)tj*ƒƒtj+ƒj,|ƒ}|r²t-|ƒnt.j/||ƒtjdƒdS(Ns&Bourse### MGAddPlayerSellBourseItem ins/Bourse### MGAddPlayerSellBourseItem PlayerID %ss'Bourse### MGAddPlayerSellBourseItem out(0RRRR|R"tIPY_GameServertIpyBourseRoleItemR?t
ItemTypeIDR>tUserDatatAddItemt
PlayerNamet SetPriceTypeR~t SetPriceCountRtSetTypetTypet SetEquipPlaceRatSetLVtLVtSetUseLVtUseLVt SetJobLimitRptSetItemQualityRdt SetItemColort    ItemColort SetItemTypeIDt SetItemNameR=tstriptSetPwdR‚t
SetEquipGStEquipGStSetOperateInfot OperateInfot SetOnSaleTimetGetCurrentDataTimeStrRtFindPlayerByIDRtDataRecordPacktDR_BourseAddItem(    R†R‡RˆRR-R.tcurBourseRoleItemt curBourseItemR((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnMGAddPlayerSellBourseItemjs@                c    Cstjd|jƒtƒs!dStjƒ}|j|jƒ}|sŽtjƒj|jƒ}|rvt    j
|dƒntjd|jƒdS|j ƒ|jkr»tjd|jƒdS|j ƒrtjƒj|jƒ}|røt    j
|dƒntjd|jƒdS|j ƒjƒ|jjƒkrŒtjƒj|jƒ}|rbt    j
|dƒntjd|j|j ƒ|jfƒdSttjƒƒ}|jtjkr
|tjj|jdƒd    kr
tjƒj|jƒ}|rt    j
|d
ƒndSn|tj|j<tjƒ}|j|_|j|_|jƒ|_|jƒ|_|jƒ|_tj|||ƒtjd ƒdS( Ns.Bourse### MGCheckBuyBourseItem in, PlayerID %stGeRen_liubo_403656s3Bourse### MGCheckBuyBourseItem ItemGUID %s No Founds6Bourse### MGCheckBuyBourseItem ItemGUID %s is SelfItems5Bourse### MGCheckBuyBourseItem ItemGUID %s is SoldOuttBoursePasswordErrorsBBourse### MGCheckBuyBourseItem ItemGUID %s  pwd is error! %s != %sii
tMarketNoPutaway5s"Bourse### MGCheckBuyBourseItem out(RRR|RR"t
FindByGUIDtItemGUIDRRªt PlayerControlt
NotifyCodeR(R&tGetPwdR¢R‚tintttimet
PyGameDatatg_bourseItemTradingTimeDictRWR€ttagGMCheckBuyBourseItemResultt GetPriceTypeR~t GetPriceCountRRBR=R„R…(    R†R‡RˆRR.R®RtcurTimeR‹((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnMGCheckBuyBourseItem™sV      !&"    cCsÎtjd|jƒtƒs!dS|j}tjƒ}|j|jƒ}|sitjd|j|ƒdSt|ƒrtjd|j|ƒdS|j    s³t
j j |jdƒdSt ||ƒ}tj|||ƒ|jtƒ|j|ƒ|j|j    ƒttjƒƒ}|jt|ƒƒt
j j |jdƒtjƒj|ƒ}    |    r…|    jddddƒ|    j|ƒ|    jƒn|jƒd|jƒj}
|
dkr´dn    t|
ƒ}
t j!ƒj"|j#ƒ|
ƒt j$ƒ} |jƒ} i| j%d    6| j&d
6|j'ƒd 6| jd 6} | j(|t)|| d|jƒƒ|j*ƒ}t+j,||j*ƒ|ƒt-|ƒrŽ|j.|j/ƒƒntjƒj|ƒ}|r¶t0|ƒntjd |jƒdS(Ns-Bourse### MGBuyBourseItemSure in, PlayerID %ssSÍæ¼ÒÈ·ÈϹºÂò½»Ò×ËùÎïÆ· ÒѸ¶Ç®£¡£¬Bourse### MGBuyBourseItemSure ItemGUID %s No FoundsHÍæ¼ÒÈ·ÈϹºÂò½»Ò×ËùÎïÆ· Bourse### MGBuyBourseItemSure ItemGUID %s SoldOutiiÿigð?iÂë RMtuserDatatequipGSR‰s-Bourse### MGBuyBourseItemSure out ItemGUID %s(1RRR|RR"R³R´tLogRAR’RºR»tpoptGetGMGiveBourseItemPackR„R…t SetIsSoldOutR8tSetCustomerPlayerIDtSetCustomerPlayerNameR¸R¹tSetSoldOutTimetstrRRªRERFRGR¾tGetBourseRoleItemR?R5RHtUpdateBourseItemPriceRCR6R>Rt
GetEquipGStAddBourseRecordtDef_Bourse_BuyR(R«tDR_BourseBuyItemR)R,R+R(R†R‡RˆRR-R.R®R‹t soldOutTimeRt    unitPricetbourseRecordMgrtcurRoleItemDatatitemInfot sellPlayerIDt curSellPlayer((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnMGBuyBourseItemSureÓsX                    1"   c
Csâ|jƒ}tjƒj|ƒ}|s+dS|jƒ}i|jd6|jd6|jƒd6|jd6}|j    ƒ}|j
ƒ}|j ƒ}tj |j ƒdƒ}t|||||gƒ}    |jddd|    t|    ƒƒtS(NRMRÁRÂR‰itGivePlayerBourseGains(R(RRRªRËR>RRÍR?R¾R½RBtToIntDeftGetSoldOutTimeRÊtMapServer_QueryPlayerResultRDR8(
R®R-R×RÔRÕt
priceCountt    priceTypeRLRÑtresult((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR)s  1   cCs`|\}}}}tjƒ}|j|jƒt||||ƒtj|jƒ|||ƒdS(N(R5R6RÎR!tDef_Bourse_SellR«tDR_BourseGiveGains(Rt
resultInfoRÑttaxMoneyt    giveMoneyRÕRÓ((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnGivePlayerBourseGainsResult#s
 "c    CsŸtjd|j|jfƒtƒs*dS|j}tjƒ}|j|jƒ}|sotjd|jƒdS|jƒ|krŸtjd|j|fƒdS|jƒrì|j    ƒdkrì|j    ƒ|jƒkrìtjd|jƒnj|j
dkrtjd|ƒdSt ||ƒ}t j |||ƒtj||ƒtjd|jƒ|j|jƒtjƒj|ƒ}|rŽt|ƒntjdƒdS(    Ns@Bourse### MGPlayerRecaptureBourseItem in PlayerID %s ItemGUID %ss:Bourse### MGPlayerRecaptureBourseItem ItemGUID %s No FoundsIBourse### MGPlayerRecaptureBourseItem ItemGUID %s not belong to Player %sisGBourse### MGPlayerRecaptureBourseItem ItemGUID %s GivePlayerBourseGainss>Bourse### MGPlayerRecaptureBourseItem PlayerID %s noSpaceCounts@Bourse### MGPlayerRecaptureBourseItem ItemGUID %s GiveBourseItems)Bourse### MGPlayerRecaptureBourseItem out(RRR|R´RR"R³R(R&R'tPackSpaceCountRÅR„R…R«tDR_BourseCancelItemR,RRªR(    R†R‡RˆRR-R.R®R‹R((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOnMGPlayerRecaptureBourseItem0s8         
  cCs¾tjƒ}||_|jƒ|_|jƒ|_|jƒ|_||j    ƒkrid|_d|_n|j
ƒ}|j |_ |j |_ |j |_ t|j ƒ|_|jƒ|_|S(Ni(R€ttagGMGiveBourseItemR|R+R´R½R~R¾RR(RËR>R?RRDt UserDataLenRÍR¥(R-R®R‹RÔ((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRÅfs              cCs´tjddƒ}i}tjƒ}|jƒ}xt|dddƒD]}|j|ƒ}t|ƒrnqGnt|j    ƒƒ}||kr’qGn|j
ƒ}|j ƒ}g}    i}
|j ƒ|
d<|j|
d<|j |
d<|    j|
ƒ|jƒ} ||kr||j| ƒn | g||<tj|| |ƒt|| |    ƒqGWx`|jƒD]R\}} x| D]} |j| ƒqmWtjƒj|ƒ}|rZt|ƒqZqZWdS(NR{iiiÿÿÿÿR>R?R(RRRR"R?R$R@RARzt GetOnSaleTimeR(RËRCRR*R+R«tDR_BourseDeleteOverTimeLongItemtSendOverTimeItemMailtitemsR,RRªR(tBourseSaleTimeMinutet DelItemDictR.RNRR2t
pastMinuteRÖtbourseRoleItemt addItemListt curItemDicttGUIDt itemGUIDListR3R×((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytOverTimeItemsDeal|s@             cCs)ddl}|jd|g|gƒdS(Niÿÿÿÿt BourseTimeOut(tPlayerCompensationt SendMailByKey(RÖRõRóRù((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRí³s tBourseRecordManagercBsGeZejdƒZd„Zd„Zed„Zd„Z    d„Z
RS(tBourseMaxRecordcCs i|_dS(N(t BourseRecord(tself((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyt__init__Às    c Cs|js dS|jj|gƒ}t|ƒ|jkrA|d=ntj|dtƒ}tjƒ}    |    j    ƒ||    _
||    _ ||    _ ||    _ ||    _||    _t|    jƒ|    _|j|    ƒ||j|<tjd|||f|ƒtjƒj|ƒ}
|
r|j|
ƒntS(Nit ensure_asciis4AddBourseRecord playerID=%s,tradeType=%s,userData=%s(t    maxRecordRýRWRDtjsontdumpsRetPyGameDataStructttagDBPyBourseRecordtclearR|R–t    TimestamptTradeTaxt
TradeMoneyRRêR*RRRRªR7R8( RþtplayerIDt    tradeTypeRÑRÕRãRät
recordListRÁtrecordR((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRÎÄs.    
 
                              c    Cs|jƒ}|jj|gƒ}|r-|n
|dg}|sDdStjƒ}|jƒg|_x‚|D]z}tjƒ}|jƒ|j|_|j    |_    |j
|_
|j |_ |j |_ t|j ƒ|_|jj|ƒqjWt|jƒ|_tj||ƒdS(s(
        @param isAll: ÊÇ·ñÈ«²¿
        iÿÿÿÿN(R(RýRWtChPyNetSendPackttagGCBourseRecordInfotCleart
RecordListttagGCBourseRecordR–RRR    RtItemDataRDt ItemDataLenR*R?R„t SendFakePack(    RþRtisAllR
R tsyncListt
recordInfot
syncRecordR ((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR7ås*  
      
     cCs|d}d}d}xB|jjƒD]1}x(|D] }|d7}||jƒ7}q/Wq"Wtjd|ƒtj||ƒ|S(NtiisSaveBourseRecord cnt :%s(Rýtvaluest    getBufferRRÃtCommFunct
WriteDWORD(RþtsavaDatatcntDatatcntR R ((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyt GetSaveDatas 
c    Cs´tj||ƒ\}}tjd|ƒi|_x{t|ƒD]m}tjƒ}|jƒ||j    |||ƒ7}|j
}|jj |gƒ}|j |ƒ||j|<q?W|S(NsLoadBourseRecord cnt :%s( Rt    ReadDWORDRRÃRýR$RRRtreadDataR|RWR*(    RþtdatastpostdataslenR!t_R R
R ((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pytLoadPyGameDatas     
     ( t__name__t
__module__RRRRÿRÎReR7R"R)(((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRû¼s         !      tBourseItemLastPriceManagercBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs i|_dS(N(tItemLastPriceDict(Rþ((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRÿ#s    cCsPtjƒ}|jƒ||_||_||j|<tjd||fƒdS(Ns-¸üн»Ò×ËùÎïÆ·×îгɽ»µ¥¼Û itemid=%s,price=%s(RttagDBPyBourseItemLastPriceRR>t    LastPriceR-RR(Rþtitemidtpricet itemLastPrice((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRÌ's 
         cCsa|jj|dƒ}|sdStjƒ}|jƒ|j|_|j|_t    j
||ƒdS(N( R-RWRYRttagGCBourseItemPriceRR>R/tPriceR„R(RþRRMt    priceDatat    priceInfo((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyRI2s 
  cCskd}d}d}x1|jjƒD] }|d7}||jƒ7}q"Wtjd|ƒtj||ƒ|S(NRiisSaveBourseItemLastPrice cnt :%s(R-RRRRÃRR(RþRR R!R2((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR"?s
cCs’tj||ƒ\}}tjd|ƒi|_xYt|ƒD]K}tjƒ}|jƒ||j    |||ƒ7}|j
}||j|<q?W|S(NsLoadBourseItemLastPrice cnt :%s( RR#RRÃR-R$RR.RR$R>(RþR%R&R'R!R(tdataR0((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR)Ks     
    (R*R+RÿRÌRIR"R)(((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyR,!s
                   (2t__doc__RRR€R„RqRRRµR«RRR5RRºR¹RRVRXRÏRàRR    RRRRR4R9R;R:RTRJRZR]RARzRŒR¯RÀRØR)RåRèRÅR÷RítobjectRûR,(((sG.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBourse.pyt<module>s`                                
    
                 
         1            2                 /    :    <             6        7        e