diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 30d60257e..ca2092067 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -311,43 +311,37 @@ public class CreatureObject extends TangibleObject { public void createBaseline1(Player target, BaselineBuilder bb) { super.createBaseline1(target, bb); - bb.addShort(5); bb.addInt(getBankBalance()); bb.addInt(getCashBalance()); bb.addInt(6); // Base HAM Mod List Size (List, Integer) - bb.addInt(0); - bb.addInt(1000); // Max Health - bb.addInt(0); - bb.addInt(300); // Max Action - bb.addInt(0); - bb.addInt(300); // Max Mind - bb.addInt(0); // Skills List Size (List, Integer) - bb.addInt(1); - bb.addInt(0); - bb.addAscii(race.getSpecies()); + bb.addInt(0); // update counter + bb.addInt(1000); // Max Health + bb.addInt(0); // ?? + bb.addInt(300); // Max Action + bb.addInt(0); // ?? + bb.addInt(300); // Max Mind + bb.addInt(0); // ?? + bb.addInt(1); // Skills List Size (List, Integer) + bb.addInt(0); // update counter + bb.addAscii(race.getSpecies()); + + bb.incremeantOperandCount(4); } public void createBaseline3(Player target, BaselineBuilder bb) { super.createBaseline3(target, bb); - // We should confirm that this is only part of CREO3 and not TANO3, Core2 doesn't have this - bb.addByte(0); - bb.addShort(0); // Unknown - bb.addInt(0); // Unknown - bb.addInt(0x00003A98); // Unknown - bb.addByte(0); // Unknown - // END bb.addByte(posture.getId()); bb.addByte(0); // Faction Rank bb.addLong(0); // Owner - mainly used for pets and vehicles bb.addFloat((float) height); bb.addInt(0); // Battle Fatigue bb.addLong(0); // States Bitmask - bb.addInt(0); // Wound HAM List Size + + bb.incremeantOperandCount(6); } public void createBaseline4(Player target, BaselineBuilder bb) { super.createBaseline4(target, bb); - bb.addShort(5); bb.addFloat((float) accelScale); bb.addFloat((float) accelPercent); bb.addInt(0); // Encumberance HAM List Size (List, Integer) @@ -364,6 +358,8 @@ public class CreatureObject extends TangibleObject { bb.addInt(0); // Mission Critical Objects list size (Map, k = long v = long) bb.addInt(0); // abilities list size (Map, k = string v = integer) bb.addInt(0); // XP Display Counter (remaining experience to next level up, updates the experience bar on client) + + bb.incremeantOperandCount(16); } public void createBaseline6(Player target, BaselineBuilder bb) { @@ -397,16 +393,18 @@ public class CreatureObject extends TangibleObject { bb.addByte(0); // Unknown bb.addInt(0); // Appearance Equipment List Size (List, Equipment structure) bb.addLong(0); // Unknown + + bb.incremeantOperandCount(27); } public void createBaseline8(Player target, BaselineBuilder bb) { super.createBaseline8(target, bb); - bb.addShort(0); + //bb.addShort(0); } public void createBaseline9(Player target, BaselineBuilder bb) { super.createBaseline9(target, bb); - bb.addShort(0); + //bb.addShort(0); } } diff --git a/src/resources/objects/intangible/IntangibleObject.java b/src/resources/objects/intangible/IntangibleObject.java index 619bd6ef0..82c18934e 100644 --- a/src/resources/objects/intangible/IntangibleObject.java +++ b/src/resources/objects/intangible/IntangibleObject.java @@ -27,6 +27,8 @@ public class IntangibleObject extends SWGObject { public void createBaseline3(Player target, BaselineBuilder bb) { super.createBaseline3(target, bb); bb.addInt(count); + + bb.incremeantOperandCount(1); } public void createBaseline6(Player target, BaselineBuilder bb) { diff --git a/src/resources/objects/player/PlayerObject.java b/src/resources/objects/player/PlayerObject.java index 216e9199a..1a283b4eb 100644 --- a/src/resources/objects/player/PlayerObject.java +++ b/src/resources/objects/player/PlayerObject.java @@ -135,6 +135,8 @@ public class PlayerObject extends IntangibleObject { bb.addInt(0); bb.addBoolean(showHelmet); // Show Helmet bb.addBoolean(showBackpack); // Show Backpack + + bb.incremeantOperandCount(15); } public void createBaseline6(Player target, BaselineBuilder bb) { @@ -148,16 +150,18 @@ public class PlayerObject extends IntangibleObject { bb.addAscii(""); // Home bb.addByte(0); // Citizenship bb.addAscii(""); // City Region Defender 'region' - bb.addByte(0); // City Region Defender byte #1 - bb.addByte(0); // City Region Defender byte #2 + bb.addByte(0); // City Region Defender byte #1 + bb.addByte(0); // City Region Defender byte #2 bb.addAscii(""); // Guild Region Defender 'region' - bb.addByte(0); // Guild Region Defender byte #1 - bb.addByte(0); // Guild Region Defender byte #2 + bb.addByte(0); // Guild Region Defender byte #1 + bb.addByte(0); // Guild Region Defender byte #2 bb.addLong(0); // General? bb.addInt(0); // Guild Rank Title? bb.addShort(0); // Citizen Rank Title? 6 bytes bb.addInt(1); // Speeder Elevation bb.addAscii(""); // Vehicle Attack Command + + bb.incremeantOperandCount(15); } public void createBaseline8(Player target, BaselineBuilder bb) { @@ -171,6 +175,8 @@ public class PlayerObject extends IntangibleObject { bb.addInt(0); // Active Quest bb.addInt(0); // Quest Journal bb.addAscii(""); // Profession Wheel Position + + bb.incremeantOperandCount(9); } public void createBaseline9(Player target, BaselineBuilder bb) { @@ -206,6 +212,8 @@ public class PlayerObject extends IntangibleObject { bb.addLong(0); // Unk sometimes 856 bb.addLong(0); // Unk sometimes 8559 bb.addInt(0); // Residence Time + + bb.incremeantOperandCount(31); } } diff --git a/src/resources/objects/tangible/TangibleObject.java b/src/resources/objects/tangible/TangibleObject.java index 0bb18fd01..76e7ab8dd 100644 --- a/src/resources/objects/tangible/TangibleObject.java +++ b/src/resources/objects/tangible/TangibleObject.java @@ -147,16 +147,26 @@ public class TangibleObject extends SWGObject { bb.addInt(0); // Faction bb.addInt(0); // Faction Status bb.addArray(appearanceData); - bb.addInt(1); // Options Bitmask - bb.addInt(0); // Incap Timer + bb.addInt(0); // Component customization (Set, Integer) + bb.addInt(0); //updates + bb.addInt(128); // Options Bitmask (128 = Attackable) + bb.addInt(0); // Incap Timer for players, Use count for objects bb.addInt(condition); - bb.addInt(0x80); // Random number that should be high enough - maxCondition + bb.addInt(100); // Random number that should be high enough - maxCondition bb.addBoolean(false); // isStatic + + bb.incremeantOperandCount(9); } public void createBaseline6(Player target, BaselineBuilder bb) { super.createBaseline6(target, bb); - bb.addInt(0); // Defender List Size + bb.addBoolean(false); // Combat flag + bb.addInt(0); // Defenders List (Set, Long) + bb.addInt(0); // Unknown List (List, Long) + bb.addInt(0); // Unknown List (List, Integer) + bb.addLong(0); // Unknown, possibly a list/map or something + + bb.incremeantOperandCount(5); } } diff --git a/src/resources/objects/waypoint/WaypointObject.java b/src/resources/objects/waypoint/WaypointObject.java index d5b9378da..a7bd4b1bc 100644 --- a/src/resources/objects/waypoint/WaypointObject.java +++ b/src/resources/objects/waypoint/WaypointObject.java @@ -1,13 +1,13 @@ package resources.objects.waypoint; -import network.packets.swg.zone.SceneEndBaselines; -import network.packets.swg.zone.baselines.Baseline.BaselineType; import resources.network.BaselineBuilder; import resources.objects.intangible.IntangibleObject; import resources.player.Player; public class WaypointObject extends IntangibleObject { + private static final long serialVersionUID = 1L; + private int cellNumber; private long targetId = 0; private String name = "Waypoint"; @@ -84,13 +84,15 @@ public class WaypointObject extends IntangibleObject { } public void createObject(Player target) { - super.sendSceneCreateObject(target); + // NOTE: Client is never sent a WAYP baseline in NGE, WaypointObject's just go inside the Waypoint List in PLAY. + + /*super.sendSceneCreateObject(target); BaselineBuilder bb = new BaselineBuilder(this, BaselineType.WAYP, 3); createBaseline3(target, bb); bb.sendTo(target); createChildrenObjects(target); - target.sendPacket(new SceneEndBaselines(getObjectId())); + target.sendPacket(new SceneEndBaselines(getObjectId()));*/ } }