private void SpawnZakum(int dwBodyID, int dwArmID) { Mobs.CreateMob(dwBodyID, null, SpawnPoint.X, SpawnPoint.Y, 70, 0xFC, 0, 0, MobType.ParentMob, null); for (var i = 0; i < 8; i++) { Mobs.CreateMob(dwArmID + i, null, SpawnPoint.X, SpawnPoint.Y, 70, 0, 0, 0, MobType.SubMob, null); } }
public override void Update() { base.Update(); if (bStarted || Users.Count <= 0) { return; } switch (MapId) { case 240060200: // boss maps case 240060201: Mobs.CreateMob(bChaos ? 8810026 : 8810130, null, 130, 250, 0, 0xFF, 0, 0, MobType.Normal, null); //Mobs.CreateMob(bChaos ? 8810026 : 8810130, -1, 130, 250, 0); // temp haxed for now break; } bStarted = true; }
protected override void InitMobs() { var mobcount = 30; const int npc = 1012119; switch (DungeonFieldIndex) { case 1: { var mobs = new int[2] { 9200009, 9500123 }; var y = new int[5] { 295, 206, 46, -55, -249 }; var x = new int[2][] { new int[5] { -20, 275, 290, 310, 310 }, // low range new int[5] { 1250, 1100, 980, 740, 730 }, // high range }; execute(mobs, y, x); makenpc(-340, 298, 21); } break; case 2: { var mobs = new int[2] { 9500123, 9300387 }; var y = new int[5] { 300, 105, 11, -80, -260 }; var x = new int[2][] { new int[5] { -115, 136, 130, 232, 243 }, // low range new int[5] { 1166, 830, 735, 670, 662 }, // high range }; execute(mobs, y, x); makenpc(-340, 298, 4); } break; case 3: { var mobs = new int[2] { 9300387, 9500149 }; var y = new int[5] { 178, 84, -94, -187, -367 }; var x = new int[2][] { new int[5] { 97, 623, 659, 766, 859 }, // low range new int[5] { 1386, 1656, 1465, 1372, 1290 }, // high range }; execute(mobs, y, x); makenpc(-170, -180, 21); } break; case 4: { var mobs = new int[2] { 9500149, 9500150 }; // 3k hp * 10 var y = new int[9] { 175, 76, 48, 34, 0, -97, -127, -240, -368 }; var x = new int[2][] { new int[9] { 380, 498, 1202, 93, 930, 125, 1069, 235, 762 }, // low range new int[9] { 1725, 920, 1590, 480, 1360, 930, 1500, 630, 1130 }, // high range }; execute(mobs, y, x); makenpc(1260, -420, 14); } break; case 5: { MobHpMultiplier = 60; var mobs = new int[3] { 8220009, 8220009, 8220009 }; var y = new int[3] { 1967, 1606, 1373 }; var x = new int[2][] { new int[3] { 0, 113, 210 }, new int[3] { 470, 400, 445 }, }; for (var i = 0; i < mobs.Length; i++) { Mobs.CreateMob(mobs[i], null, Constants.Rand.Next(x[0][i], x[1][i]), y[i], 0, 0, 0, 0, MobType.Normal, null); //var mob = new CMob(mobs[i]) //{ // m_nSummonType = 0xFE, // Position = new CMovePath // { // Y = (short)y[i], // X = (short)Constants.Rand.Next(x[0][i], x[1][i]), // }, //}; //Mobs.CreateMob(mob); } execute( new int[] { 9500106, 9500105, 9400622, 9000002, 9000301 }, new int[] { 1967, 1793, 1652, 1619, 1480, 1379 }, new int[][] { new int[] { -374, -88, 207, -12, 94, 125 }, new int[] { 914, 637, 569, 391, 500, 456, } }); makenpc(-345, 1800, 36); } break; } void execute(int[] mobs, int[] y, int[][] x) { while (mobcount > 0) { var level = Constants.Rand.Next(0, y.Length); var spawnY = y[level]; var spawnX_L = x[0][level]; var spawnX_R = x[1][level]; var spawnX = Constants.Rand.Next(spawnX_L, spawnX_R); Mobs.CreateMob(mobs.Random(), null, spawnX, spawnY, 0, 0, 0, 0, MobType.Normal, null); //var mob = new CMob(mobs.Random()) //{ // m_nSummonType = 0xFE, // Position = new CMovePath // { // Y = (short)spawnY, // X = (short)spawnX, // }, //}; //Mobs.CreateMob(mob); mobcount -= 1; } } void makenpc(short x, short y, short fh) { var entry = new CNpc(npc) { Rx0 = x, Rx1 = y, X = x, Y = y, Cy = y, F = true, Foothold = fh }; Npcs.Add(entry); Broadcast(entry.MakeEnterFieldPacket()); } }
private void TrySpawnBoss() { #if RELEASE if (_timeSinceCreation.SecondsSinceStart() <= 2 * 60) { return; // need to be in map for 2 mins before the boss will spawn } #endif if (!Users.Any()) { return; } if (!ParentInstance.AreaBossManager.CanSpawn(MapId)) { return; } TagPoint pt; int mobId; switch (MapId) { case 104010200: // forest trail 2 - mano pt = new TagPoint(308, 515); mobId = 2220000; break; case 100020101: // mushmom forest trail - mushmom pt = new TagPoint(-691, 215); mobId = 6130101; break; case 100020301: // blue mushmom forest - blue mushmom pt = new TagPoint(158, -685); mobId = 8220007; break; case 102020500: // gusty peak - stumpy pt = new TagPoint(549, 2168); mobId = 3220000; break; case 103030300: // unseen danger - dyle pt = new TagPoint(99, 119); goto case 103030400; case 103030400: // deep mire - dyle pt = new TagPoint(541, 121); mobId = 0; break; case 211041400: // forest of dead trees IV - riche pt = new TagPoint(1278, 94); mobId = 6090000; break; case 211040500: // sharp cliff III - Snowman pt = new TagPoint(37, 62); mobId = 8220001; break; case 211050000: // icy cold field - snow witch pt = new TagPoint(288, -146); mobId = 6090001; break; case 200010302: // garden of darkness II - eliza pt = new TagPoint(236, 83); mobId = 8220000; break; case 105020400: // cave exit - snack bar pt = new TagPoint(631, 350); mobId = 8220008; break; case 230020100: // seaweed tower - seruf pt = new TagPoint(-36, -80); mobId = 4220001; break; case 221020701: // eos tower 4th floor - rombot pt = new TagPoint(-60, 1513); mobId = 4130103; break; case 220050200: // lost time 2 - timer pt = new TagPoint(395, 1032); mobId = 5220003; break; //case 551030200: // spooky world - scarga // pt = new TagPoint(); // mobId = 0; // break; case 240020402: // manons forest - manon pt = new TagPoint(-371, 452); mobId = 8180000; break; case 240020102: // griffey forest - griffey pt = new TagPoint(422, 452); mobId = 8180001; break; case 240040401: // levtiathans canyon - leviathan pt = new TagPoint(-52, 1641); mobId = 8220003; break; case 250020300: // advanced practice field - master dummy pt = new TagPoint(1178, 51); mobId = 5090001; break; case 250010304: // Territory of Wandering Bear - Tae Roon pt = new TagPoint(-480, 393); mobId = 7220000; break; case 250010504: // Goblin Forest 2 - King Sage Cat pt = new TagPoint(76, 543); mobId = 7220002; break; case 251010101: // 60-Year-Old Herb Garden - Bamboo Warrior pt = new TagPoint(308, 123); mobId = 6090002; break; case 251010102: // 80-Year-Old Herb Garden - Giant Centipede pt = new TagPoint(435, -436); mobId = 5220004; break; case 260010500: // Dry Desert - Deo pt = new TagPoint(733, 275); mobId = 3220001; break; case 261010003: // Lab - Unit 103 - Rurumo pt = new TagPoint(305, 313); mobId = 6090004; break; case 261020300: // Lab - Area C-1 - Security Camera pt = new TagPoint(390, 167); mobId = 7090000; break; case 261030000: // Lab - Secret Basement Path - Chimera pt = new TagPoint(-321, 181); mobId = 8220002; break; case 270010500: // Memory Lane 5 - Dodo pt = new TagPoint(-264, 181); mobId = 8220004; break; case 270020500: // Road of Regrets 5 - Lilynouch pt = new TagPoint(108, -915); mobId = 8220005; break; case 270030500: // Road to Oblivion 5 - Lyka pt = new TagPoint(239, -570); mobId = 8220006; break; //case 682000001: // Hollowed Ground - Headless Horseman // pt = new TagPoint(304, 238); // mobId = 9400549; // break; //case 610010100: // Twisted Paths - Bigfoot //case 610010101: //case 610010102: //case 610010103: //case 610010104: // pt = new TagPoint(526, 208); // // 50/50 to spawn bigfoot or headless horseman // mobId = Constants.Rand.NextDouble() > 0.5 ? 9400549 : 9400575; // break; default: return; } Mobs.CreateMob(mobId, null, pt.X, pt.Y, 0, 0xFE, 0, 1, MobType.Normal, null); foreach (var item in Mobs) { item.SetController(Users.Random(), MobCtrlType.Active_Int); } Broadcast(CPacket.SystemMessage("The area boss emerges from the depths....")); }
private void SpawnStageBoss() { Mobs.CreateMob(_bossMob, null, 146, 7, 0, 15, 0, 1, MobType.Normal, Users.FirstOrDefault()); }