From d7f44d8d871a90c818bdb3ffe9a60af875b7100a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 30 九月 2025 10:12:23 +0800
Subject: [PATCH] 135 【挑战】战锤秘境-服务端(白骨盈野;副本基础;副本扫荡;广告奖励支持;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |  537 ++++++++++++++++++++---------------------------------------
 1 files changed, 186 insertions(+), 351 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index d50420b..4cb1330 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -19,7 +19,6 @@
 import ChConfig
 import BuffSkill
 import PlayerEventCounter
-import PlayerTeam
 import PlayerHorse
 import NPCCommon
 import SkillCommon
@@ -27,20 +26,16 @@
 import ChItem
 import ItemCommon
 import ItemControler
-import ChEquip
 import FunctionNPCCommon
 import PlayerGMOper
 import ReadChConfig
 import PetControl
 import OperControlManager
 import ShareDefine
-import PlayerAutoCheckOnline
-import PlayerGameWallow
 import NetPackCommon
 import ChPyNetSendPack
 import DataRecordPack
 import PlayerBillboard
-import UpdatePlayerName
 import PlayerOnlinePrize
 import PlayerLVAward
 import PlayerGoldGift
@@ -53,26 +48,13 @@
 import PlayerGoldInvest
 import PlayerActivity
 import FBCommon
-import BossHurtMng
 import PlayerWishingWell
 import PlayerSuccess
 import PlayerDienstgrad
 import PlayerFreeGoods
-import PlayerRecover
-import GameLogic_SkyTower
-import PlayerEquipDecompose
-import PlayerGreatMaster
-import PlayerGatherSoul
-import PlayerGatherTheSoul
-import PlayerFairyDomain
 import PlayerCrossRealmPK
 import PlayerCrossChampionship
-import PlayerCrossBattlefield
 import GameFuncComm
-import PlayerMagicWeapon
-import GameLogic_FamilyBoss
-import GameLogic_TrialTower
-import GameLogic_FamilyWar
 import PlayerBossReborn
 import PlayerWeekParty
 import PlayerFeastWeekParty
@@ -81,16 +63,12 @@
 import PlayerFeastWish
 import PlayerActLogin
 import PlayerTreasure
-import GameLogic_GodArea
 import PlayerRune
 import PlayerFamilyRedPacket
 import IpyGameDataPY
 import EventReport
 import OpenServerCampaign
-import PlayerVip
-import PlayerRefineStove
 import PassiveBuffEffMng
-import GameLogic_XMZZ
 import PlayerFlashSale
 import PlayerFlashGiftbag
 import PlayerDailyGiftbag
@@ -100,21 +78,13 @@
 import PlayerActCollectWords
 import PlayerActTotalRecharge
 import PlayerActRechargePrize
-import PlayerActGarbageSorting
-import PlayerActXianXiaMJ
-import PlayerActGubao
-import PlayerActHorsePetTrain
 import PlayerActLianqi
 import PlayerActGodGift
 import PlayerActFamilyCTGAssist
 import PlayerActRechargeRebateGold
 import PlayerActManyDayRecharge
 import PlayerActSingleRecharge
-import PlayerActHorsePetFeast
-import PlayerActBossTrial
 import PlayerSpringSale
-import PlayerFairyCeremony
-import PlayerNewFairyCeremony
 import GY_Query_BossFirstKill
 import PlayerCrossYaomoBoss
 import PlayerFeastRedPacket
@@ -128,9 +98,6 @@
 import PlayerTongTianLing
 import CrossRealmPlayer
 import ChNetSendPack
-import FamilyRobBoss
-import FBHelpBattle
-import PlayerAssist
 import PlayerArena
 import PyGameData
 import PlayerCoin
@@ -151,11 +118,10 @@
 import PlayerLove
 import GameObj
 import PlayerChangeJob
-import PlayerGuaji
 import PlayerFace
 import PlayerChatBox
 import PlayerXiangong
-import PlayerMineArea
+import PlayerGoldRush
 import PlayerActLoginNew
 import PlayerActBuyCountGift
 import PlayerActLunhuidian
@@ -173,6 +139,7 @@
 import PlayerHero
 import PlayerOnline
 import TurnAttack
+import ObjPool
 
 import datetime
 import time
@@ -290,9 +257,6 @@
     
     if PlayerControl.GetCrossMapID(curPlayer):
         CrossRealmPlayer.DoExitCrossRealm(curPlayer)
-        
-    if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene):
-        PlayerFB.DoExitCustomScene(curPlayer)
         
     PetControl.DoLogic_PetLoadMapOK(curPlayer)
     
@@ -482,7 +446,7 @@
     InitPlayerPack(curPlayer)
     
     if GameWorld.IsCrossServer():
-        SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick)
+        #SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick)
         # 重置所有技能CD
         
         DoPlayerLoginInMap(curPlayer, tick)
@@ -490,9 +454,7 @@
         DataRecordPack.DR_PlayerLogin(curPlayer)
         EventReport.WriteEvent_login(curPlayer)
         #---玩家上线, 宠物逻辑处理---
-        PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
-        
-        PlayerTeam.OnPlayerLoginCrossServer(curPlayer)
+        #PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
         return
     
     leaveServerSecond = PlayerControl.GetPlayerLeaveServerSecond(curPlayer)
@@ -505,7 +467,9 @@
         # 离线过久恢复为非跨服状态
         if PlayerControl.GetCrossMapID(curPlayer):
             PlayerControl.SetCrossMapID(curPlayer, 0)
