6646 【后端】【2.0】特殊丹药效果新增(会灵丹)
| | |
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("BeginTime", c_int), #开始计时时间
|
| | | ("BuffTime", c_int), #buff剩余时间
|
| | | ("BuffAddRate", c_int), #buff加成万分率
|
| | | ("CurExp", c_int), #当前总经验
|
| | | ("CurExpPoint", c_int), #当前总经验点
|
| | | ]
|
| | |
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x27
|
| | | self.BeginTime = 0
|
| | | self.BuffTime = 0
|
| | | self.BuffAddRate = 0
|
| | | self.CurExp = 0
|
| | | self.CurExpPoint = 0
|
| | | return
|
| | |
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | BeginTime:%d,
|
| | | BuffTime:%d,
|
| | | BuffAddRate:%d,
|
| | | CurExp:%d,
|
| | | CurExpPoint:%d
|
| | | '''\
|
| | |
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.BeginTime,
|
| | | self.BuffTime,
|
| | | self.BuffAddRate,
|
| | | self.CurExp,
|
| | | self.CurExpPoint
|
| | | )
|
| | |
| | | Def_Effect_ItemGiveHonor = 242 #使用道具给予荣誉
|
| | | Def_Effect_ItemGiveWeekPartyPoint = 245 #使用道具给予七日巡礼积分
|
| | | Def_Effect_ItemGiveWeekPartyPoint1 = 246 #使用道具给予节日巡礼积分
|
| | | Def_Effect_AddRealmExpRate = 251 #增加聚灵效率
|
| | | #----以下未使用或代码依然存在的---
|
| | | Def_Effect_ItemGiveGongXun = 1920 #使用道具给予功勋
|
| | | Def_Effect_ItemGiveRuneJH = 1925 #使用道具给予符印精华
|
| | |
| | | Def_PDict_RealmExp = "RealmExp" #境界修为池总经验
|
| | | Def_PDict_RealmExpPoint = "RealmExpPoint" #境界修为池总经验点
|
| | | Def_PDict_RealmExpBeginTime = "RealmExpBeginTime" #境界修为池经验开始计时时间
|
| | | Def_PDict_RealmExpBuffRemainTime = "RealmExpBuffRemainTime" #境界修为池经验buff剩余时间
|
| | | Def_PDict_RealmExpBuffAddRate = "RealmExpBuffAddRate" #境界修为池经验增加百分比(万分率)
|
| | |
|
| | | #法宝
|
| | | Def_PDict_MagicWeaponIsWear = "MagicWeaponIsWear_%s" #法宝佩戴状态 参数法宝ID
|
| | |
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("BeginTime", c_int), #开始计时时间
|
| | | ("BuffTime", c_int), #buff剩余时间
|
| | | ("BuffAddRate", c_int), #buff加成万分率
|
| | | ("CurExp", c_int), #当前总经验
|
| | | ("CurExpPoint", c_int), #当前总经验点
|
| | | ]
|
| | |
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x27
|
| | | self.BeginTime = 0
|
| | | self.BuffTime = 0
|
| | | self.BuffAddRate = 0
|
| | | self.CurExp = 0
|
| | | self.CurExpPoint = 0
|
| | | return
|
| | |
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | BeginTime:%d,
|
| | | BuffTime:%d,
|
| | | BuffAddRate:%d,
|
| | | CurExp:%d,
|
| | | CurExpPoint:%d
|
| | | '''\
|
| | |
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.BeginTime,
|
| | | self.BuffTime,
|
| | | self.BuffAddRate,
|
| | | self.CurExp,
|
| | | self.CurExpPoint
|
| | | )
|
| | |
| | |
|
| | | import PlayerPrestigeSys
|
| | | import GameWorld
|
| | | import ChConfig
|
| | | #---------------------------------------------------------------------
|
| | | #逻辑实现
|
| | | ## GM命令执行入口
|
| | |
| | | # @remarks 函数详细说明.
|
| | | def OnExec(curPlayer, list):
|
| | | curTotalRealmExp = PlayerPrestigeSys.UpdateRealmExp(curPlayer, isNotify=True)
|
| | | GameWorld.DebugAnswer(curPlayer, "curTotalRealmExp=%s" % curTotalRealmExp)
|
| | | buffRemainTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmExpBuffRemainTime)
|
| | | GameWorld.DebugAnswer(curPlayer, "curTotalRealmExp=%s,buffRemainTime=%s" % (curTotalRealmExp, buffRemainTime))
|
| | | return
|
| | |
|
| | |
| | | ChConfig.Def_Effect_ChatBubbleBox:"Item_ChatBubbleBox", # 激活聊天气泡框
|
| | | ChConfig.Def_Effect_ItemGiveWeekPartyPoint:"Item_WeekPartyPoint", # 增加活动巡礼积分
|
| | | ChConfig.Def_Effect_ItemGiveWeekPartyPoint1:"Item_WeekPartyPoint", # 增加活动巡礼积分
|
| | | #ChConfig.Def_Effect_AddZhenQiByTimes:"Item_AddZhenQiByTimes", # 增加真气按一天使用次数减少
|
| | | ChConfig.Def_Effect_AddRealmExpRate:"Item_AddRealmExpRate", # 增加聚灵效率
|
| | | #ChConfig.Def_Effect_AddPrestige:"Item_AddPrestige", # 给人物威望
|
| | | #ChConfig.Def_Effect_FamilyImpeach:"Item_FamilyImpeach", # 弹劾符
|
| | | #ChConfig.Def_Effect_ClothesCoatSkin:"Item_ClothesCoatSkin", #激活时装皮肤
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package UseItem.Item_AddRealmExpRate
|
| | | #
|
| | | # @todo:增加聚灵效率
|
| | | # @author xdh
|
| | | # @date 2019-5-5
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 增加聚灵效率
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2019-5-5 12:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import PlayerControl
|
| | | import PlayerPrestigeSys
|
| | | import ItemCommon
|
| | | import ChConfig
|
| | |
|
| | | def BatchUseItem(curPlayer, curRoleItem, tick, useCnt, exData):
|
| | | ##批量使用物品
|
| | | #itemTypeID = curRoleItem.GetItemTypeID()
|
| | | curEff = curRoleItem.GetEffectByIndex(0)
|
| | | addTime = curEff.GetEffectValue(0) * useCnt
|
| | | addRate = curEff.GetEffectValue(1)
|
| | | PlayerPrestigeSys.AddRealmExpBuffTime(curPlayer, addTime, addRate)
|
| | | |
| | | #PlayerControl.NotifyCode(curPlayer, 'UseItem_1', [itemTypeID, mwID, addExp])
|
| | | ItemCommon.DelItem(curPlayer, curRoleItem, useCnt, True, isForceDR=True)
|
| | | return True, useCnt
|
| | |
|
| | |
| | | return True
|
| | |
|
| | |
|
| | | def OnLogin(curPlayer): |
| | | def OnLogin(curPlayer):
|
| | | SyncRealmFBState(curPlayer)
|
| | | UpdateRealmExp(curPlayer, False)
|
| | | NotifyRealmExpInfo(curPlayer)
|
| | |
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | | SyncRealmFBState(curPlayer)
|
| | | #更新修为速率
|
| | | UpdateRealmExp(curPlayer, False)
|
| | | UpdateRealmExp(curPlayer, False, True)
|
| | | NotifyRealmExpInfo(curPlayer)
|
| | | #境界提升成就
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_RealmlvUp, nextRealmLv)
|
| | |
| | | return
|
| | |
|
| | |
|
| | | def UpdateRealmExp(curPlayer, isNotify=True):
|
| | | def UpdateRealmExp(curPlayer, isNotify=True, isRealmLVUP=False):
|
| | | ##更新境界修为池
|
| | | ipyData = GetRealmIpyData(curPlayer.GetOfficialRank())
|
| | | curRealmLV = curPlayer.GetOfficialRank()
|
| | | ipyData = GetRealmIpyData(curRealmLV)
|
| | | if not ipyData:
|
| | | return 0
|
| | | if not ipyData.GetExpRate():
|
| | |
| | | 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
|
| | | ipyData = GetRealmIpyData(curPlayer.GetOfficialRank())
|
| | | if not ipyData:
|
| | | return curTotalExp
|
| | | addExp = passSeconds / IpyGameDataPY.GetFuncCfg('RealmExpTime') * ipyData.GetExpRate()
|
| | | 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)
|
| | |
| | | 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)
|