Exemple #1
1
        public CraftingAI(Character user)
        {
            OpenFileDialog openfiledialog = new OpenFileDialog();
            openfiledialog.Filter = Resources.CraftingAI_CraftingAI_Crafting_AI_Script____csx____csx;

            if (openfiledialog.ShowDialog() == DialogResult.Cancel)
                return;

            _scriptingObject = new ScriptingObject(user);
            _host = new ScriptingHost(_scriptingObject);

            _host.ImportNamespace("Chocobot.Utilities.Keyboard");
            _host.ImportNamespace("Chocobot.Datatypes");

            try
            {
                _host.ExecuteFile(openfiledialog.FileName);
            }
            catch (Roslyn.Compilers.CompilationErrorException ex)
            {
                MessageBox.Show(ex.Diagnostics.ToString(), Resources.CraftingAI_CraftingAI_Scripting_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
                Debug.Print(ex.Diagnostics.ToString());
                return;
            }

            try
            {
                var res = _host.Execute("Initialize();");

            }
            catch (Roslyn.Compilers.CompilationErrorException ex)
            {
                Console.WriteLine("{0}{1}", Environment.NewLine,
                                            ex.Diagnostics);
                throw;
            }

            _valid = true;
        }
Exemple #2
0
        public override void Reset()
        {
            if (_valid == false)
            {
                return;
            }

            try
            {
                var res = _host.Execute("Reset();");

                if (res != null)
                {
                    Console.WriteLine(" = " + res.ToString());
                }
            }
            catch (Roslyn.Compilers.CompilationErrorException ex)
            {
                Console.WriteLine("{0}{1}", Environment.NewLine,
                                  ex.Diagnostics);
                throw;
            }

            base.Reset();
        }
Exemple #3
0
        public ScriptAI() : base()
        {
            IsRanged = true;
            Name     = "Scripting";

            OpenFileDialog openfiledialog = new OpenFileDialog();

            openfiledialog.Filter = "Class AI Script (*.csx)|*.csx";

            if (openfiledialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }

            _scriptingObject = new ScriptingObject();
            _host            = new ScriptingHost(_scriptingObject);

            _host.ImportNamespace("Chocobot.Utilities.Keyboard");
            _host.ImportNamespace("Chocobot.Datatypes");
            _host.ImportNamespace("Chocobot.MemoryStructures.Abilities.Recast");
            _host.ImportNamespace("Chocobot.MemoryStructures.Abilities.Hotkeys");
            _host.ImportNamespace("Chocobot.Utilities.Memory");
            _host.ImportNamespace("Chocobot.Utilities.Memory.MemoryFunctions");
            _host.ImportNamespace("Chocobot.MemoryStructures.Character");
            _host.ImportNamespace("System.DateTime");
            _host.ImportNamespace("Chocobot.Datatypes.Global");
            try
            {
                _host.ExecuteFile(openfiledialog.FileName);
            }
            catch (Roslyn.Compilers.CompilationErrorException ex)
            {
                MessageBox.Show(ex.Diagnostics.ToString(), "Scripting Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Debug.Print(ex.Diagnostics.ToString());
                return;
            }


            try
            {
                var res = _host.Execute("Initialize();");
            }
            catch (Roslyn.Compilers.CompilationErrorException ex)
            {
                Console.WriteLine("{0}{1}", Environment.NewLine,
                                  ex.Diagnostics);
                throw;
            }


            IsRanged = _scriptingObject.IsRanged;
            _valid   = true;
        }
 public override Result Query(string query)
 {
     MongoDatabase database = GetDatabase();
     var host = new ScriptingHost(database) {};
     InitializeHost(host);
     object data = host.Execute(query);
     return new Result
         {
             Success = true,
             Data = data
         };
 }
Exemple #5
0
        public ScriptAI()
            : base()
        {
            IsRanged = true;
            Name = "Scripting";

            OpenFileDialog openfiledialog = new OpenFileDialog();
            openfiledialog.Filter = "Class AI Script (*.csx)|*.csx";

            if (openfiledialog.ShowDialog() == DialogResult.Cancel)
                return;

            _scriptingObject = new ScriptingObject();
            _host = new ScriptingHost(_scriptingObject);

            _host.ImportNamespace("Chocobot.Utilities.Keyboard");
            _host.ImportNamespace("Chocobot.Datatypes");
            _host.ImportNamespace("Chocobot.MemoryStructures.Abilities.Recast");
            _host.ImportNamespace("Chocobot.MemoryStructures.Abilities.Hotkeys");
            _host.ImportNamespace("Chocobot.Utilities.Memory");
            _host.ImportNamespace("Chocobot.Utilities.Memory.MemoryFunctions");
            _host.ImportNamespace("Chocobot.MemoryStructures.Character");
            _host.ImportNamespace("System.DateTime");
            _host.ImportNamespace("Chocobot.Datatypes.Global");
            try
            {
                _host.ExecuteFile(openfiledialog.FileName);
            }
            catch (Roslyn.Compilers.CompilationErrorException ex)
            {
                MessageBox.Show(ex.Diagnostics.ToString(), "Scripting Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Debug.Print(ex.Diagnostics.ToString());
                return;
            }

            try
            {
                var res = _host.Execute("Initialize();");

            }
            catch (Roslyn.Compilers.CompilationErrorException ex)
            {
                Console.WriteLine("{0}{1}", Environment.NewLine,
                                            ex.Diagnostics);
                throw;
            }

            IsRanged = _scriptingObject.IsRanged;
            _valid = true;
        }
        protected object Filter(IEnumerable collection, Type type, NameValueCollection param)
        {
            object data = null;

            if (param["$filter"] != null)
            {
                var casted = Cast(collection, type);
                data = Filter(casted, type, param);
            }
            else
            {
                string finalQuery = "";
                if (param["$query"] != null)
                {
                    finalQuery = string.Format("{0} " + param["$query"] + "{1}",
                                               "(from " + type.Name + " row in Rows where ",
                                               " select row)");
                }
                else
                {
                    finalQuery = "(from " + type.Name + " row in Rows select row)";
                }

                if (param["$skip"] != null)
                {
                    int skip;
                    int.TryParse(param["$skip"], out skip);
                    finalQuery += ".Skip(" + skip + ")";
                }
                if (param["$take"] != null)
                {
                    int take;
                    int.TryParse(param["$take"], out take);
                    finalQuery += ".Take(" + take + ")";
                }

                var host = new ScriptingHost { Rows = collection };
                InitializeHost(host);
                host.AddReference(type.Assembly);
                host.ImportNamespace(type.Namespace);
                data = host.Execute(finalQuery);
            }
            return data;
        }