-        
+            
+    __FirstLoginOnEnter(curPlayer)
+    
     TurnAttack.OnPlayerLogin(curPlayer)
     SyncGuideState(curPlayer)
     
@@ -515,18 +479,18 @@
     PlayerControl.UpdPlayerServerGroupID(curPlayer)
     
     #上线学习技能
-    SkillCommon.PlayerLoginCheckLearnSkill(curPlayer)
+    #SkillCommon.PlayerLoginCheckLearnSkill(curPlayer)
     
     #刷新技能CD
-    SkillCommon.PlayerLoginUpdateSkillCD(curPlayer, tick)
+    #SkillCommon.PlayerLoginUpdateSkillCD(curPlayer, tick)
     
     #通知玩家技能信息
-    __Sync_ClientSkill(curPlayer)
+    #__Sync_ClientSkill(curPlayer)
     #清除VIPbuff
     #BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_VIPExp_SkillTypeID, tick)
     
     #通知玩家的buff
-    __Sync_ClientBuff(curPlayer)
+    #__Sync_ClientBuff(curPlayer)
     
     #---刷新了玩家属性, 登陆只刷新一次,其他地方不用刷
     DoPlayerLoginInMap(curPlayer, tick)
@@ -539,14 +503,9 @@
     #DataRecordPack.DR_PlayerLogin(curPlayer)
     EventReport.WriteEvent_login(curPlayer)
     
-    __FirstLoginOnEnter(curPlayer)
-    
     # 合服首登处理
     __DoMixServerFirstLogin(curPlayer)
     PlayerBillboard.BillboardOnLogin(curPlayer)
-    
-    #上线时通知脱机挂时被击杀的离线时间
-    __Sync_PlayerOffline(curPlayer, tick)
     
     #玩家扩展信息
     __SyncPlayerInfoEx(curPlayer)
@@ -555,25 +514,11 @@
     GiveDownloadPatchAward(curPlayer)
     
     #PK模式
-    SyncPKModel(curPlayer)
-    
-    #大师
-    PlayerGreatMaster.MasterOnLogin(curPlayer)
-    
-    #通知VIP
-    PlayerVip.DoOnLogin(curPlayer, tick)
-    
-    #通知法宝精炼等级
-    PlayerRefineStove.DoOnLogin(curPlayer, tick)
+    #SyncPKModel(curPlayer)
     
     #---玩家上线, 宠物逻辑处理---
-    PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
-    PlayerPet.OnPlayerPetLogin(curPlayer)
-    
-    #PlayerLoginNotify(curPlayer, tick)
-    
-    #防沉迷计算下线累积时间
-    PlayerGameWallow.Calc_Wallow_OfflineTime(curPlayer, tick)
+    #PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
+    #PlayerPet.OnPlayerPetLogin(curPlayer)
     
     # 通知等级奖励领取记录
     PlayerLVAward.Sync_LVAwardGetRecordInfo(curPlayer)
@@ -582,24 +527,14 @@
     # 首充/天天首充/充值豪礼
     PlayerGoldGift.OnLogin(curPlayer)
     
-#    #通知功能首次触发情况
+    #通知功能首次触发情况
     GameFuncComm.Sync_FuncOpenState(curPlayer)
-#    
-#    #通知客户端签到信息
+    
+    #通知客户端签到信息
     PlayerSignDay.SignDayOnLogin(curPlayer)
     
     #通知玩家死亡时间
-    PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
-    #ClearPlayerDeadInfo(curPlayer)
-    
-    #充值活动玩家登入处理
-    #PlayerGoldAction.DoLogic_PlayerOnLogin(curPlayer)
-    
-    # 提示贵宾俱乐部信息
-    #PlayerVip.NoteVIPClubInfo(curPlayer)
-    
-    #角色改名次数
-    UpdatePlayerName.Sync_UpdatePlayerNameCount(curPlayer)
+    #PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
     
     # 坐骑相关通知
     PlayerHorse.PlayerHorseLogin(curPlayer)
@@ -617,13 +552,9 @@
     
     # 开服活动奖励信息
     OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
-
-    # 试炼之塔
-    GameLogic_TrialTower.OnFBPlayerLogin(curPlayer)
-    # 古神禁地
-    GameLogic_GodArea.GodAreaOnLogin(curPlayer)
+    
     # 采集NPC次数通知
-    NPCCommon.SyncCollNPCTime(curPlayer)
+    #NPCCommon.SyncCollNPCTime(curPlayer)
     
     # 每日活跃度
     PlayerActivity.OnLogin(curPlayer)
@@ -651,8 +582,6 @@
     #PlayerDienstgrad.RefreshBillBoardDienstgrad(curPlayer)
     # 称号
     PlayerDienstgrad.Sync_AllDienstgradOnLogin(curPlayer)
-    # 资源找回OnLogin
-    PlayerRecover.RecoverOnLogin(curPlayer)
     
     # 时装
     PlayerCoat.OnLogin_Coat(curPlayer)
@@ -660,7 +589,6 @@
     # 跨服PK
     PlayerCrossRealmPK.DoPlayerLogin(curPlayer)
     PlayerCrossChampionship.DoPlayerLogin(curPlayer)
-    PlayerCrossBattlefield.DoPlayerLogin(curPlayer)
     
     # 幸运云购
     PlayerLuckyCloudBuy.OnPlayerLogin(curPlayer)
