hxp
5 天以前 26958aff1b844a743a805b4f9075bee800b72a46
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -43,7 +43,6 @@
import PlayerPrestigeSys
import PlayerFamily
import PlayerLoginDayAward
import PlayerGodWeapon
import PlayerGoldInvest
import PlayerActivity
import FBCommon
@@ -53,6 +52,7 @@
import PlayerCrossRealmPK
import PlayerCrossChampionship
import GameFuncComm
import PlayerFamilyTaofa
import PlayerBossReborn
import PlayerWeekParty
import PlayerFeastWeekParty
@@ -62,10 +62,8 @@
import PlayerActLogin
import PlayerTreasure
import PlayerRune
import PlayerFamilyRedPacket
import IpyGameDataPY
import EventReport
import OpenServerCampaign
import PassiveBuffEffMng
import PlayerFlashSale
import PlayerFlashGiftbag
@@ -85,7 +83,6 @@
import PlayerSpringSale
import GY_Query_BossFirstKill
import PlayerCrossYaomoBoss
import PlayerFeastRedPacket
import PlayerLuckyCloudBuy
import PlayerLuckyTreasure
import Item_ResetAttrPoint
@@ -110,6 +107,7 @@
import PlayerCustomAward
import PlayerZhanling
import PlayerTree
import PlayerLLMJ
import PlayerLianTi
import PlayerTask
import PlayerYinji
@@ -496,7 +494,6 @@
    PlayerControl.SyncOnLineTimeTotal(curPlayer)
    #PlayerControl.SyncOnLineTimeLastOpenPack(curPlayer, IPY_GameWorld.rptItem)
    PlayerControl.SyncTrainRealmLV(curPlayer)
    PlayerGodWeapon.OnLogin(curPlayer)
    PlayerPrestigeSys.OnLogin(curPlayer)
    #DataRecordPack.DR_PlayerLogin(curPlayer)
    EventReport.WriteEvent_login(curPlayer)
@@ -507,9 +504,6 @@
    
    #玩家扩展信息
    __SyncPlayerInfoEx(curPlayer)
    #补丁包下载奖励
    GiveDownloadPatchAward(curPlayer)
    
    #PKģʽ
    #SyncPKModel(curPlayer)
@@ -547,15 +541,6 @@
    
    # 通知累计登陆礼
    PlayerLoginDayAward.OnLoginNotifyLoginDayAward(curPlayer)
    # 开服活动奖励信息
    OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
    # 采集NPC次数通知
    #NPCCommon.SyncCollNPCTime(curPlayer)
    # 每日活跃度
    PlayerActivity.OnLogin(curPlayer)
    
    # 副本进入时间
    FBCommon.FBOnLogin(curPlayer)
@@ -627,9 +612,6 @@
    ChItem.Sync_ItemDayUseCnt(curPlayer)
    # 符印登录通知
    PlayerRune.PlayerRuneLogin(curPlayer)
    # 仙盟红包登录通知
    PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
    PlayerFeastRedPacket.DoPlayerOnLogin(curPlayer)
    # 商店物品购买次数登录通知
    FunctionNPCCommon.ShopItemOnLogin(curPlayer)
    # 通知设置的被动功法
@@ -670,8 +652,6 @@
    PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
    # 转盘活动
    PlayerActTurntable.OnPlayerLogin(curPlayer)
    # 分支下载奖励记录通知
    SyncPackDownloadAward(curPlayer)
    # 登录触发功能开启(老号处理)
    GameFuncComm.DoFuncOpenLogic(curPlayer)
    # 神兽
@@ -753,6 +733,8 @@
        PlayerTalk.OnPlayerLogin(curPlayer)
        SyncADCntInfo(curPlayer)
        UpdatePlayerName.OnPlayerLogin(curPlayer)
        PlayerActivity.OnPlayerLogin(curPlayer)
        PlayerLLMJ.OnPlayerLogin(curPlayer)
        
        # 上线查询一次充值订单
        curPlayer.SendDBQueryRecharge()
@@ -851,9 +833,6 @@
    
    # 重置首充双倍
    PlayerCoin.DoResetCTGCount(curPlayer, "MixServer")
    # 重置商店购买次数,暂定只重置类型 7 的
    FunctionNPCCommon.ResetShopItemBuyCount(curPlayer, [7])
    
    # 合服邮件,盟主专属邮件在GameServer处理
    mailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 1)
