public Monster(MonsterType Info, Mapping.MobSpawn Spawn) { this.Info = Info; this.Spawn = Spawn; UniqueID = Increments.NextMonsterUID; packetWriter = new Writer(82 + Info.Name.Length); packetWriter.Fill((ushort)82 + Info.Name.Length, 0); packetWriter.Fill((ushort)1014, 2); packetWriter.Fill(UniqueID, 4); packetWriter.Fill(Info.Model, 8); packetWriter.Fill(Info.Level, 50); packetWriter.Fill((byte)0x64, 59); packetWriter.Fill((byte)1, 80); packetWriter.Fill((byte)Info.Name.Length, 81); packetWriter.Fill(Info.Name, 82); HitPoints = Info.MaxHealth; Facing = (Enums.ConquerAngle)Program.Random.Next(0, 7); }
public static void LoadMonsterSpawns() { foreach (Mapping.Map M in Kernel.Maps.Values) { if (Directory.Exists("C:/db/Mobs/" + M.UniqueID)) { string[] Files = Directory.GetFiles("C:/db/Mobs/" + M.UniqueID); foreach (string FilePath in Files) { uint MobID = uint.Parse(FilePath.Remove(0, FilePath.LastIndexOf('\\') + 1).Replace(".ini", "")); Entities.MonsterType MonsterType; if (Kernel.MonsterTypes.TryGetValue(MobID, out MonsterType)) { string[] Data = File.ReadAllLines(FilePath); foreach (string spawnData in Data) { if (spawnData != "") { string[] line = spawnData.Split(' '); Mapping.MobSpawn Spawn = new Mapping.MobSpawn(int.Parse(line[0]), int.Parse(line[1]), int.Parse(line[2]), int.Parse(line[3])); Spawn.UniqueID = Increments.NextSpawnUID; byte MobAmount = byte.Parse(line[4]); for (int x = 0; x < MobAmount; x++) { Entities.Monster Mob = new Entities.Monster(MonsterType, Spawn); int px, py; Spawn.GetLocation(out px, out py); Mob.Map = M; Mob.RespawnDelay = Program.Random.Next(1000, 4000); Mob.X = Mob.SpawnX = (ushort)px; Mob.Y = Mob.SpawnY = (ushort)py; M.Insert(Mob); } } } } } } } }