@@ -672,7 +600,7 @@
     PlayerControl.NotifyPlayerAllCurrency(curPlayer)
     PlayerControl.NotifyUseMoneyTotal(curPlayer)
     #通知基础属性
-    NotifyPlayerBasePoint(curPlayer)
+    #NotifyPlayerBasePoint(curPlayer)
     
     #跨服充值排行
     CrossActCTGBillboard.OnPlayerLogin(curPlayer)
@@ -702,37 +630,21 @@
     PlayerActFamilyCTGAssist.OnPlayerLogin(curPlayer)
     #集字活动
     PlayerActCollectWords.OnPlayerLogin(curPlayer)
-    # 世界boss
-    BossHurtMng.OnLogin(curPlayer)
     ChItem.Sync_ItemDayUseCnt(curPlayer)
     # 符印登录通知
     PlayerRune.PlayerRuneLogin(curPlayer)
     # 仙盟红包登录通知
     PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
     PlayerFeastRedPacket.DoPlayerOnLogin(curPlayer)
-    # 法宝登录通知
-    PlayerMagicWeapon.PlayerMagicWeaponLogin(curPlayer)
     # 商店物品购买次数登录通知
     FunctionNPCCommon.ShopItemOnLogin(curPlayer)
     # 通知设置的被动功法
     #PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
-    #仙魔之争
-    GameLogic_XMZZ.OnXMZZLogin(curPlayer)
     PlayerOnlinePrize.OnPlayerLogin(curPlayer)
-    #装备分解
-    PlayerEquipDecompose.PlayerLogin(curPlayer)
-    #防沉迷
-    PlayerGameWallow.DoLogic_CheckWallow(curPlayer, tick)
-    # 协助
-    PlayerAssist.OnPlayerLogin(curPlayer)
     # 极品白拿
     PlayerFreeGoods.OnLogin(curPlayer)
     # BOSS复活活动
     PlayerBossReborn.OnLogin(curPlayer)
-    # boss历练
-    PlayerActBossTrial.OnPlayerLogin(curPlayer)
-    # 骑宠盛宴活动
-    PlayerActHorsePetFeast.OnLogin(curPlayer)
     # 周狂欢活动
     PlayerWeekParty.OnLogin(curPlayer)
     # 购买次数礼包活动
@@ -755,14 +667,6 @@
     PlayerFeastTravel.OnPlayerLogin(curPlayer)
     # 登录奖励活动
     PlayerActLogin.OnLogin(curPlayer)
-    # 垃圾分类活动
-    PlayerActGarbageSorting.OnPlayerLogin(curPlayer)
-    # 仙匣秘境活动
-    PlayerActXianXiaMJ.OnPlayerLogin(curPlayer)
-    # 古宝养成活动
-    PlayerActGubao.OnPlayerLogin(curPlayer)
-    # 骑宠养成活动
-    PlayerActHorsePetTrain.OnPlayerLogin(curPlayer)
     # 炼器活动
     PlayerActLianqi.OnPlayerLogin(curPlayer)
     # 天帝礼包活动
@@ -773,34 +677,21 @@
     PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
     # 转盘活动
     PlayerActTurntable.OnPlayerLogin(curPlayer)
-    # 仙界盛典活动
-    PlayerFairyCeremony.OnLogin(curPlayer)
-    # 新仙界盛典活动
-    PlayerNewFairyCeremony.OnLogin(curPlayer)
     # 分支下载奖励记录通知
     SyncPackDownloadAward(curPlayer)
     # 登录触发功能开启(老号处理)
     GameFuncComm.DoFuncOpenLogic(curPlayer)
     # 神兽
     PlayerDogz.OnPlayerLogin(curPlayer)
-    # 骑宠
-    FamilyRobBoss.OnPlayerLogin(curPlayer)
     # 许愿池
     PlayerWishingWell.OnLogin(curPlayer)
     #幸运鉴宝
     PlayerLuckyTreasure.OnLogin(curPlayer)
     # 小助手
     SyncLittleHelper(curPlayer)
-    # 副本助战
-    FBHelpBattle.DoPlayerLogin(curPlayer)
-    # 聚魂
-    PlayerGatherSoul.PlayerLogin(curPlayer)
-    PlayerGatherTheSoul.OnPlayerLogin(curPlayer)
-    #缥缈仙域
-    PlayerFairyDomain.OnLogin(curPlayer)
     PlayerFB.OnLogin(curPlayer)
     #技能专精信息
-    SkillShell.NotifyElementSkillInfo(curPlayer)
+    #SkillShell.NotifyElementSkillInfo(curPlayer)
     #Boss首杀
     GY_Query_BossFirstKill.OnPlayerLogin(curPlayer)
     #通天令
@@ -865,10 +756,10 @@
         PlayerZhanling.OnPlayerLogin(curPlayer)
         PlayerTask.OnPlayerLogin(curPlayer)
         PlayerTree.OnPlayerLogin(curPlayer)
-        PlayerMineArea.OnPlayerLogin(curPlayer)
-        PlayerGuaji.OnPlayerLogin(curPlayer)
+        PlayerGoldRush.OnPlayerLogin(curPlayer)
         PlayerActFamilyGCZ.OnPlayerLogin(curPlayer)
         PlayerTalk.OnPlayerLogin(curPlayer)
+        SyncADCntInfo(curPlayer)
         
         # 上线查询一次充值订单
         curPlayer.SendDBQueryRecharge()
