Changed deltas and variables for MissionObject's

This commit is contained in:
Waverunner
2014-03-15 15:02:09 -04:00
parent a1556032b4
commit e9abd57db9
4 changed files with 76 additions and 80 deletions
@@ -37,7 +37,7 @@ public class MissionListRequest extends ObjControllerObject {
@Override
public void deserialize(IoBuffer data) {
Console.println("MissionListRequest: " + StringUtilities.bytesToHex(data.array()));
//Console.println("MissionListRequest: " + StringUtilities.bytesToHex(data.array()));
setObjectId(data.getLong());
data.getInt(); // unk
data.get(); // unk byte
@@ -45,9 +45,9 @@ public class MissionMessageBuilder extends ObjectMessageBuilder {
buffer.putShort((short) 17);
buffer.putFloat(1); // mission complexity ??
buffer.put(getAsciiString(mission.getStfFilename()));
buffer.put(getAsciiString("mission/mission_object"));
buffer.putInt(0);
buffer.put(getAsciiString(mission.getStfName()));
buffer.put(getAsciiString("destroy_mission"));
if (mission.getCustomName() == null) { buffer.putInt(0); }
else { buffer.put(getUnicodeString(mission.getCustomName())); }
@@ -83,11 +83,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder {
buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet()));
}
if (mission.getMissionTemplateObject() == null) {
buffer.putInt(0);
} else {
buffer.putInt(CRC.StringtoCRC(mission.getMissionTemplateObject()));
}
buffer.putInt(mission.getMissionTemplateObject());
buffer.put(getAsciiString(mission.getMissionDescription()));
buffer.putInt(0);
@@ -182,7 +178,7 @@ public class MissionMessageBuilder extends ObjectMessageBuilder {
return buffer;
}
/*
public IoBuffer buildStfDelta(String stfFile, String stfName) {
IoBuffer buffer = IoBuffer.allocate(4 + stfFile.length() + stfName.length(), false).order(ByteOrder.LITTLE_ENDIAN);
@@ -363,71 +359,64 @@ public class MissionMessageBuilder extends ObjectMessageBuilder {
return buffer;
}
*/
@SuppressWarnings("unused")
public IoBuffer buildMissionDelta() {
IoBuffer buffer = IoBuffer.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN);
IoBuffer buffer = IoBuffer.allocate(500, false).order(ByteOrder.LITTLE_ENDIAN);
buffer.isAutoExpand();
buffer.isAutoShrink();
MissionObject mission = (MissionObject) object;
buffer.putShort((short) 0x05);
buffer.putShort((short) 11);
buffer.put(getAsciiString(mission.getMissionDescription()));
buffer.putInt(0);
buffer.put(getAsciiString(mission.getMissionDescId()));
buffer.putShort((short) 5);
buffer.putInt(mission.getMissionLevel());
buffer.putShort((short) 0x06);
buffer.putFloat(mission.getMissionStartX());
buffer.putFloat(mission.getMissionStartZ());
buffer.putFloat(mission.getMissionStartY());
buffer.putLong(0);
buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet()));
buffer.putShort((short) 0x07);
buffer.putShort((short) 7);
buffer.put(getUnicodeString(mission.getCreator()));
buffer.putShort((short) 0x08);
buffer.putShort((short) 8);
buffer.putInt(mission.getCreditReward());
buffer.putShort((short) 0x09);
buffer.putShort((short) 9);
buffer.putFloat(mission.getMissionDestinationX());
buffer.putFloat(mission.getMissionDestinationZ());
buffer.putFloat(mission.getMissionDestinationY());
buffer.putLong(0);
buffer.putInt(CRC.StringtoCRC(mission.getMissionDestinationPlanet()));
buffer.putShort((short) 0x0A);
buffer.putInt(CRC.StringtoCRC(mission.getMissionTemplateObject()));
buffer.putShort((short) 10);
buffer.putInt(mission.getMissionTemplateObject());
buffer.putShort((short) 0x0B);
buffer.put(getAsciiString(mission.getMissionDescription()));
buffer.putInt(0);
buffer.put(getAsciiString(mission.getMissionDescId()));
buffer.putShort((short) 0x0C);
buffer.putShort((short) 12);
buffer.put(getAsciiString(mission.getMissionTitle()));
buffer.putInt(0);
buffer.put(getAsciiString(mission.getMissionTitleId()));
buffer.putShort((short) 0x0E);
buffer.putShort((short) 13);
buffer.putInt(mission.getMissionRepeatCounter());
buffer.putShort((short) 14);
buffer.putInt(CRC.StringtoCRC(mission.getMissionType()));
buffer.putShort((short) 0x0F);
buffer.putShort((short) 15);
buffer.put(getAsciiString(mission.getMissionTargetName()));
buffer.putShort((short) 0x10);
WaypointObject wp = mission.getAttachedWaypoint();
buffer.putInt(wp.getCellId()); // wp cell
buffer.putFloat(wp.getPosition().x);
buffer.putFloat(wp.getPosition().z);
buffer.putFloat(wp.getPosition().y);
buffer.putLong(0);
buffer.putInt(CRC.StringtoCRC(wp.getPlanet().name));
buffer.put(getUnicodeString(wp.getName()));
buffer.putLong(mission.getObjectId() + 1);
buffer.put(wp.getColor());
buffer.put((byte) 0x01);
buffer.putShort((short) 6);
buffer.putFloat(mission.getMissionStartX());
buffer.putFloat(mission.getMissionStartZ());
buffer.putFloat(mission.getMissionStartY());
buffer.putLong(0); // Start Object ID
buffer.putInt(CRC.StringtoCRC(mission.getMissionStartPlanet()));
int size = buffer.position();
buffer.flip();
buffer = createDelta("MISO", (byte) 3, (short) 11, buffer, size + 4);
buffer = createDelta("MISO", (byte) 3, (short) 8, buffer, size + 4);
Console.println("MISO3 Delta: " + StringUtilities.bytesToHex(buffer.array()));
return buffer;
}
@Override
@@ -21,6 +21,8 @@
******************************************************************************/
package resources.objects.mission;
import java.util.List;
import com.sleepycat.je.Environment;
import com.sleepycat.je.Transaction;
import com.sleepycat.persist.model.NotPersistent;
@@ -55,8 +57,9 @@ public class MissionObject extends IntangibleObject implements IPersistent {
private String descId;
private String titleId;
private String type;
private String missionTemplateObject;
private int missionTemplateObject;
private WaypointObject attachedWaypoint;
@NotPersistent
MissionMessageBuilder messageBuilder = new MissionMessageBuilder(this);
@@ -98,7 +101,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.startPlanet = planet;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet));
//getContainer().getClient().getSession().write(messageBuilder.buildStartLocationDelta(x, z, y, planet));
}
}
@@ -128,7 +131,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.destinationPlanet = planet;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet));
//getContainer().getClient().getSession().write(messageBuilder.buildDestinationDelta(x, z, y, planet));
}
}
@@ -149,7 +152,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.difficultyLevel = missionLevel;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildDifficultyLevelDelta(missionLevel));
//getContainer().getClient().getSession().write(messageBuilder.buildDifficultyLevelDelta(missionLevel));
}
}
@@ -182,7 +185,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.reward = missionCredits;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildCreditsRewardDelta(missionCredits));
//getContainer().getClient().getSession().write(messageBuilder.buildCreditsRewardDelta(missionCredits));
}
}
@@ -197,7 +200,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.creator = missionCreator;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildCreatorNameDelta(missionCreator));
//getContainer().getClient().getSession().write(messageBuilder.buildCreatorNameDelta(missionCreator));
}
}
@@ -213,7 +216,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.descId = id;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id));
//getContainer().getClient().getSession().write(messageBuilder.buildMissionDescriptionDelta(missionDescription, id));
}
}
@@ -229,7 +232,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.titleId = id;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id));
//getContainer().getClient().getSession().write(messageBuilder.buildMissionTitleDelta(missionTitle, id));
}
}
@@ -244,7 +247,7 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.missionTargetName = missionTargetName;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildTargetNameDelta(missionTargetName));
//getContainer().getClient().getSession().write(messageBuilder.buildTargetNameDelta(missionTargetName));
}
}
@@ -260,18 +263,18 @@ public class MissionObject extends IntangibleObject implements IPersistent {
}
}
public String getMissionTemplateObject() {
public int getMissionTemplateObject() {
synchronized(objectMutex) {
return missionTemplateObject;
}
}
public void setMissionTemplateObject(String missionTemplateObject) {
public void setMissionTemplateObject(int missionTemplateObject) {
synchronized(objectMutex) {
this.missionTemplateObject = missionTemplateObject;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject));
//getContainer().getClient().getSession().write(messageBuilder.buildTargetObjectIffDelta(missionTemplateObject));
}
}
@@ -298,13 +301,17 @@ public class MissionObject extends IntangibleObject implements IPersistent {
this.type = missionType;
}
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType));
//getContainer().getClient().getSession().write(messageBuilder.buildMissionTypeDelta(missionType));
}
}
public void sendMissionDelta() {
getGrandparent().getClient().getSession().write(messageBuilder.buildMissionDelta());
//getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta());
System.out.println("Sent delta");
if (getContainer() != null && getContainer().getClient() != null && getContainer().getClient().getSession() != null) {
getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta());
//getContainer().getClient().getSession().write(messageBuilder.buildMissionDelta());
//System.out.println("Sent delta");
}
}
+21 -21
View File
@@ -43,6 +43,7 @@ import resources.objects.waypoint.WaypointObject;
import engine.clientdata.ClientFileManager;
import engine.clientdata.visitors.DatatableVisitor;
import engine.clients.Client;
import engine.resources.common.CRC;
import engine.resources.container.Traverser;
import engine.resources.objects.SWGObject;
import engine.resources.scene.Planet;
@@ -99,6 +100,7 @@ public class MissionService implements INetworkDispatch {
});
}
@SuppressWarnings("unused")
private void populateMissions(final SWGObject player, int type) {
CreatureObject creature = (CreatureObject) player;
TangibleObject missionBag = (TangibleObject) creature.getSlottedObject("mission_bag");
@@ -111,13 +113,15 @@ public class MissionService implements INetworkDispatch {
@Override
public void process(SWGObject child) {
MissionObject mission = (MissionObject) child;
if (deCount.get() <= 7) {
if (deCount.get() < 5) {
mission.setMissionType("destroy");
mission.setMissionStart(200, 0, 200, "tatooine");
deCount.getAndIncrement();
Console.println("Destroy missions: " + String.valueOf(deCount.get()));
}
else if (dCount.get() <= 7) {
else if (dCount.get() < 5) {
mission.setMissionType("deliver");
mission.setMissionStart(0, 0, 0, "tatooine");
dCount.getAndIncrement();
Console.println("Deliver missions: " + String.valueOf(dCount.get()));
} else {
@@ -125,26 +129,26 @@ public class MissionService implements INetworkDispatch {
}
mission.setCreditReward(1337);
mission.setCreator("Waverunner");
mission.setMissionLevel(10);
mission.setMissionLevel(5);
mission.setMissionDescription("mission/mission_destroy_neutral_hard_creature_tatooine", "m17d");
mission.setMissionTitle("mission/mission_destroy_neutral_hard_creature_tatooine", "m17t");
mission.setMissionDestination(0, 0, 0, "tatooine");
mission.setMissionTemplateObject("object/tangible/lair/womp_rat/shared_lair_womp_rat_desert");
mission.setMissionDestination(400, 0, 400, "tatooine");
mission.setMissionTemplateObject(CRC.StringtoCRC("object/tangible/lair/base/shared_objective_power_generator.iff"));
mission.setMissionTargetName("@lair_n:tatooine_giant_worrt_lair_neutral_medium");
WaypointObject wp = new WaypointObject();
mission.setRepeatCount(1);
/*WaypointObject wp = new WaypointObject();
wp.setName("@mission/mission_destroy_neutral_hard_creature_tatooine:m17t");
wp.setColor(WaypointObject.ORANGE);
wp.setPosition(new Point3D(10, 10, 10));
wp.setCellId(0);
wp.setPlanet(core.terrainService.getPlanetByName("tatooine"));
//mission.sendMissionDelta();
wp.setPlanet(core.terrainService.getPlanetByName("tatooine"));*/
mission.sendMissionDelta();
}
});
Console.println("Sent deltas");
//Console.println("Sent deltas");
}
// May want to create a map for the server with needed info
@@ -170,27 +174,23 @@ public class MissionService implements INetworkDispatch {
}
public void createDefaultMissions(CreatureObject player) {
for(int missionsAdded = 0; missionsAdded <= 16; missionsAdded++) {
for(int missionsAdded = 0; missionsAdded <= 10; 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.setMissionLevel(0);
mission.setMissionStart(0, 0, 0, null);
mission.setCreator("");
mission.setCreditReward(100);
mission.setCreditReward(0);
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.setMissionDescription("", "");
mission.setMissionTitle("", "");
mission.setMissionType("survey"); // 0x19C9FAC1
mission.setMissionType("destroy"); // 0x19C9FAC1
mission.setMissionTargetName("Testing target name");
mission.setMissionTargetName("");
TangibleObject missionBag = (TangibleObject) player.getSlottedObject("mission_bag");
missionBag._add(mission);