mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-05-20 08:26:59 -04:00
Merge branch 'ai-open' of https://bitbucket.org/takhlaq/ffxiv-classic-server into ai-open
This commit is contained in:
@@ -243,6 +243,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
lastPlayTimeUpdate = Utils.UnixTimeStampUTC();
|
||||
|
||||
this.aiContainer = new AIContainer(this, new PlayerController(this), null, new TargetFind(this));
|
||||
allegiance = CharacterTargetingAllegiance.Player;
|
||||
}
|
||||
|
||||
public List<SubPacket> Create0x132Packets()
|
||||
@@ -267,9 +268,9 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
* Unknown - Bool
|
||||
* Unknown - Number
|
||||
* Unknown - Bool
|
||||
* Timer Array - 20 Number
|
||||
*/
|
||||
|
||||
* Timer Array - 20 Number
|
||||
*/
|
||||
|
||||
public override SubPacket CreateScriptBindPacket(Player requestPlayer)
|
||||
{
|
||||
List<LuaParam> lParams;
|
||||
@@ -285,7 +286,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
|
||||
ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket();
|
||||
|
||||
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
|
||||
|
||||
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
|
||||
}
|
||||
|
||||
public override List<SubPacket> GetSpawnPackets(Player requestPlayer, ushort spawnType)
|
||||
@@ -294,21 +296,21 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
subpackets.Add(CreateAddActorPacket(8));
|
||||
if (IsMyPlayer(requestPlayer.actorId))
|
||||
subpackets.AddRange(Create0x132Packets());
|
||||
subpackets.Add(CreateSpeedPacket());
|
||||
subpackets.Add(CreateSpeedPacket());
|
||||
subpackets.Add(CreateSpawnPositonPacket(this, spawnType));
|
||||
subpackets.Add(CreateAppearancePacket());
|
||||
subpackets.Add(CreateNamePacket());
|
||||
subpackets.Add(_0xFPacket.BuildPacket(actorId));
|
||||
subpackets.Add(CreateStatePacket());
|
||||
subpackets.Add(CreateIdleAnimationPacket());
|
||||
subpackets.Add(CreateInitStatusPacket());
|
||||
subpackets.Add(CreateSetActorIconPacket());
|
||||
subpackets.Add(CreateInitStatusPacket());
|
||||
subpackets.Add(CreateSetActorIconPacket());
|
||||
subpackets.Add(CreateIsZoneingPacket());
|
||||
subpackets.AddRange(CreatePlayerRelatedPackets(requestPlayer.actorId));
|
||||
subpackets.Add(CreateScriptBindPacket(requestPlayer));
|
||||
return subpackets;
|
||||
}
|
||||
|
||||
|
||||
public List<SubPacket> CreatePlayerRelatedPackets(uint requestingPlayerActorId)
|
||||
{
|
||||
List<SubPacket> subpackets = new List<SubPacket>();
|
||||
@@ -319,9 +321,9 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
if (currentTitle != 0)
|
||||
subpackets.Add(SetPlayerTitlePacket.BuildPacket(actorId, currentTitle));
|
||||
|
||||
if (currentJob != 0)
|
||||
subpackets.Add(SetCurrentJobPacket.BuildPacket(actorId, currentJob));
|
||||
|
||||
if (currentJob != 0)
|
||||
subpackets.Add(SetCurrentJobPacket.BuildPacket(actorId, currentJob));
|
||||
|
||||
if (IsMyPlayer(requestingPlayerActorId))
|
||||
{
|
||||
subpackets.Add(SetSpecialEventWorkPacket.BuildPacket(actorId));
|
||||
@@ -347,7 +349,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
|
||||
return subpackets;
|
||||
}
|
||||
|
||||
|
||||
public override List<SubPacket> GetInitPackets()
|
||||
{
|
||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this);
|
||||
@@ -512,8 +514,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
QueuePacket(SetWeatherPacket.BuildPacket(actorId, SetWeatherPacket.WEATHER_CLEAR, 1));
|
||||
|
||||
QueuePacket(SetMapPacket.BuildPacket(actorId, zone.regionId, zone.actorId));
|
||||
|
||||
QueuePackets(GetSpawnPackets(this, spawnType));
|
||||
|
||||
QueuePackets(GetSpawnPackets(this, spawnType));
|
||||
//GetSpawnPackets(actorId, spawnType).DebugPrintPacket();
|
||||
|
||||
#region Inventory & Equipment
|
||||
@@ -523,17 +525,17 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
inventories[Inventory.KEYITEMS].SendFullInventory();
|
||||
inventories[Inventory.BAZAAR].SendFullInventory();
|
||||
inventories[Inventory.MELDREQUEST].SendFullInventory();
|
||||
inventories[Inventory.LOOT].SendFullInventory();
|
||||
equipment.SendFullEquipment(false);
|
||||
inventories[Inventory.LOOT].SendFullInventory();
|
||||
equipment.SendFullEquipment(false);
|
||||
playerSession.QueuePacket(InventoryEndChangePacket.BuildPacket(actorId));
|
||||
#endregion
|
||||
|
||||
playerSession.QueuePacket(GetInitPackets());
|
||||
playerSession.QueuePacket(GetInitPackets());
|
||||
|
||||
List<SubPacket> areaMasterSpawn = zone.GetSpawnPackets();
|
||||
List<SubPacket> debugSpawn = world.GetDebugActor().GetSpawnPackets();
|
||||
List<SubPacket> worldMasterSpawn = world.GetActor().GetSpawnPackets();
|
||||
|
||||
|
||||
playerSession.QueuePacket(areaMasterSpawn);
|
||||
playerSession.QueuePacket(debugSpawn);
|
||||
playerSession.QueuePacket(worldMasterSpawn);
|
||||
@@ -551,15 +553,15 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
QueuePacket(SetPlayerItemStoragePacket.BuildPacket(actorId));
|
||||
}
|
||||
|
||||
if (zone.GetWeatherDirector() != null)
|
||||
{
|
||||
if (zone.GetWeatherDirector() != null)
|
||||
{
|
||||
playerSession.QueuePacket(zone.GetWeatherDirector().GetSpawnPackets());
|
||||
}
|
||||
|
||||
|
||||
foreach (Director director in ownedDirectors)
|
||||
{
|
||||
QueuePackets(director.GetSpawnPackets());
|
||||
QueuePackets(director.GetSpawnPackets());
|
||||
QueuePackets(director.GetInitPackets());
|
||||
}
|
||||
|
||||
@@ -592,8 +594,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
|
||||
public bool IsMyPlayer(uint otherActorId)
|
||||
{
|
||||
return actorId == otherActorId;
|
||||
}
|
||||
return actorId == otherActorId;
|
||||
}
|
||||
|
||||
public void QueuePacket(SubPacket packet)
|
||||
{
|
||||
@@ -601,7 +603,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
}
|
||||
|
||||
public void QueuePackets(List<SubPacket> packets)
|
||||
{
|
||||
{
|
||||
playerSession.QueuePacket(packets);
|
||||
}
|
||||
|
||||
@@ -1141,16 +1143,16 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
}
|
||||
|
||||
public void MarkGuildleve(uint id, bool abandoned, bool completed)
|
||||
{
|
||||
if (HasGuildleve(id))
|
||||
{
|
||||
if (HasGuildleve(id))
|
||||
{
|
||||
for (int i = 0; i < work.guildleveId.Length; i++)
|
||||
{
|
||||
if (work.guildleveId[i] == id)
|
||||
{
|
||||
work.guildleveChecked[i] = completed;
|
||||
work.guildleveDone[i] = abandoned;
|
||||
Database.MarkGuildleve(this, id, abandoned, completed);
|
||||
work.guildleveDone[i] = abandoned;
|
||||
Database.MarkGuildleve(this, id, abandoned, completed);
|
||||
SendGuildleveMarkClientUpdate(i);
|
||||
}
|
||||
}
|
||||
@@ -1426,9 +1428,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
|
||||
private void SendGuildleveMarkClientUpdate(int slot)
|
||||
{
|
||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this);
|
||||
propPacketUtil.AddProperty(String.Format("work.guildleveDone[{0}]", slot));
|
||||
propPacketUtil.AddProperty(String.Format("work.guildleveChecked[{0}]", slot));
|
||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this);
|
||||
propPacketUtil.AddProperty(String.Format("work.guildleveId[{0}]", slot));
|
||||
QueuePackets(propPacketUtil.Done());
|
||||
}
|
||||
|
||||
@@ -1447,16 +1448,16 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||
}
|
||||
}
|
||||
|
||||
public void SendDirectorPackets(Director director)
|
||||
{
|
||||
public void SendDirectorPackets(Director director)
|
||||
{
|
||||
QueuePackets(director.GetSpawnPackets());
|
||||
QueuePackets(director.GetInitPackets());
|
||||
}
|
||||
|
||||
public void RemoveDirector(Director director)
|
||||
{
|
||||
if (ownedDirectors.Contains(director))
|
||||
{
|
||||
{
|
||||
if (ownedDirectors.Contains(director))
|
||||
{
|
||||
QueuePacket(RemoveActorPacket.BuildPacket(director.actorId));
|
||||
ownedDirectors.Remove(director);
|
||||
director.RemoveMember(this);
|
||||
|
Reference in New Issue
Block a user