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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
əìcc@s"ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZdd&d„ƒYZdd'd„ƒYZdd(d„ƒYZdefd    „ƒYZd
efd „ƒYZd „Zd „Zd„Zd„Zd„Zd„Zd„Zed„Zd„Z d„Z!d„Z"d„Z#d„Z$dd„Z%d„Z&d„Z'd„Z(dd„Z)d„Z*d „Z+d!„Z,d"„Z-d#„Z.d$„Z/dd%„Z1dS()iÿÿÿÿNtMarryReqcBseZd„ZRS(cCs(d|_d|_d|_d|_dS(Ni(t    playerIDAt    playerIDBt bridePriceIDtreqTime(tself((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt__init__(s
                (t__name__t
__module__R(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR%st
MarryCandycBseZd„ZRS(cCsgd|_d|_d|_d|_d|_d|_d|_d|_g|_i|_    i|_
dS(Nit( Rt playerNameARt playerNameBRt    marryTimetendTimet
prosperitytprosperitySuccessListtplayerFreeEatCountDicttfireworksCountDict(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR2s                                            (RRR(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR    /st PlayerCouplecBs†eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „ZRS(cCs‰||_d|_tjƒjƒ}x^t|ƒddd…D]C}tjƒj|ƒ}|jƒ}|j|ƒr>||_Pq>q>WdS(Niiÿÿÿÿ(    t
coupleDatatBridePriceMaxIDt IpyGameDataPYtIPY_Datat GetMarryCounttrangetGetMarryByIndextGetBridePriceIDtGetBridePriceBuyCount(RRtmaxCounttindextipyDatatpriceID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRBs              cCs&||jjkr|jjS|jjS(N(Rt    PlayerIDBt    PlayerIDA(RtplayerID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt GetCoupleIDPscCstj|j|ƒƒS(N(t PlayerSocialtGetSocialPlayerNameR$(RR#((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt GetCoupleNameRscCstj|j|ƒƒS(N(R%tGetSocialPlayerJobR$(RR#((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt GetCoupleJobSscCs
|jjS(N(Rt NewMarryTime(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytGetNewMarryTimeTscCs
|jjS(N(Rt    MarryTime(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt GetMarryTimeUscCs
|jjS(N(RtBridePriceState(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytGetBridePriceStateVscCstj|jj|dƒS(Ni(t    GameWorldtGetDataByDigitPlaceRR.(RR ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRWscCs8tj|jj|dt|dƒƒ|j_|jjS(Nii    (R0tChangeDataByDigitPlaceRR.tmin(RR tbuyCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytSetBridePriceBuyCountXs.cCs
|jjS(N(RtBreakRequestID(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytGetBreakRequestID[scCs
|jjS(N(RtBreakRequestTime(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytGetBreakRequestTime\scCsv||j_d|j_|dkrrttjƒƒ}||j_||jjkrc||j_qr||j_ndS(Ni(RR6R8tintttimeR"tBreakRequestTimeAtBreakRequestTimeB(RtreqIDtcurTime((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytSetBreakRequestID]s    cCs&||jjkr|jjS|jjS(N(RR"R<R=(RR#((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytGetPlayerBreakRequestTimehscCsF|j|ƒ}|j|ƒ}|j|ƒ}|j}||||fS(N(R$R'R)R(RR#tcoupleIDt
coupleNamet    coupleJobtbridePriceMaxID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytGetSendMapServerCoupleInfojs
    (RRRR$R'R)R+R-R/RR5R7R9R@RARF(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR@s                                                     tDBPyCoupleManagercBsJeZd„Zd„Zd„Zd„Zdd„Zd„Zd„Z    RS(cCsi|_i|_dS(N(t
coupleDictt coupleIDDict(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRts        cCsœ||f}||jkr.|jj|ƒn||jkrc|j||krc|jj|ƒn||jkr˜|j||kr˜|jj|ƒndS(N(RHtpopRI(RRRtkey((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt    DelCoupleys ""cCsC||f}t|ƒ}||j|<||j|<||j|<|S(N(RRHRI(RRRRt    coupleKeytcouple((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt    AddCouple†s      cCs_d}trtdƒ}n||jkr.|S|j|}||jkrN|S|j|}|S(N(tNonetFalseRRIRH(RR#RRM((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt    GetCouples  cCs¹i}|dkr$|jjƒ}nxq|D]i}|j|ƒ}|sSg||<n|j|ƒ||<t|ƒdkr+tjtj    |ƒi}q+q+W|s¢dStjtj    |ƒdS(Niè(
RPRItkeysRRRFtlenR0tSendMapServerMsgExt ShareDefinetDef_Notify_WorldKey_CoupleInfo(RtsyncPlayerIDListtsyncCoupleInfoR#RN((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytSendMapServerCoupleInfos    cCszd}d}d}x4|jjƒD]#}|d7}||jjƒ7}q"Wtjd|t|ƒfƒtj||ƒ|S(NR
iisSave DBPyMarry count :%s len=%s(    RHtvaluesRt    getBufferR0tLogRTtCommFunct
WriteDWORD(RtsavaDatatcntDatatcntRN((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt GetSaveData²s
c
CsÉtj||ƒ\}}tjd|ƒx’t|ƒD]„}tjƒ}|jƒ||j|||ƒ7}|j    }|j
}|j |||ƒ}    |    j ƒdkr6|    t j||f<q6q6Wtƒ|S(NsLoad DBPyMarry count :%si(R^t    ReadDWORDR0R]txrangetPyGameDataStructt tagDBPyCoupletcleartreadDataR"R!ROR9t
PyGameDatatg_marryBreakInfotSortMarryBreak(
RtdatastpostdataslenRbt_RRRRN((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytLoadPyGameData¿s 
        N(
RRRRLRORRRPRZRcRq(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRGqs                           tDBPyUnNotifyLoveGiftRecManagercBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs i|_dS(N(tunNotifyLoveGiftDict(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRÕs    cCsvtjƒ}||_||_||_||_||_||jkrXg|j|<n|j|}|j|ƒdS(s Ìí¼Óδ֪ͨµÄÔùËÍÀñÎï¼Ç¼
        @param receivePlayerID: Î´Í¨ÖªµÄÊÜÔù·½Íæ¼ÒID
        @param givePlayerID: ÔùËÍ·½Íæ¼ÒID
        N(    RfttagDBPyUnNotifyLoveGiftRectPlayerIDt GivePlayerIDtGiftNumt    GiftCounttSendTimeRstappend(RtreceivePlayerIDt givePlayerIDtgiftNumt    giftCounttsendTimetrecDatatgiftList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytAddUnNotifyGiftRecÙs                       cCsö|jƒ}||jkrdS|jj|gƒ}g}x~|D]v}tjƒ}|j|_tj|jƒ|_    t
|j    ƒ|_ |j |_ |j |_ |j|_|j|ƒqAWtjƒ}||_t
|jƒ|_tj||ƒdS(N(t GetPlayerIDRsRJtChPyNetSendPackttagGCSendGiftsOKRvRuR%R&tNameRTtNameLenRwRxRyRzttagGCSendGiftsOKListtSendGiftsOKListtCountt NetPackCommont SendFakePack(Rt    curPlayerR{Rt sendGiftListR€tgiftOKt
clientPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt LoginNotifyës&            cCsˆd}d}d}xB|jjƒD]1}x(|D] }|d7}||jƒ7}q/Wq"Wtjd|t|ƒfƒtj||ƒ|S(NR
iis-Save DBPyUnNotifyLoveGiftRec count :%s len=%s(RsR[R\R0R]RTR^R_(RR`RaRbt recDataListR€((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRcs 
c    Csµtj||ƒ\}}tjd|ƒx…t|ƒD]w}tjƒ}|jƒ||j|||ƒ7}|j    }||j
kr“g|j
|<n|j
|}|j |ƒq6W|S(Ns&Load DBPyUnNotifyLoveGiftRec count :%s( R^RdR0R]ReRfRtRhRiRuRsRz(    RRmRnRoRbRpR€R#R’((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRqs 
     (RRRR‚R‘RcRq(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRrÒs
                c
Cst|j|7_g}tjddiƒ}xd|jƒD]V\}}|jt|ƒkr^q7n||jkrsq7n|j|ƒtj|ƒq7Wtjddiƒ}x”|jƒD]†\}}|jt|ƒkrÚq³n||jkrïq³n|j|ƒ|j    |j
g}|j |j |g}    t jd|||    ƒq³Wx0|D](}||jkrD|jj|ƒqDqDWdS(NtLoveCandyAwardiitMarryCandyProsperity(RRtGetFuncEvalCfgtitemsR:RRztPlayerFamilyRedPackettCreateSystemRedPacketRRR R tPlayerCompensationt SendMailByKey(
tcandyObjtaddValuetsuccProsperityStrListt redpackDictt prosperityStrt    redPackIDt itemInfoDicttitemListt playerIDListt    paramList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt AddProsperity#s0   cCs"xtjD]}t|ƒq
WdS(N(Rjtg_marryCandySortListt__DoMarryCandyOver(R›((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt OnServerCloseDscCsng}tjƒ}tjƒ}xÜt|jƒƒD]È}|j|ƒ}|jƒsXq1n|jƒ}x’|j    j
ƒD]}|j ƒ}|j |ƒ}|s¡qtn|j j|j jg}    |j|dƒ}
tjd|    |||
fƒ|j|    ƒqtWq1W|rjtjƒ} tt|ƒƒ}xF|D];} | j| ƒ} | s(tj| ƒrYq(nt| ƒq(WndS(NisZÖØÖÃÿÈÕÆ¸Àñ´ÎÊý: coupleIDInfo=%s,bridePriceState=%s,bridePriceID=%s,updBridePriceState=%s(t PyDataManagertGetDBPyCoupleManagerRRRRRt GetIsDayResetRRHR[R/RRR"R!R5R0tDebugLogtextendtGetPlayerManagertlisttsettFindPlayerByIDt PlayerControltGetIsTJGtSync_CoupleInfo(RXt    coupleMgrt
ipyDataMgrRRRRNtbridePriceStateR4t coupleIDInfotupdBridePriceStatet    playerMgrR#R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytDoOnDayKs6           cCs‰tjƒj|ƒ|jƒ}tjƒj|ƒ}|rq|j|ƒ}tjƒj|ƒ}|j    ||ƒnt
|ƒt |ƒdS(N( R©t!GetDBPyUnNotifyLoveGiftRecManagerR‘RƒRªRRR$tGetIntimacyManagert GetIntimacystSyncMapServerIntimacyR´tSync_CandyList(RR#RNRBt    intimacys((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt OnPlayerLoginms 
 
cCsrttjƒ}x||dkrtjr|d8}tjd}||jkrQPntjjdƒtjj|j|jfdƒt    |ƒqWt
j ddƒ}ttj ƒ}x¼|dkrmtj rm|d8}tj d}||j ƒ|krøPn|jj|jj}}tj jdƒtjj||fdƒtjd||ttj ƒfƒt|dƒq²WdS(NiitLoveMarryBreakisWºÍÀëÌá½»ÇëÇóµ½ÆÚ£¬ÏµÍ³×Ô¶¯ºÍÀë! playerIDA=%s,playerIDB=%s, len(g_marryBreakSortList)=%s(RTRjR¦RRJtg_marryCandyInfoRRRPR§Rt
GetFuncCfgtg_marryBreakSortListR9RR"R!RkR0R]t__DoMarryBreakLogic(R?tticktdoCountR›tbreakWaitTimesRNRR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt OnTimeProcess|s.
 
     c
CsC|j|j|j}}}tjd|||fƒtjddƒ}t|ƒdkr_dS|\}}tt    j
|t |ƒƒƒ}|j tt j ƒƒ}tjd|||||tj|jƒtj|j ƒ|fƒ| sò| rödS||g}    ||dgg}
|j|j|g} tjd|    |
| ƒdS(Ns9½áËã»éÀñϲÌÇÑç»á: playerIDA=%s,playerIDB=%s,prosperity=%sR“iis{ϲÑç·±ÈÙ¶Èת»¯½±Àø: playerIDA=%s,playerIDB=%s,prosperity=%s,itemID=%s,itemCount=%s,marryTime=%s,endTime=%s,remainSeconds=%sitMarryCandyOver(RRRR0R]RR•RTR:tmathtceiltfloatRR;tChangeTimeNumToStrR R R R™Rš( R›RRRttransformItemInfotunitProsperitytitemIDt    itemCountt remainSecondsR£R¢R¤((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR§žs&      c    CsItjƒj|ƒ}|j}|j}tjƒj|ƒ}t|||tƒsUdS|jƒ}|t    j
kr˜tj d||ƒt j |dƒdSt    j
|}|j|krètj d||j|f|ƒt j |dƒdSt|ƒr/tj d||ƒt j |dƒt    j
j|dƒdSt|||||ƒdS(NsÌáÇ×ÇëÇó²»´æÔÚ! reqPlayerID=%stMarryReqInvalids=·ÇĿǰÌáÇ×¶ÔÏó! reqPlayerID=%s, playerIDB(%s) != playerID(%s)sÌáÇ×ÇëÇóÒѳ¬Ê±! reqPlayerID=%s(R0R®tGetPlayerByIndext ReqPlayerIDtIsOKR±t__MarryCheckCommRQRƒRjtg_marryReqInfoR¬R²t
NotifyCodeRt__CheckMarryReqTimeoutRJRPt__DoMarryResponse(    Rt
clientDataRÈRt reqPlayerIDtisOKt    reqPlayerR#treqData((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytOnMarryResponse½s0               c Cs¾tjj|dƒ}|sdS|j}tjd|ƒ}|sDdS|rV|jƒn tj    |ƒ}    |rw|jƒn tj    |ƒ}
|rt
j ƒ} || _ |    | _ t| j ƒ| _|| _|
| _t| jƒ| _|| _|rtj|| ƒqn|sdS|r.|r.tj|| ƒntjd|||f|ƒttjƒƒ} |jƒ} |jƒ}|jƒ}|jƒ}|râ|    |
g}x*|D]"\}}}|j||gƒq¦Wtj d||ƒnt!j"ƒ}|j#|ƒ}|sªtjd|||f|ƒt$j%ƒ}||_ |    |_ ||_|
|_| |_&|j'|||ƒ}tj(||ƒtj(||ƒt!j"ƒj)||gƒn/tjd|j*j |j*j|||f|ƒ| |j*_+|j,||j-|ƒdƒ}tjd||ƒ||j.krJ||_.tjd    |j.|ƒnx©||gD]›}|siqWn|j/|j0ƒƒ}t!j1ƒj2|j0ƒƒ}|r½|j3|j4|j0ƒƒƒnd}||||g}t5|d
||ƒt6|ƒqWW||g}|    |
g}t7j8d
|||ƒt9ƒ}||_:|    |_;||_<|
|_=||_| |_>| ||_?t@|| ƒ|tjA||f<tBƒtCd|gƒtjj|dƒtDS( sf ÌáÇ×»ØÓ¦
    @param curPlayer: »ØÓ¦Íæ¼Ò
    @param reqPlayer: ÌáÇ×Íæ¼Ò
    @param isOK: ÊÇ·ñͳһ
    NtMarrys4Ö´ÐгÉÇ×: reqPlayerID=%s,playerID=%s,bridePriceID=%sis4    Ð»é: reqPlayerID=%s,playerID=%s,bridePriceID=%ss]    Òѻ飬ÔÙ´ÎÌáÇ×: PlayerIDA=%s,PlayerIDB=%s, cur reqPlayerID=%s,playerID=%s,bridePriceID=%sis    updBuyCountValue=%ss    update BridePriceMaxID=%st MarrySuccess(ERjRÛRJRPRRtGetIpyGameDatatGetNameR%R&R„ttagGCMarryResponseRetR"t PlayerNameARTtNameALenR!t PlayerNameBtNameBLenRÙR‹RŒR0R]R:R;t GetProsperityt GetCandyTimestGetBrideGiftItemInfotGetWorldNotifyKeyR­R²t WorldNotifyR©RªRRRfRgR*ROtNotifySocialCoupleChangeRZRR,R5RRRFRƒR½R¾tGetTagIntimacyR$t"MapServer_QueryPlayer_DoLogic_LoveR´R™RšR    RR RR R RR¥RÄt __SortCandyRÀtTrue( RR#RâRàRát needResponseRãRRt reqPlayerNamet
playerNamet responsePackR?Rt
candyTimestbrideGiftItemInfotworldNotifyKeyR¤RÓRÔRpRµRNRtupdBuyCountValuetplayertmapServerCoupleInfot curIntimacystcoupleIntimacytdataMsgR£R›((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRÞÜs¦    !!                                                     &     *                                c Cs‚d}xYtjjƒD]H\}}|dkr@t||ƒ}n|dkrt||ƒ}qqWtjd|ƒ}|s~dS|jƒ}|jƒ}g}    tt    j    ƒƒ}
x¹t
|ƒD]«} |d}|d}|}t ƒ} || _ t j|ƒ| _|| _t j|ƒ| _|| _|
| _|
|| _t| |ƒ| tj||f<|    j| ƒq»Wtƒtd|    ƒ|S(Nii'Råii(RjRÄRStmaxRRçRîRïR:R;ReR    RR%R&R RR RR RR¥RzRöRÀRP( RRtaddCounttfakeIDRRRRRüt syncCandyListR?RpR›((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt
GMAddCandyOs>    
 
                       cCs2tjjƒt_tjjdtjdƒƒdS(NRKR(RjRÄR[R¦tsorttoperatort
attrgetter(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRövscCs2tjjƒt_tjjdtjdƒƒdS(NRKscoupleData.BreakRequestTime(RjRkR[RÆR
R R (((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRl{scCs;ttjƒƒ}||j}tjddƒ}||kS(Nt    LoveMarryi(R:R;RRRÅ(RãR?t passSecondst reqSecondCD((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR݁s c Csªtjƒj|ƒ}|j}|jƒ}tjƒj|ƒ}|sYtjd|ƒdS|j    |ƒ}|j
ƒ}| s‡||kr¥tjd||f|ƒdS|j j |j j }    }
|    |
ftjkrötjj|    |
fdƒtƒn|s…tjd||ƒ|jdƒt|ƒtjƒj|ƒ} | r_tj| ƒ r_t| ƒntjd|gg|jƒgƒdStjd||ƒt||ƒdS(NsûÓа飬ÎÞ·¨»ØÓ¦ºÍÀë! s=°éÂÂûÓÐÌá³öºÍÀ룬ÎÞ·¨»ØÓ¦ºÍÀë! coupleID=%s,breakRequestID=%ss¾Ü¾øºÍÀë! coupleID=%sitMarryBreakRefusesͬÒâºÍÀë: coupleID=%s(R0R®R×RÙRƒR©RªRRR]R$R7RR"R!RjRkRJRPRlR@R´R±R²R³R™RšRèRÇ( RRßRÈRRáR#RNRBtbreakRequestIDRRt    tagPlayer((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytOnMarryBreakResponses:          
 
 " ic Cs|s
dS|jj}|jj}tjƒ}tjddƒ}|rbtjƒj|||ƒnxK||gD]=}|j    |ƒ}|g}|g}    t
j d|g|    ƒqoW|j ||ƒtjƒj ||gƒg}
x_||gD]Q}tjƒj|ƒ} | rìtj| ƒ rìt| d|
|ƒt| ƒqìqìWtj|dƒtj|dƒ||ftjkrºtjd||f|ƒtjj||fƒtƒtdƒn||ftjkr tjd||f|ƒtjj||fdƒtƒnt S(NRÃit MarryBreakOKtClearCoupleSocialis2Àë»éʱͬ²½Çå³ýϲÌÇÑç»á: playerIDA=%s, playerIDB=%ss2Àë»éʱͬ²½Çå³ýºÍÀëÇëÇó: playerIDA=%s, playerIDB=%s(!RR"R!R©RªRRÅR½tDelIntimacyBothPerR'R™RšRLRZR0R®R±R²R³RõR´R%RóRjRÄR]RJRöRÀRPRkRlR÷( RNR#RRRµtdecIntimacyPertpidRCR£R¤RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRÇ´sB            
cCs|jƒ}tjd||f|jƒƒ|s6dS|\}}|dkr`t||ƒ}n”|dkr}t||ƒdS|dkršt||ƒdS|dkr¸t||ƒ}n<|dkrÖt||ƒ}n|dkrôt    ||ƒ}n|dkrdS||gS(Ns"MapServer_Love mapID=%s,msgList=%st SendGiftsReqt SendGiftsOKRt MarryEatCandytMarryBuyFireworkst MarryBreakReq( t GetRealMapIDR0R]Rƒt__SendGiftsReqt__DoSendGiftsOKt __DoMarryReqt__DoMarryEatCandyt__DoMarryBuyFireworkst__DoMarryBreakReqRP(RtmsgListtmapIDtmsgTypeRtret((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pytMapServer_Loveès,            cCs\|d}|jƒ}tj|ƒs9tj|dƒdStjƒj|||ƒrXdStS(Nit NoInDBPlayer(RƒR²tGetDBPlayerAccIDByIDRÜR©tGetBlacklistManagertCheckBlacklistBothR÷(RRt tagPlayerIDR#((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRs
 c
CsC|jƒ}|jƒ}|\}}}}}tjd|ƒ}    |    sIdSt|    jƒ|ƒ}
t|    jƒ|ƒ} |    jƒ|} |    jƒ} t    j
d|||||
| | |f|ƒt    j ƒj |ƒ}t jƒj||| ƒtj||||
ƒtj|||| ƒd}|o0tj|ƒ }|rH|jƒ}ntj|ƒ}| rtjd| ||||gƒnttjƒƒ}|sºt jƒj|||||ƒdStjƒ}||_||_t|jƒ|_||_ ||_!||_"tj#ƒ}|g|_$t|j$ƒ|_%t&j'||ƒdS(NtLoveGiftsyÔùËÍÀñÎï: tagPlayerID=%s,giftNum=%s,giftItemID=%s,giftCount=%s,addCharmSelf=%s,addCharmTag=%s,addIntimacy=%s,isAutoBuy=%sR
i((RƒRèRRçR:tGetAddCharmSelftGetAddCharmTagtGetAddIntimacyRñR0R]R®R±R©R½tAddIntimacyBotht PlayerCharmtAddCharmR²R³R%R&RòR;R¼R‚R„R…RuR†RTR‡RwRxRyRˆR‰RŠR‹RŒ(RRR#RúR.R}t
giftItemIDR~t    isAutoBuyRt addCharmSelft addCharmTagt addIntimacyRþRt tagPlayerNametisOnlineRRR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR sN       #"                       c    Cs‘|jƒ}|jƒ}|rt||gƒ}tjd||||f|ƒtjƒjdd|jƒ|d|t|ƒ|jƒƒndS(NsTMapServer_QueryPlayer_DoLogic_Love: msgType=%s,tagPlayerID=%s,tagMapID=%s,dataMsg=%sitLove(    RƒRtstrR0R]R®tMapServer_QueryPlayerRTtGetRouteServerIndex(RR'RR#R.ttagMapIDtcmdStr((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRõUs      !c    Css|jƒ}tj|ƒs/tj|dƒdStjƒj|||ƒrNdStjƒj|ƒ}|r’|j    |ƒ|kr’tj|dƒdStjƒj|ƒ}|rÖ|j    |ƒ|krÖtj|dƒdS| sìtj
|ƒr    |s    tj|dƒdSn|rot j ddƒ}tj ƒj|ƒ}| sR|j|ƒ|krotj|d|gƒdSntS(NR*t
HaveCouplet TagHaveCouplet LoveOfflineR it IntimacyLack(RƒR²R+RÜR©R,R-RªRRR$R³RRÅR½R¾RôR÷(    RRR.t checkIntimacyR#t    curCouplet    tagCouplet needIntimacyR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRÚas2 c    Csï|\}}tjƒj|ƒ}t|||tƒs:dSttjƒƒ}|jƒ}||ftj    ks‚||ftj    kr–t
j |dƒdSt j ƒj|ƒ}|r|j|ƒ}||krêtjd||f|ƒdS|jƒr
t
j |dƒdStjd|ƒ}    |    s&dS|    jƒ}
|j|ƒ} tjd|| |
|jjfƒ|
r—| |
kr—tjd|| |
f|ƒdStjd||f|ƒtƒ} || _|| _|| _|| _| tj|<t||||dt ƒdS|tjkr-tj|} | j}|| jkrt!| ƒ r||krËtjd    |||f|ƒtƒ} || _|| _|| _|| _| tj|<t||||dƒrËdSntjd
|||f|ƒt||||dƒr*dSq-tjd | jt!| ƒf|ƒn|tjkrUtƒ} | tj|<n tj|} || _|| _|| _|| _t"j#|t$j%ƒƒt$j&ƒ}||_'|j(ƒ|_)t*|j)ƒ|_+||_,t"j#||ƒdS( NtMarryReqLimitByCandys=ÒѳÉÇ×°éÂÂID²»Ò»Ö£¬ÎÞ·¨ÌáÇ×! tagPlayerID(%s) != coupleID(%s)tLimitByMarryBrokeRås+bridePriceID=%s,buyCount=%s,canBuyMax=%s %ssIƸÀñÌáÇ×´ÎÊý²»×㣬ÎÞ·¨ÌáÇ×! bridePriceID=%s,buyCount(%s) >= canBuyMax(%s)s:ÒѳÉÇ׵İéÂÂÔÙ´ÎÌáÇ×£¬Ö±½Ó³ÉÇ×! tagPlayerID=%s,coupleID=%sisÍæ¼ÒÌáÇ×ʱ£¬Ä¿±ê¸ÕºÃÒѾ­ÏÈÌá¹ýÇ×£¬ÇÒÔÚÓÐЧÆÚÄÚ£¬Ö±½Ó³ÉÇ×£¡Ê¹Óõ±Ç°ÌáÇ×Íæ¼Ò½Ï¸ßƸÀñIDΪ׼! tagPlayerID=%s,tagBridePriceID=%s < bridePriceID=%sskÍæ¼ÒÌáÇ×ʱ£¬Ä¿±ê¸ÕºÃÒѾ­ÏÈÌá¹ýÇ×£¬ÇÒÔÚÓÐЧÆÚÄÚ£¬Ö±½Ó³ÉÇ×£¡tagPlayerID=%s,tagBridePriceID=%s,bridePriceID=%ss?¶Ô·½ÓÐÌáÇ×£¬µ«ÊǶÔÏó²»Ò»Ñù»òÒѳ¬Ê±£¡ tagPlayerID=%s, timeout=%s(-R0R®R±RÚR÷R:R;RƒRjRÄR²RÜR©RªRRR$R]R7RRçtGetCanBuyCountRR¬RR.RRRRRRÛRÞRQRÝR‹RŒR„ttagGCMarryReqOKttagGCMarryReqInfoRuRèt
PlayerNameRTR‡t BridePriceID(RRR.RRR?R#RNRBRt    canBuyMaxR4Rãt
tagReqDatattagBridePriceIDR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR!‡s’  *   #                                                            &                              c Csè|\}}}}}}||f}|tjkrNtjd||fƒdStj|}    |    j}
tjd|
ƒ} | s€dSg} | jƒ} | jƒ}|    j    j
|dƒ}|    j j
|dƒ}tj ddƒ}tj ddƒ}|||}||k}|p||k}tj d|||||||||f    |ƒ|rÕtj ddƒ}t|    |ƒtj|d    |jƒ|gƒxv||gD]h}||kr°q˜ntjƒj|ƒ}| s˜tj|ƒráq˜ntj|d    |jƒ|gƒq˜W|r|d|    j    |<ntd|    gƒ|    j}|    j    j
|dƒ}tj| gƒ}|rµ| j|ƒ|d
 \}}||krµtjdd |jƒ||gƒqµntj d |||f|ƒn||||| fS( Ns0²»´æÔڸûéÀñϲÌÇÑç»á! playerIDA=%s, playerIDB=%sRåit    LoveCandyit LoveCandyFireis¢³ÔϲÌÇ: coupleIDInfo=%s,costMoneyType=%s,costMoneyValue=%s,playerMoneyValue=%s,playerFireworksCount=%s,playerFreeEatCount=%s,totalFreeCount=%s,isFree=%s,canBuy=%stEatCandyProsperityitEatCandyItemNotifysK¸üÐÂϲÌÇÑç»á: updProsperity=%s,updPlayerFreeEatCount=%s,getCandyItemInfo=%s(RjRÄR0tErrLogRRRçtGetCandyItemWeightInfotGetCandyNotifyItemInfoRtgetRRÅR]R¥R²RÜRèR®R±R³RÀRPRtGetResultByWeightListRzRò(RRRRR#t costMoneyTypetcostMoneyValuetplayerMoneyValueR¸R›RRt candyItemInfotcandyItemWeightInfotcandyNotifyItemInfotplayerFreeEatCounttplayerFireworksCounttcandyFreeCounttfireworksCandyCountttotalFreeCounttisFreetcanBuytaddProsperityValuetpIDRt updProsperitytupdPlayerFreeEatCounttgetCandyItemInfoRÓRÔ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR"çs^             &  #      (    c Csi|\}}}}}}||f}|tjkrNtjd||fƒdStj|}    t|    jjƒƒ}
tjddƒ} |
| kr¢t    j
|dƒdStjddƒ} tj d|||||    jf|ƒt |    | ƒ|    jj |dƒd|    j|<td|    gƒt    jdd|jƒ|    j|    jgƒtj d    |    j|    jf|ƒ||fS(
Ns4²»´æÔڸûéÀñϲÌÇÑç»áÑÌ»¨! playerIDA=%s, playerIDB=%sRVitMarryFireworksSoldoutisj¹ºÂò»éÀñÑÌ»¨: coupleIDInfo=%s,costMoneyType=%s,costMoneyValue=%s,playerMoneyValue=%s,fireworksCountDict=%sit BuyFireworkss4¸üлéÀñÑÌ»¨: updProsperity=%s,fireworksCountDict=%s(RjRÄR0RYtsumRR[RRÅR²RÜR]R¥R\RÀRPRòRèR R R( RRRRR#R^R_R`R¸R›tfireworksTotalBuyCountttotalBuyCountLimitRk((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR##s(         ( cCsŽ|\}}}}tjƒj|ƒ}|sAtjd|ƒdS|j|ƒ}ttjƒƒ}|jƒ}    ||    }
t    j
ddƒ} | rÆ|
| krÆtjdtj |    ƒ|
| f|ƒdS|j |ƒ} |dkrB| rB|| }
t    j
ddƒ} | rB|
| krBtjdtj | ƒ|
| f|ƒdSn|j ƒ|kr…tjd||j ƒf|ƒt||ƒdS|dkrc|j ƒ|kr    |jj|jj}}tjd    ||ƒ|j|ƒ|tj||f<tƒ|j |ƒ} ntjd
||ƒt|ƒtjƒj|ƒ}|r_tj|ƒ r_t|ƒndStjd ||ƒt||ƒ||fS( NsûÓа飬²»ÐèÒªÀë»é! RÃisN¾àÀë×î½üÒ»´Î³ÉÇ×Àë»éµÈ´ýʱ¼äδµ½£¬ÎÞ·¨ÇëÇóÀë»é! marryTime=%s,passTime(%s) < %siis[¾àÀë×î½üÒ»´ÎÇëÇóºÍÀëµÈ´ýʱ¼äδµ½£¬ÎÞ·¨ÇëÇóÀë»é! playerBreakRequestTime=%s,passTime(%s) < %ssEÇëÇóÀë»éʱ¶Ô·½ÒѾ­Ìá³öºÍÀëÁË£¬Ö±½ÓÀë»é! coupleID=%s,breakRequestID=%ssÐÂÔöÌá½»ºÍÀë! coupleID=%ssÖØ¸´Ìá½»ºÍÀë! coupleID=%ssÇ¿ÖÆÀë»é: coupleID=%s(R©RªRRR0R]R$R:R;R-RRÅRÐRAR7RÇRR"R!R@RjRkRlR´R®R±R²R³(RRR#t    breakTypet    moneyTypet
moneyValueRNRBR?R tpassTimet marryBreakCDtplayerBreakRequestTimet
breakReqCDRRR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR$AsX 
    
           
  cCsÝ|jƒ}tjƒ}tjƒj|ƒ}|rÉ|j|ƒ|_|j|ƒ|_    t
