From 70c228cbd54204c8d6fd364cee36454e6ca488ff Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Fri, 16 May 2014 12:42:25 +0200 Subject: [PATCH 1/6] Jedi - Fixed Stance Saber Block --- scripts/skillMods/expertise_stance_saber_block.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/skillMods/expertise_stance_saber_block.py b/scripts/skillMods/expertise_stance_saber_block.py index b5c5e291..64962f76 100644 --- a/scripts/skillMods/expertise_stance_saber_block.py +++ b/scripts/skillMods/expertise_stance_saber_block.py @@ -1,8 +1,10 @@ import sys def add(core, actor, skillMod, value): + core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() * 100) return def deduct(core, actor, skillMod, value): + core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() * 100) return \ No newline at end of file From c07454533b19f5c60ec1b30464f82cf3873fa121 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Fri, 16 May 2014 15:29:40 +0200 Subject: [PATCH 2/6] Minor changes to CombatService --- src/services/combat/CombatService.java | 43 +++++++++++--------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/src/services/combat/CombatService.java b/src/services/combat/CombatService.java index 0db0d0e2..ec4bc9f6 100644 --- a/src/services/combat/CombatService.java +++ b/src/services/combat/CombatService.java @@ -46,6 +46,7 @@ import resources.common.FileUtilities; import resources.common.OutOfBand; import resources.common.ProsePackage; import resources.datatables.DisplayType; +import resources.datatables.FactionStatus; import resources.datatables.Options; import resources.datatables.Elemental; import resources.datatables.Posture; @@ -243,7 +244,7 @@ public class CombatService implements INetworkDispatch { if(!(obj instanceof TangibleObject) || obj == attacker) continue; - if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() == 13 || ((CreatureObject) obj).getPosture() == 14)) + if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() == Posture.Incapacitated || ((CreatureObject) obj).getPosture() == Posture.Dead)) continue; if(command.getAttackType() == 0 && !isInConeAngle(attacker, obj, (int) command.getConeLength(), (int) command.getConeWidth(), dirX, dirZ)) @@ -317,7 +318,7 @@ public class CombatService implements INetworkDispatch { if(!(obj instanceof TangibleObject) || obj == attacker) continue; - if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() == 13 || ((CreatureObject) obj).getPosture() == 14)) + if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() == Posture.Incapacitated || ((CreatureObject) obj).getPosture() == Posture.Dead)) continue; if(command.getAttackType() == 0 && !isInConeAngle(attacker, obj, (int) command.getConeLength(), (int) command.getConeWidth(), dirX, dirZ)) @@ -806,7 +807,7 @@ public class CombatService implements INetworkDispatch { if(core.mountService.isMounted(target)) core.mountService.dismount(target, (CreatureObject) target.getContainer()); target.setHealth(1); - target.setPosture((byte) 13); + target.setPosture(Posture.Incapacitated); target.setTurnRadius(0); target.setSpeedMultiplierBase(0); } @@ -817,7 +818,7 @@ public class CombatService implements INetworkDispatch { if(target.getPosture() != 13) return; - target.setPosture((byte) 0); + target.setPosture(Posture.Upright); target.setTurnRadius(1); target.setSpeedMultiplierBase(1); @@ -834,7 +835,7 @@ public class CombatService implements INetworkDispatch { } else if(target.getHealth() - damage <= 0 && target.getAttachment("AI") != null) { synchronized(target.getMutex()) { target.setHealth(0); - target.setPosture((byte) 14); + target.setPosture(Posture.Dead); } attacker.removeDefender(target); target.removeDefender(attacker); @@ -902,7 +903,7 @@ public class CombatService implements INetworkDispatch { } else { - if(target.getFactionStatus() == 0) + if(target.getFactionStatus() == FactionStatus.OnLeave) return true; return false; @@ -991,7 +992,7 @@ public class CombatService implements INetworkDispatch { if(!(obj instanceof CreatureObject)) continue; - if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() == 14)) + if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() == Posture.Dead)) continue; if(!core.simulationService.checkLineOfSight(target, obj)) @@ -1009,7 +1010,7 @@ public class CombatService implements INetworkDispatch { public void deathblowPlayer(CreatureObject attacker, CreatureObject target) { target.stopIncapTask(); target.setIncapTask(null); - target.setPosture((byte) 14); + target.setPosture(Posture.Dead); if (target.getSlottedObject("ghost") != null && attacker.getSlottedObject("ghost") != null) { boolean bountyWindow = true; @@ -1159,11 +1160,11 @@ public class CombatService implements INetworkDispatch { CreatureObject creature = (CreatureObject) owner; - if(eventType != 0 || creature.getPosture() != 14) + if(eventType != 0 || creature.getPosture() != Posture.Dead) return; synchronized(creature.getMutex()) { - creature.setPosture((byte) 0); + creature.setPosture(Posture.Upright); creature.setTurnRadius(1); creature.setSpeedMultiplierBase(1); creature.setHealth(creature.getHealth() + 4000); @@ -1188,7 +1189,7 @@ public class CombatService implements INetworkDispatch { if(!(obj instanceof CreatureObject)) continue; - if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() != 14)) + if(obj instanceof CreatureObject && (((CreatureObject) obj).getPosture() != Posture.Dead)) continue; if(!attemptHeal(medic, (CreatureObject) obj)) @@ -1257,29 +1258,21 @@ public class CombatService implements INetworkDispatch { return; if(target.getSkillMod("expertise_dot_absorption_all") != null) - damage *= (1 - target.getSkillMod("expertise_dot_absorption_all").getBase() / 100); + damage *= (1 - target.getSkillModBase("expertise_dot_absorption_all") / 100); switch(dot.getType()) { - case "acid": - baseArmor = target.getSkillMod("acid").getBase(); - case "heat": - baseArmor = target.getSkillMod("heat").getBase(); - case "cold": - baseArmor = target.getSkillMod("cold").getBase(); - case "electricity": - baseArmor = target.getSkillMod("electricity").getBase(); - case "energy": - baseArmor = target.getSkillMod("energy").getBase(); case "kinetic": - baseArmor = target.getSkillMod("electricity").getBase(); + baseArmor = target.getSkillModBase("electricity"); // Is this a mistake or is it legitimate? case "poison": - baseArmor = target.getSkillMod("acid").getBase(); + baseArmor = target.getSkillModBase("acid"); case "disease": // disease damages action in nge baseArmor = 0; case "bleeding": // elemental type unknown case "fire": - baseArmor = target.getSkillMod("heat").getBase(); + baseArmor = target.getSkillModBase("heat"); + default: + baseArmor = target.getSkillModBase(dot.getType()); } From f25055710d89cdd1ae4352f4f96073313cd577b7 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 17 May 2014 09:59:53 +0100 Subject: [PATCH 3/6] Corrected mistake --- scripts/commands/transferitemmisc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/commands/transferitemmisc.py b/scripts/commands/transferitemmisc.py index 6ebaf183..30dd0846 100644 --- a/scripts/commands/transferitemmisc.py +++ b/scripts/commands/transferitemmisc.py @@ -28,7 +28,7 @@ def run(core, actor, target, commandString): if target.isLootItem(): target.setLootItem(0) - actor.sendSystemMessage('You looted ' + target.getStf().getStfValue() + ' from corpse.', 0) + actor.sendSystemMessage('You looted ' + target.getObjectName().getStfValue() + ' from corpse.', 0) if actorContainer != None and (container.getTemplate() == "object/cell/shared_cell.iff") & core.housingService.getPermissions(actor, actorContainer): target.getContainer().transferTo(actor, container, target) @@ -95,4 +95,4 @@ def run(core, actor, target, commandString): #core.scriptService.callScript(path, 'unequip', module, core, actor, target) core.equipmentService.unequip(actor, target) - return \ No newline at end of file + return From ce613c638d96617250e392878427b9e08a575265 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 17 May 2014 17:48:25 +0100 Subject: [PATCH 4/6] Fixed minor error --- src/resources/objects/building/BuildingObject.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resources/objects/building/BuildingObject.java b/src/resources/objects/building/BuildingObject.java index 6e5fd02c..2c996e3c 100644 --- a/src/resources/objects/building/BuildingObject.java +++ b/src/resources/objects/building/BuildingObject.java @@ -88,7 +88,7 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria @Override public Baseline getOtherVariables() { Baseline baseline = super.getOtherVariables(); - baseline.put("maintainanceAmount", (float) 0); + baseline.put("maintenanceAmount", (float) 0); baseline.put("baseMaintenanceRate", 0); baseline.put("deedTemplate", ""); baseline.put("residency", false); From 94667c1f17166e8288af435ef1cea32e54001327 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 17 May 2014 18:40:47 +0100 Subject: [PATCH 5/6] Added a Static Object constructor for convenience --- src/services/StaticService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/StaticService.java b/src/services/StaticService.java index 7fbaade4..edefd3f2 100644 --- a/src/services/StaticService.java +++ b/src/services/StaticService.java @@ -98,7 +98,10 @@ public class StaticService implements INetworkDispatch { public SWGObject spawnObject(String template, String planetName, long cellId, float x, float y, float z, float qW, float qX, float qY, float qZ) { return spawnObject(template, planetName, cellId, x, y, z, qW, qX, qY, qZ, -1); } - + + public SWGObject spawnObject(String template, String planetName, SWGObject cell, float x, float y, float z, float qW, float qX, float qY, float qZ, int respawnTime) { + return spawnObject(template, planetName, ((cell == null) ? 0L : cell.getObjectID()), x, y, z, qW, qX, qY, qZ, respawnTime); + } public SWGObject spawnObject(String template, String planetName, long cellId, float x, float y, float z, float qW, float qX, float qY, float qZ, int respawnTime) { Planet planet = core.terrainService.getPlanetByName(planetName); From f1096094d069061c6ab0a6c69b26f70732af0311 Mon Sep 17 00:00:00 2001 From: Light Date: Sat, 17 May 2014 19:56:00 +0200 Subject: [PATCH 6/6] fixed some mobile bugs --- scripts/mobiles/dantooine/dark_jedi_master.py | 26 +++++++++++++++++++ src/services/spawn/MobileTemplate.java | 3 ++- src/services/spawn/SpawnService.java | 4 +-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/scripts/mobiles/dantooine/dark_jedi_master.py b/scripts/mobiles/dantooine/dark_jedi_master.py index 6d6566ae..8596f272 100644 --- a/scripts/mobiles/dantooine/dark_jedi_master.py +++ b/scripts/mobiles/dantooine/dark_jedi_master.py @@ -41,6 +41,32 @@ def addTemplate(core): attacks = Vector() mobileTemplate.setDefaultAttack('saberHit') mobileTemplate.setAttacks(attacks) + + + lootPoolNames_1 = ['Junk'] + lootPoolChances_1 = [100] + lootGroupChance_1 = 65 + mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1) + + lootPoolNames_2 = ['jedi_relic_1'] + lootPoolChances_2 = [100] + lootGroupChance_2 = 85 + mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2) + + lootPoolNames_3 = ['powercrystals_hiq'] + lootPoolChances_3 = [100] + lootGroupChance_3 = 12 + mobileTemplate.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3) + + lootPoolNames_4 = ['random_stat_jewelry'] + lootPoolChances_4 = [100] + lootGroupChance_4 = 8 + mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4) + + lootPoolNames_5 = ['sithholocrons'] + lootPoolChances_5 = [100] + lootGroupChance_5 = 3 + mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5) core.spawnService.addMobileTemplate('dark_jedi_master', mobileTemplate) \ No newline at end of file diff --git a/src/services/spawn/MobileTemplate.java b/src/services/spawn/MobileTemplate.java index 1d31bb5a..5c67f195 100644 --- a/src/services/spawn/MobileTemplate.java +++ b/src/services/spawn/MobileTemplate.java @@ -21,6 +21,7 @@ ******************************************************************************/ package services.spawn; +import java.util.ArrayList; import java.util.List; import java.util.Vector; @@ -59,7 +60,7 @@ public class MobileTemplate implements Cloneable { private String meatType, milkType, boneType, hideType; private int meatAmount, milkAmount, boneAmount, hideAmount; private int respawnTime = 0; - private List lootGroups; + private List lootGroups = new ArrayList(); public Vector getTemplates() { diff --git a/src/services/spawn/SpawnService.java b/src/services/spawn/SpawnService.java index 18d66938..22c6a1f2 100644 --- a/src/services/spawn/SpawnService.java +++ b/src/services/spawn/SpawnService.java @@ -100,7 +100,7 @@ public class SpawnService { creature.setWeaponId(mobileTemplate.getCustomWeapon().getObjectID()); }*/ - if(mobileTemplate.getLootGroups() != null) + if(mobileTemplate.getLootGroups() != null && !mobileTemplate.getLootGroups().isEmpty()) creature.setLootGroups(mobileTemplate.getLootGroups()); creature.setOptionsBitmask(mobileTemplate.getOptionsBitmask()); @@ -118,7 +118,7 @@ public class SpawnService { level = mobileTemplate.getLevel(); } - if (mobileTemplate.getMinLevel()!=0 && mobileTemplate.getMaxLevel()!=0){ + if (mobileTemplate.getMinLevel()!=0 && mobileTemplate.getMaxLevel()!=0 && level == -1){ level = (short) (mobileTemplate.getMinLevel() + (new Random().nextInt(mobileTemplate.getMaxLevel()-mobileTemplate.getMinLevel()))); creature.setLevel(level); }