@@ -1388,30 +1367,6 @@
    #if curPlayer.GetPlayerAction() != IPY_GameWorld.paEvent:
    curPlayer.SetCanMove(True)
    
    #同步客户端tick
    #这个封包要在EndLoadMap, 上马之前发, 否则客户端处理时机不对(客户端封包缓存机制)
    #curPlayer.Sync_ClientTick()
    #做上一个地图的上马/骠车逻辑
    #恢复自己的状态
    playerVehicle = curPlayer.GetLastMapPlayerVehicle()
    if playerVehicle == IPY_GameWorld.pvHorse:
        #玩家在骑马中
        if not PlayerHorse.PlayerRideHorseUp(curPlayer, False, False):
        #=======================================================================
        #    playerHorseState = curPlayer.GetLastMapPlayerRidehorseState()
        #    if playerHorseState != IPY_GameWorld.prsNormal:
        #        #切换地图, 恢复急行状态
        #        curPlayer.SetPlayerRidehorseState(playerHorseState)
        #
        #    #刷新人物属性 所有状态
        #    playerControl = PlayerControl.PlayerControl(curPlayer)
        #    playerControl.RefreshAllState()
        # else:
        #=======================================================================
            #此时已经是下马状态不需要刷状态 但是需要通知客户端下马
            PlayerHorse.PlayerRideHorseDown(curPlayer, False)
    #激活玩家(保证持续性Buff处理间隔)
    PlayerControl.SetIsNeedProcess(curPlayer, True)
@@ -1760,9 +1715,9 @@
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    
    #防外挂 不可移动
    if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
                                      == ChConfig.Def_AutoCheck_State_Danger:
        return
    #if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
    #                                  == ChConfig.Def_AutoCheck_State_Danger:
    #    return
    
    
    #不可移动行为状态, 判断客户端限制
@@ -2128,18 +2083,6 @@
    
    #流向记录玩家下线
    DataRecordPack.DR_PlayerDisconnect(curPlayer)
    #玩家未回图形验证码下线将会记录错误次数
    #===========================================================================
    # if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_Captcha_WaitSign) \
    # == PlayerAutoCheckOnline.Def_Captcha_WaitAnswer:
    #    PlayerAutoCheckOnline.CaptchaAnswerErr(curPlayer, tick, False)
    #
    #    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_Captcha_WaitSign, PlayerAutoCheckOnline.Def_Captcha_Safe)
    #
    #===========================================================================
    #@warning: 等字段统一修改,删除双倍经验BUFF
    #PlayerDoubleExpSys.DeleteDoubleExpBuff(curPlayer, ChConfig.Def_DoubleExpNote_StopOff)
    
    #设置RouteServerInitOK字典
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_RouteServerInitOK, 0)
@@ -3269,21 +3212,32 @@
    # 活跃度奖励
    if rewardType == ChConfig.Def_RewardType_Activity:
        PlayerActivity.GetActivityAward(curPlayer, dataEx)
    # 活跃放置奖励
    elif rewardType == ChConfig.Def_RewardType_ActivityPlace:
        PlayerActivity.GetActivityPlaceReward(curPlayer)
    # 每日任务奖励
    elif rewardType == ChConfig.Def_RewardType_DailyTask:
        PlayerActivity.GetDailyTaskAward(curPlayer, dataEx)
    # 成就奖励
    elif rewardType == ChConfig.Def_RewardType_Success:
        PlayerSuccess.GetSuccessAward(curPlayer, dataEx)
    # 仙树免费减时
    elif rewardType == ChConfig.Def_RewardType_TreeFreeTime:
        PlayerTree.FreeReduceTreeLVTime(curPlayer)
    # 广告奖励
    elif rewardType == ChConfig.Def_RewardType_ADAward:
        OnGetADAward(curPlayer, dataEx)
    # 历练秘笈升级
    elif rewardType == ChConfig.Def_RewardType_LLMJLVUp:
        PlayerLLMJ.OnLLMJLVUp(curPlayer)
    # 公会讨伐领取宝箱奖励
    elif rewardType == ChConfig.Def_RewardType_FamilyTaofaBox:
        PlayerFamilyTaofa.GetTaofaBoxAward(curPlayer)
    # 阵容推荐奖励
    elif rewardType == ChConfig.Def_RewardType_LineupRecommend:
        PlayerHero.GetLineupRecommendAward(curPlayer, dataEx, dataExStr)
    # 每日免费直购礼包
    elif rewardType == ChConfig.Def_RewardType_DayFreeGoldGift:
        PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer)
    # 仙盟每日福利奖励
    #elif rewardType == ChConfig.Def_RewardType_FamilyDayAward:
    #    PlayerFamily.GetFamilyDayAward(curPlayer)
    # 玩家等级奖励
    elif rewardType == ChConfig.Def_RewardType_LVAward:
        PlayerLVAward.GetPlayerLVAward(curPlayer, dataEx)
