From 09fef77b16601ee5b0f53f34ccb23804b8448c8c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 28 五月 2025 17:59:13 +0800 Subject: [PATCH] 102 【主界面】官职晋升-服务端 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py | 379 +---------------------------------------------------- 1 files changed, 9 insertions(+), 370 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py index da793b3..4bd10bc 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py @@ -15,45 +15,32 @@ #"""Version = 2017-10-10 14:30""" #------------------------------------------------------------------------------- -import ItemCommon import ItemControler import FBCommon -import QuestCommon import GameFuncComm import PlayerControl import ChPyNetSendPack import NetPackCommon -import IPY_GameWorld import IpyGameDataPY import ShareDefine import GameWorld import ChConfig import PlayerSuccess -import ChEquip import PlayerBillboard import PlayerTongTianLing -import PassiveBuffEffMng import PlayerGubao -import EventShell -import DataRecordPack -import SkillCommon -import time #------------------------------------------------------------------------------ # 渡劫任务类型 RealmTaskTypeList = ( RealmTaskType_LV, # 等级 1 RealmTaskType_PassMap, # 过关关卡 2 -RealmTaskType_KillNPC, # 击杀NPC 3 -RealmTaskType_LVUPItem, # 进阶丹 4 -RealmTaskType_Equip, # 基础装备明细 5 -RealmTaskType_Dujie, # 渡劫boss 6 -RealmTaskType_FinishMainTask, # 完成xx主线任务 7 -) = range(1, 1 + 7) +RealmTaskType_UseXiantao, # 消耗战锤 3 +) = range(1, 1 + 3) # 需要记录任务值的任务类型列表 -NeedTaskValueTypeList = [RealmTaskType_KillNPC, RealmTaskType_Dujie] +NeedTaskValueTypeList = [RealmTaskType_UseXiantao] def DoOfficialOpen(curPlayer): #功能开启 @@ -64,169 +51,14 @@ def OnLogin(curPlayer): - DoRealmVersionStateLogic(curPlayer) - SyncRealmFBState(curPlayer, isAll=True) - UpdateRealmExp(curPlayer, False) - NotifyRealmExpInfo(curPlayer) + SyncRealmInfo(curPlayer, isAll=True) if not curPlayer.GetOfficialRank(): curPlayer.SetOfficialRank(1) return -def DoRealmVersionStateLogic(curPlayer): - ## 执行版本变更逻辑,仅触发一次,之后可删除 - state = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmVersionState) - if state: - GameWorld.DebugLog("境界版本变更逻辑已重置过!", curPlayer.GetPlayerID()) - return - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmVersionState, 1) - realmLV = curPlayer.GetOfficialRank() - if realmLV <= 1: - # 新号不处理 - return - playerID = curPlayer.GetPlayerID() - GameWorld.Log("======================== 执行境界版本变更重置逻辑 =======================", playerID) - - # 重置境界 - curPlayer.SetOfficialRank(1) - - # 返还境界丹 - returnItemID = IpyGameDataPY.GetFuncCfg("RealmLvUP", 1) - returnCount = 0 - lvToRealmLV = -1 # 重置后当前玩家等级对应可提升到的境界等级 - playerLV = curPlayer.GetLV() - ipyDataMgr = IpyGameDataPY.IPY_Data() - for index in range(ipyDataMgr.GetRealmCount()): - realmIpyData = ipyDataMgr.GetRealmByIndex(index) - lvToRealmLV = realmIpyData.GetLv() - if playerLV < realmIpyData.GetLVMax(): - break - - # 返还到可升级到的境界等级前一级 - for index in range(ipyDataMgr.GetRealmLVUPTaskCount()): - taskIpyData = ipyDataMgr.GetRealmLVUPTaskByIndex(index) - if taskIpyData.GetLv() >= lvToRealmLV: - break - taskType = taskIpyData.GetTaskType() - if taskType != RealmTaskType_LVUPItem: - continue - needValueList = taskIpyData.GetNeedValueList() - needValueA = GetRealmTaskNeedValue(needValueList, 0) - returnCount += needValueA - - GameWorld.Log("境界等级: realmLV=%s,playerLV=%s,lvToRealmLV=%s,returnItemID=%s,returnCount=%s" - % (realmLV, playerLV, lvToRealmLV, returnItemID, returnCount), playerID) - - # 重置灵根点,扣除赠送灵根点 - linggenPointDel = 0 - linggenPointLVAdd = 0 - linggenCntList = IpyGameDataPY.GetFuncEvalCfg("RealmVersion", 2) - for rLV, lgPoint in enumerate(linggenCntList): - if rLV > realmLV: - break - linggenPointDel += lgPoint - linggenPointLVAdd += lgPoint - - # 古宝效果赠送灵根点 - linggenPointGubaoAdd = 0 - resetGubaoEffValueKeyList = [] - effType = PlayerGubao.GubaoEffType_RealmLVAddLinggen - ipyDataMgr = IpyGameDataPY.IPY_Data() - for index in range(ipyDataMgr.GetGubaoCount()): - ipyData = ipyDataMgr.GetGubaoByIndex(index) - gubaoID = ipyData.GetGubaoID() - addFreePointAlready = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType)) - if not addFreePointAlready: - continue - resetGubaoEffValueKeyList.append(ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType)) - linggenPointDel += addFreePointAlready - linggenPointGubaoAdd += addFreePointAlready - - freePointBef = curPlayer.GetFreePoint() - linggenPointTotalBef = freePointBef - addPointDict = {} - ipyDataMgr = IpyGameDataPY.IPY_Data() - for index in range(ipyDataMgr.GetRolePointCount()): - linggenID = ipyDataMgr.GetRolePointByIndex(index).GetAttrID() - linggenPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AddPointValue % linggenID) - addPointDict[linggenID] = linggenPoint - linggenPointTotalBef += linggenPoint - GameWorld.Log("重置前灵根点: freePointBef=%s,linggenPointTotalBef=%s,addPointDict=%s" % (freePointBef, linggenPointTotalBef, addPointDict), playerID) - - if linggenPointDel: - import Item_ResetAttrPoint - Item_ResetAttrPoint.DoResetAttrPoint(curPlayer, 0, 0) - updFreePoint = max(0, curPlayer.GetFreePoint() - linggenPointDel) - curPlayer.SetFreePoint(updFreePoint) - for resetKey in resetGubaoEffValueKeyList: - PlayerControl.NomalDictSetProperty(curPlayer, resetKey, 0) - GameWorld.Log("重置境界灵根点: linggenPointDel=%s,updFreePoint=%s,linggenPointLVAdd=%s,linggenPointGubaoAdd=%s" % - (linggenPointDel, updFreePoint, linggenPointLVAdd, linggenPointGubaoAdd), playerID) - - # 删除境界技能 - delSkillIDList = [] - skillIDList = IpyGameDataPY.GetFuncEvalCfg("RealmVersion", 3) - skillManager = curPlayer.GetSkillManager() - playerControl = PlayerControl.PlayerControl(curPlayer) - for skillID in skillIDList: - if not skillManager.FindSkillBySkillID(skillID): - continue - skillManager.DeleteSkillBySkillID(skillID) - delSkillIDList.append(skillID) - playerControl.RefreshSkillFightPowerByDel(skillID) - playerControl.RefreshPlayerAttrState() - PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEffSet(curPlayer) - GameWorld.Log("重置境界删除技能ID列表: %s" % delSkillIDList, playerID) - - # 境界难度地图重置 - PlayerControl.SetRealmDifficulty(curPlayer, 0) - GameWorld.Log("重置境界难度等级选择!", playerID) - - itemListEx = IpyGameDataPY.GetFuncEvalCfg("RealmVersion", 4) - mailItemList = [[returnItemID, returnCount, 0]] + itemListEx - paramList = [linggenPointDel, returnItemID, returnItemID, returnCount] - PlayerControl.SendMailByKey("RealmVersion", [playerID], mailItemList, paramList) - GameWorld.Log("重置境界邮件: mailItemList=%s" % mailItemList, playerID) - - # 记录流向 - freePointAft = curPlayer.GetFreePoint() - linggenPointTotalAft = freePointAft - addPointDictAft = {} - ipyDataMgr = IpyGameDataPY.IPY_Data() - for index in range(ipyDataMgr.GetRolePointCount()): - linggenID = ipyDataMgr.GetRolePointByIndex(index).GetAttrID() - linggenPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AddPointValue % linggenID) - addPointDictAft[linggenID] = linggenPoint - linggenPointTotalAft += linggenPoint - GameWorld.Log("重置后灵根点: freePointAft=%s,linggenPointTotalAft=%s,addPointDictAft=%s" % (freePointAft, linggenPointTotalAft, addPointDictAft), playerID) - dataDict = {"realmLV":realmLV, "returnItemID":returnItemID, "returnCount":returnCount, - "linggenPointDel":linggenPointDel, "linggenPointLVAdd":linggenPointLVAdd, "linggenPointGubaoAdd":linggenPointGubaoAdd, - "linggenPointTotalBef":linggenPointTotalBef, "linggenPointTotalAft":linggenPointTotalAft, - "freePointBef":freePointBef, "freePointAft":freePointAft, "addPointDict":addPointDict, - "delSkillIDList":delSkillIDList, "mailItemList":mailItemList} - DataRecordPack.SendEventPack("RealmVersionReset", dataDict, curPlayer) - GameWorld.Log("======================= 境界版本变更重置完毕 =======================", playerID) - return - def GetRealmIpyData(realmLV): return IpyGameDataPY.GetIpyGameData("Realm", realmLV) - -#// A5 24 开启渡劫 #tagCMOpenRealmFB -# -#struct tagCMOpenRealmFB -#{ -# tagHead Head; -#}; -def OpenRealmFB(index, clientData, tick): - return - -def GetXXZLAward(curPlayer, taskID): - ## 领取修仙之路奖励,废弃 - return - -def SyncRealmFBState(curPlayer, taskIDList=None, isAll=False): - #通知客户端渡劫副本是否开启 - #if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official): - # return +def SyncRealmInfo(curPlayer, taskIDList=None, isAll=False): sendPack = ChPyNetSendPack.tagMCSyncRealmInfo() sendPack.TaskAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmTaskAwardState) sendPack.TaskValueList = [] @@ -248,11 +80,6 @@ NetPackCommon.SendFakePack(curPlayer, sendPack) return - -## 计算爵位属性 -# @param curPlayer 玩家 -# @param allAttrList 属性列表 -# @return None def CalcOfficialRankAttr(curPlayer): if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official): return @@ -272,11 +99,6 @@ PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Prestige, allAttrList) return - -## 重刷所有属性 -# @param curPlayer -# @param isForceRefresh:强制刷新排行榜 -# @return 指定数据 def RefreshOfficialAttr(curPlayer): CalcOfficialRankAttr(curPlayer) PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState() @@ -307,7 +129,7 @@ GameWorld.DebugLog("更新境界任务值: realmLV=%s,taskType=%s,taskID=%s,updValue=%s,curValue=%s,addValue=%s" % (realmLV, taskType, taskID, updValue, curValue, addValue), curPlayer.GetPlayerID()) if syncTaskIDList: - SyncRealmFBState(curPlayer, taskIDList=syncTaskIDList) + SyncRealmInfo(curPlayer, taskIDList=syncTaskIDList) return def GetRealmTaskNeedValue(needValueList, index): return needValueList[index] if len(needValueList) > index else 0 @@ -356,72 +178,6 @@ % (realmLV, taskID, taskType, mapID, lineID), playerID) return - # 进阶丹 - elif taskType == RealmTaskType_LVUPItem: - itemID = IpyGameDataPY.GetFuncCfg("RealmLvUP", 1) - needItemCount = needValueA - itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem) - lackItemDict, delInfoDict = ItemCommon.GetCostItemIndexList({itemID:needItemCount}, itemPack) - if lackItemDict: - GameWorld.DebugLog('境界任务领奖,物品不足! realmLV=%s,taskID=%s,taskType=%s,lackItemDict=%s' - % (realmLV, taskID, taskType, lackItemDict), playerID) - return - ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, "Realm") - - # 装备 - elif taskType == RealmTaskType_Equip: - if len(needValueList) < 4: - GameWorld.DebugLog('境界任务领奖,装备条件配置错误,长度必须为4! realmLV=%s,taskID=%s,taskType=%s,needValueList=%s' - % (realmLV, taskID, taskType, needValueList), playerID) - return - classLV, star, isSuite, color = needValueList[:4] - needCount = needValueList[4] if len(needValueList) > 4 else len(ChConfig.EquipPlace_Base) - GameWorld.DebugLog('境界任务领奖,装备条件! realmLV=%s,taskID=%s,taskType=%s,classLV=%s,star=%s,isSuite=%s,color=%s,needCount=%s' - % (realmLV, taskID, taskType, classLV, star, isSuite, color, needCount), playerID) - curCount = 0 - equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip) - for place in ChConfig.EquipPlace_Base: - ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, place) - if not ipyData: - continue - gridIndex = ipyData.GetGridIndex() - curEquip = equipPack.GetAt(gridIndex) - if not ItemCommon.CheckItemCanUse(curEquip): - continue - curPartStar = ChEquip.GetEquipPartStar(curPlayer, gridIndex) - if curPartStar < star: - GameWorld.DebugLog(' 装备位星级不足! realmLV=%s,taskID=%s,taskType=%s,classLV=%s,place=%s,curPartStar=%s < %s' - % (realmLV, taskID, taskType, classLV, place, curPartStar, star), playerID) - continue - if isSuite and not curEquip.GetSuiteID(): - GameWorld.DebugLog(' 装备位非套装! realmLV=%s,taskID=%s,taskType=%s,classLV=%s,place=%s' - % (realmLV, taskID, taskType, classLV, place), playerID) - continue - if curEquip.GetItemColor() < color: - GameWorld.DebugLog(' 装备位品质不足! realmLV=%s,taskID=%s,taskType=%s,classLV=%s,place=%s,ItemColor=%s < %s' - % (realmLV, taskID, taskType, classLV, place, curEquip.GetItemColor(), color), playerID) - continue - curCount += 1 - - if curCount < needCount: - GameWorld.DebugLog(' 境界任务所需装备数不足! realmLV=%s,taskID=%s,taskType=%s,classLV=%s,star=%s,isSuite=%s,color=%s,curCount=%s < %s' - % (realmLV, taskID, taskType, classLV, star, isSuite, color, curCount, needCount), playerID) - return - - # 渡劫 - elif taskType == RealmTaskType_Dujie: - curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmTaskValue % taskID) - if not curValue: - GameWorld.DebugLog('境界任务领奖,渡劫未过关! realmLV=%s,taskID=%s,taskType=%s' % (realmLV, taskID, taskType), playerID) - return - - # 完成xx主线任务 - elif taskType == RealmTaskType_FinishMainTask: - missionID = needValueA - if not QuestCommon.GetHadFinishMainMission(curPlayer, missionID): - GameWorld.DebugLog('境界任务领奖,主线任务未完成! realmLV=%s,taskID=%s,taskType=%s,missionID=%s' % (realmLV, taskID, taskType, missionID), playerID) - return - # 根据记录任务进度值 elif taskType in NeedTaskValueTypeList: curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmTaskValue % taskID) @@ -438,7 +194,7 @@ updAwardState = awardState|pow(2, taskID) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmTaskAwardState, updAwardState) GameWorld.DebugLog("境界渡劫领奖OK! realmLV=%s,taskID=%s,updAwardState=%s" % (realmLV, taskID, updAwardState), playerID) - SyncRealmFBState(curPlayer) + SyncRealmInfo(curPlayer) return def CheckRealmTaskFinishAll(curPlayer): @@ -463,7 +219,6 @@ # tagHead Head; #}; def DoRealmLVUp(index, clientData, tick): - #升级境界 curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) curRealmLV = curPlayer.GetOfficialRank() realmIpyData = GetRealmIpyData(curRealmLV) @@ -501,29 +256,11 @@ PlayerControl.PlayerControl(curPlayer).PlayerLvUp() if needSys: - addBuffID = nextRealmIpyData.GetBuffID() - if addBuffID: - PlayerControl.WorldNotify(0, 'BigRealmUpSuccess', [curPlayer.GetName(), curPlayer.GetID(), nextRealmLv, IpyGameDataPY.GetFuncCfg('RadioExpRealm')]) - msgStr = str(addBuffID) - GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'RealmUpAddBuff', msgStr, len(msgStr)) - else: - PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), curPlayer.GetID(), nextRealmLv]) - - if SkillCommon.GivePlayerSkillByJobSkill(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo()): - PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEffSet(curPlayer) - - addFreePoint = nextRealmIpyData.GetAddFreePoint() - if addFreePoint: - updFreePoint = curPlayer.GetFreePoint() + addFreePoint - curPlayer.SetFreePoint(updFreePoint) - GameWorld.DebugLog(" 境界阶级加灵根点: addFreePoint=%s,updFreePoint=%s" % (addFreePoint, updFreePoint)) + PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), curPlayer.GetID(), nextRealmLv]) RefreshOfficialAttr(curPlayer) GameFuncComm.DoFuncOpenLogic(curPlayer) - SyncRealmFBState(curPlayer, taskIDList=syncTaskIDList) - #更新修为速率 - UpdateRealmExp(curPlayer, False, True) - NotifyRealmExpInfo(curPlayer) + SyncRealmInfo(curPlayer, taskIDList=syncTaskIDList) #境界提升成就 PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_RealmlvUp, nextRealmLv) PlayerTongTianLing.AddTongTianTaskValue(curPlayer, ChConfig.TTLTaskType_RealmUp, 1) @@ -531,102 +268,4 @@ PlayerBillboard.UpdateRealmBillboard(curPlayer) # 记录开服活动 #OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_RealmLV, nextRealmLv) - EventShell.EventRespons_RealmUp(curPlayer, nextRealmLv) - #流向 - DataRecordPack.DR_RealmLVUp(curPlayer, nextRealmLv) return True - -#// A5 21 境界修为池提取 #tagCMTakeOutRealmExp -# -#struct tagCMTakeOutRealmExp -#{ -# tagHead Head; -#}; -def OnTakeOutRealmExp(index, clientData, tick): - curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) - playerID = curPlayer.GetID() - curTotalRealmExp = UpdateRealmExp(curPlayer, False) - if curTotalRealmExp <= 0: - GameWorld.DebugLog('境界修为池提取 没有经验可提取', playerID) - return - playerControl = PlayerControl.PlayerControl(curPlayer) - playerControl.AddExp(curTotalRealmExp) - PlayerControl.NotifyCode(curPlayer, 'TakeOutRealmExp', [curTotalRealmExp]) - # - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpBeginTime, int(time.time())) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExp, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpPoint, 0) - - NotifyRealmExpInfo(curPlayer) - return - - -def UpdateRealmExp(curPlayer, isNotify=True, isRealmLVUP=False): - ##更新境界修为池 - curRealmLV = curPlayer.GetOfficialRank() - ipyData = GetRealmIpyData(curRealmLV) - if not ipyData: - return 0 - if not ipyData.GetExpRate(): - return 0 - curTime = int(time.time()) - beginTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBeginTime) - if not beginTime: - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpBeginTime, curTime) - return 0 - if isRealmLVUP: - ipyData = GetRealmIpyData(curRealmLV-1) - - curRealmExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExp) - curRealmExpPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpPoint) - curTotalExp = curRealmExpPoint * ChConfig.Def_PerPointValue + curRealmExp - if curTotalExp >= ipyData.GetExpLimit(): - return curTotalExp - - passSeconds = curTime - beginTime - if passSeconds <= 0: - return curTotalExp - perRealmExpTime = IpyGameDataPY.GetFuncCfg('RealmExpTime') - curExpRate = ipyData.GetExpRate() - #buff增加的额外经验 - buffRemainTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBuffRemainTime) - buffAddRate = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBuffAddRate) - - buffTime = min(buffRemainTime, passSeconds) - - addExp = buffTime /perRealmExpTime*(curExpRate*(ShareDefine.Def_MaxRateValue + buffAddRate)/ShareDefine.Def_MaxRateValue) + (passSeconds-buffTime)/perRealmExpTime*curExpRate - #addExp = passSeconds / perRealmExpTime * curExpRate - if addExp <= 0: - return curTotalExp - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpBeginTime, curTime) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpBuffRemainTime, buffRemainTime - buffTime) - - updTotalExp = min(curTotalExp + addExp, ipyData.GetExpLimit()) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExp, updTotalExp % ChConfig.Def_PerPointValue) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpPoint, updTotalExp / ChConfig.Def_PerPointValue) - #通知 - if isNotify: - NotifyRealmExpInfo(curPlayer) - return updTotalExp - -def AddRealmExpBuffTime(curPlayer, addTime, addRate): - ##增加会灵丹BUFF时间 - UpdateRealmExp(curPlayer, False) - - remainTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBuffRemainTime) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpBuffRemainTime, remainTime + addTime) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmExpBuffAddRate, addRate) - NotifyRealmExpInfo(curPlayer) - return - -def NotifyRealmExpInfo(curPlayer): - ##通知修为池信息 - sendPack = ChPyNetSendPack.tagMCRealmExpInfo() - sendPack.BeginTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBeginTime) - sendPack.BuffTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBuffRemainTime) - sendPack.BuffAddRate = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBuffAddRate) - sendPack.CurExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExp) - sendPack.CurExpPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpPoint) - NetPackCommon.SendFakePack(curPlayer, sendPack) - return - -- Gitblit v1.8.0