Пример #1
0
    static int CreateAICmd(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2)
            {
                LuaCnsConfig     obj  = (LuaCnsConfig)ToLua.CheckObject <LuaCnsConfig>(L, 1);
                string           arg0 = ToLua.CheckString(L, 2);
                Mugen.AI_Command o    = obj.CreateAICmd(arg0);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 3)
            {
                LuaCnsConfig     obj  = (LuaCnsConfig)ToLua.CheckObject <LuaCnsConfig>(L, 1);
                string           arg0 = ToLua.CheckString(L, 2);
                string           arg1 = ToLua.CheckString(L, 3);
                Mugen.AI_Command o    = obj.CreateAICmd(arg0, arg1);
                ToLua.PushObject(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: LuaCnsConfig.CreateAICmd"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
Пример #2
0
 private void Clear()
 {
     m_AirConfig    = null;
     m_PlayerConfig = null;
     m_CNSConfig    = null;
     m_CmdConfig    = null;
     if (m_LuaConfig != null)
     {
         m_LuaConfig.Dispose();
         m_LuaConfig = null;
     }
 }
Пример #3
0
 static int CreateStateDef(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         LuaCnsConfig obj  = (LuaCnsConfig)ToLua.CheckObject <LuaCnsConfig>(L, 1);
         string       arg0 = ToLua.CheckString(L, 2);
         int          o    = obj.CreateStateDef(arg0);
         LuaDLL.lua_pushinteger(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Пример #4
0
 static int GetStateDef(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         LuaCnsConfig      obj  = (LuaCnsConfig)ToLua.CheckObject <LuaCnsConfig>(L, 1);
         int               arg0 = (int)LuaDLL.luaL_checknumber(L, 2);
         Mugen.CNSStateDef o    = obj.GetStateDef(arg0);
         ToLua.PushObject(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Пример #5
0
 static int GetAICommand(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         LuaCnsConfig     obj  = (LuaCnsConfig)ToLua.CheckObject <LuaCnsConfig>(L, 1);
         string           arg0 = ToLua.CheckString(L, 2);
         Mugen.AI_Command o    = obj.GetAICommand(arg0);
         ToLua.PushObject(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Пример #6
0
 static int GetLuaCnsCfg(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         GlobalConfigMgr obj  = (GlobalConfigMgr)ToLua.CheckObject <GlobalConfigMgr>(L, 1);
         string          arg0 = ToLua.CheckString(L, 2);
         LuaCnsConfig    o    = obj.GetLuaCnsCfg(arg0);
         ToLua.PushObject(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Пример #7
0
    static int get_HasStateDef(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            LuaCnsConfig obj = (LuaCnsConfig)o;
            bool         ret = obj.HasStateDef;
            LuaDLL.lua_pushboolean(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index HasStateDef on a nil value"));
        }
    }
Пример #8
0
 public bool ReloadLua()
 {
     if (m_PlayerConfig != null && m_PlayerConfig.Files != null && m_PlayerConfig.Files.HasLuaFile)
     {
         if (m_LuaConfig != null)
         {
             m_LuaConfig.Dispose();
             m_LuaConfig = new LuaCnsConfig();
             if (!m_LuaConfig.LoadFromFile(m_PlayerConfig.Files.lua))
             {
                 return(false);
             }
             return(true);
         }
     }
     return(false);
 }
Пример #9
0
    static int _CreateLuaCnsConfig(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 0)
            {
                LuaCnsConfig obj = new LuaCnsConfig();
                ToLua.PushObject(L, obj);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: LuaCnsConfig.New"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
Пример #10
0
    private bool Init(string playerName, out GlobalPlayerLoaderResult result, string cnsName = "")
    {
        Clear();
        result       = GlobalPlayerLoaderResult.None;
        m_PlayerName = playerName;
        if (string.IsNullOrEmpty(playerName))
        {
            result = GlobalPlayerLoaderResult.ParamError;
            return(false);
        }
        try
        {
            m_PlayerConfig = new PlayerConfig();
            m_PlayerConfig.LoadPlayer(playerName);
        } catch (Exception e) {
                        #if DEBUG
            Debug.LogError(e.ToString());
                        #endif
            Clear();
            result = GlobalPlayerLoaderResult.PlayerConfigError;
            return(false);
        }

        if (!m_PlayerConfig.IsVaild)
        {
            Clear();
            result = GlobalPlayerLoaderResult.PlayerConfigError;
            return(false);
        }
        try
        {
            string airName = string.Empty;
            if (m_PlayerConfig != null && m_PlayerConfig.Files != null)
            {
                airName = m_PlayerConfig.Files.anim;
                airName = GlobalConfigMgr.GetConfigFileNameNoExt(airName);
            }
            m_AirConfig = new AirConfig(playerName, airName);
            if (!m_AirConfig.IsVaild)
            {
                Clear();
                result = GlobalPlayerLoaderResult.AirConfigError;
                return(false);
            }
        } catch (Exception e) {
                        #if DEBUG
            Debug.LogError(e.ToString());
                        #endif
            Clear();
            result = GlobalPlayerLoaderResult.AirConfigError;
            return(false);
        }

        // 判断LUA
        bool isLua = false;
        try
        {
            if (m_PlayerConfig != null && m_PlayerConfig.Files != null && m_PlayerConfig.Files.HasLuaFile)
            {
                isLua       = true;
                m_LuaConfig = new LuaCnsConfig();
                if (!m_LuaConfig.LoadFromFile(m_PlayerConfig.Files.lua))
                {
                    result = (GlobalPlayerLoaderResult)((int)result | (int)GlobalPlayerLoaderResult.LUAConfigError);
                }
            }
        }
        catch (Exception e)
        {
#if DEBUG
            Debug.LogError(e.ToString());
#endif
            result = (GlobalPlayerLoaderResult)((int)result | (int)GlobalPlayerLoaderResult.LUAConfigError);
        }

        //---------------------------- 加载Cmd
        if (!isLua)
        {
            try
            {
                if (m_PlayerConfig != null && m_PlayerConfig.Files != null)
                {
                    string cmdName = m_PlayerConfig.Files.cmd;
                    if (string.IsNullOrEmpty(cmdName))
                    {
                        cmdName = playerName;
                    }
                    else
                    {
                        cmdName = GlobalConfigMgr.GetConfigFileNameNoExt(cmdName);
                    }
                    string fileName = string.Format("{0}@{1}/{2}.cmd.txt", AppConfig.GetInstance().PlayerRootDir, playerName, cmdName);
                    m_CmdConfig = new CmdConfig();
                    if (!m_CmdConfig.LoadFromFile(fileName))
                    {
                        result = GlobalPlayerLoaderResult.CmdConfigError;
                    }
                }
            }
            catch (Exception e)
            {
#if DEBUG
                Debug.LogError(e.ToString());
#endif
                result = GlobalPlayerLoaderResult.CmdConfigError;
            }
        }



        //--------------------------- 最后加载cns
        if (!isLua)
        {
            try
            {
                if (string.IsNullOrEmpty(cnsName))
                {
                    if (m_PlayerConfig == null || m_PlayerConfig.Files == null)
                    {
                        cnsName = playerName;
                    }
                    else
                    {
                        cnsName = m_PlayerConfig.Files.cns;
                        cnsName = GlobalConfigMgr.GetConfigFileNameNoExt(cnsName);
                    }
                }
                string fileName = string.Format("{0}@{1}/{2}.cns.txt", AppConfig.GetInstance().PlayerRootDir, playerName, cnsName);
                m_CNSConfig = new CNSConfig();
                if (!m_CNSConfig.LoadFromFile(fileName))
                {
                    //Clear();
                    result = (GlobalPlayerLoaderResult)((int)result | (int)GlobalPlayerLoaderResult.CNSConfigError);
                    //return false;
                }
            } catch (Exception e) {
                        #if DEBUG
                Debug.LogError(e.ToString());
                        #endif
                //Clear ();
                result = (GlobalPlayerLoaderResult)((int)result | (int)GlobalPlayerLoaderResult.CNSConfigError);
                //return false;
            }
        }

        if (result == GlobalPlayerLoaderResult.None)
        {
            result = GlobalPlayerLoaderResult.Ok;
        }
        return(true);
    }