From c3935a93e6be5457f7d1e90bbe91845abf3943f4 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 05 九月 2025 17:37:18 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(去除0407通知;修复5011触发被动报错;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 208 ++++++---------------------------------------------
1 files changed, 27 insertions(+), 181 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 2b212c8..2a3f9d4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -33,8 +33,6 @@
import PetControl
import OperControlManager
import ShareDefine
-import PlayerAutoCheckOnline
-import PlayerGameWallow
import NetPackCommon
import ChPyNetSendPack
import DataRecordPack
@@ -57,7 +55,6 @@
import PlayerDienstgrad
import PlayerFreeGoods
import PlayerRecover
-import PlayerEquipDecompose
import PlayerCrossRealmPK
import PlayerCrossChampionship
import GameFuncComm
@@ -84,18 +81,12 @@
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
@@ -130,11 +121,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
@@ -461,7 +451,7 @@
InitPlayerPack(curPlayer)
if GameWorld.IsCrossServer():
- SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick)
+ #SkillCommon.PlayerLoginMergeServerSkillLogic(curPlayer, tick)
# 重置所有技能CD
DoPlayerLoginInMap(curPlayer, tick)
@@ -469,7 +459,7 @@
DataRecordPack.DR_PlayerLogin(curPlayer)
EventReport.WriteEvent_login(curPlayer)
#---玩家上线, 宠物逻辑处理---
- PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
+ #PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
return
leaveServerSecond = PlayerControl.GetPlayerLeaveServerSecond(curPlayer)
@@ -494,18 +484,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)
@@ -522,9 +512,6 @@
__DoMixServerFirstLogin(curPlayer)
PlayerBillboard.BillboardOnLogin(curPlayer)
- #上线时通知脱机挂时被击杀的离线时间
- __Sync_PlayerOffline(curPlayer, tick)
-
#玩家扩展信息
__SyncPlayerInfoEx(curPlayer)
@@ -532,16 +519,11 @@
GiveDownloadPatchAward(curPlayer)
#PK模式
- SyncPKModel(curPlayer)
+ #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)
@@ -550,17 +532,17 @@
# 首充/天天首充/充值豪礼
PlayerGoldGift.OnLogin(curPlayer)
-# #通知功能首次触发情况
+ #通知功能首次触发情况
GameFuncComm.Sync_FuncOpenState(curPlayer)
-#
-# #通知客户端签到信息
+
+ #通知客户端签到信息
PlayerSignDay.SignDayOnLogin(curPlayer)
#通知玩家死亡时间
- PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
+ #PlayerControl.PlayerControl(curPlayer).NotifyPlayerDeadTime(curPlayer)
#角色改名次数
- UpdatePlayerName.Sync_UpdatePlayerNameCount(curPlayer)
+ #UpdatePlayerName.Sync_UpdatePlayerNameCount(curPlayer)
# 坐骑相关通知
PlayerHorse.PlayerHorseLogin(curPlayer)
@@ -580,7 +562,7 @@
OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
# 采集NPC次数通知
- NPCCommon.SyncCollNPCTime(curPlayer)
+ #NPCCommon.SyncCollNPCTime(curPlayer)
# 每日活跃度
PlayerActivity.OnLogin(curPlayer)
@@ -628,7 +610,7 @@
PlayerControl.NotifyPlayerAllCurrency(curPlayer)
PlayerControl.NotifyUseMoneyTotal(curPlayer)
#通知基础属性
- NotifyPlayerBasePoint(curPlayer)
+ #NotifyPlayerBasePoint(curPlayer)
#跨服充值排行
CrossActCTGBillboard.OnPlayerLogin(curPlayer)
@@ -669,18 +651,10 @@
# 通知设置的被动功法
#PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
PlayerOnlinePrize.OnPlayerLogin(curPlayer)
- #装备分解
- PlayerEquipDecompose.PlayerLogin(curPlayer)
- #防沉迷
- PlayerGameWallow.DoLogic_CheckWallow(curPlayer, tick)
# 极品白拿
PlayerFreeGoods.OnLogin(curPlayer)
# BOSS复活活动
PlayerBossReborn.OnLogin(curPlayer)
- # boss历练
- PlayerActBossTrial.OnPlayerLogin(curPlayer)
- # 骑宠盛宴活动
- PlayerActHorsePetFeast.OnLogin(curPlayer)
# 周狂欢活动
PlayerWeekParty.OnLogin(curPlayer)
# 购买次数礼包活动
@@ -703,14 +677,6 @@
PlayerFeastTravel.OnPlayerLogin(curPlayer)
# 登录奖励活动
PlayerActLogin.OnLogin(curPlayer)
- # 垃圾分类活动
- PlayerActGarbageSorting.OnPlayerLogin(curPlayer)
- # 仙匣秘境活动
- PlayerActXianXiaMJ.OnPlayerLogin(curPlayer)
- # 古宝养成活动
- PlayerActGubao.OnPlayerLogin(curPlayer)
- # 骑宠养成活动
- PlayerActHorsePetTrain.OnPlayerLogin(curPlayer)
# 炼器活动
PlayerActLianqi.OnPlayerLogin(curPlayer)
# 天帝礼包活动
@@ -735,7 +701,7 @@
SyncLittleHelper(curPlayer)
PlayerFB.OnLogin(curPlayer)
#技能专精信息
- SkillShell.NotifyElementSkillInfo(curPlayer)
+ #SkillShell.NotifyElementSkillInfo(curPlayer)
#Boss首杀
GY_Query_BossFirstKill.OnPlayerLogin(curPlayer)
#通天令
@@ -800,8 +766,7 @@
PlayerZhanling.OnPlayerLogin(curPlayer)
PlayerTask.OnPlayerLogin(curPlayer)
PlayerTree.OnPlayerLogin(curPlayer)
- PlayerMineArea.OnPlayerLogin(curPlayer)
- PlayerGuaji.OnPlayerLogin(curPlayer)
+ PlayerGoldRush.OnPlayerLogin(curPlayer)
PlayerActFamilyGCZ.OnPlayerLogin(curPlayer)
PlayerTalk.OnPlayerLogin(curPlayer)
@@ -838,6 +803,8 @@
# 那么在DoPlayerLogin 中设置的数据将不会被保存, 如会导致第一个任务重复触发问题,记录多次发送
EventReport.WriteEvent_Entry(curPlayer, 4)
#EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer)
+
+ curPlayer.SetFightPoint(1) # 初始化为1倍消耗
#---补满血满魔---
GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer))
@@ -865,6 +832,9 @@
PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
PlayerHero.OnPlayerFirstLogin(curPlayer)
+
+ #淘金初始化
+ PlayerGoldRush.InitGoldEnergy(curPlayer)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1)
return
@@ -930,14 +900,6 @@
# 同步排行榜
PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
- # boss凭证
- PlayerActBossTrial.OnMixFirstLogin(curPlayer)
- # 仙匣秘境
- PlayerActXianXiaMJ.OnMixFirstLogin(curPlayer)
- # 古宝养成
- PlayerActGubao.OnMixFirstLogin(curPlayer)
- # 骑宠养成
- PlayerActHorsePetTrain.OnMixFirstLogin(curPlayer)
# 重置玩家改名次数
#UpdatePlayerName.ResetChangeNameCnt(curPlayer)
return
@@ -951,51 +913,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])
-
#---------------------------------------------------------------------
##通知背包详细信息
@@ -1087,54 +1004,6 @@
clientPack.ObjID = curPlayer.GetID()
clientPack.BuffType = 99 # 99代表清所有
NetPackCommon.SendFakePack(curPlayer, clientPack)
- 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
#---------------------------------------------------------------------
@@ -3391,26 +3260,6 @@
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))
- return
-
#//A5 04 玩家领取奖励 #tagCMPlayerGetReward
#
#struct tagCMPlayerGetReward
@@ -3438,9 +3287,9 @@
# 活跃放置奖励
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_DayFreeGoldGift:
PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer)
@@ -3567,9 +3416,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))
--
Gitblit v1.8.0