From 26958aff1b844a743a805b4f9075bee800b72a46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 14:35:37 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |  414 ++++++++++++++++++++++++++--------------------------------
 1 files changed, 184 insertions(+), 230 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 bfc75ea..93a4679 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -26,7 +26,6 @@
 import ChItem
 import ItemCommon
 import ItemControler
-import ChEquip
 import FunctionNPCCommon
 import PlayerGMOper
 import ReadChConfig
@@ -37,8 +36,6 @@
 import ChPyNetSendPack
 import DataRecordPack
 import PlayerBillboard
-import UpdatePlayerName
-import PlayerOnlinePrize
 import PlayerLVAward
 import PlayerGoldGift
 import PlayerSignDay
@@ -46,19 +43,16 @@
 import PlayerPrestigeSys
 import PlayerFamily
 import PlayerLoginDayAward
-import PlayerGodWeapon
 import PlayerGoldInvest
 import PlayerActivity
 import FBCommon
 import PlayerWishingWell
 import PlayerSuccess
-import PlayerDienstgrad
 import PlayerFreeGoods
-import PlayerRecover
-import PlayerEquipDecompose
 import PlayerCrossRealmPK
 import PlayerCrossChampionship
 import GameFuncComm
+import PlayerFamilyTaofa
 import PlayerBossReborn
 import PlayerWeekParty
 import PlayerFeastWeekParty
@@ -68,10 +62,8 @@
 import PlayerActLogin
 import PlayerTreasure
 import PlayerRune
-import PlayerFamilyRedPacket
 import IpyGameDataPY
 import EventReport
-import OpenServerCampaign
 import PassiveBuffEffMng
 import PlayerFlashSale
 import PlayerFlashGiftbag
@@ -82,22 +74,15 @@
 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 GY_Query_BossFirstKill
 import PlayerCrossYaomoBoss
-import PlayerFeastRedPacket
 import PlayerLuckyCloudBuy
 import PlayerLuckyTreasure
 import Item_ResetAttrPoint
@@ -122,17 +107,15 @@
 import PlayerCustomAward
 import PlayerZhanling
 import PlayerTree
+import PlayerLLMJ
 import PlayerLianTi
 import PlayerTask
 import PlayerYinji
 import PlayerLove
 import GameObj
 import PlayerChangeJob
-import PlayerGuaji
-import PlayerFace
-import PlayerChatBox
 import PlayerXiangong
-import PlayerMineArea
+import PlayerGoldRush
 import PlayerActLoginNew
 import PlayerActBuyCountGift
 import PlayerActLunhuidian
@@ -141,6 +124,7 @@
 import PlayerActTask
 import PlayerMail
 import DBDataMgr
+import UpdatePlayerName
 import GameServerRefresh
 import IPY_ServerDefine
 import CommFunc
@@ -150,6 +134,8 @@
 import PlayerHero
 import PlayerOnline
 import TurnAttack
+import PlayerHJG
+import ObjPool
 
 import datetime
 import time
@@ -267,9 +253,6 @@
     
     if PlayerControl.GetCrossMapID(curPlayer):
         CrossRealmPlayer.DoExitCrossRealm(curPlayer)
-        
-    if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene):
-        PlayerFB.DoExitCustomScene(curPlayer)
         
     PetControl.DoLogic_PetLoadMapOK(curPlayer)
     
@@ -511,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)
@@ -522,9 +504,6 @@
     
     #玩家扩展信息
     __SyncPlayerInfoEx(curPlayer)
-    
-    #补丁包下载奖励
-    GiveDownloadPatchAward(curPlayer)
     
     #PK模式
     #SyncPKModel(curPlayer)
@@ -549,9 +528,6 @@
     #通知玩家死亡时间
     #PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
     
-    #角色改名次数
-    #UpdatePlayerName.Sync_UpdatePlayerNameCount(curPlayer)
-    
     # 坐骑相关通知
     PlayerHorse.PlayerHorseLogin(curPlayer)
     
@@ -565,15 +541,6 @@
     
     # 通知累计登陆礼
     PlayerLoginDayAward.OnLoginNotifyLoginDayAward(curPlayer)