|j    ƒ|_ |j ƒ|_ |jƒ|_|jƒ|_|jƒ|_|jƒ|_|j|ƒ|_ntj||ƒdS(N(RƒR„ttagGCCoupleInfoR©RªRRR$tCoupleIDR't
CoupleNameRTR‡R+R*R-R,R/R.R7R6R9R8RAtPlayerBreakRequestTimeR‹RŒ(RR#RRH((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyR´}s  cCsz|dkrtj}n|s"dStjƒ}g|_x |D]}tjƒ}|j|_|j    |_
t |j
ƒ|_ |j |_|j|_t |jƒ|_|j|_|j|_|j|_|j|_t|jjƒƒ|_|r1|jj|jƒdƒ|_ |j!j|jƒdƒ|_"n|jj#|ƒq>Wt |jƒ|_$|sSt%j&ƒ}x
t'|j(ƒƒD]Ð}|j)|ƒ}|dkr£q|nt*j+|ƒr¸q|nx|jD]v}|j|jf}|tj,krïqÂntj,|}|jj|jƒdƒ|_ |j!j|jƒdƒ|_"qÂWt-j.||ƒq|Wn#t*j+|ƒrfdSt-j.||ƒdS(Ni(/RPRjR¦R„ttagGCCandyListt CandyInfoListttagGCCandyInfoRR"R RêRTRëRR!R RìRíRRQR R,RtEndTimeRt
ProsperityRrRR[tFireworksTotalBuyCountR\RƒtFireworksPlayerBuyCountRtPlayerFreeEatCandyCountRzt
CandyCountR0R®RetGetActivePlayerCounttGetActivePlayerAtR²R³RÄR‹RŒ(RRRR›t    candyInfot playerManagertiR¸((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyRÀsX                 !   "((((2R0R©R²R„R™R—RfR‹RR%R4RVRjR^R R;RÍRR    RtobjectRGRrR¥R¨R»RÂRËR§RäR÷RÞR    RöRlRÝRRÇR)RR RõRÚR!R"R#R$R´RPRÀ(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerLove.pyt<module>s\                 
1aQ    !        "        "         s    '                % 4    &        8     &    `    <        <