Esempio n. 1
0
    static int GetSuitAttrConfig(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        GoodsConfig      obj  = (GoodsConfig)LuaScriptMgr.GetNetObjectSelf(L, 1, "GoodsConfig");
        uint             arg0 = (uint)LuaScriptMgr.GetNumber(L, 2);
        SuitAddnAttrData o    = obj.GetSuitAttrConfig(arg0);

        LuaScriptMgr.PushObject(L, o);
        return(1);
    }
    static int _CreateSuitAddnAttrData(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 0)
        {
            SuitAddnAttrData obj = new SuitAddnAttrData();
            LuaScriptMgr.PushObject(L, obj);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: SuitAddnAttrData.New");
        }

        return(0);
    }
    static int get_suitID(IntPtr L)
    {
        object           o   = LuaScriptMgr.GetLuaObject(L, 1);
        SuitAddnAttrData obj = (SuitAddnAttrData)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name suitID");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index suitID on a nil value");
            }
        }

        LuaScriptMgr.Push(L, obj.suitID);
        return(1);
    }
    static int set_multi_attr(IntPtr L)
    {
        object           o   = LuaScriptMgr.GetLuaObject(L, 1);
        SuitAddnAttrData obj = (SuitAddnAttrData)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name multi_attr");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index multi_attr on a nil value");
            }
        }

        obj.multi_attr = (Dictionary <uint, Dictionary <uint, uint> >)LuaScriptMgr.GetNetObject(L, 3, typeof(Dictionary <uint, Dictionary <uint, uint> >));
        return(0);
    }
    static int set_parts(IntPtr L)
    {
        object           o   = LuaScriptMgr.GetLuaObject(L, 1);
        SuitAddnAttrData obj = (SuitAddnAttrData)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name parts");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index parts on a nil value");
            }
        }

        obj.parts = (List <uint>)LuaScriptMgr.GetNetObject(L, 3, typeof(List <uint>));
        return(0);
    }
    static int set_goodsID(IntPtr L)
    {
        object           o   = LuaScriptMgr.GetLuaObject(L, 1);
        SuitAddnAttrData obj = (SuitAddnAttrData)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name goodsID");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index goodsID on a nil value");
            }
        }

        obj.goodsID = (uint)LuaScriptMgr.GetNumber(L, 3);
        return(0);
    }
