| | |
| | | import ShareDefine
|
| | | import GameWorld
|
| | | import ChConfig
|
| | | import PlayerMagicWeapon
|
| | | import PlayerSuccess
|
| | | import OpenServerCampaign
|
| | | import ChEquip
|
| | | import PlayerBillboard
|
| | | import EventShell
|
| | | import DataRecordPack
|
| | | import SkillCommon
|
| | |
|
| | | import time
|
| | | #------------------------------------------------------------------------------
|
| | | (
|
| | | StopSitType1, #离线中断
|
| | | StopSitType2, #主动中断
|
| | | StopSitType3, #被采集打断
|
| | | )=range(1,4)
|
| | |
|
| | |
|
| | | def DoOfficialOpen(curPlayer):
|
| | |
| | | # DoRealmLVUpLogic(curPlayer)
|
| | | return True
|
| | |
|
| | | def OnLogin(curPlayer): |
| | |
|
| | | def OnLogin(curPlayer):
|
| | | SyncRealmFBState(curPlayer)
|
| | | UpdateRealmExp(curPlayer, False)
|
| | | NotifyRealmExpInfo(curPlayer)
|
| | | return
|
| | |
|
| | |
|
| | | def GetRealmIpyData(realmLV): return IpyGameDataPY.GetIpyGameData("Realm", realmLV)
|
| | |
|
| | |
|
| | | #// A5 24 开启渡劫 #tagCMOpenRealmFB
|
| | | #
|
| | |
| | | #};
|
| | | def OpenRealmFB(index, clientData, tick):
|
| | | return
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
|
| | | GameWorld.DebugLog("爵位境界功能未开启, 无法开启渡劫!curLV=%s" % curPlayer.GetLV())
|
| | | return
|
| | |
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen):
|
| | | GameWorld.DebugLog("渡劫已开启,无法再次开启!")
|
| | | return
|
| | | |
| | | curRealmLV = curPlayer.GetOfficialRank()
|
| | | realmIpyData = GetRealmIpyData(curRealmLV)
|
| | | if not realmIpyData:
|
| | | GameWorld.ErrLog("没有该境界等级数据! Lv=%s" % curRealmLV)
|
| | | return
|
| | | needRealmPoint = realmIpyData.GetNeedPoint()
|
| | | if not needRealmPoint:
|
| | | GameWorld.DebugLog("境界已是最大等级,不能升级! Lv=%s" % curRealmLV, curPlayer.GetPlayerID())
|
| | | return
|
| | | if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, needRealmPoint, False):
|
| | | GameWorld.DebugLog("境界修炼点不足,无法开启渡劫!needRealmPoint=%s" % (needRealmPoint), curPlayer.GetPlayerID())
|
| | | return
|
| | | needActiveTreasureDict = realmIpyData.GetNeedActiveTreasure()
|
| | | for mwType, needActiveCnt in needActiveTreasureDict.items():
|
| | | activeCnt = PlayerMagicWeapon.GetMWActiveCntByType(curPlayer, mwType)
|
| | | if activeCnt < needActiveCnt:
|
| | | GameWorld.DebugLog("开启渡劫 需要法宝的激活条件不满足! needActiveTreasureDict=%s,法宝类型=%s, 已激活数量=%s" % (needActiveTreasureDict, mwType, activeCnt))
|
| | | return
|
| | | |
| | | |
| | | needItemID = realmIpyData.GetNeedItemID()
|
| | | needItemCount = realmIpyData.GetNeedItemCnt()
|
| | | # 支持不消耗物品升级
|
| | | if needItemID > 0 and needItemCount > 0:
|
| | | curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | hasEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(needItemID, curPack, needItemCount)
|
| | | if not hasEnough:
|
| | | GameWorld.DebugLog("渡劫开启, 材料不足! Lv=%s, needItemID=%s,needItemCount=%s" |
| | | % (curRealmLV, needItemID, needItemCount))
|
| | | return
|
| | | #扣除物品
|
| | | ItemCommon.ReduceItem(curPlayer, curPack, itemIndexList, needItemCount, True, "Realm")
|
| | | PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, needRealmPoint)
|
| | | |
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 1)
|
| | | SyncRealmFBState(curPlayer)
|
| | | GameWorld.Log("开启渡劫副本成功: curRealmLV=%s" % curRealmLV, curPlayer.GetPlayerID())
|
| | | return
|
| | |
|
| | | def SyncRealmFBState(curPlayer):
|
| | | #通知客户端渡劫副本是否开启
|
| | | return
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
|
| | | return
|
| | | sendPack = ChPyNetSendPack.tagMCSyncRealmFBIsOpen()
|
| | | sendPack.IsOpen = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen)
|
| | | sendPack.SitAllTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmSitAllTime)
|
| | | sendPack.SitRemainTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmSitRemainTime)
|
| | | sendPack.SitStartTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmSitStartTime)
|
| | | #sendPack.LastEnterTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBLastEnterTime)
|
| | | sendPack = ChPyNetSendPack.tagMCSyncRealmInfo()
|
| | | sendPack.IsPass = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen)
|
| | | NetPackCommon.SendFakePack(curPlayer, sendPack)
|
| | | return
|
| | |
|
| | |
|
| | | ## 计算爵位属性
|
| | | # @param curPlayer 玩家
|
| | |
| | | PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
|
| | | return
|
| | |
|
| | |
|
| | | #// A5 23 提升境界等级 # tagCMRealmLVUp
|
| | | #
|
| | | #struct tagCMRealmLVUp
|
| | |
| | | def DoRealmLVUp(index, clientData, tick):
|
| | | #升级境界
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | canLvUp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen) == 2
|
| | | if not canLvUp:
|
| | | GameWorld.DebugLog(' 不能升级境界')
|
| | | curRealmLV = curPlayer.GetOfficialRank()
|
| | | realmIpyData = GetRealmIpyData(curRealmLV)
|
| | | if not realmIpyData:
|
| | | GameWorld.ErrLog("没有该境界等级数据! Lv=%s" % curRealmLV)
|
| | | return
|
| | | if realmIpyData.GetBossID():
|
| | | canLvUp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen) == 1
|
| | | if not canLvUp:
|
| | | GameWorld.DebugLog(' 副本未过关,不能升级境界')
|
| | | return
|
| | | #等级判断
|
| | | if curPlayer.GetLV() < realmIpyData.GetNeedLV():
|
| | | return
|
| | | #装备判断
|
| | | needEquip = realmIpyData.GetNeedEquip()
|
| | | if needEquip and len(needEquip) == 4:
|
| | | classLV, star, isSuite, color = needEquip
|
| | | equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
|
| | | for place in ChConfig.EquipPlace_Base:
|
| | | ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, place)
|
| | | if not ipyData:
|
| | | return
|
| | | gridIndex = ipyData.GetGridIndex()
|
| | | curEquip = equipPack.GetAt(gridIndex)
|
| | | if not ItemCommon.CheckItemCanUse(curEquip):
|
| | | return
|
| | | curPartStar = ChEquip.GetEquipPartStar(curPlayer, gridIndex)
|
| | | if curPartStar < star:
|
| | | return
|
| | | if isSuite and not curEquip.GetSuiteID():
|
| | | return
|
| | | if curEquip.GetItemColor() < color:
|
| | | return
|
| | | |
| | | needItemID = realmIpyData.GetNeedItemID()
|
| | | needItemCount = realmIpyData.GetNeedItemCnt()
|
| | | # 支持不消耗物品升级
|
| | | if needItemID > 0 and needItemCount > 0:
|
| | | curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | hasEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(needItemID, curPack, needItemCount)
|
| | | if not hasEnough:
|
| | | GameWorld.DebugLog("渡劫开启, 材料不足! Lv=%s, needItemID=%s,needItemCount=%s" |
| | | % (curRealmLV, needItemID, needItemCount))
|
| | | return
|
| | | #扣除物品
|
| | | ItemCommon.ReduceItem(curPlayer, curPack, itemIndexList, needItemCount, True, "Realm")
|
| | |
|
| | | DoRealmLVUpLogic(curPlayer)
|
| | | return
|
| | |
|
| | | # 提升1级境界加点
|
| | | def __DoRealmLVUpAddPoint(curPlayer):
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_AddPoint):
|
| | | # 未开启前不可加点,因为DoAddPointOpen会一次性补齐,避免意外情况多加了点数
|
| | | return
|
| | |
|
| | | curFreePoint = curPlayer.GetFreePoint()
|
| | | addPoint = IpyGameDataPY.GetFuncCfg("LVUPAddPoint", 3)
|
| | | if addPoint != 0:
|
| | | setFreePoint = curFreePoint + addPoint
|
| | | DataRecordPack.DR_Freepoint(curPlayer, "RealmLVUp", addPoint)
|
| | | curPlayer.SetFreePoint(setFreePoint)
|
| | |
|
| | | return
|
| | |
|
| | |
|
| | | def DoRealmLVUpLogic(curPlayer, needSys=True):
|
| | | curRealmLV = curPlayer.GetOfficialRank()
|
| | | nextRealmLv = curRealmLV + 1
|
| | | GameWorld.DebugLog(' 升级境界nextRealmLv=%s'%nextRealmLv)
|
| | | GameWorld.DebugLog(' 升级境界nextRealmLv=%s' % nextRealmLv)
|
| | | nextRealmIpyData = GetRealmIpyData(nextRealmLv)
|
| | | if not nextRealmIpyData:
|
| | | return
|
| | |
|
| | | curPlayer.SetOfficialRank(nextRealmLv)
|
| | | # 提升1级境界加点
|
| | | __DoRealmLVUpAddPoint(curPlayer)
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 0)
|
| | | if needSys:
|
| | | PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), nextRealmLv])
|
| | | 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])
|
| | | |
| | | SkillCommon.GivePlayerSkillByJobSkillList(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo())
|
| | | |
| | | addFreePoint = nextRealmIpyData.GetAddFreePoint()
|
| | | if addFreePoint:
|
| | | updFreePoint = curPlayer.GetFreePoint() + addFreePoint
|
| | | curPlayer.SetFreePoint(updFreePoint)
|
| | | GameWorld.DebugLog(" addFreePoint=%s,updFreePoint=%s" % (addFreePoint, updFreePoint))
|
| | | |
| | | RefreshOfficialAttr(curPlayer)
|
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | | SyncRealmFBState(curPlayer)
|
| | | #更新修为速率
|
| | | UpdateRealmExp(curPlayer, False, True)
|
| | | NotifyRealmExpInfo(curPlayer)
|
| | | #境界提升成就
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_RealmlvUp, nextRealmLv)
|
| | | #更新排行榜
|
| | | PlayerBillboard.UpdateRealmBillboard(curPlayer)
|
| | | # 记录开服活动
|
| | | OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_RealmLV, nextRealmLv)
|
| | | #OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_RealmLV, nextRealmLv)
|
| | | EventShell.EventRespons_RealmUp(curPlayer, nextRealmLv)
|
| | | #流向
|
| | | realmPoint = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint)
|
| | | realmIpyData = GetRealmIpyData(curRealmLV)
|
| | | needRealmPoint = realmIpyData.GetNeedPoint() if realmIpyData else 0
|
| | | DataRecordPack.DR_RealmLVUp(curPlayer, nextRealmLv, realmPoint, needRealmPoint)
|
| | | DataRecordPack.DR_RealmLVUp(curPlayer, nextRealmLv)
|
| | | return True
|
| | |
|
| | |
|
| | | def DologicDujieFBPass(curPlayer, realmLV, star):
|
| | | #渡劫通过后处理
|
| | | realmIpyData = GetRealmIpyData(realmLV)
|
| | | if not realmIpyData:
|
| | | return
|
| | | needRealmPoint = realmIpyData.GetNeedPoint()
|
| | | PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, needRealmPoint)
|
| | | DoRealmLVUpLogic(curPlayer)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 0)
|
| | | |
| | | # sitTimeDict = realmIpyData.GetSitTime()
|
| | | # sitSecond = sitTimeDict.get(str(star), 0)
|
| | | # if sitSecond == 0:
|
| | | # #没有打坐时间,直接升境界
|
| | | # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 2)
|
| | | # else:
|
| | | # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmSitAllTime, sitSecond)
|
| | | # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmSitRemainTime, sitSecond)
|
| | | # SyncRealmFBState(curPlayer)
|
| | | |
| | | #DoRealmLVUpLogic(curPlayer)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 1)
|
| | | SyncRealmFBState(curPlayer)
|
| | |
|
| | | return
|
| | |
|
| | |
|
| | |
|
| | | #// A5 0C 使用道具减少渡劫打坐时间 #tagCMReduceSitTime
|
| | | #// A5 21 境界修为池提取 #tagCMTakeOutRealmExp
|
| | | #
|
| | | #struct tagCMReduceSitTime
|
| | | #struct tagCMTakeOutRealmExp
|
| | | #{
|
| | | # tagHead Head;
|
| | | # WORD ItemCnt; // 道具数量
|
| | | #};
|
| | | def OnReduceSitTime(index, clientData, tick):
|
| | | # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | # itemCnt = clientData.ItemCnt
|
| | | # reduceSitTimeItemID = IpyGameDataPY.GetFuncCfg('ReduceSitTimeItemID')
|
| | | # |
| | | # remainTime = __GetRemainSitTime(curPlayer)
|
| | | # if remainTime <= 0:
|
| | | # GameWorld.DebugLog('使用道具减少渡劫打坐时间 remainTime=%s' % remainTime)
|
| | | # return
|
| | | # curItem = GameWorld.GetGameData().GetItemByTypeID(reduceSitTimeItemID)
|
| | | # curEff = curItem.GetEffectByIndex(0)
|
| | | # singleReduceTime = curEff.GetEffectValue(0)
|
| | | # useCnt = min(itemCnt, remainTime/singleReduceTime)
|
| | | # if not useCnt:
|
| | | # GameWorld.DebugLog('使用道具减少渡劫打坐时间 useCnt=%s' % useCnt)
|
| | | # return
|
| | | # |
| | | # itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | # hasEnough, itemList = ItemCommon.GetItem_FromPack_ByID(reduceSitTimeItemID, itemPack, useCnt)
|
| | | # if not hasEnough:
|
| | | # GameWorld.DebugLog('使用道具减少渡劫打坐时间 道具不足%s' % useCnt)
|
| | | # return
|
| | | # |
| | | # ItemCommon.ReduceItem(curPlayer, itemPack, itemList, useCnt, False)
|
| | | # |
| | | # reduceTime = useCnt * singleReduceTime
|
| | | # sitRemainTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmSitRemainTime)
|
| | | # newRemainTime = max(0, sitRemainTime-reduceTime)
|
| | | # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmSitRemainTime, newRemainTime)
|
| | | # GameWorld.DebugLog('使用道具减少渡劫打坐时间 使用道具%s,减少打坐时间%s秒' % (useCnt, reduceTime))
|
| | | # SyncRealmFBState(curPlayer)
|
| | | 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
|
| | |
|