From acebf38b40565a700efeecddb2e3f6e2b2e183a6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 13 十二月 2025 16:28:44 +0800
Subject: [PATCH] 389 流向记录(增加GM工具命令:重读配置 GMT_ReloadConfig)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 125 +++++++++++++++++------------------------
1 files changed, 51 insertions(+), 74 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 c8654ae..df3b473 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -53,10 +53,8 @@
import PlayerCrossChampionship
import GameFuncComm
import PlayerFamilyTaofa
-import PlayerBossReborn
import PlayerWeekParty
import PlayerFeastWeekParty
-import PlayerFeastTravel
import PlayerFeastLogin
import PlayerFeastWish
import PlayerActLogin
@@ -81,7 +79,6 @@
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
import PlayerSpringSale
-import GY_Query_BossFirstKill
import PlayerCrossYaomoBoss
import PlayerLuckyCloudBuy
import PlayerLuckyTreasure
@@ -90,6 +87,7 @@
import PlayerFuncSysPrivilege
import PlayerActTurntable
import PlayerTongTianLing
+import OpenServerActivity
import CrossRealmPlayer
import ChNetSendPack
import PlayerArena
@@ -132,9 +130,9 @@
import PlayerHero
import PlayerOnline
import PlayerBeauty
+import PlayerTravel
import TurnAttack
import PlayerHJG
-import ObjPool
import datetime
import time
@@ -617,8 +615,6 @@
#PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
# 极品白拿
PlayerFreeGoods.OnLogin(curPlayer)
- # BOSS复活活动
- PlayerBossReborn.OnLogin(curPlayer)
# 周狂欢活动
PlayerWeekParty.OnLogin(curPlayer)
# 购买次数礼包活动
@@ -637,8 +633,6 @@
PlayerFeastLogin.OnPlayerLogin(curPlayer)
# 节日祝福活动
PlayerFeastWish.OnPlayerLogin(curPlayer)
- # 节日游历活动
- PlayerFeastTravel.OnPlayerLogin(curPlayer)
# 登录奖励活动
PlayerActLogin.OnLogin(curPlayer)
# 炼器活动
@@ -651,6 +645,8 @@
PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
# 转盘活动
PlayerActTurntable.OnPlayerLogin(curPlayer)
+ # 分支下载奖励记录通知
+ SyncPackDownloadAward(curPlayer)
# 登录触发功能开启(老号处理)
GameFuncComm.DoFuncOpenLogic(curPlayer)
# 神兽
@@ -664,8 +660,6 @@
PlayerFB.OnLogin(curPlayer)
#技能专精信息
#SkillShell.NotifyElementSkillInfo(curPlayer)
- #Boss首杀
- GY_Query_BossFirstKill.OnPlayerLogin(curPlayer)
#通天令
PlayerTongTianLing.OnPlayerLogin(curPlayer)
#创角奖励
@@ -702,7 +696,7 @@
curPlayer.SetState(0) # 脱机挂恢复为正常上线
curPlayer.SetCountryLastWeekHornor(0) # 通知数据库是否保存还是下线,做一次恢复,1为保存 0为正常下线
- PlayerControl.DoGMForbidenTalkOnLogin(curPlayer)
+ PlayerControl.OnPlayerLogin(curPlayer)
DataRecordPack.DR_PlayerLogin(curPlayer) # 放最后,记录等级、经验等信息
return
@@ -734,9 +728,11 @@
PlayerActivity.OnPlayerLogin(curPlayer)
PlayerLLMJ.OnPlayerLogin(curPlayer)
PlayerBeauty.OnPlayerLogin(curPlayer)
+ PlayerTravel.OnPlayerLogin(curPlayer)
+ OpenServerActivity.OnPlayerLogin(curPlayer)
# 上线查询一次充值订单
- curPlayer.SendDBQueryRecharge()
+ # curPlayer.SendDBQueryRecharge() 不查了,由在线轮询触发即可
# 通知GameServer地图最终登录成功了
isMixServerFirstLogin = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MixServerFirstLogin)
@@ -767,8 +763,7 @@
# 特殊说明: 如果地图没有完全初始化好,客户端断开或者异常等情况会触发RunGateGameServerMapServerKickOutPlayerNoSave
# 那么在DoPlayerLogin 中设置的数据将不会被保存, 如会导致第一个任务重复触发问题,记录多次发送
EventReport.WriteEvent_Entry(curPlayer, 4)
- #EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer)
-
+
curPlayer.SetFightPoint(1) # 初始化为1倍消耗
#---补满血满魔---
@@ -1024,7 +1019,6 @@
#检查更新总战斗力
#PlayerBillboard.UpdatePlayerFPTotalBillboard(curPlayer, True)
- EventReport.WriteEvent_FightPower(curPlayer)
#清除在本地图离线记录信息
PlayerControl.RemoveLeaveServerPlayerInfo(curPlayer.GetPlayerID())
@@ -3115,54 +3109,6 @@
curPlayer.Syn_OfflineTimeQueryResult() # 通知客服端离线时间
return
-
-#//B0 24 领取家族悬赏奖励 #tagReceiveFamilyArrestAward
-#
-#struct tagReceiveFamilyArrestAward
-#
-#{
-# tagHead Head;
-# DWORD ArrestID; //悬赏任务ID
-#};
-## 领取家族悬赏奖励
-# @param index: 玩家索引
-# @param clientData: 封包结构体
-# @param tick: 时间戳
-# @return: None
-def ReceiveFamilyArrestAward(index, clientData, tick):
- return
-
-
-#//B0 26 请求家族悬赏奖励领取情况 #tagQueryFamilyArrestAwardReceiveState
-#
-#struct tagQueryFamilyArrestAwardReceiveState
-#
-#{
-# tagHead Head;
-#};
-## 请求家族悬赏奖励领取情况
-# @param index: 玩家索引
-# @param clientData: 封包结构体
-# @param tick: 时间戳
-# @return: None
-def QueryFamilyArrestAwardReceiveState(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- Sync_FamilyArrestAwardReceiveState(curPlayer)
- return
-
-
-## 通知客户端家族悬赏任务奖励领取情况
-# @param curPlayer: 玩家实例
-# @return: None
-def Sync_FamilyArrestAwardReceiveState(curPlayer):
- awardReceiveState = ChPyNetSendPack.tagFamilyArrestAwardReceiveState()
- awardReceiveState.Clear()
-
- state = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyArrestAwardState)
- awardReceiveState.ReceiveState = state
- NetPackCommon.SendFakePack(curPlayer, awardReceiveState)
- return
-
def PlayerOnDay(curPlayer):
#玩法前瞻奖励
gameNoticeAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GameNoticeAwardState)
@@ -3238,6 +3184,12 @@
# 红颜等级奖励
elif rewardType == ChConfig.Def_RewardType_BeautyLVAward:
PlayerBeauty.GetBeautyLVAward(curPlayer, dataEx)
+ # 领取分包下载奖励
+ elif rewardType == ChConfig.Def_RewardType_DownLoad:
+ GetDownloadAward(curPlayer, dataEx)
+ # 开服庆典积分阶段奖励
+ elif rewardType == ChConfig.Def_RewardType_OSACelebrationPointAward:
+ OpenServerActivity.GetOSACelebrationPointAward(curPlayer, dataEx)
# 每日免费直购礼包
@@ -3264,9 +3216,6 @@
# 领取单笔累充领取
elif rewardType == ChConfig.Def_RewardType_SingleRecharge:
PlayerActSingleRecharge.OnGetSingleRechargeAward(curPlayer, dataEx, dataExStr)
- # 领取boss复活活动奖励
- elif rewardType == ChConfig.Def_RewardType_BossReborn:
- PlayerBossReborn.GetBossRebornActionAward(curPlayer, dataEx)
# 领取许愿池奖励
elif rewardType == ChConfig.Def_RewardType_WishingWell:
PlayerWishingWell.DoGetWishingAward(curPlayer)
@@ -3288,9 +3237,6 @@
# 领取节日登录奖励
elif rewardType == ChConfig.Def_RewardType_FeastLogin:
PlayerFeastLogin.GetFeastLoginAward(curPlayer, dataEx)
- # 领取节日游历奖励
- elif rewardType == ChConfig.Def_RewardType_FeastTravel:
- PlayerFeastTravel.GetFeastTravelAward(curPlayer, dataEx)
# 领取登录活动奖励
elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
@@ -3330,9 +3276,6 @@
#历史累计充值领取
elif rewardType == ChConfig.Def_RewardType_HistoryChargeAward:
PlayerGoldGift.OnGetHistoryRechargeAward(curPlayer, dataEx)
- #在线特惠充值额外奖励
- elif rewardType == ChConfig.Def_RewardType_OnlineRechargeTH:
- PlayerCoin.OnGetOnlineRechargeTH(curPlayer)
#创角奖励
elif rewardType == ChConfig.Def_RewardType_CreateRole:
OnGetCreateRoleAward(curPlayer)
@@ -3405,6 +3348,9 @@
elif adAwardType == 3:
treasureType = adAwardValue
PlayerTreasure.DoTreasure(curPlayer, treasureType, PlayerTreasure.CostType_ADFree)
+ # 游历体力
+ elif adAwardType == 4:
+ PlayerTravel.AddTravelEnergy(curPlayer, adAwardValue)
return
def ADCntOnDay(curPlayer):
@@ -3433,7 +3379,7 @@
adCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID)
if not adCnt and syncADIDList == None:
continue
- adInfo = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfo)
+ adInfo = ChPyNetSendPack.tagSCADInfo()
adInfo.ADID = adID
adInfo.ADCnt = adCnt
adInfoList.append(adInfo)
@@ -3441,7 +3387,7 @@
if not adInfoList:
return
- clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfoList)
+ clientPack = ChPyNetSendPack.tagSCADInfoList()
clientPack.ADInfoList = adInfoList[:255]
clientPack.Count = len(clientPack.ADInfoList)
NetPackCommon.SendFakePack(curPlayer, clientPack)
@@ -3488,6 +3434,37 @@
NetPackCommon.SendFakePack(curPlayer, sendPack)
return
+def GetDownloadAward(curPlayer, dataEx):
+ ##分包下载奖励 dataEx 0直接领取 1发邮件
+ playerID = curPlayer.GetPlayerID()
+ downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 2)
+ 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
+
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadAwardState, downloadAwardNum)
+ GameWorld.DebugLog("领取分包下载奖励: curAwardNum=%s,downloadAwardNum=%s" % (curAwardNum, downloadAwardNum), playerID)
+ if dataEx == 1:
+ PlayerMail.SendMailByKey('SubpackageDownload', curPlayer.GetID(), awardItemList)
+ else:
+ ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["PackDownload", False, {}])
+ SyncPackDownloadAward(curPlayer)
+ return
+
+def SyncPackDownloadAward(curPlayer):
+ #分包下载奖励记录通知
+ downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 2)
+ sendPack = ChPyNetSendPack.tagMCPackDownloadRecord()
+ sendPack.Clear()
+ sendPack.Record = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState) == downloadAwardNum
+ NetPackCommon.SendFakePack(curPlayer, sendPack)
+ return
+
def OnGiveAwardByClient(curPlayer, rewardType, dictKey, awardCfg, eventName=""):
## 发放前端控制的奖励,后端只负责发放奖励,是否可领奖前端自行判断
if curPlayer.NomalDictGetProperty(dictKey):
--
Gitblit v1.8.0