From 1216cf6d4579d764a240ca70bed96ad5a0f7afb0 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 6 Feb 2014 17:50:11 -0500 Subject: [PATCH] Changes to variables and MISO3 baseline --- src/main/NGECore.java | 6 +- src/protocol/swg/ChatFriendsListUpdate.java | 2 - .../mission/MissionMessageBuilder.java | 40 +++--- .../objects/mission/MissionObject.java | 126 +++++++++--------- src/services/CharacterService.java | 2 + src/services/MissionService.java | 102 ++++++++------ 6 files changed, 154 insertions(+), 124 deletions(-) diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 84ca2611..b053a018 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -155,7 +155,7 @@ public class NGECore { public WeatherService weatherService; public SpawnService spawnService; public AIService aiService; - //public MissionService missionService; + public MissionService missionService; // Login Server public NetworkDispatch loginDispatch; @@ -260,7 +260,7 @@ public class NGECore { } spawnService = new SpawnService(this); aiService = new AIService(this); - //missionService = new MissionService(this); + missionService = new MissionService(this); // Ping Server try { @@ -292,7 +292,7 @@ public class NGECore { zoneDispatch.addService(playerService); zoneDispatch.addService(buffService); zoneDispatch.addService(entertainmentService); - //zoneDispatch.addService(missionService); + zoneDispatch.addService(missionService); zoneServer = new MINAServer(zoneDispatch, config.getInt("ZONE.PORT")); zoneServer.start(); diff --git a/src/protocol/swg/ChatFriendsListUpdate.java b/src/protocol/swg/ChatFriendsListUpdate.java index bd6debb0..313235d7 100644 --- a/src/protocol/swg/ChatFriendsListUpdate.java +++ b/src/protocol/swg/ChatFriendsListUpdate.java @@ -6,8 +6,6 @@ import main.NGECore; import org.apache.mina.core.buffer.IoBuffer; -import engine.resources.config.Config; -import engine.resources.config.DefaultConfig; public class ChatFriendsListUpdate extends SWGMessage { diff --git a/src/resources/objects/mission/MissionMessageBuilder.java b/src/resources/objects/mission/MissionMessageBuilder.java index 190773ad..ad024381 100644 --- a/src/resources/objects/mission/MissionMessageBuilder.java +++ b/src/resources/objects/mission/MissionMessageBuilder.java @@ -48,8 +48,8 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.put(getAsciiString(mission.getStfFilename())); buffer.putInt(0); buffer.put(getAsciiString(mission.getStfName())); - - if (mission.getCustomName() == null) { buffer.put(getUnicodeString("")); } + + if (mission.getCustomName() == null) { buffer.putInt(0); } else { buffer.put(getUnicodeString(mission.getCustomName())); } buffer.putInt(0); // volume @@ -57,10 +57,10 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(mission.getMissionLevel()); buffer.putFloat(mission.getMissionStartX()); - buffer.putFloat(0); // missionStartZ + buffer.putFloat(mission.getMissionStartZ()); // missionStartZ buffer.putFloat(mission.getMissionStartY()); - buffer.putLong(0); // ?? + buffer.putLong(0); // Start Object ID if (mission.getMissionStartPlanet() == null) { buffer.putInt(0); @@ -69,13 +69,13 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { } buffer.put(getUnicodeString(mission.getMissionCreator())); - buffer.putInt(mission.getMissionCredits()); + buffer.putInt(mission.getCreditReward()); buffer.putFloat(mission.getMissionDestinationX()); - buffer.putFloat(0); // missionDestinationZ + buffer.putFloat(mission.getMissionDestinationZ()); buffer.putFloat(mission.getMissionDestinationY()); - buffer.putLong(0); // ?? + buffer.putLong(0); // Destination Object ID if (mission.getMissionDestinationPlanet() == null) { buffer.putInt(0); @@ -83,10 +83,10 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet())); } - if (mission.getTargetTemplateObject() == null) { + if (mission.getMissionTemplateObject() == null) { buffer.putInt(0); } else { - buffer.putInt(CRC.StringtoCRC(mission.getTargetTemplateObject())); + buffer.putInt(CRC.StringtoCRC(mission.getMissionTemplateObject())); } buffer.put(getAsciiString(mission.getMissionDescription())); @@ -107,7 +107,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.put(getAsciiString(mission.getMissionTargetName())); - WaypointObject wp = mission.getMissionAttachedWaypoint(); + WaypointObject wp = mission.getAttachedWaypoint(); if (wp == null) { buffer.putInt(0); @@ -116,7 +116,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putFloat(0); // y buffer.putLong(0); // target id buffer.putInt(0); // planet crc - buffer.put(getUnicodeString("")); + buffer.putInt(0); buffer.putLong(0); // waypoint id buffer.put((byte) 0); // color buffer.put((byte) 0x01); //active @@ -130,13 +130,14 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.put((byte) 0); buffer.put((byte) 0x01); } + int size = buffer.position(); buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); buffer.flip(); buffer = createBaseline("MISO", (byte) 3, buffer, size); - Console.println("Bytes: " + StringUtilities.bytesToHex(buffer.array())); + //Console.println("MISO3 Bytes: " + StringUtilities.bytesToHex(buffer.array())); return buffer; } @@ -144,7 +145,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { IoBuffer buffer = IoBuffer.allocate(4, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putInt(121); // unk + buffer.putInt(121); // server id int size = buffer.position(); buffer.flip(); @@ -191,8 +192,11 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putLong(0); - buffer.putInt(CRC.StringtoCRC(planet)); - + if (planet == null) { + buffer.putInt(CRC.StringtoCRC(object.getPlanet().name)); + } else { + buffer.putInt(CRC.StringtoCRC(planet)); + } int size = buffer.position(); buffer.flip(); buffer = createDelta("MISO", (byte) 3, (short) 1, (short) 0x06, buffer, size + 4); @@ -236,7 +240,11 @@ public class MissionMessageBuilder extends ObjectMessageBuilder { buffer.putLong(0); // Destination Object ID - buffer.putInt(CRC.StringtoCRC(planet)); + if (planet == null) { + buffer.putInt(CRC.StringtoCRC(object.getPlanet().name)); + } else { + buffer.putInt(CRC.StringtoCRC(planet)); + } int size = buffer.position(); buffer.flip(); diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index 69562ef6..0576b7be 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -37,25 +37,25 @@ import engine.resources.scene.Quaternion; @Persistent(version=0) public class MissionObject extends IntangibleObject implements IPersistent { - private float missionDestinationX; - private float missionDestinationY; - private float missionDestinationZ; - private float missionStartX; - private float missionStartY; - private float missionStartZ; - private String missionStartPlanet; - private int missionLevel; // Difficulty level displayed in details - private String missionDestinationPlanet; - private int missionRepeatCounter; // increases for each player using the mission; used for redisplaying on mission term too - private int missionCredits; - private String missionCreator = ""; - private String missionDescription = ""; - private String missionTitle = ""; - private String missionTargetName = ""; // Target object I guess? - private String missionDescId = ""; - private String missionTitleId = ""; - private String missionType; - private WaypointObject missionAttachedWaypoint; + private float destX; + private float destY; + private float destZ; + private float startX; + private float startY; + private float startZ; + private String startPlanet; + private int difficultyLevel; // Difficulty level displayed in details + private String destinationPlanet; + private int repeatCount; // increases for each player using the mission; used for redisplaying on mission term too + private int reward; + private String creator; + private String description; // TODO: Base off of a new Object, SWGString? + private String title; // TODO: Base off of a new Object, SWGString? + private String missionTargetName; // Target object I guess? + private String descId; + private String titleId; + private String type; + private WaypointObject attachedWaypoint; private String missionTemplateObject; @@ -75,28 +75,28 @@ public class MissionObject extends IntangibleObject implements IPersistent { public float getMissionStartX() { synchronized(objectMutex) { - return missionStartX; + return startX; } } public float getMissionStartY() { synchronized(objectMutex) { - return missionStartY; + return startY; } } public float getMissionStartZ() { synchronized(objectMutex) { - return missionStartZ; + return startZ; } } public void setMissionStart(float x, float y, float z, String planet) { synchronized(objectMutex) { - this.missionStartZ = z; - this.missionStartX = x; - this.missionStartY = y; - this.missionStartPlanet = planet; + this.startZ = z; + this.startX = x; + this.startY = y; + this.startPlanet = planet; } notifyObservers(messageBuilder.buildStartLocationDelta(x, z, y, planet), false); @@ -104,117 +104,119 @@ public class MissionObject extends IntangibleObject implements IPersistent { public float getMissionDestinationX() { synchronized(objectMutex) { - return missionDestinationX; + return destX; } } public float getMissionDestinationY() { synchronized(objectMutex) { - return missionDestinationY; + return destY; } } public float getMissionDestinationZ() { synchronized(objectMutex) { - return missionDestinationZ; + return destZ; } } public void setMissionDestination(float x, float y, float z, String planet) { synchronized(objectMutex) { - this.missionDestinationZ = z; - this.missionDestinationY = y; - this.missionDestinationZ = z; - this.missionDestinationPlanet = planet; + this.destZ = z; + this.destY = y; + this.destZ = z; + this.destinationPlanet = planet; } + notifyObservers(messageBuilder.buildDestinationDelta(x, z, y, planet), false); } public String getMissionDestinationPlanet() { synchronized(objectMutex) { - return missionDestinationPlanet; + return destinationPlanet; } } public int getMissionLevel() { synchronized(objectMutex) { - return missionLevel; + return difficultyLevel; } } public void setMissionLevel(int missionLevel) { synchronized(objectMutex) { - this.missionLevel = missionLevel; + this.difficultyLevel = missionLevel; } + notifyObservers(messageBuilder.buildDifficultyLevelDelta(missionLevel), false); } public String getMissionStartPlanet() { synchronized(objectMutex) { - return missionStartPlanet; + return startPlanet; } } public int getMissionRepeatCounter() { synchronized(objectMutex) { - return missionRepeatCounter; + return repeatCount; } } - public void setMissionRepeatCounter(int missionRepeatCounter) { + public void setRepeatCount(int missionRepeatCounter) { synchronized(objectMutex) { - this.missionRepeatCounter = missionRepeatCounter; + this.repeatCount = missionRepeatCounter; } } - public int getMissionCredits() { + public int getCreditReward() { synchronized(objectMutex) { - return missionCredits; + return reward; } } - public void setMissionCredits(int missionCredits) { + public void setCreditReward(int missionCredits) { synchronized(objectMutex) { - this.missionCredits = missionCredits; + this.reward = missionCredits; } notifyObservers(messageBuilder.buildCreditsRewardDelta(missionCredits), false); } public String getMissionCreator() { synchronized(objectMutex) { - return missionCreator; + return creator; } } public void setMissionCreator(String missionCreator) { synchronized(objectMutex) { - this.missionCreator = missionCreator; + this.creator = missionCreator; } notifyObservers(messageBuilder.buildCreatorNameDelta(missionCreator), false); } public String getMissionDescription() { synchronized(objectMutex) { - return missionDescription; + return description; } } public void setMissionDescription(String missionDescription, String id) { synchronized(objectMutex) { - this.missionDescription = missionDescription; - this.missionDescId = id; + this.description = missionDescription; + this.descId = id; } notifyObservers(messageBuilder.buildMissionDescriptionDelta(missionDescription, id), false); } public String getMissionTitle() { synchronized(objectMutex) { - return missionTitle; + return title; } } public void setMissionTitle(String missionTitle, String id) { synchronized(objectMutex) { - this.missionTitle = missionTitle; - this.missionTitleId = id; + this.title = missionTitle; + this.titleId = id; } notifyObservers(messageBuilder.buildMissionTitleDelta(missionTitle, id), false); } @@ -232,25 +234,25 @@ public class MissionObject extends IntangibleObject implements IPersistent { notifyObservers(messageBuilder.buildTargetNameDelta(missionTargetName), false); } - public WaypointObject getMissionAttachedWaypoint() { + public WaypointObject getAttachedWaypoint() { synchronized(objectMutex) { - return missionAttachedWaypoint; + return attachedWaypoint; } } - public void setMissionAttachedWaypoint(WaypointObject missionAttachedWaypoint) { + public void setAttachedWaypoint(WaypointObject missionAttachedWaypoint) { synchronized(objectMutex) { - this.missionAttachedWaypoint = missionAttachedWaypoint; + this.attachedWaypoint = missionAttachedWaypoint; } } - public String getTargetTemplateObject() { + public String getMissionTemplateObject() { synchronized(objectMutex) { return missionTemplateObject; } } - public void setTargetTemplateObject(String missionTemplateObject) { + public void setMissionTemplateObject(String missionTemplateObject) { synchronized(objectMutex) { this.missionTemplateObject = missionTemplateObject; } @@ -259,25 +261,25 @@ public class MissionObject extends IntangibleObject implements IPersistent { public String getMissionDescId() { synchronized(objectMutex) { - return missionDescId; + return descId; } } public String getMissionTitleId() { synchronized(objectMutex) { - return missionTitleId; + return titleId; } } public String getMissionType() { synchronized(objectMutex) { - return missionType; + return type; } } public void setMissionType(String missionType) { synchronized(objectMutex) { - this.missionType = missionType; + this.type = missionType; } notifyObservers(messageBuilder.buildMissionTypeDelta(missionType), false); } diff --git a/src/services/CharacterService.java b/src/services/CharacterService.java index 57318516..df9d5bdf 100644 --- a/src/services/CharacterService.java +++ b/src/services/CharacterService.java @@ -297,6 +297,8 @@ public class CharacterService implements INetworkDispatch { object.addObjectToEquipList(missionBag); object.addObjectToEquipList(appInventory); + core.missionService.createDefaultMissions(object); + WeaponObject defaultWeapon = (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", object.getPlanet()); defaultWeapon.setDamageType("@obj_attr_n:armor_eff_kinetic"); defaultWeapon.setStringAttribute("cat_wpn_damage.damage", "0-0"); diff --git a/src/services/MissionService.java b/src/services/MissionService.java index 78fce706..ca915841 100644 --- a/src/services/MissionService.java +++ b/src/services/MissionService.java @@ -114,33 +114,27 @@ public class MissionService implements INetworkDispatch { for(int missionsAdded = 0; missionsAdded < 12; missionsAdded++) { MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", creature.getPlanet()); - int textId = ran.nextInt(deliveryEntries); - Console.println("Random Int Value: " + textId); - Console.println("Now the value is: " + textId); + //mission.setStfFilename("mission/mission_object"); + //mission.setStfName("destroy_mission"); - mission.setMissionLevel(5); + mission.setMissionLevel(50); + mission.setMissionStart(0, 0, 0, null); + mission.setMissionCreator(""); + mission.setCreditReward(100); - mission.setMissionStart(0, 0, 0, player.getPlanet().name); + mission.setMissionDestination(0, 0, 0, null); - mission.setMissionCreator("Waverunner"); - mission.setMissionCredits(9000); - - // TODO: Base this off of textId + f - mission.setTargetTemplateObject("object/tangible/mission/shared_mission_datadisk.iff"); - // TODO: Base this off of textId + l - mission.setMissionTargetName("Osskscosco"); - - mission.setMissionDescription("mission/mission_deliver_neutral_easy", "m" + textId + "d"); - mission.setMissionTitle("mission/mission_deliver_neutral_easy", "m" + textId + "t"); - - mission.setMissionType("deliver"); - - mission.setMissionDestination(-5962, 0, -6259, player.getPlanet().name); - deliveryCount.getAndIncrement(); + //mission.setMissionTemplateObject(missionTemplateObject); + mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); + mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); + mission.setMissionType("survey"); // 0x19C9FAC1 + mission.setMissionTargetName("Testing target name"); + missionBag._add(mission); + Console.println("Added mission " + missionsAdded); } return; @@ -156,28 +150,23 @@ public class MissionService implements INetworkDispatch { MissionObject mission = (MissionObject) child; int textId = ran.nextInt(deliveryEntries); - Console.println("Random Int Value: " + textId); - Console.println("Now the value is: " + textId); - - mission.setMissionLevel(5); - - mission.setMissionStart(0, 0, 0, player.getPlanet().name); - - mission.setMissionCreator("Waverunner"); - mission.setMissionCredits(9000); - - // TODO: Base this off of textId + f - mission.setTargetTemplateObject("object/tangible/mission/shared_mission_datadisk.iff"); - // TODO: Base this off of textId + l - mission.setMissionTargetName("Osskscosco"); - - mission.setMissionDescription("mission/mission_deliver_neutral_easy", "m" + textId + "d"); - mission.setMissionTitle("mission/mission_deliver_neutral_easy", "m" + textId + "t"); - - mission.setMissionType("deliver"); - - mission.setMissionDestination(-5962, 0, -6259, player.getPlanet().name); deliveryCount.getAndIncrement(); + + mission.setMissionLevel(10); + mission.setMissionStart(0, 0, 0, null); + mission.setMissionCreator("Waverunner"); + mission.setCreditReward(100); + + mission.setMissionDestination(0, 0, 0, null); + + //mission.setMissionTemplateObject(missionTemplateObject); + mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); + mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); + + mission.setMissionType("survey"); // 0x19C9FAC1 + + mission.setMissionTargetName("Testing target name"); + Console.println("Sent delta/'s!"); } }); @@ -207,6 +196,37 @@ public class MissionService implements INetworkDispatch { return 0; } + public void createDefaultMissions(CreatureObject player) { + for(int missionsAdded = 0; missionsAdded < 12; missionsAdded++) { + MissionObject mission = (MissionObject) core.objectService.createObject("object/mission/shared_mission_object.iff", player.getPlanet()); + + + //mission.setStfFilename("mission/mission_object"); + //mission.setStfName("destroy_mission"); + + mission.setMissionLevel(50); + mission.setMissionStart(0, 0, 0, null); + mission.setMissionCreator(""); + mission.setCreditReward(100); + + mission.setMissionDestination(0, 0, 0, null); + + //mission.setMissionTemplateObject(missionTemplateObject); + mission.setMissionDescription("mission/mission_npc_survey_neutral_easy", "m1o"); + mission.setMissionTitle("mission/mission_npc_survey_neutral_easy", "m1t"); + + mission.setMissionType("survey"); // 0x19C9FAC1 + + mission.setMissionTargetName("Testing target name"); + + TangibleObject missionBag = (TangibleObject) player.getSlottedObject("mission_bag"); + missionBag._add(mission); + + Console.println("Added mission " + missionsAdded); + } + Console.println("Successfully created default missions"); + } + @Override public void shutdown() {