Code:
public static void Spawns(Character C, bool Check)
{
try
{
COPacket CSpawn = Packets.SpawnEntity(C);
foreach (Character CC in H_Chars.Values)
{
if (CC != C && CC.Loc.Map == C.Loc.Map && MyMath.InBox(C.Loc.X, C.Loc.Y, CC.Loc.X, CC.Loc.Y, 17) && (!MyMath.InBox(C.Loc.PreviousX, C.Loc.PreviousY, CC.Loc.X, CC.Loc.Y, 17) || !Check))
{
C.MyClient.AddSend(Packets.SpawnEntity(CC));
if (CC.MyGuild != null)
C.MyClient.AddSend(Packets.String(CC.MyGuild.GuildID, (byte)StringType.GuildName, CC.MyGuild.GuildName));
CC.MyClient.AddSend(CSpawn);
if (C.MyGuild != null)
CC.MyClient.AddSend(Packets.String(C.MyGuild.GuildID, (byte)StringType.GuildName, C.MyGuild.GuildName));
}
}
Hashtable MapMobs = (Hashtable)H_Mobs[C.Loc.Map];
if (MapMobs != null)
{
foreach (Mob M in MapMobs.Values)
if (M.Alive && MyMath.InBox(C.Loc.X, C.Loc.Y, M.Loc.X, M.Loc.Y, 16) && (!MyMath.InBox(C.Loc.PreviousX, C.Loc.PreviousY, M.Loc.X, M.Loc.Y, 16) || !Check))
C.MyClient.AddSend(Packets.SpawnEntity(M));
}
Hashtable MapItems = (Hashtable)H_Items[C.Loc.Map];
if (MapItems != null)
{
foreach (DroppedItem DI in MapItems.Values)
if (MyMath.InBox(C.Loc.X, C.Loc.Y, DI.Loc.X, DI.Loc.Y, 14) && (!MyMath.InBox(C.Loc.PreviousX, C.Loc.PreviousY, DI.Loc.X, DI.Loc.Y, 14) || !Check))
C.MyClient.AddSend(Packets.ItemDrop(DI));
}
foreach (NPC N in H_NPCs.Values)
if (N.Loc.Map == C.Loc.Map && MyMath.InBox(C.Loc.X, C.Loc.Y, N.Loc.X, N.Loc.Y, 14) && (!MyMath.InBox(C.Loc.PreviousX, C.Loc.PreviousY, N.Loc.X, N.Loc.Y, 14) || !Check))
{
if (N.MaxHP == 0)
C.MyClient.AddSend(Packets.SpawnNPC(N));
else
C.MyClient.AddSend(Packets.SpawnNPCWithHP(N));
}
foreach (Features.PersonalShops.Shop S in H_PShops.Values)
if (S.NPCInfo.Loc.Map == C.Loc.Map && MyMath.InBox(C.Loc.X, C.Loc.Y, S.NPCInfo.Loc.X, S.NPCInfo.Loc.Y, 14) && (!MyMath.InBox(C.Loc.PreviousX, C.Loc.PreviousY, S.NPCInfo.Loc.X, S.NPCInfo.Loc.Y, 14) || !Check))
{
C.MyClient.AddSend(Packets.SpawnNamedNPC(S.NPCInfo, S.Name));
if (S.Hawk != "")
C.MyClient.AddSend(Packets.ChatMessage(26514, S.Owner.Name, "ALL", S.Hawk, 2104, 0));
}
foreach (Companion Cmp in H_Companions.Values)
if (Cmp.Loc.Map == C.Loc.Map && MyMath.InBox(C.Loc.X, C.Loc.Y, Cmp.Loc.X, Cmp.Loc.Y, 16) && (!MyMath.InBox(C.Loc.PreviousX, C.Loc.PreviousY, Cmp.Loc.X, Cmp.Loc.Y, 16) || !Check))
C.MyClient.AddSend(Packets.SpawnEntity(Cmp));
Features.GuildWars.ThePole.Spawn(C, Check);
Features.GuildWars.TheLeftGate.Spawn(C, Check);
Features.GuildWars.TheRightGate.Spawn(C, Check);
}
catch { }
}