From 48a1014fb04935c19d91d3a00d06cd99bfe7c610 Mon Sep 17 00:00:00 2001 From: voronius Date: Sat, 2 Aug 2014 10:45:03 +0300 Subject: [PATCH 1/3] Fix for inspiration and group buffs Fix for inspiration and group buffs, they used distance check with different coordinate systems. Now watching and inspiration buff is possible. --- scripts/commands/inspire.py | 2 +- src/services/EntertainmentService.java | 2 +- src/services/GroupService.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/commands/inspire.py b/scripts/commands/inspire.py index 57cd0a29..282fe64a 100644 --- a/scripts/commands/inspire.py +++ b/scripts/commands/inspire.py @@ -34,7 +34,7 @@ def run(core, actor, target, commandString): actor.sendSystemMessage('@performance:insp_buff_must_listen', 2) return - if target.getPosition().getDistance2D(actor.getWorldPosition()) > float(20): + if target.getWorldPosition().getDistance2D(actor.getWorldPosition()) > float(20): actor.sendSystemMessage(target.getCustomName() + ' is too far away to inspire.', 0) return diff --git a/src/services/EntertainmentService.java b/src/services/EntertainmentService.java index e41dceb6..78c04f0d 100644 --- a/src/services/EntertainmentService.java +++ b/src/services/EntertainmentService.java @@ -687,7 +687,7 @@ public class EntertainmentService implements INetworkDispatch { final ScheduledFuture spectatorTask = scheduler.scheduleAtFixedRate(() -> { try { - if (spectator.getPosition().getDistance2D(performer.getWorldPosition()) > (float) 70) { + if (spectator.getWorldPosition().getDistance2D(performer.getWorldPosition()) > (float) 70) { if(((performer.getPerformanceType()) ? "dance" : "music").equals("dance")) { spectator.setPerformanceWatchee(null); diff --git a/src/services/GroupService.java b/src/services/GroupService.java index e7b06a1b..13b46c7b 100644 --- a/src/services/GroupService.java +++ b/src/services/GroupService.java @@ -209,7 +209,7 @@ public class GroupService implements INetworkDispatch { for(SWGObject otherMember : group.getMemberList()) { if(otherMember != member) { for(Buff buff : ((CreatureObject) otherMember).getBuffList().get()) { - if(buff.isGroupBuff() && otherMember.getPlanet() == member.getPlanet() && otherMember.getPosition().getDistance2D(member.getWorldPosition()) <= 80) { + if(buff.isGroupBuff() && otherMember.getPlanet() == member.getPlanet() && otherMember.getWorldPosition().getDistance2D(member.getWorldPosition()) <= 80) { core.buffService.addBuffToCreature((CreatureObject) otherMember, buff.getBuffName(), member); } } From ca004a162c73dc917a920a3425ed647c2bd50764 Mon Sep 17 00:00:00 2001 From: voronius Date: Sat, 2 Aug 2014 11:01:16 +0300 Subject: [PATCH 2/3] fix for not being able to reuse or delete char Fix for not being able to reuse or delete char after creation. All chars were only available once as the query to the result set used wrong field name to get the char id. --- src/services/LoginService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/LoginService.java b/src/services/LoginService.java index b01b7bb1..3133269f 100644 --- a/src/services/LoginService.java +++ b/src/services/LoginService.java @@ -333,11 +333,12 @@ public class LoginService implements INetworkDispatch{ String characterName = resultSet.getString("firstName").replaceAll("\\s",""); ; String lastName = resultSet.getString("lastName").replaceAll("\\s",""); + if (lastName != null && lastName.length() > 0) characterName += " " + lastName; enumerateCharacterId.addCharacter( characterName, resultSet.getInt("appearance"), - resultSet.getLong("Id"), + resultSet.getLong("id"), resultSet.getInt("galaxyId"), resultSet.getInt("statusId")); } From e16e0373d632b7e053923f794bc053778927d60a Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 4 Aug 2014 16:39:43 -0400 Subject: [PATCH 3/3] Added system err print for combat commands being considered regular scripted commands Removed loading of buildout objects temporarily to help make it easier to resolve major loading crashes Commands that are considered combat commands by the client but are using regular command format will work, it'll just give an error. They should be moved to the proper combat command format. --- options.cfg | 2 +- src/services/command/CommandService.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/options.cfg b/options.cfg index 328c74b1..c96f5a3b 100644 --- a/options.cfg +++ b/options.cfg @@ -1,5 +1,5 @@ LOAD.SNAPSHOT_OBJECTS=1 -LOAD.BUILDOUT_OBJECTS=1 +LOAD.BUILDOUT_OBJECTS=0 #LOAD.BUILDOUT_ONLY_FOR="dathomir" LOAD.RESOURCE.SYSTEM=1 diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index aa514a51..a8cd0210 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -451,8 +451,13 @@ public class CommandService implements INetworkDispatch { } public void processCombatCommand(CreatureObject attacker, SWGObject target, CombatCommand command, int actionCounter, String commandArgs) { - if (FileUtilities.doesFileExist("scripts/commands/combat/" + command.getCommandName() + ".py")) { - core.scriptService.callScript("scripts/commands/combat/", command.getCommandName(), "setup", core, attacker, target, command); + if (FileUtilities.doesFileExist("scripts/commands/combat/" + command.getCommandName().toLowerCase() + ".py")) { + core.scriptService.callScript("scripts/commands/combat/", command.getCommandName().toLowerCase(), "setup", core, attacker, target, command); + } else { + if (FileUtilities.doesFileExist("scripts/commands/" + command.getCommandName().toLowerCase() + ".py")) { + System.err.print("Command " + command.getCommandName() + " is considered a combat command by the client but has a regular command script!"); + core.scriptService.callScript("scripts/commands/combat/", command.getCommandName().toLowerCase(), "run", core, attacker, target, ""); + } } boolean success = true;