diff --git a/ngengine_public.jar b/ngengine_public.jar index f6e4fc9c..2645cc4e 100644 Binary files a/ngengine_public.jar and b/ngengine_public.jar differ diff --git a/src/resources/objects/building/BuildingMessageBuilder.java b/src/resources/objects/building/BuildingMessageBuilder.java index e05d9df0..db031437 100644 --- a/src/resources/objects/building/BuildingMessageBuilder.java +++ b/src/resources/objects/building/BuildingMessageBuilder.java @@ -43,15 +43,16 @@ public class BuildingMessageBuilder extends ObjectMessageBuilder { buffer.putInt(0); buffer.put(getAsciiString(building.getStfName())); buffer.putInt(0); - buffer.putInt(0); - buffer.putInt(0); - buffer.putInt(0); - buffer.putInt(0); - buffer.putInt(0); - buffer.putInt(1).order(ByteOrder.BIG_ENDIAN); + buffer.putInt(255); buffer.putInt(0); buffer.putInt(0); buffer.putShort((short) 0); + + buffer.putInt(0); + buffer.putInt(0); + buffer.putInt(16777216); + buffer.putInt(0); + buffer.putInt(0); buffer.putInt(0x201C); buffer.put((byte) 1); diff --git a/src/resources/objects/building/BuildingObject.java b/src/resources/objects/building/BuildingObject.java index 2fc41560..482e9cb2 100644 --- a/src/resources/objects/building/BuildingObject.java +++ b/src/resources/objects/building/BuildingObject.java @@ -76,8 +76,8 @@ public class BuildingObject extends SWGObject { return; } - //destination.getSession().write(messageBuilder.buildBaseline3()); - //destination.getSession().write(messageBuilder.buildBaseline6()); + destination.getSession().write(messageBuilder.buildBaseline3()); + destination.getSession().write(messageBuilder.buildBaseline6()); } diff --git a/src/resources/objects/cell/CellMessageBuilder.java b/src/resources/objects/cell/CellMessageBuilder.java index dd627e06..1eb04f0c 100644 --- a/src/resources/objects/cell/CellMessageBuilder.java +++ b/src/resources/objects/cell/CellMessageBuilder.java @@ -65,7 +65,7 @@ public class CellMessageBuilder extends ObjectMessageBuilder { IoBuffer buffer = bufferPool.allocate(30, false).order(ByteOrder.LITTLE_ENDIAN); buffer.putShort((short) 4); - buffer.putInt(0x43); + buffer.putInt(0x8D); buffer.putInt(0); buffer.putInt(0); buffer.putInt(0); diff --git a/src/resources/objects/group/GroupMessageBuilder.java b/src/resources/objects/group/GroupMessageBuilder.java index a036ab85..3b98ca0c 100644 --- a/src/resources/objects/group/GroupMessageBuilder.java +++ b/src/resources/objects/group/GroupMessageBuilder.java @@ -147,7 +147,7 @@ public class GroupMessageBuilder extends ObjectMessageBuilder { GroupObject group = (GroupObject) object; - IoBuffer buffer = bufferPool.allocate(15, false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = bufferPool.allocate(21 + member.getCustomName().length(), false).order(ByteOrder.LITTLE_ENDIAN); buffer.putInt(1); buffer.putInt(group.getMemberListUpdateCounter()); @@ -166,7 +166,7 @@ public class GroupMessageBuilder extends ObjectMessageBuilder { GroupObject group = (GroupObject) object; - IoBuffer buffer = bufferPool.allocate(15, false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = bufferPool.allocate(11, false).order(ByteOrder.LITTLE_ENDIAN); buffer.putInt(1); buffer.putInt(group.getMemberListUpdateCounter()); diff --git a/src/services/GroupService.java b/src/services/GroupService.java index 0df7fd2c..5b1a9f07 100644 --- a/src/services/GroupService.java +++ b/src/services/GroupService.java @@ -211,11 +211,13 @@ public class GroupService implements INetworkDispatch { if(creature.getGroupId() == 0) return; - GroupObject group = (GroupObject) core.objectService.getObject(creature.getGroupId()); + SWGObject object = core.objectService.getObject(creature.getGroupId()); - if(group == null) + if(object == null || !(object instanceof GroupObject)) return; + GroupObject group = (GroupObject) object; + List memberList = new ArrayList(group.getMemberList()); if(group.getGroupLeader() != creature && group.getMemberList().size() > 2) { diff --git a/src/services/combat/CombatService.java b/src/services/combat/CombatService.java index 4f5eaacb..9b41ceab 100644 --- a/src/services/combat/CombatService.java +++ b/src/services/combat/CombatService.java @@ -673,18 +673,17 @@ public class CombatService implements INetworkDispatch { if(r <= missChance) return HitType.MISS; } - if(target.getSkillMod("display_only_dodge") != null) { - float dodgeChance = (float) target.getSkillMod("display_only_dodge").getBase() / 10000; + float dodgeChance = (float) target.getSkillModBase("display_only_dodge") / 10000; - r = random.nextFloat(); - if(r <= dodgeChance) - return HitType.DODGE; - } + r = random.nextFloat(); + if(r <= dodgeChance) + return HitType.DODGE; + WeaponObject weapon2 = (WeaponObject) core.objectService.getObject(((CreatureObject) target).getWeaponId()); - if(weapon2 != null && weapon2.isMelee() && target.getSkillMod("display_only_parry") != null) { + if(weapon2 != null && weapon2.isMelee()) { - float parryChance = (float) target.getSkillMod("display_only_parry").getBase() / 10000; + float parryChance = (float) target.getSkillModBase("display_only_parry") / 10000; r = random.nextFloat(); if(r <= parryChance) @@ -692,7 +691,7 @@ public class CombatService implements INetworkDispatch { } - float stChance = (float) attacker.getSkillMod("display_only_strikethrough").getBase() / 10000; + float stChance = (float) attacker.getSkillModBase("display_only_strikethrough") / 10000; r = random.nextFloat(); if(r <= stChance) @@ -700,7 +699,7 @@ public class CombatService implements INetworkDispatch { } - float critChance = (float) (attacker.getSkillMod("display_only_critical").getBase() - target.getSkillModBase("display_only_expertise_critical_hit_reduction")) / 10000; + float critChance = (float) (attacker.getSkillModBase("display_only_critical") - target.getSkillModBase("display_only_expertise_critical_hit_reduction")) / 10000; r = random.nextFloat(); if(r <= critChance) return HitType.CRITICAL;