Esempio n. 7
0
    public void ReadGoodsAttrData()
    {
        //string text = ResourceLoadManager.Instance.GetConfigText(name1);
        //if (text == null)
        //{
        //    Debug.LogError("LoadConfig failed: " + name1);
        //    return;
        //}
        goodsAttrConfig.Clear();
        suitAttrConfig.Clear();
        //TextAsset conf = ResourceLoadManager.Instance.GetResources(GlobalConst.DIR_XML_GOODSATTR) as TextAsset;
        //TextAsset conf = obj as TextAsset;

        MemoryStream stream        = new MemoryStream(ResourceLoadManager.Instance.GetConfigByte(GlobalConst.DIR_XML_GOODSATTR));
        BinaryReader objBinaryRead = new BinaryReader(stream);

        int count = objBinaryRead.ReadInt32();

        for (int i = 0; i < count; ++i)
        {
            GoodsAttrConfig config = new GoodsAttrConfig();
            config.id                  = (uint)objBinaryRead.ReadInt32();
            config.name                = objBinaryRead.ReadString();
            config.icon                = objBinaryRead.ReadString();
            config.purpose             = objBinaryRead.ReadString();
            config.intro               = objBinaryRead.ReadString();
            config.category            = (uint)objBinaryRead.ReadInt32();
            config.sub_category        = objBinaryRead.ReadString();
            config.gender              = (uint)objBinaryRead.ReadInt32();
            config.suit_id             = (uint)objBinaryRead.ReadInt32();
            config.suit_addn_attr      = objBinaryRead.ReadString();
            config.suit_multi_attr     = objBinaryRead.ReadString();
            config.quality             = (uint)objBinaryRead.ReadInt32();
            config.stack_num           = (uint)objBinaryRead.ReadInt32();
            config.can_use             = (uint)objBinaryRead.ReadInt32();
            config.use_result_id       = (uint)objBinaryRead.ReadInt32();
            config.can_sell            = (uint)objBinaryRead.ReadInt32();
            config.sell_id             = (uint)objBinaryRead.ReadInt32();
            config.sell_price          = (uint)objBinaryRead.ReadInt32();
            config.access_way_type     = (uint)objBinaryRead.ReadInt32();
            config.access_way          = objBinaryRead.ReadString();
            config.show_special_effect = objBinaryRead.ReadString();

            if (config.suit_id != 0)
            {
                SuitAddnAttrData suitAttrData = new SuitAddnAttrData();
                suitAttrData.goodsID = config.id;
                suitAttrData.suitID  = config.suit_id;
                suitAttrData.parts.Add(uint.Parse(config.sub_category));
                //加系数
                string[] entirety1 = config.suit_addn_attr.Split('|');
                for (uint dei = 0; dei < entirety1.Length; ++dei)
                {
                    Dictionary <uint, uint> addn_attr = new Dictionary <uint, uint>();
                    string[] items = entirety1[dei].Split('&');
                    for (int dej = 0; dej < items.Length; ++dej)
                    {
                        string[] detail = items[dej].Split(':');
                        if (detail.Length < 2)
                        {
                            continue;
                        }
                        addn_attr[uint.Parse(detail[0])] = uint.Parse(detail[1]);
                    }
                    suitAttrData.addn_attr.Add(dei + 1, addn_attr);
                }
                //乘系数
                string[] entirety2 = config.suit_multi_attr.Split('|');
                for (uint dei = 0; dei < entirety2.Length; ++dei)
                {
                    Dictionary <uint, uint> addn_attr = new Dictionary <uint, uint>();
                    string[] items = entirety2[dei].Split('&');
                    for (int dej = 0; dej < items.Length; ++dej)
                    {
                        string[] detail = items[dej].Split(':');
                        if (detail.Length < 2)
                        {
                            continue;
                        }
                        addn_attr[uint.Parse(detail[0])] = uint.Parse(detail[1]);
                    }
                    suitAttrData.multi_attr.Add(dei + 1, addn_attr);
                }
                suitAttrConfig.Add(config.id, suitAttrData);
            }

            if (!goodsAttrConfig.ContainsKey(config.id))
            {
                goodsAttrConfig.Add(config.id, config);
            }
        }

        objBinaryRead.Close();
        stream.Close();
        //读取以及处理XML文本的类
        //XmlDocument xmlDoc = CommonFunction.LoadXmlConfig(GlobalConst.DIR_XML_GOODSATTR);
        //解析xml的过程

        /*XmlNodeList nodelist = xmlDoc.SelectSingleNode("Data").ChildNodes;
         * foreach (XmlElement xe in nodelist)
         * {
         *  XmlNode comment = xe.SelectSingleNode(GlobalConst.CONFIG_SWITCH_COLUMN);
         *  if (comment != null && comment.InnerText == GlobalConst.CONFIG_SWITCH)
         *      continue;
         *  GoodsAttrConfig config = new GoodsAttrConfig();
         *  foreach (XmlElement xel in xe)
         *  {
         *      uint value = 0;
         *      if (xel.Name == "id")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.id = value;
         *      }
         *      else if (xel.Name == "name")
         *      {
         *          config.name = xel.InnerText;
         *      }
         *      else if (xel.Name == "icon")
         *      {
         *          config.icon = xel.InnerText;
         *      }
         *      else if (xel.Name == "intro")
         *      {
         *          config.intro = xel.InnerText;
         *      }
         *      else if (xel.Name == "category")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.category = value;
         *      }
         *      else if (xel.Name == "sub_category")
         *      {
         *         // uint.TryParse(xel.InnerText, out value);
         *          config.sub_category = xel.InnerText;
         *      }
         *      else if (xel.Name == "quality")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.quality = value;
         *      }
         *      else if (xel.Name == "can_use")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.can_use = value;
         *      }
         *      else if (xel.Name == "use_result_id")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.use_result_id = value;
         *      }
         *      else if (xel.Name == "stack_num")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.stack_num = value;
         *      }
         *      else if (xel.Name == "can_sell")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.can_sell = value;
         *      }
         *      else if (xel.Name == "sell_price")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.sell_price = value;
         *      }
         *      else if (xel.Name == "can_composite")
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.can_composite = value;
         *      }
         *      else if( xel.Name == "gender" )
         *      {
         *          uint.TryParse(xel.InnerText, out value);
         *          config.gender = value;
         *      }
         *      else if (xel.Name == "purpose")
         *      {
         *          config.purpose = xel.InnerText;
         *      }
         *  }
         *  if (!goodsAttrConfig.ContainsKey(config.id))
         *  {
         *      goodsAttrConfig.Add(config.id, config);
         *  }
         * }*/
    }