From f6e55772b80bf536223e6e949e28fb7b1812a54d Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 19 九月 2025 12:02:36 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(甘夫人潜能1、3;增加使用技能后触发方式9;层级buff属性支持;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 68 +++++++--------------------------- 1 files changed, 14 insertions(+), 54 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py index d35a1a2..97e58b5 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py @@ -2981,7 +2981,7 @@ # @return 返回值真, 给钱成功 # @param isSysHint 是否系统提示(默认是) # @remarks 玩家获得金钱 -def GiveMoney(curPlayer, priceType, value, giveType=ChConfig.Def_GiveMoney_Unknown, addDataDict={}, isSysHint=True, isGiveBourseMoney=True): +def GiveMoney(curPlayer, priceType, value, giveType=ChConfig.Def_GiveMoney_Unknown, addDataDict={}, isSysHint=True, isGiveBourseMoney=True, notifyAward=False): if value == 0: return True @@ -3060,6 +3060,9 @@ # NotifyCode(curPlayer, "GetMoney", [priceType, str(round(value/100.0, 2))]) # else: # NotifyCode(curPlayer, "GetMoney", [priceType, value]) + if notifyAward: + ItemControler.NotifyGiveAwardInfo(curPlayer, [], giveType, moneyInfo={priceType:value}) + __GiveMoneyAfter(curPlayer, priceType, value, giveType, addDataDict) if befMoney == 0: @@ -3325,41 +3328,6 @@ return IpyGameDataPY.GetFuncCfg("PKConfig", 2) #--------------------------------------------------------------------- -##获得玩家升级, 获得的属性点 -# @param curPlayer 玩家实例 -# @return 返回值, 获得的属性点 -# @remarks 获得玩家升级, 获得的属性点 -def GetLvUp_AddPoint(curPlayer): - curPlayerID = curPlayer.GetID() - curLV = curPlayer.GetLV() # 当前等级 - - addPointDict = IpyGameDataPY.GetFuncEvalCfg("LVUPAddPoint", 1, {}) - addPoint = GameWorld.GetDictValueByRangeKey(addPointDict, curLV, 0) - - if addPoint == None: - raise Exception('玩家获得升级属性点异常, curLV = %s PlayerID = %s' % (curLV, curPlayerID)) - return - return int(addPoint+ GetFabaoAddPoint(curPlayer) + GetTitleAddExtraPoint(curPlayer)) - -def GetAllPointByLV(curPlayer): - ##获取当前等级可得到属性点数 - openLV = GameFuncComm.GetFuncLimitLV(ShareDefine.GameFuncID_AddPoint) - curLV = curPlayer.GetLV() - if curLV < openLV: - return 0 - # 初始点+(升级点+法宝效果)*称号效果倍数+境界点 - setFreePoint = IpyGameDataPY.GetFuncCfg("LVUPAddPoint", 2) - fabaoAddPoint = GetFabaoAddPoint(curPlayer) - titleAddPoint = GetTitleAddExtraPoint(curPlayer) - addPointDict = IpyGameDataPY.GetFuncEvalCfg("LVUPAddPoint", 1, {}) - for rangLVs, point in addPointDict.items(): - if curLV < rangLVs[0]: - continue - setFreePoint += (point + fabaoAddPoint + titleAddPoint) * (min(curLV, rangLVs[1]) - rangLVs[0] + 1) - - #境界提升点数 - setFreePoint += curPlayer.GetOfficialRank() * IpyGameDataPY.GetFuncCfg("LVUPAddPoint", 3) - return setFreePoint def GetTitleAddExtraPoint(curPlayer): # 称号额外增加玩家每级获得的灵根点 @@ -3367,23 +3335,6 @@ if titleID and curPlayer.GetDienstgradManager().GetDienstgrad(titleID): return IpyGameDataPY.GetFuncCfg("TitleAddPoint", 2) return 0 - -def GetFabaoAddPoint(curPlayer): - #法宝额外增加玩家每级获得的灵根点 - return 0 - -def DoAddPointOpen(curPlayer): - '''加点功能开启''' - beforeFreePoint = curPlayer.GetFreePoint() - - setFreePoint = GetAllPointByLV(curPlayer) - curLV = curPlayer.GetLV() - addDataDict = {'beforeFreePoint':beforeFreePoint} - curPlayer.SetFreePoint(setFreePoint) - DataRecordPack.DR_Freepoint(curPlayer, "AddPointOpen", setFreePoint, addDataDict) - GameWorld.DebugLog(' 加点功能开启处理 beforeFreePoint=%s,curLV=%s, setFreePoint=%s'%(beforeFreePoint, curLV, setFreePoint), curPlayer.GetID()) - return - #--------------------------------------------------------------------- ############################################################### @@ -4422,6 +4373,8 @@ value = ComMainLevelValue(chapterID, levelNum, wave) SetMainLevelPassValue(curPlayer, value) if wave == 0: + lvID = chapterID * 100 + levelNum + PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_MainLevel, lvID) PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_MainLevel) return value def GetMainLevelPassInfo(curPlayer): @@ -4608,7 +4561,7 @@ NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_HighestEx, highestFightPower / ChConfig.Def_PerPointValue) GameWorld.DebugLog("总战力: %s, 历史最高战力: %s, beforeFightPower=%s" % (value, highestFightPower, beforeFightPower), curPlayer.GetPlayerID()) - PlayerBillboard.UpdatePlayerFPTotalBillboard(curPlayer) + #PlayerBillboard.UpdatePlayerFPTotalBillboard(curPlayer) # 记录开服活动数据 #OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_FightPower, totalFightPower) #if beforeFightPower != totalFightPower: @@ -4757,6 +4710,13 @@ return 0 return lvIpyData.GetExp() +def GetOpenMaxLV(): + ## 获取游戏开放的最大等级 + maxLV = IpyGameDataPY.GetFuncCfg("PlayerMaxLV", 1) + ipyDataMgr = IpyGameDataPY.IPY_Data() + realmIpyData = ipyDataMgr.GetRealmByIndex(ipyDataMgr.GetRealmCount() - 1) + return min(maxLV, realmIpyData.GetLVMax()) + def GetPlayerMaxLV(curPlayer): ## 获取玩家实际可升的最大等级 maxLV = IpyGameDataPY.GetFuncCfg("PlayerMaxLV", 1) -- Gitblit v1.8.0