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
ؖ=\c@s{ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZiad„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Z d„Z!dS(iÿÿÿÿNcCs]tjdƒ}|j|ƒ}|s(|S|j|dƒ}|dkrK|S|t|dƒS(Ns <v=\d+_\d+>i(tretcompiletfindalltindextlen(tcontenttpatt
keyStrListtlIndex((sUE:\SnxxServerCode\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((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyR7s  '    "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&((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt    ChatMiFixSs0    !     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"((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyR2vs. 
                         cCsq|jƒ}|tkrdStj|ƒ}x?|D]7}tjƒj||jƒsYq2ntj||ƒq2WdS(N(    RRIRKRRt FindContactR>RFRG(R!tplayerIDtchatListtchatPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt LoginChatMi–s   c    CsŠtjƒj|ƒ}|jƒ}tjƒ}|jƒ}|jƒ}|jƒ}i|d6|d6|d6|d6}t    j
t j |ƒdS(NR>RCRDRE( R R R R*RtIPY_GTalkCountryRRRt CrossRealmMsgtSendMsgToCrossServert ShareDefinetClientServerMsg_ChatCrossWorld(    RR R!ROR"RR%R&tdataMsg((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt ChatCountryªs     "cCsEtjtj|ƒ}|sdS|jƒ}tjtj||ƒdS(N(    tCrossRealmPlayertGetServerCrossZoneIpyDatatChConfigtDef_FBMapID_CrossPenglaitGetServerGroupIDListRTtSendMsgToClientServerRVtCrossServerMsg_ChatCrossWorld(t serverGroupIDtmsgDataR t zoneIpyDatatserverGroupIDList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRW¸s  cCs]|d}|d}|d}|d}tjƒj|ƒ}|rY|j|||ƒndS(NR>RCRDRE(R R R+RY(RbRORR%R&R!((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyR`Ás
 
 
 
cCs\tjƒj|ƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j|||ƒdS(N(    R R R Rt IPY_GTalkGongRRRtChatGong(RR R!R"RR%R&((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRfÓs    cCs\tjƒj|ƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j|||ƒdS(N(    R R R Rt IPY_GTalkDuiRRRtChatTeam(RR R!R"RR%R&((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRhã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&((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRlós    c    Cse|\}}}}|jƒ}|jƒ}|jƒ}|dkrEnt|||||||ƒdS(Ni(tGetAccIDR/R*tBroadCastPYSpeaker(    R!t chatInfoListt SpeakerTypetTextR%R&taccIDt
playerNameRO((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt ChatPYSpeakers    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(RrtTextLenRsRDREtrangetGetPlayerCountR Rt    GetInitOKRRHRFRG( RtRORuRrRsR%R&tplayert speakerPackt playerManagerti((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRps2  
                             cCsdS(N((Rt
clientPackR ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt OnVoiceChatGsNcCsÖ|jƒ}|jƒ}|jƒ}d}|ttjƒ|7}|ttjƒ|dk7}|ttjƒ|7}|ttjƒt    j
|ƒ7}|ttj ƒt    j |ƒ7}|ttj ƒ|jƒ7}|S(NR'i(tGetVIPLvt
GetGMLeveltGetJobtGetTalkExtraValueStarRVtDef_TalkExtraValue_Bit_VipLvtDef_TalkExtraValue_Bit_GMtDef_TalkExtraValue_Bit_JOBt Def_TalkExtraValue_Bit_BubbleBoxRtGetChatBubbleBoxt$Def_TalkExtraValue_Bit_ServerGroupIDtGetPlayerServerGroupIDtDef_TalkExtraValue_Bit_LVtGetLV(RtvipLvtGMLeveltjobt extraValueStr((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pytGetTalkExtraValue›s     cCs6tjj|ƒ}|d|d}dt|ƒdS(Niis%0td(RVtDef_TalkExtraValue_LenDicttgettstr(textraValueTypetextraValueInfot extraValueLen((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyRгscCs7tj|ƒrtS||jtjƒdkr3tStS(Niè(RtGetGMForbidenTalktFalset GetDictByKeyR\t Def_TalkTicktTrue(R!R ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt    CheckTalk»s
("R RRRR\t EventReportRxRFRmRVR,RZRTR8RLRRIR    RR7R2RRRYRWR`RfRhRlRvRpR†R˜RŠR¥(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTalk.pyt<module>sF                              #                                             2    T