@@ -903,6 +794,8 @@
     # 那么在DoPlayerLogin 中设置的数据将不会被保存, 如会导致第一个任务重复触发问题,记录多次发送
     EventReport.WriteEvent_Entry(curPlayer, 4)
     #EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer)
+     
+    curPlayer.SetFightPoint(1) # 初始化为1倍消耗
     
     #---补满血满魔---
     GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer))
@@ -930,6 +823,9 @@
         PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
         
     PlayerHero.OnPlayerFirstLogin(curPlayer)
+    
+    #淘金初始化
+    PlayerGoldRush.InitGoldEnergy(curPlayer)
     
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1)
     return
@@ -994,20 +890,6 @@
     
     # 同步排行榜
     PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
-    
-    # 天星塔全服过关记录
-    GameLogic_SkyTower.OnMixFirstLogin(curPlayer)
-    
-    # boss凭证
-    PlayerActBossTrial.OnMixFirstLogin(curPlayer)
-    # 仙匣秘境
-    PlayerActXianXiaMJ.OnMixFirstLogin(curPlayer)
-    # 古宝养成
-    PlayerActGubao.OnMixFirstLogin(curPlayer)
-    # 骑宠养成
-    PlayerActHorsePetTrain.OnMixFirstLogin(curPlayer)
-    # 重置玩家改名次数
-    #UpdatePlayerName.ResetChangeNameCnt(curPlayer)
     return
 #---------------------------------------------------------------------
         
@@ -1019,51 +901,6 @@
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_PlayerDeadCnt, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_DeadTime, 0)
     return
-
-##玩家登陆, 相关活动通知
-#@param curPlayer 玩家实例
-#@param tick 时间戳
-#@return 返回值无意义
-#@remarks 玩家登陆, 相关活动通知
-def PlayerLoginNotify(curPlayer, tick):
-    curTime = GameWorld.GetCurrentTime()
-    
-    #读取上线提示表
-    notifyByTimeSect = ReadChConfig.GetEvalChConfig('PlayerLoginNotify_TimeSect')     #某时间段内上线提示
-    notifyByDict = ReadChConfig.GetEvalChConfig('PlayerLoginNotify_Dict')             #根据字典值给提示
-    
-    #在规定时间段内上线给提示
-    DoNotifyByTimeSect(curPlayer, curTime, notifyByTimeSect)
-    #指定字典值内提示
-    DoNotifyByDict(curPlayer, notifyByDict)
-    return
-#---------------------------------------------------------------------
-##在活动规定时间段内上线给提示
-#@param curPlayer 玩家索引
-#@param curTime 传入时间
-#@param notifyInfo 提示信息
-#@return 返回值无意义
-#@remarks 在活动规定时间段内上线给提示
-def DoNotifyByTimeSect(curPlayer, curTime, notifyInfo):
-    for curNotify in notifyInfo:
-        #有时间段限制,验证时间段
-        if not GameWorld.IsAtActTime(curTime, curNotify[0]):
-            continue
-        
-        PlayerControl.NotifyCode(curPlayer, curNotify[1], curNotify[2])
-
-#---------------------------------------------------------------------
-##指定字典值内提示
-#@param curPlayer 玩家实例
-#@param notifyInfo 提示信息
-#@return 返回值无意义
-#@remarks 指定字典值内提示
-def DoNotifyByDict(curPlayer, notifyInfo):
-    gameWorld = GameWorld.GetGameWorld()
-    for curNotify in notifyInfo:
-        if gameWorld.GetGameWorldDictByKey(curNotify[0]) in curNotify[1]:
-            PlayerControl.NotifyCode(curPlayer, curNotify[2], curNotify[3])
-
 
 #---------------------------------------------------------------------
 ##通知背包详细信息
@@ -1158,54 +995,6 @@
     return
 
 #---------------------------------------------------------------------
-##上线时通知离线时间(离线挂机功能)
-# @param curPlayer 玩家实例
-# @param tick 时间戳
-# @return 返回值无意义
-# @remarks 上线时通知离线时间(离线挂机功能)
-def __Sync_PlayerOffline(curPlayer, tick):
-    #---等级限制---
-    if GameWorld.IsCrossServer():
-        return
-    
-#===============================================================================
-#    #---等级限制---
-#    lvLimit = ReadChConfig.GetEvalChConfig('OfflineSys_LVLimit')
-#    if curPlayer.GetLV() < lvLimit:
-#        return
-#    
-#    if GameWorld.IsCrossServer():
-#        return
-#    
-#    #当前离线时间(分)
-#    curOfflineMinutes = min(PlayerControl.GetPlayerLeaveServerMinute(curPlayer),
-#                            ChConfig.Def_UpperLimit_DWord)
-#    
-#    #防止服务器时间修改到过去得到负值
-#    if curOfflineMinutes < 0:
-#        GameWorld.ErrLog("Login Time Error, outTime: %s - loginTime :%s" % 
-#                         (curPlayer.GetLogoffTime(), GameWorld.GetCurrentDataTimeStr()),
-#                         curPlayer.GetPlayerID())
-#        curOfflineMinutes = 0
-#    
-#    #时间为分钟
-#    minTimeLimit, maxTimeLimit = ReadChConfig.GetEvalChConfig("OfflineSys_AllTimeUpperLimit")
-#    if curOfflineMinutes >= minTimeLimit:
-#        #总离线时间(分)
-#        allOfflineMinutes = min(curPlayer.GetOfflineMinutes() + curOfflineMinutes, maxTimeLimit)
-#        #记录离线总时间
-#        curPlayer.SetOfflineMinutes(int(allOfflineMinutes))
-#        GameWorld.DebugLog("设置离线奖励时间 %s,curOfflineMinutes=%s" % (allOfflineMinutes, curOfflineMinutes), curPlayer.GetPlayerID())
-#    else:
-#        GameWorld.DebugLog("离线时间过短,不计入离线奖励!curOfflineMinutes=%s" % curOfflineMinutes, curPlayer.GetPlayerID())
-#    
-#    #通知客户端离线时间
-# #    curPlayer.Syn_OfflineTimeRefresh(int(curOfflineMinutes))
-#    curPlayer.Syn_OfflineTimeQueryResult()
-#===============================================================================
-    return
-
-#---------------------------------------------------------------------
 ##玩家在地图服务器中登录ok,初始化自己
 #@param curPlayer 玩家实例
 #@param tick 时间戳
