From d074aa8f1cb659796af94239daa233862ed9985b Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Mon, 3 Mar 2025 18:17:50 -0600 Subject: [PATCH] fix for backstab --- src/engine/gameManager/PowersManager.java | 26 ++++++++++++------- .../handlers/RequestEnterWorldHandler.java | 16 +++++++++--- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/engine/gameManager/PowersManager.java b/src/engine/gameManager/PowersManager.java index 5c9fff80..f0deebf3 100644 --- a/src/engine/gameManager/PowersManager.java +++ b/src/engine/gameManager/PowersManager.java @@ -199,6 +199,10 @@ public enum PowersManager { return; } + if(msg.getPowerUsedID() == -1851459567){//backstab + applyPower(pc,pc,pc.loc,-1851459567,msg.getNumTrains(),false); + } + if (usePowerA(msg, origin, sendCastToSelf)) { // Cast failed for some reason, reset timer @@ -1979,17 +1983,21 @@ public enum PowersManager { } if(AbstractCharacter.IsAbstractCharacter(awo)) { - boolean immune = false; - AbstractCharacter absChar = (AbstractCharacter)awo; - for (AbstractEffectModifier mod : ab.getPowerAction().getEffectsBase().getModifiers()) { - if (absChar.getBonuses() != null){ - if(absChar.getBonuses().getBool(ModType.ImmuneTo, mod.sourceType) || absChar.getBonuses().getBool(ModType.NoMod, mod.sourceType)) - immune = true; + try { + boolean immune = false; + AbstractCharacter absChar = (AbstractCharacter) awo; + for (AbstractEffectModifier mod : ab.getPowerAction().getEffectsBase().getModifiers()) { + if (absChar.getBonuses() != null) { + if (absChar.getBonuses().getBool(ModType.ImmuneTo, mod.sourceType) || absChar.getBonuses().getBool(ModType.NoMod, mod.sourceType)) + immune = true; + } } - } - if(immune) - return; + if (immune) + return; + }catch(Exception e){ + + } } diff --git a/src/engine/net/client/handlers/RequestEnterWorldHandler.java b/src/engine/net/client/handlers/RequestEnterWorldHandler.java index 18b48254..79f276a8 100644 --- a/src/engine/net/client/handlers/RequestEnterWorldHandler.java +++ b/src/engine/net/client/handlers/RequestEnterWorldHandler.java @@ -48,7 +48,7 @@ public class RequestEnterWorldHandler extends AbstractClientMsgHandler { PlayerCharacter player = origin.getPlayerCharacter(); - WorldGrid.RemoveWorldObject(player); + Dispatch dispatch; if (player == null) { @@ -57,6 +57,11 @@ public class RequestEnterWorldHandler extends AbstractClientMsgHandler { return true; } + //if(player.isEnteredWorld()){ + // if(player != null) { + // WorldGrid.RemoveWorldObject(player); + // } + //} player.setEnteredWorld(false); Account acc = SessionManager.getAccount(origin); @@ -106,9 +111,14 @@ public class RequestEnterWorldHandler extends AbstractClientMsgHandler { player.getTimestamps().put("EnterWorld", System.currentTimeMillis()); - if (player.getLoc().equals(Vector3fImmutable.ZERO) || System.currentTimeMillis() > player.getTimeStamp("logout") + (15 * 60 * 1000)) { + Long logout = player.getTimeStamp("logout"); + if (player.getLoc().equals(Vector3fImmutable.ZERO) || System.currentTimeMillis() > logout + (15 * 60 * 1000)) { player.stopMovement(player.getBindLoc()); - player.setSafeMode(); + try { + player.setSafeMode(); + }catch(Exception e){ + Logger.error(e); + } player.updateLocation(); player.setRegion(AbstractWorldObject.GetRegionByWorldObject(player)); }