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
Ÿµþ[c@scddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!dS(iÿÿÿÿNcCs€tjƒ}|j|ƒ}|j}ttjƒ}|jƒ|krYtj    |dƒdSt
|t |j ƒƒs‚tj dƒdSd}d}|jdkr¯|j|ƒ}n2|j|jƒ}|dkrátj    |dƒdS|s2tjj|ƒ}    |    stj    |dƒdSt|    jƒƒ}
|
d}n |jƒ}||kr^tj    |dƒdS|j ƒ} | |kr‡tj dƒdStjƒj| ||ƒr³tj dƒdSt| ƒ} | j|ƒ} | dkrîtj    |d    ƒdSt||ƒtj||tj ƒ|rlt!j"ƒ}| |_#|j$ƒ|_%|jƒ|_&|j'ƒ|_(t)j*||ƒntj    |d
ƒdS( NtLvErrs ºÃÓÑÒѾ­ÂúÁËitFriend_OffLinetLVtFriend_OtherLessLvs²»ÔÊÐíÌí¼Ó×Ô¼ºs
ºÚÃûµ¥¼ì²étFriend_YetFriendtFriend_ApplyFriend(+t    GameWorldtGetPlayerManagertGetPlayerByIndextTagIDtGetFuncLimitLVt ShareDefinetGameFuncID_FriendtGetLVt PlayerControlt
NotifyCodetCheckFriendCounttTruetGetIDtDebugLogtNonetFindPlayerByIDtFindPlayerByNametTagNametPlayerViewCachet ViewCacheMgrt    FindCachetevalt GetPropDatat PyDataManagertGetBlacklistManagertCheckBlacklistBothtGetFriendStructtFindt__CheckAddFriendt PlayerRequestt PYAddRequesttIPY_GameServert    reqFriendtChPyNetSendPackttagGCFriendAskIfJointAskIDtGetNametNameRtGetOfficialRanktRealmLVt NetPackCommont SendFakePack(tindext
clientDatattickt playerManagert    curPlayertcurTagPlayerIDtlimitLVt    tagPlayerttagLVtcurCachet    cacheDictt curPlayerIDtcurPlayerFriendStructt    tagFriendt askFriendPack((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt    AddFriend1sh                      cCs8tjƒj|ƒ}|dkr%|Stjƒj|ƒS(N(RtGetFriendManagert
GetFriendsRt
AddFriends(tplayerIDt
curFriends((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyR s cCs2tjƒj|ƒ}|stS|j|ƒdkS(N(RR@RAtFalseR!R(RCt tagPlayerIDRD((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pytIsFriend—scCsÍ|jƒ}t|ƒ}|j|ƒ}t|ƒ}|j|ƒ}|dkr^|dkr^dS|dkrz|dkrzdStjd||fƒ|dkr­|j|ƒn|dkrÉ|j|ƒndS(Ns-AddFriend, (%s, %s)ºÃÓÑÒì³£, É¾³ýË«·½ºÃÓѹØÏµ(RR R!RRtErrLogt    DelFriend(R4R5R;R<tcurPlayerHasThisFriendttagPlayerFriendStructttagPlayerHasThisFriend((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyR"¤s     c    Cs tjƒj|ƒ}|jƒ}tjƒj|ƒ}|dkrVtjd|ƒdS|j    }|j
|ƒ}|dkrŽtjd|ƒdStjƒj ||ƒt j |dƒtjƒj|ƒ}|dkrôt j |d|jƒgƒntj||tƒdS(Ns#DeleteFriend -> ·â°üÒì³£ ->ûÓкÃÓÑs'DeleteFriend -> ·â°üÒì³£ ->ûÓÐÕâ¸öÍæ¼ÒtFriend_DeleteFriendtFriend_DeleteFriend2(RRRt GetPlayerIDRR@RARtLogtFriendIDR!t DelFriendBothRRRR*t
PlayerTeamtOnTeamMemFriendChangeRE(    R0R1R2R4RCRDtfriendIDt    curFriendR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt DeleteFriendËs$        cCsatjƒj|ƒ}|dkr%tS|jƒtjdƒkr]|rYtj    |dƒnt
StS(Nt FriendMaxCnttFriend_FullList( RR@RARRtGetCountt IpyGameDataPYt
GetFuncCfgRRRE(R4tisNotifyRCRD((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyRës c CsXtjƒ}|j|ƒ}|j}|j|ƒ}|dkr^tjj|ƒ}|s^dSn|j    ƒ}||krŠtj
d|ƒdSt j ||t jƒs¶tj
d|ƒdS|jsè|rätj|d|jƒgƒndStjƒj|||ƒrdSt|t|jƒƒs0tjdƒdStdt|ƒsVtj|dƒdStjƒj|ƒ}    |    dkrtjƒj|ƒ}    n|    j|ƒ}
|
dkr¾tj
d|ƒdStjƒj||ƒ|rtj|d|jƒgƒtj|d|jƒgƒn,t |j!ƒƒ} tj|d| dgƒt"j#||tƒdS(    Ns1JoinFriendAnswer -> ·â°üÒì³£ ->²»ÄܼÓÈë×Ô¼ºÎªºÃÓÑs/JoinFriendAnswer -> ·â°üÒì³£ ->Íæ¼ÒûÓÐÕâ¸öÇëÇótFriend_RejectFriends#×Ô¼ºµÄºÃÓÑÂúÔ±tFriend_OtherFullLists=JoinFriendAnswer -> ·â°üÒì³£ ->Õâ¸öºÃÓÑÒѾ­ÔÚ×Ô¼ºµÄºÃÓÑÁбíÖÐtFriend_MakeFriendR+($RRRR    RRRRRRORPR#tPYCheckRequestR%R&tAnswerRRR*RRRRRRRRER@RARBR!t AddFriendBothRRRSRT( R0R1R2R3R4t srcPlayerIDt    srcPlayerR9RCRDR=R:((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pytJoinFriendAnswersT               cCs»tjƒj|ƒ}tjƒ}|jƒ}|jƒ}tjƒj    |ƒ}|rg|j
|ƒrgdStj ƒj |ƒ}|r¡|j ƒtjdƒkr¡dStj ƒj||ƒdS(Nt EnemiesMaxCnt(RRRR%t IPY_GAddEnemyt
GetEnemyIDRORR@RAR!tGetEnemyManagert
GetEnemiesRZR[R\tAddEnemy(R0R2R4tpackttagIDRCtfriendstenemies((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pytMapServer_AddEnemy_s   !c
Cstjƒj|ƒ}|j}tjƒj|ƒ}|sttjj|ƒ}|sUdSt|j    ƒƒ}|d}n |j
ƒ}t j ƒj |jƒƒ}    |    dkrÙ|    jƒtjdƒkrÙtj|dƒtSnt j ƒj|jƒ|ƒtj|d|gƒdS(NR+tBlacklistMaxCntt BlacklistFullt AddBlackList(RRRR    RRRRRRR*RRt GetBlacklistRRRZR[R\RRREt JoinBlacklistRO(
R0R1R2R4RnR7R9R:t
playerNametplayers((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyRt}s$    
   cCsHtjƒj|ƒ}tjƒj|jƒ|jƒtj    |dƒdS(NtDelBlackSuccess(
RRRRRt DelBlacklistROR    RR(R0R1R2R4((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt DelBlackListªscCsVtjƒj|jƒƒ}|dkr+dS|j|ƒ|j|ƒtj|ƒdS(N(    RR@RARRtSync_SocialsInfotMapServer_SyncFriendInfoR#tSync_LoginRequest(R4R2RD((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt__OnPlayerLoginFriend³s    cCs<tjƒj|jƒƒ}|dkr+dS|j|ƒdS(N(RRjRkRRR|(R4R2Rx((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt__OnPlayerLoginEnemyÂs
  cCs<tjƒj|jƒƒ}|dkr+dS|j|ƒdS(N(RtGetContactsManagert GetContactsRRR|(R4R2Rx((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt__OnPlayerLoginContactsÌs
  cCs<tjƒj|jƒƒ}|dkr+dS|j|ƒdS(N(RRRuRRR|(R4R2Rx((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt__OnPlayerLoginBlacklistÕs
  cCs—tjƒj|jƒƒ}|r3tj|j_nt||ƒt    ||ƒt
||ƒt ||ƒt j |ƒt j|jƒtjtjƒdS(N(RtGetPersonalSocialManagertGetSocialPlayerRtChConfigt
Def_Onlinet
playerInfot
OnlineTypeRR€RƒR„t PlayerSocialtSync_AllSocialsInfot
Notify_AlltDef_CDBPlayerRefresh_Online(R4R2t socialPlayer((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt OnPlayerLoginâs     cCsptj|ƒrdStjƒj|jƒƒ}|dkr>dStj|j    _
t j |jƒtj tjƒdS(N(RtGetIsTJGRR…R†RRR‡t Def_OfflineR‰RŠR‹RRŽ(R4R2R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pytOnPlayerDisconnectùs c    Cstjƒj|ƒ}tjtjdƒƒ}tjdƒ}|jƒ}|j    ƒ}t
|ƒ}t t j ƒ}    ||    krdStƒ}
tjƒ} xÉtd| jƒƒD]²} | j| ƒ} | dksª| jƒ rÞqªn| j    ƒ}||krüqªntj| ƒrqªn|j|ƒ}|dkr2qªntjƒj||ƒr]tjdƒqªntj||tjƒr{qªn| jƒ}||    kr™qªnx³|D]«}|dd}|dd}|||koá||kno|||ko||knsq nt|ƒdkr6|dj gƒn|ddj |ƒq W|
j!|ƒqªWtjd|fƒg}xzt"|dƒD]h} tj#|ƒ}t|ƒdkr¸q‹nt$j%|dƒ}||krÝq‹nt|ƒ|kr‹Pq‹q‹W|t|ƒ}|dkrTt&|
t|ƒƒ}|j't$j(|t)|t|ƒƒƒƒnt*j+ƒ}t|ƒ|_,g|_-xŠ|D]‚}| j.|ƒ}|s qnt*j/ƒ}||_0|j1ƒ|_2|jƒ|_3|j4ƒ|_5|j6ƒ|_7|j-j |ƒqWt8j9||ƒdS(NtrecommendFriendtSerchFriendCntis
ºÚÃûµ¥¼ì²éiisrecommendFriend %s(:RRRtcopytdeepcopyR[tGetFuncEvalCfgR\R ROR R
R R tsettrangetGetActivePlayerCounttGetActivePlayerAtRt    GetInitOKRR‘R!RRRRR#t IsRequestingR%R&tlentappendtaddtxrangetGetResultByRandomListtrandomtchoicetlisttextendtsampletminR'ttagGCRecommendFriendsInfotCntt FriendsListRttagRecommendFriendsDatatIDR*R+RtGetJobtJobR,R-R.R/(R0R1R2R4R”tneedCnttplayerLVR;R<R6t allPlayerIDR3tit
findPlayerR5R=tfindLVt    recommendtminLVtmaxLVtplayeIDstlvlimitRCtfixCnttfixListtsendPackR7trceFriendsData((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pytClient_RecommendFriendss                $$  +           cCsÕtjƒj|ƒ}|j}ttjƒ}|jƒ|krCdSg}t|j    ƒƒ}tjƒ}xÊt
d|j ƒƒD]³}    |j |    ƒ}
|
dks}|
jƒ r±q}n|
j    ƒ} |j    ƒ| krÕq}n|j| ƒ} | dkröq}n|
jƒ|krq}n||
jƒkr}|j|
ƒq}q}Wtjƒ} t|ƒ| _g| _xf|D]^}tjƒ}|jƒ|_|jƒ|_|jƒ|_|jƒ|_| jj|ƒq_Wtj|| ƒdS(Ni(RRRR+R
R R R R RORšR›RœRRR!R*R R'RªRŸR«R¬R­RR®RR¯R°R.R/(R0R1R2R4tfindNameR6RxR<R3R´RµR5R=R¾R7R¿((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pytFuzzySearchPlayer†sD              cCs&tjd|ƒ}|sdS|jƒS(Nt
FuncOpenLVi(R[tGetIpyGameDatat
GetLimitLV(tfuncIDtipyData((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyR
¹s("R%RR‡R#RR'R.R RR[R¤R‹R–RRSR?R RGR"RWRRfRqRtR{RR€RƒR„RR“RÀRÂR
(((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFriend.pyt<module>sB                   ^             '             [        -                
                         x    3