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
ɚî[c@sHddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddlZddl Z ddl Z iad„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„ZdS(iÿÿÿÿNcCs]tjdƒ}|j|ƒ}|s(|S|j|dƒ}|dkrK|S|t|dƒS(Ns <v=\d+_\d+>i(tretcompiletfindalltindextlen(tcontenttpatt
keyStrListtlIndex((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pytChangeVoiceChat#s c    Csötjƒj|ƒ}tjƒ}tjƒj|jƒƒ}|dkr\tj    |dƒdSt
j ƒj |j ƒ|j ƒ|ƒr‡dS|jƒ}|jƒ}|jƒ}|jƒ}|j|||||ƒt
jƒj|j ƒ|j ƒƒdS(Nt CanootTalk10(t    GameWorldtGetPlayerManagertGetPlayerByIndextIPY_GameServert IPY_GTalkMitFindPlayerByNamet GetTargetNametNonet PlayerControlt
NotifyCodet PyDataManagertGetBlacklistManagertCheckBlacklistBothtGetIDt GetTalkTypet
GetContentt GetExtraValuet    GetExtrastChatMitGetContactsManagertAddContactsBoth(    Rttickt    curPlayertsendPackt    tagPlayerttalkTypeRt
extraValuetextras((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyR5s  '    "c     CsNtjƒj|ƒ}tjƒ}|jƒ}tjƒj|ƒ}d}d}|dkr‰tj    j
|ƒ}|s•t j |dƒdSn |j ƒ}tjƒj|jƒ||ƒrºdS|rßt|jƒƒ}|d}n|jƒ}    |jƒ}
|jƒ} |jƒ} t|||||    |
| | ƒtjƒj|jƒ|ƒdS(NtR
tName(R R R RtIPY_GTalkMiFixt GetPlayerIDtFindPlayerByIDRtPlayerViewCachet ViewCacheMgrt    FindCacheRRtGetNameRRRRtevalt GetPropDataRRRRt
SendChatMiRR( RR R!R"t tagPlayerIDR#tcurCachet tagPlayerNamet    cacheDictR$RR%R&((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt    ChatMiFixQs0    !     c    CsHtjƒ}|jƒ||_|jƒ|_t|jƒ|_|jƒ|_    t|ƒ|_
||_ ||_ t|ƒ|_ ||_||_||_tj||ƒ|rÓtj|ƒ rÓtj||ƒnq|tkrï|gt|<n<t|j|ƒtt|ƒdkr+t|jdƒdStj|||jƒƒdS(Nii(t ChNetSendPackt    tagTalkMitCleartTalkTypeR/tSrcNameRt
SrcNameLenRtPlayerIDt    ToNameLentToNamet
ToPlayerIDtLentContentt
ExtraValuetExtrast NetPackCommont SendFakePackRtGetIsTJGtg_ChatMitappendtpopt PlayerGeTuit ChatMiGeTui(    R!R#R5R3R$RR%R&R"((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyR2ts. 
                         cCsq|jƒ}|tkrdStj|ƒ}x?|D]7}tjƒj||jƒsYq2ntj||ƒq2WdS(N(    RRIRKRRt FindContactR>RFRG(R!tplayerIDtchatListtchatPack((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt LoginChatMi”s   cCs\tjƒj|ƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j|||ƒdS(N(    R R R Rt IPY_GTalkGongRRRtChatGong(RR R!R"RR%R&((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRT¨s    cCs\tjƒj|ƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j|||ƒdS(N(    R R R Rt IPY_GTalkDuiRRRtChatTeam(RR R!R"RR%R&((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRV¸s    cCs›tjƒj|ƒ}|jƒdkrAtjd|jƒƒdStjƒ}|jƒ}|j    ƒ}|j
ƒ}|j |||ƒt j |||ƒdS(Nis!¼Ò×寵µÀÁÄÌì·â°ü´íÎó,Íæ¼ÒûÓмÒ×å(R R R t GetFamilyIDtLogR*Rt IPY_GTalkBangRRRt
ChatFamilytPlayerFamilyPartyt OnTalkFamily(RR R!R"RR%R&((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRZÈs    c    Cse|\}}}}|jƒ}|jƒ}|jƒ}|dkrEnt|||||||ƒdS(Ni(tGetAccIDR/R*tBroadCastPYSpeaker(    R!t chatInfoListt SpeakerTypetTextR%R&taccIDt
playerNameRO((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt ChatPYSpeakerÙs    
c Cs;|dkr9tjƒj|ƒ}|r9|jƒ}q9ntjƒ}|jƒt|ƒ|_||_    ||_
t|ƒ|_ ||_ ||_ t|ƒ|_||_||_||_tjƒ}    xmt|    jƒƒD]Y}
|    j|
ƒ}|dksÚ|jƒ rqÚntj|ƒr#qÚntj||ƒqÚWdS(Ni(R R tFindPlayerByAccIDR*tChPyNetSendPackttagGCPYSpeakerContentR:RtAccIDLentAccIDR>tNameLenR(R`tTextLenRaRDREtrangetGetPlayerCountR Rt    GetInitOKRRHRFRG( RbRORcR`RaR%R&tplayert speakerPackt playerManagerti((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyR^ðs2  
                             c Cs.tjƒj|ƒ}t||ƒs(dStjƒ}|jƒ|j|_|jƒ|_    t
|jƒƒ|_ |j ƒ|_ |j|_|j|_t|ƒ|_t
|jƒ|_tjƒ}|jtjkrù|j|jƒt
|jƒƒƒn1|jtjkr²|jƒ}|dkr'dSxtd|jƒƒD]n}|j|ƒ}|j|jƒƒ}    |    dks=|    jƒ r†q=nt j!|    ƒr›q=nt"j#|    |ƒq=Wnx|jtj$krN|j%ƒ}
|
dkràdSxGt&|
j'ƒƒD]T}|
j(|ƒ} | só| jƒ r"qónt j!| ƒr7qónt"j#| |ƒqóWnÜ|jtj)kr*tjƒj|j*ƒ} | s™tjƒj+|j,ƒ} n| dkr©dSt-j.ƒj/|j ƒ| j ƒ|ƒrÔdS| jƒ|_0t
| jƒƒ|_1| j ƒ|_2t"j#| |ƒt"j#||ƒndS(Ni(3R R R t    CheckTalkRfttagGCVoiceChatR:t ChannelTypeR/R<RR=RR>RBRCtGetTalkExtraValueRERDt ShareDefinetDef_ChannelChat_Worldt BroadCastAllt    GetBuffertDef_ChannelChat_Familyt    GetFamilyRRltGetCounttGetAtR+R*RnRRHRFRGtDef_ChannelChat_TeamtGetTeamtxrangetGetMemberCounttGetMemberPlayertDef_ChannelChat_PrivatetTargetIDRt
TargetNameRRRR@R?RA( Rt
clientPackR R!R"Rqt    curFamilyRrt notifyMembert notifyPlayertcurTeamt    curMemberR#((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt OnVoiceChat"sj 
    %     'cCs™|jƒ}|jƒ}|jƒ}d}|ttjƒ|7}|ttjƒ|dk7}|ttjƒ|7}|ttjƒt    j
|ƒ7}|S(NR'i( tGetVIPLvt
GetGMLeveltGetJobtGetTalkExtraValueStarRwtDef_TalkExtraValue_Bit_VipLvtDef_TalkExtraValue_Bit_GMtDef_TalkExtraValue_Bit_JOBt Def_TalkExtraValue_Bit_BubbleBoxRtGetChatBubbleBox(RotvipLvtGMLeveltjobt extraValueStr((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRvvs    cCs6tjj|ƒ}|d|d}dt|ƒdS(Niis%0td(RwtDef_TalkExtraValue_LenDicttgettstr(textraValueTypetextraValueInfot extraValueLen((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyR‘ŠscCs7tj|ƒrtS||jtjƒdkr3tStS(Niè(RtGetGMForbidenTalktFalset GetDictByKeytChConfigt Def_TalkTicktTrue(R!R ((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRs’s
(R RRRR¥t EventReportRfRFR[RwR,R8RLRRIR    RR7R2RRRTRVRZRdR^RRvR‘Rs(((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt<module>s<                            #                             2    T