hch
2 天以前 35d98e9c630fd4408561c8c54b4c09193bb9ce9e
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -48,7 +48,6 @@
import PlayerTreasure
import IpyGameDataPY
import EventReport
import PassiveBuffEffMng
import PlayerActBuyOne
import PlayerActCollectWords
import PlayerActTotalRecharge
@@ -56,40 +55,32 @@
import PlayerActFamilyCTGAssist
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
import PlayerFuncSysPrivilege
import OpenServerActivity
import GameLogic_Qunying
import ChNetSendPack
import PlayerArena
import PyGameData
import PlayerCoin
import PlayerCharm
import PlayerDogz
import PlayerFB
import PlayerFaQi
import SkillShell
import PlayerGubao
import PlayerCustomAward
import PlayerZhanling
import PlayerTree
import PlayerLLMJ
import PlayerLianTi
import PlayerTask
import PlayerYinji
import PlayerLove
import GameObj
import PlayerChangeJob
import PlayerXiangong
import PlayerGoldRush
import PlayerActLoginNew
import PlayerActSign
import PlayerActBuyCountGift
import PlayerActLunhuidian
import PlayerActHeroAppear
import PlayerActFamilyGCZ
import PlayerActTask
import PlayerMail
import DBDataMgr
import PlayerViewCache
import UpdatePlayerName
import GameServerRefresh
#import GameServerRefresh
import IPY_ServerDefine
import IPY_PlayerDefine
import CommFunc
@@ -148,194 +139,6 @@
    if FBLogic.PlayerLoginInFBCheck(curPlayer, tick):
        #玩家是第一次登录, 并且玩家需要踢回原来地图
        return
    return
