Esempio n. 1
0
        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
            }
        }