From f9bd22b35e55dfd182205756a9d95348e055a957 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 27 十一月 2018 21:53:14 +0800 Subject: [PATCH] 4923 【后端】【1.3】神兵技能--神兵等级差安全防范,模板30增加清除负面技能(减益,持续减益,控制buff)一个 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py | 52 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 39 insertions(+), 13 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py index 683e603..0afc7a7 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py @@ -42,8 +42,8 @@ Map_Dogzfb_NextNeedTime = "NextNeedTime%s" # 下次刷新需要时间 参数npcid Map_Dogzfb_LastCheckTick = "LastCheckTick" # 上次检查时间 Map_Dogzfb_NPCRemainCnt = 'NPCRemainCnt_%s' # NPC剩余数量 -Map_Dogzfb_CollectLostHPTick = 'CollectLostHPTick' # 采集掉线Tick - +Map_Dogzfb_CollectLostHPTick = 'CollectLostHPTick' # 采集掉血Tick +Map_Dogzfb_CollectLostHPCnt = 'CollectLostHPCnt' # 采集掉血次数 ## 是否能够通过活动查询进入 # @param curPlayer 玩家实例 @@ -106,6 +106,19 @@ return +## 开始采集 +# @param curPlayer 当前玩家 +# @param curNPC 当前NPC +# @return None or False +# @remarks 函数详细说明. +def OnBeginCollect(curPlayer, curNPC): + playerID = curPlayer.GetID() + tick = GameWorld.GetGameWorld().GetTick() + gameFB = GameWorld.GetGameFB() + gameFB.SetPlayerGameFBDict(playerID, Map_Dogzfb_CollectLostHPTick, tick) + gameFB.SetPlayerGameFBDict(playerID, Map_Dogzfb_CollectLostHPCnt, 0) + return + ## 收集中 def OnCollecting(curPlayer, tick): tagObj = curPlayer.GetActionObj() @@ -116,19 +129,23 @@ curNPC = GameWorld.GetNPCManager().GetNPCByIndex(tagObj.GetIndex()) npcID = curNPC.GetNPCID() + __DoCollectLostHP(curPlayer, npcID, tick) + return + +def __DoCollectLostHP(curPlayer, npcID, tick): + + playerID = curPlayer.GetID() gameFB = GameWorld.GetGameFB() collectLostHPTick = gameFB.GetPlayerGameFBDictByKey(playerID, Map_Dogzfb_CollectLostHPTick) - + lostHPCnt = gameFB.GetPlayerGameFBDictByKey(playerID, Map_Dogzfb_CollectLostHPCnt) + lostCD = IpyGameDataPY.GetFuncEvalCfg('DogzFBCollect', 1, {}).get(npcID, 1) - lostTime = (tick - collectLostHPTick) / 1000/lostCD # 掉血次数 - if lostTime >2: - gameFB.SetPlayerGameFBDict(playerID, Map_Dogzfb_CollectLostHPTick, tick) - return + lostTime = (tick - collectLostHPTick) / (1000*lostCD)-lostHPCnt if not lostTime: return - gameFB.SetPlayerGameFBDict(playerID, Map_Dogzfb_CollectLostHPTick, tick) + gameFB.SetPlayerGameFBDict(playerID, Map_Dogzfb_CollectLostHPCnt, lostHPCnt+lostTime) lostHPPer = IpyGameDataPY.GetFuncEvalCfg('DogzFBCollect', 2, {}).get(npcID, 1) @@ -140,6 +157,14 @@ SkillCommon.SkillLostHP(curPlayer, skillTypeID, buffOwner, lostValue, tick) return +##玩家收集成功(塔, 旗) +# @param curPlayer 玩家实例 +# @param tick 时间戳 +# @return 无意义 +# @remarks +def OnCollectOK(curPlayer, npcID, tick): + __DoCollectLostHP(curPlayer, npcID, tick) + return ##---副本总逻辑计时器--- # @param tick:时间戳 @@ -248,14 +273,15 @@ nextNeedTime = gameWorldMgr.GetGameWorldDictByKey(Map_Dogzfb_NextNeedTime % npcID) return max(0, nextNeedTime - curTime + lastRefreshTime) -def SyncNPCRefreshTime(playerid=0): - curTime = int(time.time()) +def SyncNPCRefreshTime(): syncNPCIDList = IpyGameDataPY.GetFuncEvalCfg('DogzFBRefreshCfg', 3) syncDict = {} for npcID in syncNPCIDList: - refreshTime = GetDogzNPCRefreshTime(curTime, npcID) - syncDict[npcID] = refreshTime - msgStr = str([playerid, syncDict]) + gameWorldMgr = GameWorld.GetGameWorld() + lastRefreshTime = gameWorldMgr.GetGameWorldDictByKey(Map_Dogzfb_LastRefreshTime % npcID) + nextNeedTime = gameWorldMgr.GetGameWorldDictByKey(Map_Dogzfb_NextNeedTime % npcID) + syncDict[npcID] = [lastRefreshTime, nextNeedTime] + msgStr = str(syncDict) GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'DogzNPCTime', msgStr, len(msgStr)) return -- Gitblit v1.8.0