@@ -3308,9 +3262,6 @@
    # 领取boss复活活动奖励
    elif rewardType == ChConfig.Def_RewardType_BossReborn:
        PlayerBossReborn.GetBossRebornActionAward(curPlayer, dataEx)
    # 领取分包下载奖励
    elif rewardType == ChConfig.Def_RewardType_DownLoad:
        GetDownloadAward(curPlayer, dataEx)
    # 领取许愿池奖励
    elif rewardType == ChConfig.Def_RewardType_WishingWell:
        PlayerWishingWell.DoGetWishingAward(curPlayer)
@@ -3356,12 +3307,6 @@
    # 跨服妖魔boss伤害奖励
    elif rewardType == ChConfig.Def_RewardType_CrossYaomoBossHurt:
        PlayerCrossYaomoBoss.GetCrossYaomoBossHurtAward(curPlayer, dataEx, tick)
    # 古宝特殊效果物品奖励
    #elif rewardType == ChConfig.Def_RewardType_GubaoItemEff:
    #    PlayerGubao.GetGubaoItemEffAward(curPlayer, dataEx, dataExStr)
    # 成就积分奖励
    elif rewardType == ChConfig.Def_RewardType_SuccessScore:
        PlayerSuccess.GetSuccessScoreAward(curPlayer, dataEx)
    # 买一送多活动免费奖励
    elif rewardType == ChConfig.Def_RewardType_BuyOne:
        PlayerActBuyOne.GetBuyOneFreeAward(curPlayer, dataEx, dataExStr)
@@ -3844,9 +3789,9 @@
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    
    #防外挂 不可移动
    if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
                                      == ChConfig.Def_AutoCheck_State_Danger:
        return
    #if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
    #                                  == ChConfig.Def_AutoCheck_State_Danger:
    #    return
    if not PYPlayerNormalMove(curPlayer, clientPack, tick):
        posX, posY = curPlayer.GetPosX(), curPlayer.GetPosY()
@@ -3999,64 +3944,6 @@
    sendPack.MoveType = moveType
    # NotifyAll 做过滤或者数量处理
    PlayerControl.PyNotifyAll(curPlayer, sendPack, False, 0)
    return
def GiveDownloadPatchAward(curPlayer):
    ## 发放下载补丁包奖励
    playerID = curPlayer.GetPlayerID()
    patchAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 4)
    curAwardNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadPatchAward)
    if curAwardNum == patchAwardNum:
        GameWorld.DebugLog("已发放下载补丁包奖励! curAwardNum(%s) == patchAwardNum(%s)" % (curAwardNum, patchAwardNum), playerID)
        return
    awardItemList = IpyGameDataPY.GetFuncEvalCfg('DownReward', 3)
    if not awardItemList:
        return
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadPatchAward, patchAwardNum)
    GameWorld.DebugLog("发放补丁包下载奖励: curAwardNum=%s,patchAwardNum=%s" % (curAwardNum, patchAwardNum), playerID)
    PlayerControl.SendMailByKey("DownloadPatchAward", [playerID], awardItemList)
    return
def GetDownloadAward(curPlayer, dataEx):
    ##分包下载奖励 dataEx 0直接领取 1发邮件
    playerID = curPlayer.GetPlayerID()
    downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 5)
    curAwardNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState)
    if curAwardNum == downloadAwardNum:
        GameWorld.DebugLog("已领取分包奖励! curAwardNum(%s) == downloadAwardNum(%s)" % (curAwardNum, downloadAwardNum), playerID)
        return
    awardItemList = IpyGameDataPY.GetFuncEvalCfg('DownReward', 1)
    if not awardItemList:
        return
    # 检查背包
    if dataEx == 0:
        needSpace = len(awardItemList)
        packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
        if needSpace > packSpace:
            PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
            return
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadAwardState, downloadAwardNum)
    GameWorld.DebugLog("领取分包下载奖励: curAwardNum=%s,downloadAwardNum=%s" % (curAwardNum, downloadAwardNum), playerID)
    if dataEx == 1:
        PlayerControl.SendMailByKey('SubpackageDownload', [curPlayer.GetID()], awardItemList)
    else:
        for itemID, itemCnt, isBind in awardItemList:
            ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem])
    SyncPackDownloadAward(curPlayer)
    return
def SyncPackDownloadAward(curPlayer):
    #分包下载奖励记录通知
    downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 5)
    sendPack = ChPyNetSendPack.tagMCPackDownloadRecord()
    sendPack.Clear()
    sendPack.Record = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState) == downloadAwardNum
    NetPackCommon.SendFakePack(curPlayer, sendPack)
    return
def NotifyPlayerMove(curPlayer, posX, posY, npcID=0):