@@ -1234,16 +1023,7 @@
         PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
     if curPlayer.GetSight() != 0:
         PlayerControl.SetSight(curPlayer, 0)
-    #刷新玩家的视野
-    #if not GameWorld.IsCrossServer() and (PlayerControl.GetCrossMapID(curPlayer) or PlayerControl.GetCustomMapID(curPlayer)):
-    #    GameWorld.DebugLog("===登录本服地图时,处于跨服或自定义场景状态,不刷新视野!", curPlayer.GetPlayerID())
-    #    PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
-    #elif not GameWorld.IsCrossServer():
-    #    realmDifficulty = PlayerControl.GetMapRealmDifficulty(curPlayer)
-    #    if realmDifficulty:
-    #        GameWorld.DebugLog("===登录本服地图时,处于境界难度地图,自动设置难度! realmDifficulty=%s" % realmDifficulty, curPlayer.GetPlayerID())
-    #        PlayerControl.SetRealmDifficulty(curPlayer, realmDifficulty)
-    
+        
     PlayerState.ChangePlayerSigh(curPlayer, tick)
     
     if GameWorld.IsCrossServer():
@@ -1436,36 +1216,30 @@
 #@return 返回值无意义
 #@remarks 初始化玩家背包
 def InitPlayerPack(curPlayer) :
-    itemManager = curPlayer.GetItemManager()
-
+    
     #设置装备实际个数,默认最大个数
-    curPack = itemManager.GetPack(IPY_GameWorld.rptEquip)
-    curPack.SetCount(curPack.GetMaxCount())
+    PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptEquip, defaultMax=True, isSync=False)
     
     #初始化玩家背包
-    PlayerControl.Init_ItemPack(curPlayer)
+    PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptItem)
     
     #初始化玩家仓库
     #PlayerControl.Init_Warehouse(curPlayer)
     
     #初始化鉴定背包,默认最大个数用于存放主线掉落
-    curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptIdentify)
-    curPack.SetCount(curPack.GetMaxCount())
-    curPack.Sync_PackCanUseCount()
+    PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptIdentify, defaultMax=True)
     
     #初始化英雄背包
-    PlayerControl.Init_HeroPack(curPlayer)
+    PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptHero)
     
     #初始化临时交换背包,默认最大个数
-    curPack = itemManager.GetPack(ShareDefine.rptTempSwap)
-    curPack.SetCount(curPack.GetMaxCount())
+    PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTempSwap, defaultMax=True, isSync=False)
     
     #初始化临时存放背包,默认最大个数
-    curPack = itemManager.GetPack(ShareDefine.rptTempItem)
-    curPack.SetCount(curPack.GetMaxCount())
+    PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTempItem, defaultMax=True, isSync=False)
     
     #初始化寻宝背包
-    PlayerControl.Init_TreasurePack(curPlayer)
+    PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTreasure)
     
     #初始化神兽物品背包
     #curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzItem)
@@ -1492,6 +1266,8 @@
     #curPack = itemManager.GetPack(ShareDefine.rptPet)
     #curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptPet))
     #curPack.Sync_PackCanUseCount()
+    
+    ItemCommon.SyncPackBuyCnt(curPlayer)
     
     #通知玩家物品信息
     __Sync_PackDetel(curPlayer)
@@ -1590,16 +1366,7 @@
         PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
     if curPlayer.GetSight() != 0:
         PlayerControl.SetSight(curPlayer, 0)
-    #刷新自己的视野
-    #if not GameWorld.IsCrossServer() and (PlayerControl.GetCrossMapID(curPlayer) or curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene)):
-    #    GameWorld.DebugLog("===本服LoadMapOK时玩家处于跨服或自定义场景状态,不设置可见!", curPlayer.GetPlayerID())
-    #    PlayerControl.SetPlayerSightLevel(curPlayer, curPlayer.GetID())
-    #elif not GameWorld.IsCrossServer():
-    #    realmDifficulty = PlayerControl.GetMapRealmDifficulty(curPlayer)
-    #    if realmDifficulty:
-    #        GameWorld.DebugLog("===本服LoadMapOK时玩家处于境界难度地图,自动设置难度!realmDifficulty=%s" % realmDifficulty, curPlayer.GetPlayerID())
-    #        PlayerControl.SetRealmDifficulty(curPlayer, realmDifficulty)
-    
+        
     curPlayer.RefreshView()
     curPlayer.SetVisible(True)
         
