I join the map - everything works fine..
Untill it says "Monsters are coming etc" ..
They will spawn like 3-4minutes later. Everything gets delayed
The only Thing i've changed is that u can join IC with 1 Player Minimum instead of 3..
heres the Page:
Code:
/*
* This file is part of the OpenNos Emulator Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
using OpenNos.Core;
using OpenNos.Domain;
using OpenNos.GameObject.Helpers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Linq;
using System.Threading;
namespace OpenNos.GameObject.Event
{
public class InstantBattle
{
#region Methods
public static void GenerateInstantBattle()
{
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES"), 5), 0));
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES"), 5), 1));
Thread.Sleep(4 * 60 * 1000);
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES"), 1), 0));
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES"), 1), 1));
Thread.Sleep(30 * 1000);
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_SECONDS"), 30), 0));
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_SECONDS"), 30), 1));
Thread.Sleep(20 * 1000);
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_SECONDS"), 10), 0));
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_SECONDS"), 10), 1));
Thread.Sleep(10 * 1000);
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_STARTED"), 1));
ServerManager.Instance.Broadcast($"qnaml 1 #guri^506 {Language.Instance.GetMessageFromKey("INSTANTBATTLE_QUESTION")}");
ServerManager.Instance.EventInWaiting = true;
Thread.Sleep(30 * 1000);
ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_STARTED"), 1));
ServerManager.Instance.Sessions.Where(s => s.Character != null && !s.Character.IsWaitingForEvent).ToList().ForEach(s => s.SendPacket("esf"));
ServerManager.Instance.EventInWaiting = false;
IEnumerable<ClientSession> sessions = ServerManager.Instance.Sessions.Where(s => s.Character != null && s.Character.IsWaitingForEvent && s.Character.MapInstance.MapInstanceType == MapInstanceType.BaseMapInstance);
List<Tuple<MapInstance, byte>> maps = new List<Tuple<MapInstance, byte>>();
MapInstance map = null;
int i = -1;
int level = 0;
byte instancelevel = 1;
foreach (ClientSession s in sessions.OrderBy(s => s.Character?.Level))
{
i++;
if (s.Character.Level > 79 && level <= 79)
{
i = 0;
instancelevel = 80;
}
else if (s.Character.Level > 69 && level <= 69)
{
i = 0;
instancelevel = 70;
}
else if (s.Character.Level > 59 && level <= 59)
{
i = 0;
instancelevel = 60;
}
else if (s.Character.Level > 49 && level <= 49)
{
i = 0;
instancelevel = 50;
}
else if (s.Character.Level > 39 && level <= 39)
{
i = 0;
instancelevel = 30;
}
if (i % 50 == 0)
{
map = ServerManager.Instance.GenerateMapInstance(2004, MapInstanceType.NormalInstance, new InstanceBag());
maps.Add(new Tuple<MapInstance, byte>(map, instancelevel));
}
if (map != null)
{
ServerManager.Instance.TeleportOnRandomPlaceInMap(s, map.MapInstanceId);
}
level = s.Character.Level;
}
ServerManager.Instance.Sessions.Where(s => s.Character != null).ToList().ForEach(s => s.Character.IsWaitingForEvent = false);
long maxGold = ServerManager.Instance.MaxGold;
foreach (Tuple<MapInstance, byte> mapinstance in maps)
{
ServerManager.Instance.StartedEvents.Remove(EventType.INSTANTBATTLE);
Thread.Sleep(10 * 1000);
if (mapinstance.Item1.Sessions.Count() < 1)
{
mapinstance.Item1.Sessions.Where(s => s.Character != null).ToList().ForEach(s => ServerManager.Instance.ChangeMap(s.Character.CharacterId, s.Character.MapId, s.Character.MapX, s.Character.MapY));
}
Observable.Timer(TimeSpan.FromMinutes(12)).Subscribe(X =>
{
for (int d = 0; d < 180; d++)
{
if (!mapinstance.Item1.Monsters.Any(s => s.CurrentHp > 0))
{
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(0), new EventContainer(mapinstance.Item1, EventActionType.SPAWNPORTAL, new Portal { SourceX = 47, SourceY = 33, DestinationMapId = 1 }));
mapinstance.Item1.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_SUCCEEDED"), 0));
foreach (ClientSession cli in mapinstance.Item1.Sessions.Where(s => s.Character != null).ToList())
{
cli.Character.GetReput(cli.Character.Level * 50);
cli.Character.Gold += cli.Character.Level * 1000;
cli.Character.Gold = cli.Character.Gold > maxGold ? maxGold : cli.Character.Gold;
cli.Character.SpAdditionPoint += cli.Character.Level * 100;
cli.Character.SpAdditionPoint = cli.Character.SpAdditionPoint > 1000000 ? 1000000 : cli.Character.SpAdditionPoint;
cli.SendPacket(cli.Character.GenerateSpPoint());
cli.SendPacket(cli.Character.GenerateGold());
cli.SendPacket(cli.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("WIN_MONEY"), cli.Character.Level * 1000), 10));
cli.SendPacket(cli.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("WIN_REPUT"), cli.Character.Level * 50), 10));
cli.SendPacket(cli.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("WIN_SP_POINT"), cli.Character.Level * 100), 10));
}
break;
}
Thread.Sleep(1000);
}
});
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(15), new EventContainer(mapinstance.Item1, EventActionType.DISPOSEMAP, null));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(3), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES_REMAINING"), 12), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(5), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES_REMAINING"), 10), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(10), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES_REMAINING"), 5), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(11), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES_REMAINING"), 4), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(12), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES_REMAINING"), 3), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(13), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES_REMAINING"), 2), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(14), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MINUTES_REMAINING"), 1), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(14.5), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_SECONDS_REMAINING"), 30), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(14.5), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("INSTANTBATTLE_SECONDS_REMAINING"), 30), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromMinutes(0), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MONSTERS_INCOMING"), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(7), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MONSTERS_APPEAR"), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(3), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MONSTERS_HERE"), 0)));
for (int wave = 0; wave < 4; wave++)
{
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(130 + wave * 160), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MONSTERS_WAVE"), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(160 + wave * 160), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MONSTERS_INCOMING"), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(170 + wave * 160), new EventContainer(mapinstance.Item1, EventActionType.SENDPACKET, UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANTBATTLE_MONSTERS_HERE"), 0)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(10 + wave * 160), new EventContainer(mapinstance.Item1, EventActionType.SPAWNMONSTERS, GetInstantBattleMonster(mapinstance.Item1.Map, mapinstance.Item2, wave)));
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(140 + wave * 160), new EventContainer(mapinstance.Item1, EventActionType.DROPITEMS, GetInstantBattleDrop(mapinstance.Item1.Map, mapinstance.Item2, wave)));
}
EventHelper.Instance.ScheduleEvent(TimeSpan.FromSeconds(650), new EventContainer(mapinstance.Item1, EventActionType.SPAWNMONSTERS, GetInstantBattleMonster(mapinstance.Item1.Map, mapinstance.Item2, 4)));
}
}
private static IEnumerable<Tuple<short, int, short, short>> GenerateDrop(Map map, short vnum, int amountofdrop, int amount)
{
List<Tuple<short, int, short, short>> dropParameters = new List<Tuple<short, int, short, short>>();
for (int i = 0; i < amountofdrop; i++)
{
MapCell cell = map.GetRandomPosition();
dropParameters.Add(new Tuple<short, int, short, short>(vnum, amount, cell.X, cell.Y));
}
return dropParameters;
}
private static List<Tuple<short, int, short, short>> GetInstantBattleDrop(Map map, short instantbattletype, int wave)
{
List<Tuple<short, int, short, short>> dropParameters = new List<Tuple<short, int, short, short>>();
switch (instantbattletype)
{
case 1:
switch (wave)
{
case 0:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 500));
dropParameters.AddRange(GenerateDrop(map, 2027, 8, 5));
dropParameters.AddRange(GenerateDrop(map, 2018, 5, 5));
dropParameters.AddRange(GenerateDrop(map, 180, 5, 1));
break;
case 1:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 1000));
dropParameters.AddRange(GenerateDrop(map, 1002, 8, 3));
dropParameters.AddRange(GenerateDrop(map, 1005, 16, 3));
dropParameters.AddRange(GenerateDrop(map, 181, 5, 1));
break;
case 2:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 1500));
dropParameters.AddRange(GenerateDrop(map, 1002, 10, 5));
dropParameters.AddRange(GenerateDrop(map, 1005, 10, 5));
break;
case 3:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 2000));
dropParameters.AddRange(GenerateDrop(map, 1003, 10, 5));
dropParameters.AddRange(GenerateDrop(map, 1006, 10, 5));
break;
}
break;
case 40:
switch (wave)
{
case 0:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 1500));
dropParameters.AddRange(GenerateDrop(map, 1008, 5, 3));
dropParameters.AddRange(GenerateDrop(map, 180, 5, 1));
break;
case 1:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 2000));
dropParameters.AddRange(GenerateDrop(map, 1008, 8, 3));
dropParameters.AddRange(GenerateDrop(map, 181, 5, 1));
break;
case 2:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 2500));
dropParameters.AddRange(GenerateDrop(map, 1009, 10, 3));
dropParameters.AddRange(GenerateDrop(map, 1246, 5, 1));
dropParameters.AddRange(GenerateDrop(map, 1247, 5, 1));
break;
case 3:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 3000));
dropParameters.AddRange(GenerateDrop(map, 1009, 10, 3));
dropParameters.AddRange(GenerateDrop(map, 1248, 5, 1));
break;
}
break;
case 50:
switch (wave)
{
case 0:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 1500));
dropParameters.AddRange(GenerateDrop(map, 1008, 5, 3));
dropParameters.AddRange(GenerateDrop(map, 180, 5, 1));
break;
case 1:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 2000));
dropParameters.AddRange(GenerateDrop(map, 1008, 8, 3));
dropParameters.AddRange(GenerateDrop(map, 181, 5, 1));
break;
case 2:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 2500));
dropParameters.AddRange(GenerateDrop(map, 1009, 10, 3));
dropParameters.AddRange(GenerateDrop(map, 1246, 5, 1));
dropParameters.AddRange(GenerateDrop(map, 1247, 5, 1));
break;
case 3:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 3000));
dropParameters.AddRange(GenerateDrop(map, 1009, 10, 3));
dropParameters.AddRange(GenerateDrop(map, 1248, 5, 1));
break;
}
break;
case 60:
switch (wave)
{
case 0:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 3000));
dropParameters.AddRange(GenerateDrop(map, 1010, 8, 4));
dropParameters.AddRange(GenerateDrop(map, 1246, 5, 1));
break;
case 1:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 4000));
dropParameters.AddRange(GenerateDrop(map, 1010, 10, 3));
dropParameters.AddRange(GenerateDrop(map, 1247, 5, 1));
break;
case 2:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 5000));
dropParameters.AddRange(GenerateDrop(map, 1010, 10, 13));
dropParameters.AddRange(GenerateDrop(map, 1246, 8, 1));
dropParameters.AddRange(GenerateDrop(map, 1247, 8, 1));
break;
case 3:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 7000));
dropParameters.AddRange(GenerateDrop(map, 1011, 13, 5));
dropParameters.AddRange(GenerateDrop(map, 1029, 5, 1));
dropParameters.AddRange(GenerateDrop(map, 1248, 13, 1));
break;
}
break;
case 70:
switch (wave)
{
case 0:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 3000));
dropParameters.AddRange(GenerateDrop(map, 1010, 8, 3));
dropParameters.AddRange(GenerateDrop(map, 1246, 5, 1));
break;
case 1:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 4000));
dropParameters.AddRange(GenerateDrop(map, 1010, 15, 4));
dropParameters.AddRange(GenerateDrop(map, 1247, 10, 1));
break;
case 2:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 5000));
dropParameters.AddRange(GenerateDrop(map, 1010, 13, 5));
dropParameters.AddRange(GenerateDrop(map, 1246, 13, 1));
dropParameters.AddRange(GenerateDrop(map, 1247, 13, 1));
break;
case 3:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 7000));
dropParameters.AddRange(GenerateDrop(map, 1011, 13, 5));
dropParameters.AddRange(GenerateDrop(map, 1248, 13, 1));
dropParameters.AddRange(GenerateDrop(map, 1029, 5, 1));
break;
}
break;
case 80:
switch (wave)
{
case 0:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 10000));
dropParameters.AddRange(GenerateDrop(map, 1011, 15, 5));
dropParameters.AddRange(GenerateDrop(map, 1246, 15, 1));
break;
case 1:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 12000));
dropParameters.AddRange(GenerateDrop(map, 1011, 15, 5));
dropParameters.AddRange(GenerateDrop(map, 1247, 15, 1));
break;
case 2:
dropParameters.AddRange(GenerateDrop(map, 1046, 15, 15000));
dropParameters.AddRange(GenerateDrop(map, 1011, 20, 5));
dropParameters.AddRange(GenerateDrop(map, 1246, 15, 1));
dropParameters.AddRange(GenerateDrop(map, 1247, 15, 1));
break;
case 3:
dropParameters.AddRange(GenerateDrop(map, 1046, 30, 20000));
dropParameters.AddRange(GenerateDrop(map, 1011, 30, 5));
dropParameters.AddRange(GenerateDrop(map, 1030, 30, 1));
dropParameters.AddRange(GenerateDrop(map, 2282, 12, 3));
break;
}
break;
}
return dropParameters;
}
private static List<MonsterToSummon> GetInstantBattleMonster(Map map, short instantbattletype, int wave)
{
List<MonsterToSummon> SummonParameters = new List<MonsterToSummon>();
switch (instantbattletype)
{
case 1:
switch (wave)
{
case 0:
SummonParameters.AddRange(map.GenerateMonsters(1, 16, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(58, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(105, 16, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(107, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(108, 8, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(111, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(136, 15, true, new List<EventContainer>()));
break;
case 1:
SummonParameters.AddRange(map.GenerateMonsters(194, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(114, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(99, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(39, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(2, 16, true, new List<EventContainer>()));
break;
case 2:
SummonParameters.AddRange(map.GenerateMonsters(140, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(100, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(81, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(12, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(4, 16, true, new List<EventContainer>()));
break;
case 3:
SummonParameters.AddRange(map.GenerateMonsters(115, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(112, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(110, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(14, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(5, 16, true, new List<EventContainer>()));
break;
case 4:
SummonParameters.AddRange(map.GenerateMonsters(979, 1, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(167, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(137, 10, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(22, 15, false, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(17, 8, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(16, 16, true, new List<EventContainer>()));
break;
}
break;
case 40:
switch (wave)
{
case 0:
SummonParameters.AddRange(map.GenerateMonsters(120, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(151, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(149, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(139, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(73, 16, true, new List<EventContainer>()));
break;
case 1:
SummonParameters.AddRange(map.GenerateMonsters(152, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(147, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(104, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(62, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(8, 16, true, new List<EventContainer>()));
break;
case 2:
SummonParameters.AddRange(map.GenerateMonsters(153, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(132, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(86, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(76, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(68, 16, true, new List<EventContainer>()));
break;
case 3:
SummonParameters.AddRange(map.GenerateMonsters(134, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(91, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(133, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(70, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(89, 16, true, new List<EventContainer>()));
break;
case 4:
SummonParameters.AddRange(map.GenerateMonsters(154, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(200, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(77, 8, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(217, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(724, 1, true, new List<EventContainer>()));
break;
}
break;
case 50:
switch (wave)
{
case 0:
SummonParameters.AddRange(map.GenerateMonsters(134, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(91, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(89, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(77, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(71, 16, true, new List<EventContainer>()));
break;
case 1:
SummonParameters.AddRange(map.GenerateMonsters(217, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(200, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(154, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(92, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(79, 16, true, new List<EventContainer>()));
break;
case 2:
SummonParameters.AddRange(map.GenerateMonsters(235, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(226, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(214, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(204, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(201, 15, true, new List<EventContainer>()));
break;
case 3:
SummonParameters.AddRange(map.GenerateMonsters(249, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(236, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(227, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(218, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(202, 15, true, new List<EventContainer>()));
break;
case 4:
SummonParameters.AddRange(map.GenerateMonsters(583, 1, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(400, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(255, 8, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(253, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(251, 10, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(205, 14, true, new List<EventContainer>()));
break;
}
break;
case 60:
switch (wave)
{
case 0:
SummonParameters.AddRange(map.GenerateMonsters(242, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(234, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(215, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(207, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(202, 13, true, new List<EventContainer>()));
break;
case 1:
SummonParameters.AddRange(map.GenerateMonsters(402, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(253, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(237, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(216, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(205, 13, true, new List<EventContainer>()));
break;
case 2:
SummonParameters.AddRange(map.GenerateMonsters(402, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(243, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(228, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(255, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(205, 13, true, new List<EventContainer>()));
break;
case 3:
SummonParameters.AddRange(map.GenerateMonsters(268, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(255, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(254, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(174, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(172, 13, true, new List<EventContainer>()));
break;
case 4:
SummonParameters.AddRange(map.GenerateMonsters(725, 1, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(407, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(272, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(261, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(256, 12, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(275, 13, true, new List<EventContainer>()));
break;
}
break;
case 70:
switch (wave)
{
case 0:
SummonParameters.AddRange(map.GenerateMonsters(402, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(253, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(237, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(216, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(205, 15, true, new List<EventContainer>()));
break;
case 1:
SummonParameters.AddRange(map.GenerateMonsters(402, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(243, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(228, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(225, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(205, 15, true, new List<EventContainer>()));
break;
case 2:
SummonParameters.AddRange(map.GenerateMonsters(255, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(254, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(251, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(174, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(172, 15, true, new List<EventContainer>()));
break;
case 3:
SummonParameters.AddRange(map.GenerateMonsters(407, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(272, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(261, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(257, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(256, 15, true, new List<EventContainer>()));
break;
case 4:
SummonParameters.AddRange(map.GenerateMonsters(748, 1, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(444, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(439, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(275, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(274, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(273, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(163, 13, true, new List<EventContainer>()));
break;
}
break;
case 80:
switch (wave)
{
case 0:
SummonParameters.AddRange(map.GenerateMonsters(1007, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1003, 15, false, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1002, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1001, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1000, 16, true, new List<EventContainer>()));
break;
case 1:
SummonParameters.AddRange(map.GenerateMonsters(1199, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1198, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1197, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1196, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1123, 16, true, new List<EventContainer>()));
break;
case 2:
SummonParameters.AddRange(map.GenerateMonsters(1305, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1304, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1303, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1302, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1194, 16, true, new List<EventContainer>()));
break;
case 3:
SummonParameters.AddRange(map.GenerateMonsters(1902, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1901, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1900, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1045, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1043, 15, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1042, 16, true, new List<EventContainer>()));
break;
case 4:
SummonParameters.AddRange(map.GenerateMonsters(637, 1, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1903, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1053, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1051, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1049, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1048, 13, true, new List<EventContainer>()));
SummonParameters.AddRange(map.GenerateMonsters(1047, 13, true, new List<EventContainer>()));
break;
}
break;
}
return SummonParameters;
}
#endregion
}
}
Hope for nice help. thx!







