public void AddLuaReward(Lua_Online item)
 {
     m_listOnline.Add(item);
 }
        public override bool SaveData(StreamWriter sw)
        {
            if (!base.SaveData(sw))
            {
                return false;
            }
            BaseSheetInfo bsInfo = m_listBase[0];
            // write to lua
            sw.WriteLine("--是否显示在主页, 0表示不显示,大于0表示显示 ");
            string strTemp = "local exhibit = " + bsInfo.exhibit.ToString() + ";";
            sw.WriteLine(strTemp);
            sw.WriteLine();

            sw.WriteLine("--活动图片名称 ");
            strTemp = "local regularImageName = \"" + bsInfo.regularImageName + "\";";
            sw.WriteLine(strTemp);
            strTemp = "local thumbnailName = \"" + bsInfo.thumbnailName + "\";";
            sw.WriteLine(strTemp);
            sw.WriteLine();

            sw.WriteLine("--活动名称 ");
            strTemp = "local activity_title = \"" + bsInfo.activity_title + "\";";
            sw.WriteLine(strTemp);
            sw.WriteLine("--活动内容,其中时间程序会自动填充 ");
            strTemp = "local activity_content = \"" + bsInfo.activity_content + "\";";
            sw.WriteLine(strTemp);
            sw.WriteLine();

            sw.WriteLine("--活动显示时间 ");
            strTemp = "local show_begin_time = \"" + bsInfo.show_begin_time + "\";";
            sw.WriteLine(strTemp);
            strTemp = "local show_end_time = \"" + bsInfo.show_end_time + "\";";
            sw.WriteLine(strTemp);
            sw.WriteLine();

            //sw.WriteLine("--活动起始时间 ");
            //strTemp = "local activity_start_time = \"" + bsInfo.activity_start_time + "\";";
            //sw.WriteLine(strTemp);
            //strTemp = "local activity_end_time = \"" + bsInfo.activity_end_time + "\";";
            //sw.WriteLine(strTemp);
            //sw.WriteLine();

            sw.WriteLine("--每日计时开始时间 ");
            string[] strArray = bsInfo.resettime.Split(new char[]{':', ':'});
            if (strArray.Length != 3)
            {
                throw new Exception("OnlineReward: resettime error.");
            }
            strTemp = "local resettime = {hour = " + strArray[0]
                + ", minute = " + strArray[1]
                + ", second = " + strArray[2] + "};";
            sw.WriteLine(strTemp);
            sw.WriteLine();
            /////////////////////////////////////////////////
            sw.WriteLine("--玩家物品,activity_end_time与下一个activity_start_time不能完全相同");
            sw.WriteLine("local onlineRewardInfo = ");
            sw.WriteLine("{");
            /////////////////////////////////////////////////
            int nOnlineRewardIndex = 1;
            int nOnlineIndex = 1;
            OnlineRewardInfo infoLast = null;
            Lua_OnlineRewardInfo luaAllInfo = null;
            Lua_Online luaReward = null;
            // Loop the data list
            for (int i = 0; i < m_listOwn.Count; i++)
            {
                OnlineRewardInfo info = m_listOwn[i];
                int nReturn = info.HasSameTime(infoLast);
                if (2 == nReturn) // 同样的奖励时间,并且同样的累计秒数
                {
                    luaReward.AddItem(info.malereward_itemid, info.malereward_itemcount, info.malereward_itemvalidity
                        , info.femalereward_itemid, info.femalereward_itemcount, info.femalereward_itemvalidity);
                }
                else if (1 == nReturn) // 同样的奖励时间,不同的累计秒数
                {
                    luaReward = new Lua_Online(nOnlineIndex++, info.onlinetime, info.moneyreward);
                    luaReward.AddItem(info.malereward_itemid, info.malereward_itemcount, info.malereward_itemvalidity
                        , info.femalereward_itemid, info.femalereward_itemcount, info.femalereward_itemvalidity);
                    luaAllInfo.AddLuaReward(luaReward);
                }
                else // 不同的奖励时间,等于新的奖励开始了
                {
                    if (nOnlineRewardIndex > 1)
                    {
                        sw.WriteLine(luaAllInfo.BuildLua());
                    }
                    luaAllInfo = new Lua_OnlineRewardInfo(nOnlineRewardIndex++, info.begintime, info.endtime);
                    luaReward = new Lua_Online(nOnlineIndex++, info.onlinetime, info.moneyreward);
                    luaReward.AddItem(info.malereward_itemid, info.malereward_itemcount, info.malereward_itemvalidity
                        , info.femalereward_itemid, info.femalereward_itemcount, info.femalereward_itemvalidity);
                    luaAllInfo.AddLuaReward(luaReward);
                }
                infoLast = info;
            }
            sw.WriteLine(luaAllInfo.BuildLua());

            /////////////////////////////////////////////////
            sw.WriteLine("}");
            sw.WriteLine();

            strTemp = "function AddOnlineRewardActivityInfo(weight)" + Environment.NewLine
            + "\tlocal resetHour = resettime[\"hour\"];" + Environment.NewLine
            + "\tlocal restMinute = resettime[\"minute\"];" + Environment.NewLine
            + "\tlocal resetSeconds = resettime[\"second\"];" + Environment.NewLine
            + Environment.NewLine
            + "\tAddOnlineTimeRewardBrief(weight, exhibit, show_begin_time, show_end_time, regularImageName, thumbnailName, activity_title, activity_content, resetHour, restMinute, resetSeconds);" + Environment.NewLine
            + "end" + Environment.NewLine
            + Environment.NewLine
            + "function AddOnlineReward(index, value, activityid, activity_start_time, activity_end_time) " + Environment.NewLine
            + "\tif value ~= nil then" + Environment.NewLine
            + "\t\tlocal onlinetime = value[\"onlinetime\"];	" + Environment.NewLine
            + "\t\tlocal malereward = value[\"malereward\"];" + Environment.NewLine
            + "\t\tlocal femalereward = value[\"femalereward\"];" + Environment.NewLine
            + "\t\tlocal money = value[\"money\"];" + Environment.NewLine
            + Environment.NewLine
            + "\t\tAddOnlineRewardInfo(activityid, activity_start_time, activity_end_time, index, onlinetime, malereward, femalereward, money);" + Environment.NewLine
            + "\tend" + Environment.NewLine
            + "end" + Environment.NewLine
            + Environment.NewLine
            + "function AddOnlineRewardLoop(index, value)" + Environment.NewLine
            + "\tlocal detail = value[\"detail\"];" + Environment.NewLine
            + "\tlocal activity_start_time = value[\"activity_start_time\"];" + Environment.NewLine
            + "\tlocal activity_end_time = value[\"activity_end_time\"];" + Environment.NewLine
            + "\tfor i, v in ipairs(detail) do" + Environment.NewLine
            + "\t\tAddOnlineReward(i, v, index, activity_start_time, activity_end_time);" + Environment.NewLine
            + "\tend" + Environment.NewLine
            + "end" + Environment.NewLine
            + Environment.NewLine
            + "table.foreach(onlineRewardInfo, AddOnlineRewardLoop);" + Environment.NewLine;
            sw.WriteLine(strTemp);

            sw.Flush();
            return true;
        }