diff --git a/src/services/objects/ObjectAwareness.java b/src/services/objects/ObjectAwareness.java index 37de247b2..62bff6007 100644 --- a/src/services/objects/ObjectAwareness.java +++ b/src/services/objects/ObjectAwareness.java @@ -120,11 +120,10 @@ public class ObjectAwareness extends Service { p.setCreatureObject(null); break; case PE_FIRST_ZONE: - if (creature.getParent() == null) - creature.createObject(p); break; case PE_ZONE_IN: creature.clearAware(); + startScene(creature, creature.getLocation()); update(creature); break; default: @@ -181,6 +180,14 @@ public class ObjectAwareness extends Service { long time = (long) (ProjectSWG.getCoreTime() / 1E3); Race race = ((CreatureObject)object).getRace(); sendPacket(object.getOwner(), new CmdStartScene(false, object.getObjectId(), race, newLocation, time, (int)(System.currentTimeMillis()/1E3))); + recursiveCreateObject(object, object.getOwner()); + } + + private void recursiveCreateObject(SWGObject obj, Player p) { + SWGObject parent = obj.getParent(); + if (parent != null) + recursiveCreateObject(parent, p); + obj.createObject(p); } private void moveObject(SWGObject obj, DataTransform transform) { diff --git a/src/services/player/ZoneManager.java b/src/services/player/ZoneManager.java index cfa5a7eae..35c1c74df 100644 --- a/src/services/player/ZoneManager.java +++ b/src/services/player/ZoneManager.java @@ -49,7 +49,6 @@ import network.packets.swg.zone.chat.ChatOnConnectAvatar; import network.packets.swg.zone.chat.ChatSystemMessage; import network.packets.swg.zone.chat.VoiceChatStatus; import network.packets.swg.zone.insertion.ChatServerStatus; -import network.packets.swg.zone.insertion.CmdStartScene; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; @@ -57,8 +56,6 @@ import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; -import resources.Location; -import resources.Race; import resources.config.ConfigFile; import resources.control.Intent; import resources.control.Manager; @@ -185,15 +182,11 @@ public class ZoneManager extends Manager { } private void sendZonePackets(Player player, CreatureObject creature) { - long objId = creature.getObjectId(); - Race race = creature.getRace(); - Location l = creature.getLocation(); sendPacket(player, new HeartBeat()); sendPacket(player, new ChatServerStatus(true)); sendPacket(player, new VoiceChatStatus()); sendPacket(player, new ParametersMessage()); sendPacket(player, new ChatOnConnectAvatar()); - sendPacket(player, new CmdStartScene(false, objId, race, l, ProjectSWG.getGalacticTime(), (int)(System.currentTimeMillis()/1E3))); } private void initPlayerBeforeZoneIn(Player player, CreatureObject creatureObj, PlayerObject playerObj) {