mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-20 10:02:56 -04:00
Changed deltas and variables for MissionObject's
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user