public void setControlStatus(MobControlStatus mcs) { MobPacket.SendMobRequestEndControl(null, this); MobPacket.SendMobSpawn(null, this, 0, null, false, false); ControlStatus = mcs; DataProvider.Maps[MapID].UpdateMobControl(this, false, null); }
public void InitAndSpawn() { Init(); MobPacket.SendMobSpawn(null, this, 0, null, true, false); DataProvider.Maps[MapID].UpdateMobControl(this, true, null); }
public int spawnMob(int spawnid, Life life) { int id = _objectIDs.NextValue(); Mob mob = new Mob(id, ID, life.ID, new Pos(life.X, life.Y), (short)life.Foothold, MobControlStatus.ControlNormal); mob.SetSpawnData(life); Mobs.Add(mob); MobPacket.SendMobSpawn(null, mob, 0, null, true, false); UpdateMobControl(mob, true, null); return(id); }
public int spawnMobNoRespawn(int mobid, Pos position, short foothold) { int id = _objectIDs.NextValue(); Mob mob = new Mob(id, ID, mobid, position, foothold, MobControlStatus.ControlNormal, false); Mobs.Add(mob); MobPacket.SendMobSpawn(null, mob, 0, null, true, false); UpdateMobControl(mob, true, null); return(id); }
public int spawnMob(int mobid, Pos position, short foothold, Mob owner, byte summonEffect) { int id = _objectIDs.NextValue(); Mob mob = new Mob(id, ID, mobid, position, foothold, MobControlStatus.ControlNormal, summonEffect != 0 && owner != null); Mobs.Add(mob); if (summonEffect != 0) { mob.Owner = owner; if (owner != null) { owner.SpawnedMobs.Add(id, mob); } } MobPacket.SendMobSpawn(null, mob, summonEffect, owner, (owner == null), false); UpdateMobControl(mob, true, null); return(id); }
public void ShowObjects(Character chr) { if (HasClock) { MapPacket.SendMapClock(chr, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); } if (chr.Pets.GetEquippedPet() != null) { Pet pet = chr.Pets.GetEquippedPet(); pet.Position = new Pos(chr.Position); pet.Foothold = chr.Foothold; pet.Stance = 0; } chr.Pets.SpawnPet(); Characters.ForEach(p => { if (p != chr) { MapPacket.SendCharacterEnterPacket(p, chr); MapPacket.SendCharacterEnterPacket(chr, p); p.Pets.SpawnPet(chr); if (p.Summons.mSummon != null) { SummonPacket.SendShowSummon(p, p.Summons.mSummon, false, chr); } if (p.Summons.mPuppet != null) { SummonPacket.SendShowSummon(p, p.Summons.mPuppet, false, chr); } } }); Life[(int)SpawnTypes.Npc].ForEach(n => { MapPacket.ShowNPC(n, chr); }); Mobs.ForEach(m => { if (m.HP != 0) { if (m.ControlStatus == MobControlStatus.ControlNone) { UpdateMobControl(m, true, chr); } else { MobPacket.SendMobSpawn(chr, m, 0, null, false, true); UpdateMobControl(m, false, null); } } }); foreach (KeyValuePair <int, Drop> drop in Drops) { drop.Value.ShowDrop(chr); } if (mWeatherID != 0) { MapPacket.SendWeatherEffect(ID, chr); } }