-    
-    # 开服活动奖励信息
-    OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
-    
-    # 采集NPC次数通知
-    #NPCCommon.SyncCollNPCTime(curPlayer)
-    
-    # 每日活跃度
-    PlayerActivity.OnLogin(curPlayer)
     
     # 副本进入时间
     FBCommon.FBOnLogin(curPlayer)
@@ -594,12 +561,6 @@
 #    Sync_AutoFightSetting(curPlayer)
     
     PlayerFamily.OnPlayerLogin(curPlayer, tick)
-    #改到 GameServerRefresh GameSever_PlayerInitOK后处理才能保证玩家已经在Gameserver注册
-    #PlayerDienstgrad.RefreshBillBoardDienstgrad(curPlayer)
-    # 称号
-    PlayerDienstgrad.Sync_AllDienstgradOnLogin(curPlayer)
-    # 资源找回OnLogin
-    PlayerRecover.RecoverOnLogin(curPlayer)
     
     # 时装
     PlayerCoat.OnLogin_Coat(curPlayer)
@@ -651,24 +612,14 @@
     ChItem.Sync_ItemDayUseCnt(curPlayer)
     # 符印登录通知
     PlayerRune.PlayerRuneLogin(curPlayer)
-    # 仙盟红包登录通知
-    PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
-    PlayerFeastRedPacket.DoPlayerOnLogin(curPlayer)
     # 商店物品购买次数登录通知
     FunctionNPCCommon.ShopItemOnLogin(curPlayer)
     # 通知设置的被动功法
     #PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
-    PlayerOnlinePrize.OnPlayerLogin(curPlayer)
-    #装备分解
-    #PlayerEquipDecompose.PlayerLogin(curPlayer)
     # 极品白拿
     PlayerFreeGoods.OnLogin(curPlayer)
     # BOSS复活活动
     PlayerBossReborn.OnLogin(curPlayer)
-    # boss历练
-    PlayerActBossTrial.OnPlayerLogin(curPlayer)
-    # 骑宠盛宴活动
-    PlayerActHorsePetFeast.OnLogin(curPlayer)
     # 周狂欢活动
     PlayerWeekParty.OnLogin(curPlayer)
     # 购买次数礼包活动
@@ -691,14 +642,6 @@
     PlayerFeastTravel.OnPlayerLogin(curPlayer)
     # 登录奖励活动
     PlayerActLogin.OnLogin(curPlayer)
-    # 垃圾分类活动
-    PlayerActGarbageSorting.OnPlayerLogin(curPlayer)
-    # 仙匣秘境活动
-    PlayerActXianXiaMJ.OnPlayerLogin(curPlayer)
-    # 古宝养成活动
-    PlayerActGubao.OnPlayerLogin(curPlayer)
-    # 骑宠养成活动
-    PlayerActHorsePetTrain.OnPlayerLogin(curPlayer)
     # 炼器活动
     PlayerActLianqi.OnPlayerLogin(curPlayer)
     # 天帝礼包活动
@@ -709,8 +652,6 @@
     PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
     # 转盘活动
     PlayerActTurntable.OnPlayerLogin(curPlayer)
-    # 分支下载奖励记录通知
-    SyncPackDownloadAward(curPlayer)
     # 登录触发功能开启(老号处理)
     GameFuncComm.DoFuncOpenLogic(curPlayer)
     # 神兽
@@ -780,18 +721,20 @@
         PyMongoMain.GetUserCtrlDB().OnPlayerLogin(curPlayer)
         PlayerHero.OnPlayerLogin(curPlayer)
         PlayerMail.OnPlayerLogin(curPlayer)
-        PlayerChatBox.OnPlayerLogin(curPlayer)
-        PlayerFace.OnPlayerLogin(curPlayer)
+        PlayerHJG.OnPlayerLogin(curPlayer)
         PlayerXiangong.OnPlayerLogin(curPlayer)
         PlayerGubao.OnPlayerLogin(curPlayer)
         PlayerShentong.OnPlayerLogin(curPlayer)
         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)