@@ -1649,9 +1416,7 @@
         #=======================================================================
             #此时已经是下马状态不需要刷状态 但是需要通知客户端下马
             PlayerHorse.PlayerRideHorseDown(curPlayer, False)
-        
-    PlayerTeam.PlayerLoginSetTeam(curPlayer, tick)
-    
+            
     #激活玩家(保证持续性Buff处理间隔)
     PlayerControl.SetIsNeedProcess(curPlayer, True)
 
@@ -1710,13 +1475,7 @@
         curPlayer.SetFaction(ChConfig.CampType_Neutral)
         BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_SkillID_Justice, tick)
         BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_SkillID_Evil, tick)
-    
-    
-    #再次请求双倍经验是否领取
-    #PlayerDoubleExpSys.ChangeMapAfter_CalcDoubleExpTime(curPlayer, tick)
-    
-    #PlayerVip.SetStartCalcVIPTick(curPlayer, tick)
-    
+        
     #强制切换PK模式
     initAttackModel = curMap.GetInitAttackModel()
     if curPlayer.GetAttackMode() != initAttackModel:
@@ -2375,12 +2134,8 @@
     #流向记录玩家下线
     DataRecordPack.DR_PlayerDisconnect(curPlayer)
     
-    #VIP时间
-    #PlayerVip.CalcVIPTimeByTick(curPlayer, tick, False)
     #在线时间
     PlayerOnlinePrize.CalcOnlineTime(curPlayer)
-    #首充提示时间
-    PlayerGoldGift.UpdateFirstGoldTime(curPlayer)
     #玩家未回图形验证码下线将会记录错误次数
     #===========================================================================
     # if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_Captcha_WaitSign) \
@@ -2982,11 +2737,7 @@
                     return
                 
     elif rebornType == ChConfig.rebornType_UseItem:
-        if crossMapID == ChConfig.Def_FBMapID_CrossBattlefield:
-            rebornItemID = IpyGameDataPY.GetFuncCfg("CrossBattlefieldReborn", 1)
-            rebornItem = ItemCommon.FindItemInPackByItemID(curPlayer, rebornItemID, IPY_GameWorld.rptItem)
-        else:
-            rebornItem = ItemCommon.FindItemInPackByEffectEx(curPlayer, ChConfig.Def_Effect_Reborn)
+        rebornItem = ItemCommon.FindItemInPackByEffectEx(curPlayer, ChConfig.Def_Effect_Reborn)
         if not rebornItem:
             GameWorld.ErrLog("复活道具不足,无法原地复活! ", playerID)                
             return
@@ -3321,7 +3072,7 @@
 #  @param transportType 传送类型
 #  @return 是否vip等级限制
 def TransportVipLvRestrict(curPlayer, transportType):
-    return PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_FreeTransport)
+    return 0
 
 
 
@@ -3477,24 +3228,28 @@
     NetPackCommon.SendFakePack(curPlayer, awardReceiveState)
     return
 
-## 领取奖励表奖励
-#  @param None None
-#  @return None
-def ClientPlayerGetReward(index, clientData, tick):
-    playerManager = GameWorld.GetPlayerManager()
-    curPlayer = playerManager.GetPlayerByIndex(index)
-    
-    # 背包空间不足
-    if not ItemCommon.CheckPackHasSpace(curPlayer, IPY_GameWorld.rptItem):
-        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_676165", [IPY_GameWorld.rptItem])
-        return
-    
-    rewardType = clientData.RewardType
-    
-    #通知GameServer领取奖励
-    resultName = str(rewardType)
-    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, 'PlayerGetReward',
-                                                                  resultName, len(resultName))
+def PlayerOnDay(curPlayer):
+    #玩法前瞻奖励
+    gameNoticeAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GameNoticeAwardState)
+    if gameNoticeAwardState:
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GameNoticeAwardState, 0)
+        Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_GameNotice, 0)
+    #每日分享奖励重置
+    shareGameAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ShareGameAwardState)
+    if shareGameAwardState:
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShareGameAwardState, 0)
+        Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_ShareGame, 0)
+    #开服每日奖励
+    awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OpenSererDailyAward)
+    if awardState:
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OpenSererDailyAward, 0)
+        Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_OpenServerDailyAward, 0)
+    #开服每日奖励
+    awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RechargeDayAward)
+    if awardState:
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RechargeDayAward, 0)
+        Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_RechargeDayAward, 0)
+    ADCntOnDay(curPlayer)
     return
 
 #//A5 04 玩家领取奖励 #tagCMPlayerGetReward
@@ -3524,30 +3279,24 @@
     # 活跃放置奖励
     elif rewardType == ChConfig.Def_RewardType_ActivityPlace:
         PlayerActivity.GetActivityPlaceReward(curPlayer)
-    # 挂机奖励
-    elif rewardType == ChConfig.Def_RewardType_Guaji:
-        PlayerGuaji.OnGetGuajiAward(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_DayFreeGoldGift:
         PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer)
-    # 仙盟联赛冠军仙盟每日俸禄奖励
-    elif rewardType == ChConfig.Def_RewardType_ChampionFamilyDailyReward:
-        GameLogic_FamilyWar.GetChampionFamilyDailyReward(curPlayer)
-    # 仙魔之争胜利场数奖励
-    elif rewardType == ChConfig.Def_RewardType_XMZZWinCnt:
-        GameLogic_XMZZ.GetXMZZWinPrize(curPlayer, dataEx)
     # 仙盟每日福利奖励
     elif rewardType == ChConfig.Def_RewardType_FamilyDayAward:
         PlayerFamily.GetFamilyDayAward(curPlayer)
     # 玩家等级奖励
     elif rewardType == ChConfig.Def_RewardType_LVAward:
         PlayerLVAward.GetPlayerLVAward(curPlayer, dataEx)
