示例#1
0
        public PythonEngine()
        {
            engine = Python.CreateEngine();

            /*Dalamar: BEGIN*/
            var paths = engine.GetSearchPaths();

            // Add "Scripts" forlder
            paths.Add(Misc.CurrentScriptDirectory());
            // Add defult IronPython installlation folder ( allow import os, json, and all the other standar python modules )
            if (System.IO.Directory.Exists(@"C:\Program Files\IronPython 2.7"))
            {
                paths.Add(@"C:\Program Files\IronPython 2.7\Lib");
                paths.Add(@"C:\Program Files\IronPython 2.7\DLLs");
                paths.Add(@"C:\Program Files\IronPython 2.7");
                paths.Add(@"C:\Program Files\IronPython 2.7\lib\site-packages");
            }
            engine.SetSearchPaths(paths);
            /*Dalamar: END*/

            engine.Runtime.Globals.SetVariable("Misc", new RazorEnhanced.Misc());
            engine.Runtime.Globals.SetVariable("Items", new RazorEnhanced.Items());
            engine.Runtime.Globals.SetVariable("Mobiles", new RazorEnhanced.Mobiles());
            engine.Runtime.Globals.SetVariable("Player", new RazorEnhanced.Player());
            engine.Runtime.Globals.SetVariable("Spells", new RazorEnhanced.Spells());
            engine.Runtime.Globals.SetVariable("Gumps", new RazorEnhanced.Gumps());
            engine.Runtime.Globals.SetVariable("Journal", new RazorEnhanced.Journal());
            engine.Runtime.Globals.SetVariable("Target", new RazorEnhanced.Target());
            engine.Runtime.Globals.SetVariable("Statics", new RazorEnhanced.Statics());

            engine.Runtime.Globals.SetVariable("AutoLoot", new RazorEnhanced.AutoLoot());
            engine.Runtime.Globals.SetVariable("Scavenger", new RazorEnhanced.Scavenger());
            engine.Runtime.Globals.SetVariable("SellAgent", new RazorEnhanced.SellAgent());
            engine.Runtime.Globals.SetVariable("BuyAgent", new RazorEnhanced.BuyAgent());
            engine.Runtime.Globals.SetVariable("Organizer", new RazorEnhanced.Organizer());
            engine.Runtime.Globals.SetVariable("Dress", new RazorEnhanced.Dress());
            engine.Runtime.Globals.SetVariable("Friend", new RazorEnhanced.Friend());
            engine.Runtime.Globals.SetVariable("Restock", new RazorEnhanced.Restock());
            engine.Runtime.Globals.SetVariable("BandageHeal", new RazorEnhanced.BandageHeal());
            engine.Runtime.Globals.SetVariable("PathFinding", new RazorEnhanced.PathFinding());
            engine.Runtime.Globals.SetVariable("DPSMeter", new RazorEnhanced.DPSMeter());
            engine.Runtime.Globals.SetVariable("Timer", new RazorEnhanced.Timer());
            engine.Runtime.Globals.SetVariable("Vendor", new RazorEnhanced.Vendor());


            //Setup main script symbols, automatically imported for convenience
            //scope = GetRazorScope(engine);
            scope = engine.Runtime.Globals;
        }
示例#2
0
        public PythonEngine()
        {
            engine = Python.CreateEngine();


            //Paths for IronPython 3.4
            var paths    = new List <string>();
            var basepath = Assistant.Engine.RootPath;

            // IronPython 3.4 add some default absolute paths: ./, ./Lib, ./DLLs
            // When run via CUO the paths are messed up, so we ditch the default ones and put the correct ones.
            // Order matters:
            // 1- ./Script/
            paths.Add(Misc.CurrentScriptDirectory());
            // 2- ./Lib/
            paths.Add(Path.Combine(basepath, "Lib"));
            // 3- ./
            paths.Add(basepath);

            engine.SetSearchPaths(paths);

            // Add also defult IronPython 3.4 installlation folder, if present
            if (System.IO.Directory.Exists(@"C:\Program Files\IronPython 3.4"))
            {
                paths.Add(@"C:\Program Files\IronPython 3.4");
                paths.Add(@"C:\Program Files\IronPython 3.4\Lib");
                paths.Add(@"C:\Program Files\IronPython 3.4\DLLs");
                paths.Add(@"C:\Program Files\IronPython 3.4\Scripts");
            }

            //RE Modules list
            Modules = new Dictionary <string, object>();
            Modules.Add("Misc", new RazorEnhanced.Misc());

            Modules.Add("Items", new RazorEnhanced.Items());
            Modules.Add("Mobiles", new RazorEnhanced.Mobiles());
            Modules.Add("Player", new RazorEnhanced.Player());
            Modules.Add("Spells", new RazorEnhanced.Spells());
            Modules.Add("Gumps", new RazorEnhanced.Gumps());
            Modules.Add("Journal", new RazorEnhanced.Journal());
            Modules.Add("Target", new RazorEnhanced.Target());
            Modules.Add("Statics", new RazorEnhanced.Statics());

            Modules.Add("AutoLoot", new RazorEnhanced.AutoLoot());
            Modules.Add("Scavenger", new RazorEnhanced.Scavenger());
            Modules.Add("SellAgent", new RazorEnhanced.SellAgent());
            Modules.Add("BuyAgent", new RazorEnhanced.BuyAgent());
            Modules.Add("Organizer", new RazorEnhanced.Organizer());
            Modules.Add("Dress", new RazorEnhanced.Dress());
            Modules.Add("Friend", new RazorEnhanced.Friend());
            Modules.Add("Restock", new RazorEnhanced.Restock());
            Modules.Add("BandageHeal", new RazorEnhanced.BandageHeal());
            Modules.Add("PathFinding", new RazorEnhanced.PathFinding());
            Modules.Add("DPSMeter", new RazorEnhanced.DPSMeter());
            Modules.Add("Timer", new RazorEnhanced.Timer());
            Modules.Add("Vendor", new RazorEnhanced.Vendor());

            //Setup builtin modules and scope
            foreach (var module in Modules)
            {
                engine.Runtime.Globals.SetVariable(module.Key, module.Value);
                engine.GetBuiltinModule().SetVariable(module.Key, module.Value);
            }
            scope = engine.CreateScope();
        }