+        UpdatePlayerName.OnPlayerLogin(curPlayer)
+        PlayerActivity.OnPlayerLogin(curPlayer)
+        PlayerLLMJ.OnPlayerLogin(curPlayer)
         
         # 上线查询一次充值订单
         curPlayer.SendDBQueryRecharge()
@@ -826,6 +769,8 @@
     # 那么在DoPlayerLogin 中设置的数据将不会被保存, 如会导致第一个任务重复触发问题,记录多次发送
     EventReport.WriteEvent_Entry(curPlayer, 4)
     #EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer)
+     
+    curPlayer.SetFightPoint(1) # 初始化为1倍消耗
     
     #---补满血满魔---
     GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer))
@@ -854,6 +799,9 @@
         
     PlayerHero.OnPlayerFirstLogin(curPlayer)
     
+    #淘金初始化
+    PlayerGoldRush.InitGoldEnergy(curPlayer)
+    
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1)
     return
 
@@ -881,11 +829,10 @@
     
     curPlayer.SetDict(ChConfig.Def_PlayerKey_MixServerFirstLogin, 1)
     
+    PlayerSignDay.ResetDaySign(curPlayer) # 重置签到
+    
     # 重置首充双倍
     PlayerCoin.DoResetCTGCount(curPlayer, "MixServer")
-    
-    # 重置商店购买次数,暂定只重置类型 7 的
-    FunctionNPCCommon.ResetShopItemBuyCount(curPlayer, [7])
     
     # 合服邮件,盟主专属邮件在GameServer处理
     mailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 1)
@@ -917,17 +864,6 @@
     
     # 同步排行榜
     PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
-    
-    # boss凭证
-    PlayerActBossTrial.OnMixFirstLogin(curPlayer)
-    # 仙匣秘境
-    PlayerActXianXiaMJ.OnMixFirstLogin(curPlayer)
-    # 古宝养成
-    PlayerActGubao.OnMixFirstLogin(curPlayer)
-    # 骑宠养成
-    PlayerActHorsePetTrain.OnMixFirstLogin(curPlayer)
-    # 重置玩家改名次数
-    #UpdatePlayerName.ResetChangeNameCnt(curPlayer)
     return
 #---------------------------------------------------------------------
         
@@ -1061,16 +997,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():
@@ -1413,16 +1340,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)
         
@@ -1449,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)
 
@@ -1821,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
     
     
     #不可移动行为状态, 判断客户端限制
@@ -2189,22 +2083,6 @@
     
     #流向记录玩家下线
     DataRecordPack.DR_PlayerDisconnect(curPlayer)
-    
-    #在线时间
-    PlayerOnlinePrize.CalcOnlineTime(curPlayer)
-    #首充提示时间
-    PlayerGoldGift.UpdateFirstGoldTime(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)
@@ -3286,6 +3164,30 @@
     NetPackCommon.SendFakePack(curPlayer, awardReceiveState)
     return
 
+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
 #
 #struct    tagCMPlayerGetReward
@@ -3310,27 +3212,38 @@
     # 活跃度奖励
     if rewardType == ChConfig.Def_RewardType_Activity:
         PlayerActivity.GetActivityAward(curPlayer, dataEx)
-    # 活跃放置奖励
-    elif rewardType == ChConfig.Def_RewardType_ActivityPlace:
-        PlayerActivity.GetActivityPlaceReward(curPlayer)
-    # 挂机奖励
-    elif rewardType == ChConfig.Def_RewardType_Guaji:
-        PlayerGuaji.OnGetGuajiAward(curPlayer, dataEx)
+    # 每日任务奖励
+    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)
     # 首充礼包奖励
-    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)
@@ -3349,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)
@@ -3397,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)
@@ -3445,9 +3349,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))
@@ -3470,7 +3371,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)
@@ -3824,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()
@@ -3981,64 +3946,6 @@
     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):
     '''通知前端向某个点移动
                 这里前端可能需要针对某次移动做额外处理,比如移动到某个点后需要自动战斗等
@@ -4086,3 +3993,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