-    # 仙宝寻主奖励
-    elif rewardType == ChConfig.Def_RewardType_XBXZ:
-        PlayerMagicWeapon.OnGetXBXZAward(curPlayer, dataEx)
     # 首充礼包奖励
-    elif rewardType == ChConfig.Def_RewardType_GoldGiftFirst:
-        PlayerGoldGift.GetPlayerGoldGiftFirst(curPlayer, dataEx)
+    elif rewardType == ChConfig.Def_RewardType_FirstCharge:
+        PlayerGoldGift.GetPlayerFirstCharge(curPlayer, dataEx, dataExStr)
     # 领取极品白拿
     elif rewardType == ChConfig.Def_RewardType_FreeGoods:
         PlayerFreeGoods.OnGetFreeGoods(curPlayer, dataEx)
@@ -3566,12 +3315,6 @@
     # 领取boss复活活动奖励
     elif rewardType == ChConfig.Def_RewardType_BossReborn:
         PlayerBossReborn.GetBossRebornActionAward(curPlayer, dataEx)
-    # 领取仙界盛典充值大礼
-    elif rewardType == ChConfig.Def_RewardType_FCRecharge:
-        PlayerFairyCeremony.GetFCRechargeAward(curPlayer)
-    # 领取仙界盛典全民来嗨
-    elif rewardType == ChConfig.Def_RewardType_FCParty:
-        PlayerFairyCeremony.GetFCPartyAward(curPlayer, dataEx)
     # 领取分包下载奖励
     elif rewardType == ChConfig.Def_RewardType_DownLoad:
         GetDownloadAward(curPlayer, dataEx)
@@ -3590,12 +3333,6 @@
     # 领取登录奖励活动奖励
     elif rewardType == ChConfig.Def_RewardType_ActLoginAwardAct:
         PlayerActLogin.GetLoginAwardActionAward(curPlayer, dataEx, dataExStr)
-    # 领取新仙界盛典充值大礼
-    elif rewardType == ChConfig.Def_RewardType_NewFairyCRecharge:
-        PlayerNewFairyCeremony.GetFCRechargeAward(curPlayer)
-    # 领取新仙界盛典全民来嗨
-    elif rewardType == ChConfig.Def_RewardType_NewFairyCParty:
-        PlayerNewFairyCeremony.GetFCPartyAward(curPlayer, dataEx)
     # 领取节日巡礼活动奖励
     elif rewardType == ChConfig.Def_RewardType_FeastWeekPartyAct:
         PlayerFeastWeekParty.GetFeastWeekPartyActionAward(curPlayer, dataEx, dataExStr)
@@ -3650,18 +3387,12 @@
     # 轮回殿奖励
     elif rewardType == ChConfig.Def_RewardType_LunhuidianAward:
         PlayerActLunhuidian.GetLunhuidianAward(curPlayer, dataEx, dataExStr)
-    #缥缈奇遇领取
-    elif rewardType == ChConfig.Def_RewardType_FairyAdventuresAward:
-        PlayerFairyDomain.GetFairyAdventuresAward(curPlayer, dataEx, dataExStr)
     #历史累计充值领取
     elif rewardType == ChConfig.Def_RewardType_HistoryChargeAward:
         PlayerGoldGift.OnGetHistoryRechargeAward(curPlayer, dataEx)
     #在线特惠充值额外奖励
     elif rewardType == ChConfig.Def_RewardType_OnlineRechargeTH:
         PlayerCoin.OnGetOnlineRechargeTH(curPlayer)
-    #天星塔全服挑战层领奖
-    elif rewardType == ChConfig.Def_RewardType_SkyTowerServerChallengeReward:
-        GameLogic_SkyTower.OnGetSkyTowerServerChallengeReward(curPlayer, dataEx, dataExStr)
     #创角奖励
     elif rewardType == ChConfig.Def_RewardType_CreateRole:
         OnGetCreateRoleAward(curPlayer)
@@ -3671,9 +3402,6 @@
     #境界渡劫任务条件奖励
     elif rewardType == ChConfig.Def_RewardType_RealmLVUpTask:
         PlayerPrestigeSys.GetRealmLVUpTaskAward(curPlayer, dataEx)
-    #仙盟boss伤害奖励
-    elif rewardType == ChConfig.Def_RewardType_FamilyBossHurt:
-        GameLogic_FamilyBoss.GetFamilyBossHurtAward(curPlayer, dataEx, dataExStr)
     #打包直购礼包奖励
     elif rewardType == ChConfig.Def_RewardType_DailyPackBuyGift:
         PlayerGoldGift.GetDailyPackBuyGift(curPlayer, dataEx)
@@ -3683,9 +3411,6 @@
     #战令奖励
     elif rewardType == ChConfig.Def_RewardType_Zhanling:
         PlayerZhanling.GetZhanlingReward(curPlayer, dataEx, dataExStr)
-    #福地聚宝盆奖励
-    elif rewardType == ChConfig.Def_RewardType_MineTreasure:
-        PlayerMineArea.GetMineTreasureAward(curPlayer, dataEx)
     #玩法前瞻奖励
     elif rewardType == ChConfig.Def_RewardType_GameNotice:
         OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GameNoticeAwardState, IpyGameDataPY.GetFuncEvalCfg("GameNoticeReward", 1))