#// A1 20 货币兑换 #tagCMMoneyExchange
#
#struct    tagCMMoneyExchange
#{
#    tagHead         Head;
#    BYTE        SrcMoneyType;    // 源货币类型
#    BYTE        TagMoneyType;    // 目标货币类型
#    DWORD        ExchangeValue;    // 兑换数量(消耗源货币的数量)
#};
def OnMoneyExchange(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    srcMoneyType = clientData.SrcMoneyType
    tagMoneyType = clientData.TagMoneyType
    exchangeValue = clientData.ExchangeValue
    exchangeMoneyInfo = IpyGameDataPY.GetFuncEvalCfg("EqualValueMoney", 1, {})
    if str(srcMoneyType) not in exchangeMoneyInfo:
        return
    exchangeInfo = exchangeMoneyInfo[str(srcMoneyType)]
    if tagMoneyType != exchangeInfo[0]:
        return
    multiple = exchangeInfo[1]
    if exchangeValue <= 0:
        return
    if not PlayerControl.PayMoney(curPlayer, srcMoneyType, exchangeValue, "MoneyExchange"):
        return
    tagMoneyAdd = exchangeValue * multiple
    PlayerControl.GiveMoney(curPlayer, tagMoneyType, tagMoneyAdd, "MoneyExchange")
    GameWorld.Log("货币兑换: srcMoneyType=%s,exchangeValue=%s,tagMoneyType=%s,tagMoneyAdd=%s"
                  % (srcMoneyType, exchangeValue, tagMoneyType, tagMoneyAdd), curPlayer.GetPlayerID())
    return
#// A1 21 תְҵ #tagCMChangeJob
#
#struct    tagCMChangeJob
#{
#    tagHead        Head;
#    BYTE        TagJob;
#};
def OnChangeJob(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    PlayerChangeJob.DoChangeJob(curPlayer, curPlayer.GetJob(), clientData.TagJob)
    return
#// A1 08 刷新主服角色信息 #tagCMRefreshMainServerRole
#
#struct tagCMRefreshMainServerRole
#{
#    tagHead        Head;
#};
def OnRefreshMainServerRole(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    Sync_DBPlayer(curPlayer)
    # 死亡复活
    if GameObj.GetHP(curPlayer) <=0 or curPlayer.GetPlayerAction() == IPY_GameWorld.paDie:
        PlayerRebornByType(curPlayer, ChConfig.rebornType_System, tick)
    # 强刷一次属性,刷之前重置还没同步过所有属性
    curPlayer.SetDict(ChConfig.Def_PlayerKey_NotifyAllAttrState, 0)
    playerControl = PlayerControl.PlayerControl(curPlayer)
    playerControl.ReCalcAllState()
    # 同步所有buff
    __Sync_ClientBuff(curPlayer)
    PlayerState.Sync_PKBossState(curPlayer)
    # 恢复视野,刷新自己的视野
    curPlayer.SetVisible(True)
    PlayerControl.SetSight(curPlayer, 0)
    curPlayer.RefreshView()
    PlayerControl.SetSight(curPlayer, ChConfig.Def_PlayerSight_Default)
    curPlayer.RefreshView()
    msgInfo = ""
    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetPlayerID(), 0, 0, "RefreshMainServerRole", msgInfo, len(msgInfo))
    return
def Sync_DBPlayer(curPlayer):
    ## 同步DBPlayer信息,同0102封包
    dbPlayer = ChPyNetSendPack.tagMCDBPlayer()
    dbPlayer.AccID = curPlayer.GetAccID()
    dbPlayer.PlayerID = curPlayer.GetPlayerID()
    dbPlayer.PlayerName = curPlayer.GetPlayerName()
    dbPlayer.AccState = curPlayer.GetAccState()
    dbPlayer.GMLevel = curPlayer.GetGMLevel()
    dbPlayer.Sex = curPlayer.GetSex()
    dbPlayer.Job = curPlayer.GetJob()
    dbPlayer.ReincarnationLv = curPlayer.GetReincarnationLv()
    dbPlayer.LV = curPlayer.GetLV()
    dbPlayer.LVEx = curPlayer.GetLVEx()
    dbPlayer.LV2 = curPlayer.GetLV2()
    dbPlayer.ExpPoint = curPlayer.GetExpPoint()
    dbPlayer.TotalExp = curPlayer.GetTotalExp()
    dbPlayer.Family = curPlayer.GetFamilyID()
    dbPlayer.FamilyName = curPlayer.GetFamilyName()
    dbPlayer.TeamHornor = curPlayer.GetTeamHornor()
    dbPlayer.FamilyHornor = curPlayer.GetFamilyHornor()
    dbPlayer.FamilyActiveValue = curPlayer.GetFamilyActiveValue()
    dbPlayer.LastWeekFamilyActiveValue = curPlayer.GetLastWeekFamilyActiveValue()
    dbPlayer.CountryHornor = curPlayer.GetCountryHornor()
    dbPlayer.CountryLastWeekHornor = curPlayer.GetCountryLastWeekHornor()
    dbPlayer.Mate = curPlayer.GetMate()
    dbPlayer.Gold = curPlayer.GetGold()
    dbPlayer.GoldPaper = curPlayer.GetGoldPaper()
    dbPlayer.Silver = curPlayer.GetSilver()
    dbPlayer.SilverPaper = curPlayer.GetSilverPaper()
    dbPlayer.FightPoint = curPlayer.GetFightPoint()
    dbPlayer.HappyPoint = curPlayer.GetHappyPoint()
    dbPlayer.LineID = curPlayer.GetLineID()
    dbPlayer.MapID = curPlayer.GetMapID() # 玩家身上的 GetMapID 返回的就是 GetDataMapID
    dbPlayer.PosX = curPlayer.GetPosX()
    dbPlayer.PosY = curPlayer.GetPosY()
    dbPlayer.RebornMapID = curPlayer.GetRebornMapID()
    dbPlayer.RebornPosX = curPlayer.GetRebornPosX()
    dbPlayer.RebornPosY = curPlayer.GetRebornPosY()
    dbPlayer.State = curPlayer.GetState()
    dbPlayer.HP = curPlayer.GetHP()
    dbPlayer.HPEx = curPlayer.GetHPEx()
    dbPlayer.XP = curPlayer.GetXP()
    dbPlayer.HPRestoreSetting = curPlayer.GetHPRestoreSetting()
    dbPlayer.MPRestoreSetting = curPlayer.GetMPRestoreSetting()
    dbPlayer.FreePoint = curPlayer.GetFreePoint()
    dbPlayer.FreeSkillPoint = curPlayer.GetFreeSkillPoint()
    dbPlayer.BaseSTR = curPlayer.GetBaseSTR()
    dbPlayer.BasePNE = curPlayer.GetBasePNE()
    dbPlayer.BasePHY = curPlayer.GetBasePHY()
    dbPlayer.BaseCON = curPlayer.GetBaseCON()
    dbPlayer.STR = curPlayer.GetSTR()
    dbPlayer.PNE = curPlayer.GetPNE()
    dbPlayer.PHY = curPlayer.GetPHY()
    dbPlayer.CON = curPlayer.GetCON()
    #dbPlayer.Setting = curPlayer.GetSetting() # 没有
    dbPlayer.PKValue = curPlayer.GetPKValue()
    #dbPlayer.ActiveValue = curPlayer.GetActiveValue() # 没有
    dbPlayer.BackpackLV = curPlayer.GetBackpackLV()
    dbPlayer.WarehouseLV = curPlayer.GetWarehouseLV()
    dbPlayer.TeamID = curPlayer.GetTeamID()
    dbPlayer.UseGoldType = curPlayer.GetUseGoldType()
    dbPlayer.UseSilverType = curPlayer.GetUseSilverType()
    dbPlayer.AttackMode = curPlayer.GetAttackMode()
    dbPlayer.LastWeekOnlineTime = curPlayer.GetLastWeekOnlineTime()
    dbPlayer.FBID = curPlayer.GetClientLineID()
    dbPlayer.FamilyLV = curPlayer.GetFamilyLV()
    dbPlayer.FriendFavor = curPlayer.GetFriendFavor()
    dbPlayer.Energy = curPlayer.GetEnergy()
    dbPlayer.EquipShowSwitch = curPlayer.GetEquipShowSwitch()
    dbPlayer.LuckValue = curPlayer.GetLuckValue()
    dbPlayer.ExAttr1 = curPlayer.GetExAttr1()
    dbPlayer.ExAttr2 = curPlayer.GetExAttr2()
    dbPlayer.ExAttr3 = curPlayer.GetExAttr3()
    dbPlayer.ExAttr4 = curPlayer.GetExAttr4()
    dbPlayer.ExAttr5 = curPlayer.GetExAttr5()
    dbPlayer.Faction = curPlayer.GetFaction()
    dbPlayer.InfamyValue = curPlayer.GetInfamyValue()
    dbPlayer.OfficialRank = curPlayer.GetOfficialRank()
    dbPlayer.ChangeCoinPointTotal = curPlayer.GetChangeCoinPointTotal()
    dbPlayer.VIPLv = curPlayer.GetVIPLv()
    dbPlayer.VIPLvForPhone = curPlayer.GetVIPLvForPhone()
    dbPlayer.ExAttr6 = curPlayer.GetExAttr6()
    dbPlayer.ExAttr7 = curPlayer.GetExAttr7()
    dbPlayer.ExAttr8 = curPlayer.GetExAttr8()
    dbPlayer.ExAttr9 = curPlayer.GetExAttr9()
    dbPlayer.ExAttr10 = curPlayer.GetExAttr10()
    dbPlayer.ModelMark = curPlayer.GetModelMark()
    dbPlayer.ExAttr11 = curPlayer.GetExAttr11()
    dbPlayer.ExAttr12 = curPlayer.GetExAttr12()
    dbPlayer.ExAttr13 = curPlayer.GetExAttr13()
    dbPlayer.ExAttr14 = curPlayer.GetExAttr14()
    dbPlayer.OperateInfo = curPlayer.GetOperateInfo()
    dbPlayer.Operate = curPlayer.GetOperate()
    dbPlayer.ServerID = curPlayer.GetServerID()
    dbPlayer.ExAttr15 = curPlayer.GetExAttr15()
    dbPlayer.ExAttr16 = curPlayer.GetExAttr16()
    dbPlayer.ExAttr17 = curPlayer.GetExAttr17()
    dbPlayer.ExAttr18 = curPlayer.GetExAttr18()
    dbPlayer.ExAttr19 = curPlayer.GetExAttr19()
    dbPlayer.ExAttr20 = curPlayer.GetExAttr20()
    dbPlayer.Face = curPlayer.GetFace()
    dbPlayer.FacePic = curPlayer.GetFacePic()
    dbPlayer.RoleType = curPlayer.GetRoleType()
    NetPackCommon.SendFakePack(curPlayer, dbPlayer)
    return
#---------------------------------------------------------------------
@@ -490,12 +293,6 @@
    # 坐骑相关通知
    PlayerHorse.PlayerHorseLogin(curPlayer)
    
    # 法器
    PlayerFaQi.PlayerFaQiLogin(curPlayer)
    # 炼体
    PlayerLianTi.OnPlayerLogin(curPlayer)
    PlayerTreasure.OnTreasureLogin(curPlayer)
    
    # 副本进入时间
@@ -506,12 +303,6 @@
    
    #成就
    PlayerSuccess.SuccOnLogin(curPlayer)
    #魅力
    PlayerCharm.OnPlayerLogin(curPlayer)
    #情缘
    PlayerLove.DoPlayerLogin(curPlayer)
    
    #同步自动战斗配置记录
#    Sync_AutoFightSetting(curPlayer)
@@ -541,8 +332,6 @@
    PlayerActBuyCountGift.OnPlayerLogin(curPlayer)
    # 任务活动
    PlayerActTask.OnPlayerLogin(curPlayer)
    # 登录活动
    PlayerActLoginNew.OnPlayerLogin(curPlayer)
    # 炼器活动
    PlayerActLianqi.OnPlayerLogin(curPlayer)
    # 多日连充活动
@@ -553,8 +342,6 @@
    SyncPackDownloadAward(curPlayer)
    # 登录触发功能开启(老号处理)
    GameFuncComm.DoFuncOpenLogic(curPlayer)
    # 神兽
    PlayerDogz.OnPlayerLogin(curPlayer)
    # 小助手
    SyncLittleHelper(curPlayer)
    PlayerFB.OnLogin(curPlayer)
@@ -564,8 +351,6 @@
    Sync_CreateRoleAwardInfo(curPlayer)
    #自定义奖励
    PlayerCustomAward.OnPlayerLogin(curPlayer)
    #功能系统特权
    PlayerFuncSysPrivilege.OnPlayerLogin(curPlayer)
    #玩法前瞻奖励
    gameNoticeAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GameNoticeAwardState)
    if gameNoticeAwardState:
@@ -615,7 +400,6 @@
        PlayerHero.OnPlayerLogin(curPlayer)
        PlayerMail.OnPlayerLogin(curPlayer)
        PlayerHJG.OnPlayerLogin(curPlayer)
        PlayerXiangong.OnPlayerLogin(curPlayer)
        PlayerGubao.OnPlayerLogin(curPlayer)
        PlayerZhanling.OnPlayerLogin(curPlayer)
        PlayerTask.OnPlayerLogin(curPlayer)
@@ -634,6 +418,7 @@
        PlayerPreset.OnPlayerLogin(curPlayer)
        CrossPlayer.OnPlayerLogin(curPlayer)
        PlayerActLunhuidian.OnPlayerLogin(curPlayer)
        PlayerActHeroAppear.OnPlayerLogin(curPlayer)
        
        __OnFixVersion(curPlayer) # 修正线上玩家数据用,暂时放最后
        # 上线查询一次充值订单
@@ -662,7 +447,7 @@
    '''
    
    playerID = curPlayer.GetPlayerID()
    sysFixVersion = 2025123012 # 系统定义的最后一次修正版本号,一般以 yyyyMMddhh 定义为版本号
    sysFixVersion = 2026021300 # 系统定义的最后一次修正版本号,一般以 yyyyMMddhh 定义为版本号
    playerVersion = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FixVersion)
    if not playerVersion:
        createRoleTime = curPlayer.GetCreateRoleTime() # 按创角
@@ -682,6 +467,13 @@
        # 每个版本修正完需要立即更新到对应的版本号值,防止中间某个版本修正失败,导致重登后重复修正已经处理的版本
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FixVersion, fixVersion)
        
    # 修正公会跨服首次没有过天
    fixVersion = 2026021300
    if playerVersion < fixVersion:
        if DBFamily.IsFamilyCross():
            GameWorld.Log("跨服公会玩家登录补过天")
            PlayerFamily.__doPlayerOnDay(curPlayer)
    # 其他
    # 需要按修正版本时间顺序依次处理!!!需要按修正版本时间顺序依次处理!!!需要按修正版本时间顺序依次处理!!!
    
@@ -906,7 +698,12 @@
    #首登邮件
    mailList = IpyGameDataPY.GetFuncEvalCfg("MailLVAward", 2)
    for mailTypeKey, mailItemList in mailList:
        PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
        PlayerMail.SendMailByKey(mailTypeKey, playerID, mailItemList)
    appID = GameWorld.GetAppIDByAccID(curPlayer.GetAccID())
    appIDMailDict = IpyGameDataPY.GetFuncEvalCfg("MailLVAward", 3, {})
    mailDict = appIDMailDict.get(appID, {})
    for mailTypeKey, mailItemList in mailDict.items():
        PlayerMail.SendMailByKey(mailTypeKey, playerID, mailItemList)
        
    PlayerHero.OnPlayerFirstLogin(curPlayer)
    
@@ -974,7 +771,7 @@
    PlayerControl.SendMailByKey("MixServer1", [playerID], addItemList, gold=gold, silver=silver, detail=detailDict)
    
    # 同步排行榜
    PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
    #PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
    return
#---------------------------------------------------------------------
        
@@ -1324,13 +1121,6 @@
    #初始化寻宝背包
    PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTreasure)
    
    #初始化神兽物品背包
    #curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzItem)
    #curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptDogzItem))
    #curPack.Sync_PackCanUseCount()
    #初始化神兽装备背包
    #curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzEquip)
    #curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptDogzEquip))
    #curPack.Sync_PackCanUseCount()
    #初始化垃圾分类背包
    #curPack = itemManager.GetPack(ShareDefine.rptGarbage)
@@ -1536,8 +1326,7 @@
        SyncPKModel(curPlayer)
        GameWorld.DebugLog("进入地图强制切换PK模式: %s" % initAttackModel)
    
    PassiveBuffEffMng.OnLoadMapGFPassive(curPlayer)
    PlayerYinji.OnLoadMap(curPlayer)
    #PassiveBuffEffMng.OnLoadMapGFPassive(curPlayer)
    
    #EndLoadMap需放在最后, 0403 tagPlayerLoginLoadOK
    curPlayer.EndLoadMap()
@@ -1588,6 +1377,7 @@
    if (curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidByPy)) <= 0:
        return True
    
    GameWorld.Log("玩家被封号禁止登录" , curPlayer.GetPlayerID())
    curPlayer.Kick(IPY_GameWorld.disGMKick)
    return
@@ -2119,7 +1909,8 @@
#@return 返回值无意义
#@remarks C++封包触发, 玩家下线
def PlayerDisconnect(index, tick):
    GameWorld.GetPsycoFunc(__Func_PlayerDisconnect)(index, tick)
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    PlayerDisconnectEx(curPlayer, tick)
    return
##C++封包触发, 玩家下线
@@ -2127,8 +1918,7 @@
#@param tick 时间戳
#@return 返回值无意义
#@remarks C++封包触发, 玩家下线
def __Func_PlayerDisconnect(index, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
def PlayerDisconnectEx(curPlayer, tick):
    try:
        # 避免因逻辑错误导致下线失败,可能导致回档的情况
        DoPlayerDisconnect(curPlayer, tick)
@@ -2881,7 +2671,7 @@
    GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer) * resetHpPercent / ChConfig.Def_MaxRateValue)
    #curPlayer.SetMP(curPlayer.GetMaxMP() * resetMpPercent / ChConfig.Def_MaxRateValue)
    #护盾
    PlayerControl.SetProDef(curPlayer, PlayerControl.GetMaxProDef(curPlayer))
    #PlayerControl.SetProDef(curPlayer, PlayerControl.GetMaxProDef(curPlayer))
    
    #玩家复活后副本处理
    FBLogic.OnPlayerRebornOver(curPlayer, rebornType)
@@ -3352,8 +3142,17 @@
    # 轮回殿奖励
    elif rewardType == ChConfig.Def_RewardType_LunhuidianAward:
        PlayerActLunhuidian.GetLunhuidianAward(curPlayer, dataEx, dataExStr)
    # 武将登场升星计划免费奖励 10
    elif rewardType == ChConfig.Def_RewardType_ActHeroAppearStarFreeAward:
        PlayerActHeroAppear.GetHeroAppearStarFreeAward(curPlayer, dataEx)
    # 领取活动签到奖励 70
    elif rewardType == ChConfig.Def_RewardType_ActSignAward:
        PlayerActSign.OnGetActSignAward(curPlayer, dataEx, dataExStr)
    # 群英榜历史最高名次奖励 7
    elif rewardType == ChConfig.Def_RewardType_QunyingRankHighest:
        GameLogic_Qunying.GetQunyingRankHighestAward(curPlayer)
        
    # 首充礼包奖励
    elif rewardType == ChConfig.Def_RewardType_FirstCharge:
        PlayerGoldGift.GetPlayerFirstCharge(curPlayer, dataEx, dataExStr)
@@ -3366,9 +3165,6 @@
    # 领取单笔累充领取
    elif rewardType == ChConfig.Def_RewardType_SingleRecharge:
        PlayerActSingleRecharge.OnGetSingleRechargeAward(curPlayer, dataEx, dataExStr)
    # 领取登录活动奖励
    elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
        PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
    # 领取购买次数礼包活动
    elif rewardType == ChConfig.Def_RewardType_ActBuyCountGift:
        PlayerActBuyCountGift.OnGetBuyCountGiftAward(curPlayer, dataEx, dataExStr)
@@ -3384,9 +3180,6 @@
    # 仙盟攻城战活动奖励
    elif rewardType == ChConfig.Def_RewardType_FamilyGCZ:
        PlayerActFamilyGCZ.GetFamilyGCZAward(curPlayer, dataEx, tick)
    # 天道树奖励
    elif rewardType == ChConfig.Def_RewardType_TiandaoTree:
        PlayerXiangong.GetTiandaoTreeAward(curPlayer, dataEx)
    # 寻宝累计次数奖励
    elif rewardType == ChConfig.Def_RewardType_TreasureCntAward:
        PlayerTreasure.GetTreasureCntAward(curPlayer, dataEx, dataExStr)
@@ -3413,16 +3206,16 @@
        PlayerZhanling.GetZhanlingReward(curPlayer, dataEx, dataExStr)
    #玩法前瞻奖励
    elif rewardType == ChConfig.Def_RewardType_GameNotice:
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GameNoticeAwardState, IpyGameDataPY.GetFuncEvalCfg("GameNoticeReward", 1))
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GameNoticeAwardState, IpyGameDataPY.GetFuncEvalCfg("GameNoticeReward", 1), "GameNotice")
    #每日分享奖励34
    elif rewardType == ChConfig.Def_RewardType_ShareGame:
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_ShareGameAwardState, IpyGameDataPY.GetFuncEvalCfg("ShareGameReward", 1))
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_ShareGameAwardState, IpyGameDataPY.GetFuncEvalCfg("ShareGameReward", 1), "ShareGame")
    #游戏好评奖励35
    elif rewardType == ChConfig.Def_RewardType_GoodGame:
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GoodGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 1))
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GoodGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 1), "GoodGame")
    #游戏点赞奖励67
    elif rewardType == ChConfig.Def_RewardType_LikeGame:
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_LikeGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 4))
        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_LikeGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 4), "LikeGame")
    #领取开服每日奖励
    elif rewardType == ChConfig.Def_RewardType_OpenServerDailyAward:
        openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
@@ -3468,6 +3261,8 @@
    # 游历体力
    elif adAwardType == 4:
        PlayerTravel.AddTravelEnergy(curPlayer, adAwardValue)
    DataRecordPack.DR_ADAward(curPlayer, adID)
    return
def ADCntOnDay(curPlayer):
@@ -3855,6 +3650,7 @@
    clientPack.NowSecond = serverTime.second
    clientPack.NowMicSecond = serverTime.microsecond
    clientPack.WeekOfYear = GameWorld.GetWeekOfYear()
    clientPack.OpenServerTime = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_InitOpenServerTime)
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return
@@ -4090,14 +3886,17 @@
    if recType in ShareDefine.Def_ViewGameRecSelfList:
        recID = curPlayer.GetPlayerID()
    recTypeIDMgr = DBDataMgr.GetGameRecMgr().GetRecTypeIDMgr(recType, recID)
    SyncGameRecInfo(curPlayer, recType, recID, recTypeIDMgr.GetDataList())
    SyncGameRecInfo(curPlayer, recTypeIDMgr.GetDataList(), recType, recID)
    return
def SyncGameRecInfo(curPlayer, recType, recID, recDataList):
def SyncGameRecInfo(curPlayer, recDataList, recType=0, recID=0):
    recList = []
    for recData in recDataList:
        if not recData:
            continue
        if not recType:
            recType = recData.GetRecType()
            recID = recData.GetRecID()
        rec = ChPyNetSendPack.tagSCGameRec()
        rec.Time = recData.GetTime()
        rec.Value1 = recData.GetValue1()