コード例 #1
0
        public static LuaScript LoadGlobals(LuaScript script = null)
        {
            script = script ?? new LuaScript();

            // register and load all global functions here
            ((FileSystemScriptLoader)script.Options.ScriptLoader).ModulePaths = FileSystemScriptLoader.UnpackStringPaths("./scripts/?;./scripts/?.lua");
            script.Globals["GetWorldManager"]      = (Func <WorldManager>)Server.GetWorldManager;
            script.Globals["GetStaticActor"]       = (Func <string, Actor>)Server.GetStaticActors;
            script.Globals["GetStaticActorById"]   = (Func <uint, Actor>)Server.GetStaticActors;
            script.Globals["GetWorldMaster"]       = (Func <Actor>)Server.GetWorldManager().GetActor;
            script.Globals["GetItemGamedata"]      = (Func <uint, ItemData>)Server.GetItemGamedata;
            script.Globals["GetGuildleveGamedata"] = (Func <uint, GuildleveData>)Server.GetGuildleveGamedata;
            script.Globals["GetLuaInstance"]       = (Func <LuaEngine>)LuaEngine.GetInstance;

            script.Options.DebugPrint = s => { Program.Log.Debug(s); };
            return(script);
        }
コード例 #2
0
        private static Script loadScript(string filename)
        {
            Script script = new Script();

            ((FileSystemScriptLoader)script.Options.ScriptLoader).ModulePaths = FileSystemScriptLoader.UnpackStringPaths("./scripts/?;./scripts/?.lua");
            script.Globals["getWorldManager"] = (Func <WorldManager>)Server.GetWorldManager;
            script.Globals["getStaticActor"]  = (Func <string, Actor>)Server.getStaticActors;
            script.Globals["getWorldMaster"]  = (Func <Actor>)Server.GetWorldManager().GetActor;
            script.Globals["getItemGamedata"] = (Func <uint, Item>)Server.getItemGamedata;

            try
            {
                script.DoFile(filename);
            }
            catch (SyntaxErrorException e)
            {
                Log.error(String.Format("LUAERROR: {0}.", e.DecoratedMessage));
                return(null);
            }
            return(script);
        }