@@ -3708,7 +3433,71 @@
     elif rewardType == ChConfig.Def_RewardType_RechargeDayAward:
         OnGetRechargeDayAward(curPlayer, rewardType)
     return
+
+def OnGetADAward(curPlayer, adID):
+    ipyData = IpyGameDataPY.GetIpyGameData("ADAward", adID)
+    if not ipyData:
+        return
+    adCntMax = ipyData.GetADCntMax()
+    adCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID)
+    if adCnt >= adCntMax:
+        GameWorld.DebugLog("今日该广告奖励已达上限! adID=%s,adCnt=%s > %s" % (adID, adCnt, adCntMax))
+        return
+    adCnt += 1
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ADCnt % adID, adCnt)
+    awardItemList = ipyData.GetADAwardItemList()
+    adMapID = ipyData.GetADMapID()
+    GameWorld.DebugLog("领取广告奖励! adID=%s,adCnt=%s,adMapID=%s,awardItemList=%s" % (adID, adCnt, adMapID, awardItemList))
+    SyncADCntInfo(curPlayer, [adID])
     
+    if adMapID:
+        FBCommon.AddFBADCnt(curPlayer, adMapID)
+        
+    if awardItemList:
+        ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["ADAward", False, {}])
+        
+    return
+
+def ADCntOnDay(curPlayer):
+    syncADIDList = []
+    ipyDataMgr = IpyGameDataPY.IPY_Data()
+    for index in xrange(ipyDataMgr.GetADAwardCount()):
+        ipyData = ipyDataMgr.GetADAwardByIndex(index)
+        adID = ipyData.GetADID()
+        if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID):
+            continue
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ADCnt % adID, 0)
+        syncADIDList.append(adID)
+    if syncADIDList:
+        SyncADCntInfo(curPlayer, syncADIDList)
+    return
+
+def SyncADCntInfo(curPlayer, syncADIDList=None):
+    if not syncADIDList:
+        ipyDataMgr = IpyGameDataPY.IPY_Data()
+        adIDList = [ipyDataMgr.GetADAwardByIndex(i).GetADID() for i in xrange(ipyDataMgr.GetADAwardCount())]
+    else:
+        adIDList = syncADIDList
+        
+    adInfoList = []
+    for adID in adIDList:
+        adCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID)
+        if not adCnt and syncADIDList == None:
+            continue
+        adInfo = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfo)
+        adInfo.ADID = adID
+        adInfo.ADCnt = adCnt
+        adInfoList.append(adInfo)
+        
+    if not adInfoList:
+        return
+    
+    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfoList)
+    clientPack.ADInfoList = adInfoList[:255]
+    clientPack.Count = len(clientPack.ADInfoList)
+    NetPackCommon.SendFakePack(curPlayer, clientPack)
+    return
+
 def OnGetRechargeDayAward(curPlayer, rewardType):
     ## 领取累充每日奖励,取最高档
     realTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealTotal)
@@ -3851,7 +3640,6 @@
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
     if not curPlayer:
         return
-    BossHurtMng.OnQueryBossHurtList(curPlayer, clientData)
     return
 
 
@@ -4325,3 +4113,50 @@
     #PlayerControl.SetRealmDifficulty(curPlayer, clientData.RealmDifficulty)
     return
 
+#// A0 08 查看通用记录 #tagCSViewGameRec
+#
+#struct    tagCSViewGameRec
+#{
+#    tagHead        Head;
+#    WORD         RecType;        //记录类型
+#    DWORD         RecID;        //自定义记录ID
+#};
+def OnViewGameRec(index, clientData, tick):
+    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+    recType = clientData.RecType
+    recID = clientData.RecID
+    if recType not in ShareDefine.Def_GameRecTypeList:
+        return
+    if recType in ShareDefine.Def_ViewGameRecSelfList:
+        recID = curPlayer.GetPlayerID()
+    recTypeIDMgr = DBDataMgr.GetGameRecMgr().GetRecTypeIDMgr(recType, recID)
+    SyncGameRecInfo(curPlayer, recType, recID, recTypeIDMgr.GetDataList())
+    return
+
+def SyncGameRecInfo(curPlayer, recType, recID, recDataList):
+    recList = []
+    for recData in recDataList:
+        if not recData:
+            continue
+        rec = ChPyNetSendPack.tagSCGameRec()
+        rec.Time = recData.GetTime()
+        rec.Value1 = recData.GetValue1()
+        rec.Value2 = recData.GetValue2()
+        rec.Value3 = recData.GetValue3()
+        rec.Value4 = recData.GetValue4()
+        rec.Value5 = recData.GetValue5()
+        rec.Value6 = recData.GetValue6()
+        rec.Value7 = recData.GetValue7()
+        rec.Value8 = recData.GetValue8()
+        rec.UserData = recData.GetUserData()
+        rec.UserDataLen = len(rec.UserData)
+        recList.append(rec)
+        
+    clientPack = ChPyNetSendPack.tagSCGameRecInfo()
+    clientPack.Clear()
+    clientPack.RecType = recType
+    clientPack.RecID = recID
+    clientPack.RecList = recList
+    clientPack.Count = len(clientPack.RecList)
+    NetPackCommon.SendFakePack(curPlayer, clientPack)
+    return

--
Gitblit v1.8.0