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
÷:gc@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ejƒagd„Zgd„Zgd„Zgd„Zgd„Zgd„Zd„Zd    „Zd
„Zgd „Zgd „Zgd „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,e-d„Z.d „Z/d!„Z0d"„Z1d#„Z2d$„Z3d%„Z4d&„Z5d'„Z6d(„Z7d)„Z8d*„Z9d+„Z:d,d,d-„Z;gd.„Z<e=d/„Z>d0„Z?e-d1„Z@gd2„ZAd3„ZBigid4„ZCd5„ZDd6„ZEiaFd7„ZGd8„ZHd9d:„ZId;„ZJd<„ZKd=„ZLd>„ZMdS(?iÿÿÿÿNcCs7|dkrtjdƒdS|j|t|ƒƒdS(NsNotifyCode Player = None(tNonet    GameWorldtErrLogt
NotifyCodet__GetNotifyCodeList(t    curPlayertmsgMarkt msgParamList((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyR5s
  cCst||||ƒdS(N(tNotifyCodeCross(t serverGroupIDtplayerIDRR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytCrossNotifyCode=scCs7itjd6|||gd6g}t|g|ƒdS(NtTypetParams(t ShareDefinetCrossNotify_Playert CrossNotify(R    R
RRtcrossNotifyList((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRAs#cCs&t|||ƒg}t||ƒdS(N(tGetCrossWorldNotifyInfoR(tserverGroupIDListtcountryRRR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytWorldNotifyCrossFs cCsitjd6|||gd6S(NR R (RtCrossNotify_World(RRR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRKscCsitjd6|||gd6S(NR R (RtCrossNotify_Family(tfamilyIDRR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetCrossFamilyNotifyInfoNscCstjtj||ƒdS(sò ¿ç·þ¹ã²¥ÐÅÏ¢Ìáʾ£¬Ö§³Öͬ²½¶àÌõ£¬Í¬Ê±Ò²½¨Òé¶àÌõÒ»Æðͬ²½
    @param serverGroupIDList: ÐèҪͬ²½µ½µÄÄ¿±ê·þÎñÆ÷×éIDÁбí
    @param crossNotifyList: ÐÅÏ¢ÌáʾÁÐ±í£¬Í¨¹ý GetCrossWorldNotifyInfo GetCrossFamilyNotifyInfo º¯Êý»ñµÃ·µ»ØÖµÌí¼Óµ½Áбí
    N(t CrossRealmMsgtSendMsgToClientServerRtCrossServerMsg_Notify(RR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRQscCstjtj||ƒdS(s ¿ç·þ¹ã²¥ÐÅÏ¢Ìáʾ£¬Ö§³Öͬ²½¶àÌõ£¬Í¬Ê±Ò²½¨Òé¶àÌõÒ»Æðͬ²½
    @param serverGroupIDList: ÐèҪͬ²½µ½µÄÄ¿±ê·þÎñÆ÷×éIDÁбí
    @param crossNotifyList: ÐÅÏ¢ÌáʾÁÐ±í£¬[[notifyType, paramsList, ×Ô¶¨ÒåÀ©Õ¹ÐÅÏ¢], ...]  notifyType Èç ShareDefine.CrossNotify_CrossAct
    N(RRRR(RR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt CrossNotifyExYsc CsËtjdt|ƒƒx­|D]¥}t|tƒrhd|ksd|krQqn|d}|d}n7t|tƒrt|ƒdkr|d \}}nq|tjkrE|\}}}tj    ddƒ}|j
dƒrótj    ddƒ}nt j t j ƒd}||kr2tjd||fƒqnt|||ƒq|tjkrC|\}}}|d}    tjƒ}
xGt|
jƒƒD]°} |
j| ƒ} | dksŒ| jƒ sŒt| ƒrÌqŒn|    sæt| ||ƒdStj| ƒ} xD|    D]<\}}|| ko|knrüt| ||ƒPqüqüWqŒWq|tjkrt|\}}}t|||ƒq|tjkr|\}}}tjƒj|ƒ} | rÃt| ||ƒqÃqqWdS(    Ns$ÊÕµ½¿ç·þͬ²½µÄ¹ã²¥ÌáʾÄÚÈÝ: count=%sR R it CrossRealmCfgitCrossBattlefields3¿ª·þÌì²»×㣬²»´¦Àí¸Ã¿ç·þ¹ã²¥! openServerDay=%s < %s(RtDebugLogtlent
isinstancetdicttlistRRt IpyGameDataPYt
GetFuncCfgt
startswithtPlayerDBGSEventtGetDBGSTrig_ByKeyt Def_ServerDayt WorldNotifytCrossNotify_CrossActtGetPlayerManagertxrangetGetPlayerCounttGetPlayerByIndexRt    GetInitOKtGetIsTJGRtGetPlayerServerIDRt FamilyNotifyRtFindPlayerByID(Rt
notifyInfot
notifyTypetparamsRRRtopenServerDayLimitt openServerDaytserverIDRangeListt playerManagertiRtplayerServerIDt    serverIDAt    serverIDBRR
((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRasZ 
 ! 
 %cCs#tjƒj||t|ƒƒdS(N(RR-tCountryNotifyCodeR(RRR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyR+™scCs#tjƒj||t|ƒƒdS(N(RR-tFamilyNotifyCodeR(RRR((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyR4¤scCswtjƒjƒj|ƒ}|dkr+dSxEt|jƒƒD]1}|j|ƒ}|s_q>nt|||ƒq>WdS(N(    Rt GetGameWorldtGetTeamManagertFindTeamRtrangetGetMemberCounttGetMemberPlayerR(tteamIDRRtcurTeamR=R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt
TeamNotify­s cCsptjƒ|stSxU|D]M}t|ƒ}|tjksK|tjkr[tj|ƒqtj|ƒqWtS(N(tNotifyCodeListtClearttypettypestIntTypetLongTypetAddInttAddStr(RtmsgtitemPythonType((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRÁs
  cCstjj|dƒS(Nt(t
PyGameDatatg_dbPlayerIDMaptget(R
((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetDBPlayerAccIDByIDÕscCsdS(N((Rtvalue((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt SetPrestigeßscCsdS(Ni((R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt GetPrestigeæscCs|jƒtj|jƒS(N(tGetFightPowerExtChConfigtDef_PerPointValuet GetFightPower(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRaêscCs"|j|tj|tjƒdS(N(t SetFightPowerR_R`(RR[((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRbëscCs!|j|ƒt|d|ƒdS(NtSetAssistTagPlayerID(t
SetExAttr1tSetMapServerPlayerAttrValue(RR[((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRcñs cCs
|jƒS(N(t
GetExAttr1(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetAssistTagPlayerIDõscCs |j|ƒS(N(t
SetExAttr3(Rt
funcLineID((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetFBFuncLineIDøscCs|jƒdS(Niè(t
GetExAttr3(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetFBFuncMapIDùscCs|jƒdS(Niè(Rk(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetFBFuncLineIDúscCsdS(Ni((R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetVIPExpireTimeýscCsdS(N((Rt
expireTime((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetVIPExpireTimeþscCs
|jƒS(N(tGetVIPLv(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt GetValidVIPLVÿscCsC|tjkrdStjd|ƒ}|s/dSt|d|ƒƒS(Nit VipPrivilegesGetVIP%d(R_tVIPPrivilegeListR%tGetIpyGameDatatgetattr(tvipLVt privilegeIDtvipMsg((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetPrivilegeValues cCs
|jƒS(N(t GetExAttr10(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetChatBubbleBoxscCs |j|ƒS(N(t SetExAttr10(RR[((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetChatBubbleBoxscCsC|j|ƒ|r?d|}|jddd|t|ƒƒndS(Ns%sitSetLeaveFamilyTime(t SetExAttr12tMapServer_QueryPlayerResultR!(RR[t    isSyncMaptsysMsg((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRs
 
"cCs
|jƒS(N(t GetExAttr12(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetLeaveFamilyTimescCs
|jƒS(N(t GetExAttr19(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetLeaveFamilyTimeExscCs |j|ƒS(N(t SetExAttr19(RR[((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetLeaveFamilyTimeExscCs
|jƒS(N(t GetExAttr13(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetPlayerServerGroupID!scCs |j|ƒS(N(t SetExAttr13(RtgroupID((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetPlayerServerGroupID"scCs0|jtjƒrtS|jƒdkr,tStS(Ns    127.0.0.1(t GetDictByKeyR_tDef_OnlineTypetTruetGetIPtFalse(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyR2%s
cCs|jtj|ƒdS(N(tSetDictR_R(Rtstate((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetIsTJG/scCs|jtjƒS(N(RR_t Def_TJGTime(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt
GetTJGTime1scCs|jtj|ƒdS(N(R”R_R—(RttjgTime((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt
SetTJGTime2scCs|jtjƒS(N(RR_tDef_ForbiddenTalk(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetGMForbidenTalk5scCs|jtj|ƒdS(N(R”R_R›(RR[((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetGMForbidenTalk6scCsB|j|ƒtjtji|jƒd6i|d6|d6ƒdS(NtPlayerIDtAccStatetExAttr17(t SetExAttr17t PlayerDBOpert UpdateDBOpertTable_DBPlayert GetPlayerID(RtaccState((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytSetPlayerAccState9s 1ic    Cs…|jƒ}|jƒ}|rt|ƒ}tjd||||f|ƒtjƒj|d||||t|ƒ|jƒƒndS(NsHMapServer_QueryPlayer_DoLogic: %s, cmdInfo=%s,tagPlayerID=%s,tagMapID=%si(    R¥t GetRealMapIDtstrRtLogR-tMapServer_QueryPlayerR!tGetRouteServerIndex(t    tagPlayertcallNametcmdInfot srcPlayerIDt    queryTypet tagPlayerIDttagMapIDtcmdStr((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytMapServer_QueryPlayer_DoLogicBs       cCsI|tjkrdSd|||g}|jddd|t|ƒƒdS(Ns%sitAddSuccessProgress(RtSuccessTypeListRR!(Rt successTypetaddCntt    conditionRƒ((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytDoAddSuccessProgressUs
cCsZ|j|ƒ|r)|jtj|ƒntjd|jƒ|fƒt|d|ƒdS(Ns"SetVSRoomID playerID=%s, roomID=%st SetVsRoomId(R¼R”R_t!Def_PlayerKey_MergeRegisterRoomIDRRªR¥Re(RtroomIDtisSetMergeRegRoomID((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyR¼as  cCs
|jƒS(N(t
GetExAttr5(R((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt GetCrossMapIDjscCs*|j|ƒ|r&t|d|ƒndS(Nt
SetExAttr5(RÂRe(RR[tisNotifyMapServer((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt SetCrossMapIDks cCs9t||g|ƒ}|jddd|t|ƒƒdS(Nit SetPlayerAttr(R©RR!(RtattrNameR[texDatat setAttrInfo((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyReqscCs5t||gƒ}|jddd|t|ƒƒdS(NitDelItem(R©RR!(RtitemListt    eventNametresult((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytMapServerDelItemzscCs;t||||gƒ}|jddd|t|ƒƒdS(Nit    GiveAward(R©RR!(RRËt    moneyInfoRÊtdrDictRÌ((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytMapServerGiveAwardscCsF|tjkrdSd||g}|jddd|t|ƒƒdS(Ns%sitAddFamilyActivity(RtFamilyActiveIDListRR!(RtactionidR¹Rƒ((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytDoAddFamilyActivity‹s
cCs&tjd|ƒ}|sdS|jƒS(Nt
FuncOpenLVi(R%Rut
GetLimitLV(tfuncIDtipyData((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytGetFuncLimitLV“scCsÇ|jƒ}|tkr/|t|kr/tSntjd|ƒ}|sKtS|jƒrs|jƒ|jƒkrstS|jƒr›|jƒ|j    ƒkr›tS|j
ƒrÃ|j
ƒ|j ƒkrÃtStS(NRÖ( R¥tg_playerOpenFuncInfoR‘R%RuR“R×tGetLVtGetLimiRealmLVtGetOfficialRankt GetLimitVIPLVRq(RRØR
RÙ((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt GetFuncCanUses  $$$cCsÁtjƒrdS|jƒ}id„tj6d„tj6}x~|D]v}||krC|tkrngt|<nt|}||kr”|j|ƒntjd||ƒ|||ƒqCqCWdS(NcSs tj|ƒS(N(tCrossChampionshiptDoChampionshipOpen(tcurObj((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt<lambda>¸scSs tj|ƒS(N(tGameWorldMineAreatDoMineAreaFuncOpen(Rã((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyRä¹ss´¥·¢¹¦ÄÜ¿ªÆôÂß¼­! funcID=%s(    Rt IsCrossServerR¥RtGameFuncID_ChampionshiptGameFuncID_MineAreaRÛtappendR (Rt
funcIDListR
tFuncOpenLogicDictRØtopenFuncIDList((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytDoFuncOpenLogic²s        
 icCsotjƒ}|jtj|ƒ}|j|ƒ|jd|ƒ|jd|ƒtjd|||f|ƒdS(s³Ìí¼ÓÍæ¼ÒÀëÏßδ´¦ÀíµÄʼþ
    @param eventName: Ê¼þÃû
    @param eventData: Ê¼þÊý¾Ý£¬Óɹ¦ÄÜ×Ô¶¨¶¨Ò壬ÈÎÒâ¸ñʽ
    @param outtimeDays: ¹ýÆÚÌìÊý£¬0-ÓÀ¾Ã, >0-Ö¸¶¨ÌìÊý, Ä¬ÈÏ30Ìì
    RËt    eventDatas$Ìí¼ÓÍæ¼ÒÀëÏßδ´¦ÀíµÄʼþ: %s, %s, %sN(    t PyDataManagertGetDBPlayerRecDataManagertAddPlayerRecDataRt$Def_PlayerRecType_OfflineUnprocessedt    SetValue1tSetUserDataByKeyRRª(R
RËRït outtimeDayst playerRecMgrtrecData((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytAddOfflineUnprocessedÆs  c    CsÔ|s
dS|jƒ}tjƒ}|jtj|ƒ}g}xr|D]j}|jdƒ|kreqDn|jdƒ}tjd||f|ƒ|||||ƒ|j    |ƒqDWx|D]}|j
|ƒq¹WdS(smÖ´Ðд¦ÀíÍæ¼ÒÀëÏßδ´¦ÀíµÄʼþ
    @param dofunc: Ö´Ðк¯Êý£¬²ÎÊý[curPlayer, recData, eventName, eventData]
    NRËRïs$Ö´ÐÐÍæ¼ÒÉÏ´ÎÀëÏßǰδ´¦Àíʼþ: %s, %s( R¥RðRñtGetPlayerRecDataListRRótGetUserDataByKeyRRªRêt
DelRecData(    RRËtdofuncR
R÷t recDataListtdelRecDataListRøRï((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytDoOfflineUnprocessedÔs     cCs°tjƒ}|jtjƒ}|s(dSd}xd|jƒD]V}xM|ddd…D]8}|jdƒ|krvqUn|j|ƒ|d7}qUWq;Wtj    d||fƒdS(NiiÿÿÿÿRËis'ɾ³ýÍæ¼ÒÀëÏßδ´¦ÀíµÄʼþ: %s, delCnt=%s(
RðRñtGetPlayerRecDataDictRRótvaluesRûRüRR (RËR÷trecDicttdelCntRþRø((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytDelOfflineUnprocessedìs  cCsòtjƒ}|jtjƒ}|s(dSttjƒƒ}x±|jƒD]£}xš|ddd…D]…}|jƒ}|j    ƒ}|s‹qant
j ||ƒd}||kr³qan|j |ƒt
j d||jƒf|jƒƒqaWqGWdS(Niÿÿÿÿis$ɾ³ýÍæ¼ÒÀëÏßδ´¦ÀíµÄ¹ýÆÚʼþ: %s, %s(RðRñRRRótintttimeRtGetTimet    GetValue1Rt GetDiff_DayRüR t GetUserDataR¥(R÷RtcurTimeRþRøtrecTimeRötdiffDays((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytDelOuttimeOfflineUnprocessedþs"     .cCs tƒdS(N(R(((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pytDoOnDays(NRR¢RðtIPY_GameServerR(RáRåR%RRRWR_RORtIPY_NotifyCodeListRLRR RRRRRRRR+R4RKRRZR\R]RaRbRcRgRjRlRmRnRpRrRzR|R~R‘RR…R‡R‰R‹RŽR2R–R˜RšRœRR§RµR»R“R¼RÁRÄReRÍRÑRÕRÚRÛRàRîRùRRRR(((sXE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerControl.pyt<module>s”                                 8