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; }