Added warp to public and private areas shortcut. Fixed counter printout bug. Fixed some commands. Fixed handling of the chocobo lender at the ferry docks.

This commit is contained in:
Filip Maj 2022-02-13 18:48:22 -05:00
parent 9f077190a3
commit 214d730a58
13 changed files with 208 additions and 124 deletions

View file

@ -488,6 +488,26 @@ namespace Meteor.Map.Actors
}
}
public void BroadcastPacketAroundPoint(float x, float y, SubPacket packet)
{
if (isIsolated)
return;
List<Actor> aroundActor = GetActorsAroundPoint(x, y, 50);
foreach (Actor a in aroundActor)
{
if (a is Player)
{
if (isIsolated)
continue;
SubPacket clonedPacket = new SubPacket(packet, a.Id);
Player p = (Player)a;
p.QueuePacket(clonedPacket);
}
}
}
public void SpawnActor(SpawnLocation location)
{
lock (mActorList)
@ -497,16 +517,8 @@ namespace Meteor.Map.Actors
if (actorClass == null)
return;
uint zoneId;
if (this is PrivateArea)
zoneId = ((PrivateArea)this).GetParentZone().Id;
else
zoneId = Id;
Npc npc = new Npc(mActorList.Count + 1, actorClass, location.uniqueId, this, location.x, location.y, location.z, location.rot, location.state, location.animId, null);
npc.LoadEventConditions(actorClass.eventConditions);
AddActorToZone(npc);
@ -522,12 +534,6 @@ namespace Meteor.Map.Actors
if (actorClass == null)
return null;
uint zoneId;
if (this is PrivateArea)
zoneId = ((PrivateArea)this).GetParentZone().Id;
else
zoneId = Id;
Npc npc;
if (isMob)
npc = new BattleNpc(mActorList.Count + 1, actorClass, uniqueId, this, x, y, z, rot, state, animId, null);
@ -554,13 +560,6 @@ namespace Meteor.Map.Actors
if (actorClass == null)
return null;
uint zoneId;
if (this is PrivateArea)
zoneId = ((PrivateArea)this).GetParentZone().Id;
else
zoneId = Id;
Npc npc = new Npc(mActorList.Count + 1, actorClass, uniqueId, this, x, y, z, 0, regionId, layoutId);
npc.LoadEventConditions(actorClass.eventConditions);