public void OnCommand(GameClient client, string[] args) { if (args.Length == 1) { DisplaySyntax(client); return; } switch (args[1].ToLower()) { #region Create case "create": { if (args.Length != 7) { DisplaySyntax(client); return; } DBArea area = new DBArea(); area.Description = args[2]; switch (args[3].ToLower()) { case "circle": area.ClassType = "DOL.GS.Area+Circle"; break; case "square": area.ClassType = "DOL.GS.Area+Square"; break; case "safe": case "safearea": area.ClassType = "DOL.GS.Area+SafeArea"; break; case "bind": case "bindarea": area.ClassType = "DOL.GS.Area+BindArea"; break; default: { DisplaySyntax(client); return; } } area.Radius = Convert.ToInt16(args[4]); switch (args[5].ToLower()) { case "y": { area.CanBroadcast = true; break; } case "n": { area.CanBroadcast = false; break; } default: { DisplaySyntax(client); return; } } area.Sound = byte.Parse(args[6]); area.Region = client.Player.CurrentRegionID; area.X = client.Player.X; area.Y = client.Player.Y; area.Z = client.Player.Z; Assembly gasm = Assembly.GetAssembly(typeof(GameServer)); AbstractArea newArea = (AbstractArea)gasm.CreateInstance(area.ClassType, false); newArea.LoadFromDatabase(area); newArea.Sound = area.Sound; newArea.CanBroadcast = area.CanBroadcast; WorldMgr.GetRegion(client.Player.CurrentRegionID).AddArea(newArea); GameServer.Database.AddObject(area); DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Area.AreaCreated", area.Description, area.X, area.Z, area.Radius, area.CanBroadcast.ToString(), area.Sound)); break; } #endregion Create #region Default default: { DisplaySyntax(client); break; } #endregion Default } }