From 27759a53fd0ff5697e291bc40b61786052b3f642 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 27 Mar 2014 14:43:04 -0400 Subject: [PATCH] Fixed Out of Bounds error for expertise, changed modifier on skillmods to float (BugFix) Fixed out of bounds error when assigning expertise points (Code) Changed SkillMod's modifier variable to float value (Code) Changed Charge! and Scatter! to use updated addBuffToCreature --- scripts/commands/of_charge_1.py | 2 +- scripts/commands/of_scatter_1.py | 2 +- src/resources/objects/SkillMod.java | 12 ++++++------ .../objects/creature/CreatureMessageBuilder.java | 2 +- src/services/SkillService.java | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/scripts/commands/of_charge_1.py b/scripts/commands/of_charge_1.py index b2a3524e..74dfbc79 100644 --- a/scripts/commands/of_charge_1.py +++ b/scripts/commands/of_charge_1.py @@ -4,6 +4,6 @@ def setup(core, actor, buff): return def run(core, actor, target, commandString): - core.buffService.addGroupBuff(actor, 'of_charge_1') + core.buffService.addBuffToCreature(actor, 'of_charge_1', actor) return \ No newline at end of file diff --git a/scripts/commands/of_scatter_1.py b/scripts/commands/of_scatter_1.py index e4f86354..3984ca10 100644 --- a/scripts/commands/of_scatter_1.py +++ b/scripts/commands/of_scatter_1.py @@ -4,6 +4,6 @@ def setup(core, actor, buff): return def run(core, actor, target, commandString): - core.buffService.addGroupBuff(actor, 'of_scatter_1') + core.buffService.addBuffToCreature(actor, 'of_scatter_1', actor) return \ No newline at end of file diff --git a/src/resources/objects/SkillMod.java b/src/resources/objects/SkillMod.java index 0af11b6b..d155b882 100644 --- a/src/resources/objects/SkillMod.java +++ b/src/resources/objects/SkillMod.java @@ -25,11 +25,11 @@ import org.apache.mina.core.buffer.IoBuffer; import com.sleepycat.persist.model.Persistent; -@Persistent +@Persistent(version=1) public class SkillMod extends Delta { private int base; - private int modifier; + private float modifier; private String name; public SkillMod() { @@ -49,11 +49,11 @@ public class SkillMod extends Delta { this.base = base; } - public int getModifier() { + public float getModifier() { return modifier; } - public void setModifier(int modifier) { + public void setModifier(float modifier) { this.modifier = modifier; } @@ -71,8 +71,8 @@ public class SkillMod extends Delta { buffer.put(getAsciiString(name)); buffer.putInt(base); - buffer.putInt(modifier); - + buffer.putInt((int) modifier); + return buffer.array(); } diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index 9b1e65e8..b253d930 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -163,7 +163,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { buffer.put((byte) 0); buffer.put(getAsciiString(skillMod.getName())); buffer.putInt(skillMod.getBase()); - buffer.putInt(skillMod.getModifier()); + buffer.putInt((int) skillMod.getModifier()); } } buffer.putFloat(creature.getSpeedMultiplierBase()); diff --git a/src/services/SkillService.java b/src/services/SkillService.java index e8533299..0a7eec20 100644 --- a/src/services/SkillService.java +++ b/src/services/SkillService.java @@ -288,7 +288,7 @@ public class SkillService implements INetworkDispatch { try { DatatableVisitor table = ClientFileManager.loadFile("datatables/player/player_level.iff", DatatableVisitor.class); - for (int i = 0; i <= creature.getLevel(); i++) expertisePoints += (int) table.getObject(i, 5); + for (int i = 0; i < creature.getLevel(); i++) expertisePoints += (int) table.getObject(i, 5); for (String skill : creature.getSkills()) if(skill.startsWith("expertise_")) expertisePoints--; } catch (Exception e) { e.printStackTrace(); }