Implemented the player portion of the new actor system.

This commit is contained in:
Filip Maj 2016-01-02 18:17:03 -05:00
parent 93a42c1ba3
commit 360d72b376
9 changed files with 117 additions and 44 deletions

View file

@ -24,7 +24,8 @@ namespace FFXIVClassic_Map_Server.dataobjects
public uint displayNameId = 0xFFFFFFFF;
public string customDisplayName;
public uint animationId;
public uint currentMainState = SetActorStatePacket.MAIN_STATE_PASSIVE;
public uint currentSubState = SetActorStatePacket.SUB_STATE_NONE;
public float positionX, positionY, positionZ, rotation;
public float oldPositionX, oldPositionY, oldPositionZ, oldRotation;
@ -32,6 +33,8 @@ namespace FFXIVClassic_Map_Server.dataobjects
public uint currentZoneId;
public bool isZoning = false;
public string className;
public List<LuaParam> classParams;
@ -40,6 +43,11 @@ namespace FFXIVClassic_Map_Server.dataobjects
actorId = Id;
}
public SubPacket createAddActorPacket(uint playerActorId)
{
return AddActorPacket.buildPacket(actorId, playerActorId, 0);
}
public SubPacket createNamePacket(uint playerActorId)
{
return SetActorNamePacket.buildPacket(actorId, playerActorId, displayNameId, displayNameId == 0xFFFFFFFF ? customDisplayName : "");
@ -59,19 +67,33 @@ namespace FFXIVClassic_Map_Server.dataobjects
public SubPacket createPositionUpdatePacket(uint playerActorId)
{
return MoveActorToPositionPacket.buildPacket(actorId, playerActorId, positionX, positionY, positionZ, rotation, moveState);
}
}
public SubPacket createScriptBindPacket(uint playerActorId)
public SubPacket createStatePacket(uint playerActorID)
{
return SetActorStatePacket.buildPacket(actorId, playerActorID, currentMainState, currentSubState);
}
public SubPacket createIsZoneingPacket(uint playerActorId)
{
return SetActorIsZoningPacket.buildPacket(actorId, playerActorId, false);
}
public virtual SubPacket createScriptBindPacket(uint playerActorId)
{
return null;
}
public BasePacket createActorSpawnPackets(uint playerActorId)
public virtual BasePacket getInitPackets(uint playerActorId)
{
if (this is Character)
return ((Character)this).createActorSpawnPackets(playerActorId);
else
return null;
List<SubPacket> subpackets = new List<SubPacket>();
subpackets.Add(createAddActorPacket(playerActorId));
subpackets.Add(createSpeedPacket(playerActorId));
subpackets.Add(createSpawnPositonPacket(playerActorId, 0xFF));
subpackets.Add(createNamePacket(playerActorId));
subpackets.Add(createStatePacket(playerActorId));
subpackets.Add(createIsZoneingPacket(playerActorId));
return BasePacket.createPacket(subpackets, true, false);
}
public override bool Equals(Object obj)