From 4c17e74472e81c713401ced428615d34e49fae53 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 18 Apr 2019 10:20:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=87=BA=E5=9B=BE=E8=8B=B1=E9=9B=84?= =?UTF-8?q?=E8=A1=80=E9=87=8F=E9=87=8D=E7=BD=AE=E4=B8=8D=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E9=A3=9F=E7=89=A9buffer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/handler/map/MapLogic.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 35bd11c5e..62a66de7e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -727,7 +727,7 @@ public class MapLogic { public void resetMapInfo(User user, boolean needTemporaryItem) throws Exception { MapManager mapManager = user.getMapManager(); - + mapManager.setFoodBufferMap(new HashMap<>()); int teamId = mapManager.getTeamId(); List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); for (TeamPosHeroInfo teamPosHeroInfo : team){ @@ -747,7 +747,6 @@ public class MapLogic { mapManager.setTriggerXY(0); mapManager.setDieCount(0); mapManager.setCanMoveTime(0); - mapManager.setFoodBufferMap(new HashMap<>()); TemporaryItems temporaryItems = mapManager.getTemporaryItems(); mapManager.setMission(null); if (temporaryItems != null) { From 67e8ce4dc528acbfd9d0d8462357d378370c7c80 Mon Sep 17 00:00:00 2001 From: mashiyu Date: Thu, 18 Apr 2019 13:25:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A4=9A=E6=8B=A8=E6=80=AA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luafight/Modules/Battle/Logic/Base/Buff.lua | 5 +++-- luafight/Modules/Battle/Logic/BattleLogic.lua | 5 ++++- .../com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/luafight/Modules/Battle/Logic/Base/Buff.lua b/luafight/Modules/Battle/Logic/Base/Buff.lua index 4e4fbc219..dfd91a6dc 100644 --- a/luafight/Modules/Battle/Logic/Base/Buff.lua +++ b/luafight/Modules/Battle/Logic/Base/Buff.lua @@ -148,7 +148,8 @@ function BuffManager:Update() local oldBuff = buffList.buffer[i] if oldBuff.target == buff.target and oldBuff:OnCover(buff) then --判定该效果能否被覆盖 oldBuff:OnEnd() - buff.target.Event:DispatchEvent(BattleEventName.BuffEnd, buffList.buffer[i]) + oldBuff.target.Event:DispatchEvent(BattleEventName.BuffEnd, oldBuff) + putBuff(oldBuff) buffList.buffer[i] = buff buff:OnStart() buff.target.Event:DispatchEvent(BattleEventName.BuffStart, buff) @@ -157,7 +158,7 @@ function BuffManager:Update() break end end - if not isCovered then + if not isCovered and (buff.maxCount == 0 or buffList.size < buff.maxCount) then buffList:Add(buff) buff:OnStart() buff.target.Event:DispatchEvent(BattleEventName.BuffStart, buff) diff --git a/luafight/Modules/Battle/Logic/BattleLogic.lua b/luafight/Modules/Battle/Logic/BattleLogic.lua index dfc42b5f5..e9e160b9c 100644 --- a/luafight/Modules/Battle/Logic/BattleLogic.lua +++ b/luafight/Modules/Battle/Logic/BattleLogic.lua @@ -251,6 +251,10 @@ end function BattleLogic.WaitForTrigger(delayTime, action) delayTime = floor(delayTime * 100000 + 0.5) / 100000 --进行精度处理,避免前后端计算不一致 local delayFrame = floor(delayTime * BattleLogic.GameFrameRate + 0.5) + if delayFrame == 0 then --0延迟的回调直接调用 + action() + return + end local item = actionPool:Get() item[1] = curFrame + delayFrame item[2] = action @@ -304,7 +308,6 @@ function BattleLogic.Clear() objList:Remove(objList.vList[objList.size].uid) end while removeObjList.size > 0 do - removeObjList.buffer[removeObjList.size]:Dispose() rolePool:Put(removeObjList.buffer[removeObjList.size]) removeObjList:Remove(removeObjList.size) end diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java index 43d6d6bc9..b0b4f7e58 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java @@ -285,14 +285,14 @@ public class BehaviorUtil { if (info !=null){ CommonProto.FightTeamInfo.Builder monsterBuilder1 = CommonProto.FightTeamInfo.newBuilder(); JsonFormat.merge(info, monsterBuilder1); - CommonProto.FightTeamInfo monsterTeam1 = monsterBuilder.build(); + CommonProto.FightTeamInfo monsterTeam1 = monsterBuilder1.build(); monsterTeamList.add(monsterTeam1); } String info1 = (String)valueMap.get(RedisKey.FIGHT_MONSTERS_3); if (info1!= null){ CommonProto.FightTeamInfo.Builder monsterBuilder2 = CommonProto.FightTeamInfo.newBuilder(); JsonFormat.merge(info1, monsterBuilder2); - CommonProto.FightTeamInfo monsterTeam2 = monsterBuilder.build(); + CommonProto.FightTeamInfo monsterTeam2 = monsterBuilder2.build(); monsterTeamList.add(monsterTeam2); } return monsterTeamList;