mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-07-14 00:02:07 -04:00
Fixed waypoint not updating for Arakyds, Fixed waypoint not updating on first run of seekers, Added Identify Target
This commit is contained in:
@@ -33,8 +33,8 @@ def handleSelection(core, owner, target, option):
|
||||
pos = SpawnPoint.getRandomPosition(owner.getPosition(), 1, 3, owner.getPlanetId())
|
||||
ori = owner.getOrientation()
|
||||
seeker = core.staticService.spawnObject('object/creature/npc/droid/crafted/shared_probe_droid_advanced.iff', owner.getPlanet().getName(), 0, pos.x, pos.y, pos.z, ori.y, ori.w)
|
||||
time.sleep(3)
|
||||
owner.sendSystemMessage('@mission/mission_generic:seeker_droid_standby', 0)
|
||||
time.sleep(3)
|
||||
seeker.setPosture(8)
|
||||
time.sleep(6.5)
|
||||
core.objectService.destroyObject(seeker)
|
||||
@@ -42,5 +42,31 @@ def handleSelection(core, owner, target, option):
|
||||
return
|
||||
|
||||
if option == 137 and target:
|
||||
id = owner.getPlayerObject().getBountyMissionId()
|
||||
if id is None or id == 0:
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
|
||||
return
|
||||
|
||||
mission = core.objectService.getObject(id)
|
||||
if mission is None:
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
|
||||
return
|
||||
|
||||
if mission.getObjective().isSeekerActive():
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_already_tracking', 0)
|
||||
return
|
||||
if target.getUses() == 0:
|
||||
core.objectService.destroyObject(target)
|
||||
else:
|
||||
target.setUses(target.getUses() - 1)
|
||||
pos = SpawnPoint.getRandomPosition(owner.getPosition(), 1, 3, owner.getPlanetId())
|
||||
ori = owner.getOrientation()
|
||||
seeker = core.staticService.spawnObject('object/creature/npc/droid/crafted/shared_probe_droid_advanced.iff', owner.getPlanet().getName(), 0, pos.x, pos.y, pos.z, ori.y, ori.w)
|
||||
owner.sendSystemMessage('@mission/mission_generic:seeker_droid_standby', 0)
|
||||
time.sleep(3)
|
||||
seeker.setPosture(8)
|
||||
time.sleep(6.5)
|
||||
core.objectService.destroyObject(seeker)
|
||||
mission.getObjective().beginIdentifyTarget(core, owner)
|
||||
return
|
||||
return
|
||||
@@ -304,18 +304,18 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
|
||||
WaypointObject missionWp = mission.getWaypoint();
|
||||
|
||||
if (missionWp.getPlanetCRC() != CRC.StringtoCRC(target.getPlanet().name)) {
|
||||
if (missionWp == null || missionWp.getPlanetCRC() != CRC.StringtoCRC(target.getPlanet().name)) {
|
||||
WaypointObject waypoint = (WaypointObject) getMissionObject().getWaypoint();
|
||||
waypoint.setActive(true);
|
||||
waypoint.setColor(WaypointObject.ORANGE);
|
||||
waypoint.setName(getMissionObject().getTargetName());
|
||||
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
|
||||
waypoint.setStringAttribute("", "");
|
||||
getMissionObject().setWaypoint(waypoint);
|
||||
waypoint.setPosition(target.getWorldPosition());
|
||||
mission.setWaypoint(waypoint);
|
||||
} else {
|
||||
missionWp.setPosition(target.getWorldPosition());
|
||||
mission.setWaypoint(missionWp);
|
||||
getMissionObject().setWaypoint(missionWp);
|
||||
}
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_continue_tracking", DisplayType.Broadcast);
|
||||
@@ -331,6 +331,46 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
}
|
||||
}
|
||||
|
||||
public void beginIdentifyTarget(NGECore core, CreatureObject actor) {
|
||||
if (seekerActive)
|
||||
return;
|
||||
|
||||
setSeekerActive(true);
|
||||
setSeekerPlanet(actor.getPlanet().name);
|
||||
|
||||
Executors.newSingleThreadScheduledExecutor().schedule(() -> {
|
||||
MissionObject mission = getMissionObject();
|
||||
SWGObject target = core.objectService.getObject(markObjId);
|
||||
|
||||
if (target == null) {
|
||||
actor.sendSystemMessage("@mission/mission_generic:player_target_inactive", DisplayType.Broadcast);
|
||||
return;
|
||||
} else if (target.getPlanet().getName() != getSeekerPlanet()) {
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_not_on_planet", DisplayType.Broadcast);
|
||||
return;
|
||||
}
|
||||
|
||||
WaypointObject missionWp = mission.getWaypoint();
|
||||
|
||||
if (missionWp == null || missionWp.getPlanetCRC() != CRC.StringtoCRC(target.getPlanet().name)) {
|
||||
WaypointObject waypoint = (WaypointObject) getMissionObject().getWaypoint();
|
||||
waypoint.setActive(true);
|
||||
waypoint.setColor(WaypointObject.ORANGE);
|
||||
waypoint.setName(getMissionObject().getTargetName());
|
||||
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
|
||||
waypoint.setStringAttribute("", "");
|
||||
waypoint.setPosition(target.getWorldPosition());
|
||||
mission.setWaypoint(waypoint);
|
||||
} else {
|
||||
missionWp.setPosition(target.getWorldPosition());
|
||||
mission.setWaypoint(missionWp);
|
||||
}
|
||||
|
||||
actor.sendSystemMessage("Your target was identified as " + target.getCustomName() + ".", DisplayType.Broadcast); // Can't find this in the string files
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
|
||||
}, 60, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public void beginArakydUpdate(final CreatureObject actor) {
|
||||
arakydActive = true;
|
||||
Executors.newScheduledThreadPool(1).schedule(() -> {
|
||||
@@ -350,8 +390,7 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
waypoint.setName(getMissionObject().getTargetName());
|
||||
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
|
||||
waypoint.setStringAttribute("", "");
|
||||
|
||||
actor.getClient().getSession().write(getMissionObject().getBaseline3().set("waypoint", waypoint));
|
||||
getMissionObject().setWaypoint(waypoint);
|
||||
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_located_" + target.getPlanet().getName(), DisplayType.Broadcast);
|
||||
|
||||
Reference in New Issue
Block a user