mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-08 21:44:35 +02:00
Merge branch 'develop' of https://bitbucket.org/Ioncannon/ffxiv-classic-server into ai
# Conflicts: # FFXIVClassic Map Server/actors/Actor.cs # FFXIVClassic Map Server/dataobjects/Session.cs # FFXIVClassic Map Server/lua/LuaEngine.cs
This commit is contained in:
commit
4695193aa0
235 changed files with 2840 additions and 1024 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue