# Conflicts:
#	FFXIVClassic Map Server/actors/Actor.cs
#	FFXIVClassic Map Server/dataobjects/Session.cs
#	FFXIVClassic Map Server/lua/LuaEngine.cs
This commit is contained in:
Tahir Akhlaq 2017-07-08 04:10:36 +01:00
commit 4695193aa0
235 changed files with 2840 additions and 1024 deletions

View file

@ -28,17 +28,18 @@ namespace FFXIVClassic_Map_Server.dataobjects
{
this.id = sessionId;
playerActor = new Player(this, sessionId);
actorInstanceList.Add(playerActor);
}
public void QueuePacket(BasePacket basePacket)
public void QueuePacket(List<SubPacket> packets)
{
Server.GetWorldConnection().QueuePacket(basePacket);
foreach (SubPacket s in packets)
QueuePacket(s);
}
public void QueuePacket(SubPacket subPacket, bool isAuthed, bool isEncrypted)
public void QueuePacket(SubPacket subPacket)
{
Server.GetWorldConnection().QueuePacket(subPacket, isAuthed, isEncrypted);
subPacket.SetTargetId(id);
Server.GetWorldConnection().QueuePacket(subPacket);
}
public Player GetActor()
@ -82,7 +83,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
playerActor.rotation = rot;
playerActor.moveState = moveState;
GetActor().zone.UpdateActorPosition(GetActor());
GetActor().GetZone().UpdateActorPosition(GetActor());
playerActor.QueuePositionUpdate(new Vector3(x,y,z));
}
@ -99,29 +100,11 @@ namespace FFXIVClassic_Map_Server.dataobjects
//Remove missing actors
for (int i = 0; i < actorInstanceList.Count; i++)
{
if (list.Contains(actorInstanceList[i]) && actorInstanceList[i] is Npc)
{
Npc npc = (Npc)actorInstanceList[i];
long milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
if (npc.GetUniqueId().Equals("1") && milliseconds - lastMilis > 1000)
{
lastMilis = milliseconds;
GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId));
actorInstanceList.RemoveAt(i);
continue;
}
}
if (!list.Contains(actorInstanceList[i]))
{
GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId));
QueuePacket(RemoveActorPacket.BuildPacket(actorInstanceList[i].actorId));
actorInstanceList.RemoveAt(i);
}
}
}
//Add new actors or move
@ -139,16 +122,14 @@ namespace FFXIVClassic_Map_Server.dataobjects
if (actor is Character && ((Character)actor).isStatic)
continue;
var packet = actor.CreatePositionUpdatePacket(playerActor.actorId);
if (packet != null)
GetActor().QueuePacket(packet);
QueuePacket(actor.CreatePositionUpdatePacket());
}
else
{
GetActor().QueuePacket(actor.GetSpawnPackets(playerActor.actorId, 1));
GetActor().QueuePacket(actor.GetInitPackets(playerActor.actorId));
GetActor().QueuePacket(actor.GetSetEventStatusPackets(playerActor.actorId));
{
QueuePacket(actor.GetSpawnPackets(playerActor, 1));
QueuePacket(actor.GetInitPackets());
QueuePacket(actor.GetSetEventStatusPackets());
actorInstanceList.Add(actor);
if (actor is Npc)