From 8dcdb747d20507a4b181e8d53a28d64689f5d59c Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 10 一月 2019 17:32:21 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Core/GameEngine/Model/ConfigManager.cs                                                           |    1 
 System/OpenServerActivity/OpenServiceAchievementWin.cs                                           |  357 +++++++++++++
 System/OpenServerActivity/OpenServiceItem.cs.meta                                                |   12 
 Utility/EnumHelper.cs                                                                            |    4 
 System/OpenServerActivity/OpenServiceAchievementCell.cs.meta                                     |   12 
 System/OpenServerActivity/OpenServiceAchievementModel.cs                                         |  513 +++++++++++++++++++
 Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs.meta           |   12 
 System/OpenServerActivity/OpenServiceItem.cs                                                     |   69 ++
 System/OpenServerActivity/OpenServiceAchievementModel.cs.meta                                    |   12 
 System/OpenServerActivity/OpenServiceAchievementWin.cs.meta                                      |   12 
 Core/GameEngine/DataToCtl/PackageRegedit.cs                                                      |    2 
 Core/GameEngine/Model/Config/WeekPartyConfig.cs                                                  |   53 +
 Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs            |   18 
 Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs                |   47 +
 System/MainInterfacePanel/HighSettingTip.cs                                                      |    8 
 Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs.meta       |   12 
 Core/GameEngine/Model/Config/WeekPartyConfig.cs.meta                                             |   12 
 System/OpenServerActivity/AchievementActivityWin.cs.meta                                         |   12 
 Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs.meta |   12 
 Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs                      |   88 +++
 System/OpenServerActivity/OpenServiceAchievementCell.cs                                          |  191 +++++++
 Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs.meta                 |   12 
 Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs      |   19 
 System/WindowBase/ModelCenter.cs                                                                 |    1 
 System/OpenServerActivity/AchievementActivityWin.cs                                              |  110 ++++
 25 files changed, 1,599 insertions(+), 2 deletions(-)

diff --git a/Core/GameEngine/DataToCtl/PackageRegedit.cs b/Core/GameEngine/DataToCtl/PackageRegedit.cs
index 0c46750..2a90510 100644
--- a/Core/GameEngine/DataToCtl/PackageRegedit.cs
+++ b/Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -437,6 +437,8 @@
         Register(typeof(HB204_tagMCIceLodeInfo), typeof(DTCB204_tagMCIceLodeInfo));
         Register(typeof(HB204_tagMCIceLodeInfo), typeof(DTCB204_tagMCIceLodeInfo));
         Register(typeof(HA806_tagMCMysticalShopTimeInfo), typeof(DTCA806_tagMCMysticalShopTimeInfo));
+        Register(typeof(HAA0A_tagMCWeekPartyInfo), typeof(DTCAA0A_tagMCWeekPartyInfo));
+        Register(typeof(HAA0B_tagMCWeekPartyPlayerInfo), typeof(DTCAA0B_tagMCWeekPartyPlayerInfo));
     }
 
     private static void Register(Type _pack, Type _business)
diff --git a/Core/GameEngine/Model/Config/WeekPartyConfig.cs b/Core/GameEngine/Model/Config/WeekPartyConfig.cs
new file mode 100644
index 0000000..15310ed
--- /dev/null
+++ b/Core/GameEngine/Model/Config/WeekPartyConfig.cs
@@ -0,0 +1,53 @@
+锘�//--------------------------------------------------------
+//    [Author]:			绗簩涓栫晫
+//    [  Date ]:		   Thursday, January 10, 2019
+//--------------------------------------------------------
+
+using UnityEngine;
+using System;
+
+namespace TableConfig {
+
+    
+	public partial class WeekPartyConfig : ConfigBase {
+
+		public int Id { get ; private set ; }
+		public int ActionType { get ; private set ; }
+		public string Description { get ; private set; } 
+		public int jump { get ; private set ; }
+		public int order { get ; private set ; }
+		public int DailyQusetId { get ; private set ; }
+
+		public override string getKey()
+        {
+            return Id.ToString();
+        }
+
+		public override void Parse() {
+			try
+            {
+                Id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
+			
+				ActionType=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; 
+			
+				Description = rawContents[2].Trim();
+			
+				jump=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; 
+			
+				order=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; 
+			
+				DailyQusetId=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; 
+            }
+            catch (Exception ex)
+            {
+                DebugEx.Log(ex);
+            }
+		}
+	
+	}
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/WeekPartyConfig.cs.meta b/Core/GameEngine/Model/Config/WeekPartyConfig.cs.meta
new file mode 100644
index 0000000..457c9e4
--- /dev/null
+++ b/Core/GameEngine/Model/Config/WeekPartyConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 59a36668b02da3d4fb47cbc1579228be
+timeCreated: 1547105026
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/GameEngine/Model/ConfigManager.cs b/Core/GameEngine/Model/ConfigManager.cs
index 4a04637..fe40e35 100644
--- a/Core/GameEngine/Model/ConfigManager.cs
+++ b/Core/GameEngine/Model/ConfigManager.cs
@@ -220,6 +220,7 @@
         AddAsyncTask<KingTreasureConfig>();
         AddAsyncTask<KingTreasureItemConfig>();
         AddAsyncTask<CrossServerBossConfig>();
+        AddAsyncTask<WeekPartyConfig>();
         AddAsyncTask<FashionDressCabinetConfig>();
         AddAsyncTask<FashionDressConfig>();
 
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs
new file mode 100644
index 0000000..249f844
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+using Snxxz.UI;
+
+// AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo
+
+
+
+public class DTCAA0A_tagMCWeekPartyInfo : DtcBasic {
    OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
+    public override void Done(GameNetPackBasic vNetPack) {

+        base.Done(vNetPack);

+        HAA0A_tagMCWeekPartyInfo vNetData = vNetPack as HAA0A_tagMCWeekPartyInfo;
        if (vNetData == null)
+        {
+            return;
+        }
+        model.WeekPartyInfo(vNetData);
+    }

+}

diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs.meta b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs.meta
new file mode 100644
index 0000000..baffa31
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 72692874cbc2b764695a9f3d16eaa2ef
+timeCreated: 1546914880
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs
new file mode 100644
index 0000000..047facb
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+using System.Collections;
+using Snxxz.UI;
+
+// AA 0B 周狂欢玩家活动信息 #tagMCWeekPartyPlayerInfo
+
+
+
+public class DTCAA0B_tagMCWeekPartyPlayerInfo : DtcBasic {
+
+    OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
+    public override void Done(GameNetPackBasic vNetPack) {

+        base.Done(vNetPack);

+        HAA0B_tagMCWeekPartyPlayerInfo vNetData = vNetPack as HAA0B_tagMCWeekPartyPlayerInfo;
        if (vNetData == null)
+        {
+            return;
+        }
        model.WeekPartyPlayerInfo(vNetData);
+    }

+}

diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs.meta b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs.meta
new file mode 100644
index 0000000..b7f1674
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 58aba46fc0042c3418fb8532a50ab92d
+timeCreated: 1546914879
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs
new file mode 100644
index 0000000..17bfa56
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs
@@ -0,0 +1,88 @@
+using UnityEngine;
+using System.Collections;
+
+// AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo

+

+public class HAA0A_tagMCWeekPartyInfo : GameNetPackBasic {

+    public string StartDate;    // 开始日期 y-m-d

+    public string EndtDate;    // 结束日期 y-m-d

+    public byte IsDayReset;    //是否每天重置

+    public byte ResetType;    // 重置类型,0-0点重置;1-5点重置

+    public ushort LimitLV;    // 限制等级

+    public byte DayCnt;    // 天数

+    public  tagMCWeekPartyDayInfo[] DayInfoList;    // 每天模板

+    public byte TCount;    // 模板数

+    public  tagMCWeekPartyAction[] ActionInfo;    // 活动模板信息

+

+    public HAA0A_tagMCWeekPartyInfo () {

+        _cmd = (ushort)0xAA0A;

+    }

+

+    public override void ReadFromBytes (byte[] vBytes) {

+        TransBytes (out StartDate, vBytes, NetDataType.Chars, 10);

+        TransBytes (out EndtDate, vBytes, NetDataType.Chars, 10);

+        TransBytes (out IsDayReset, vBytes, NetDataType.BYTE);

+        TransBytes (out ResetType, vBytes, NetDataType.BYTE);

+        TransBytes (out LimitLV, vBytes, NetDataType.WORD);

+        TransBytes (out DayCnt, vBytes, NetDataType.BYTE);

+        DayInfoList = new tagMCWeekPartyDayInfo[DayCnt];

+        for (int i = 0; i < DayCnt; i ++) {

+            DayInfoList[i] = new tagMCWeekPartyDayInfo();

+            TransBytes (out DayInfoList[i].ActCnt, vBytes, NetDataType.BYTE);

+            TransBytes (out DayInfoList[i].TemplateList, vBytes, NetDataType.WORD, DayInfoList[i].ActCnt);

+            TransBytes (out DayInfoList[i].PCount, vBytes, NetDataType.BYTE);

+            DayInfoList[i].PItemInfo = new tagMCWeekPartyItem[DayInfoList[i].PCount];

+            for (int j = 0; j < DayInfoList[i].PCount; j ++) {

+                DayInfoList[i].PItemInfo[j] = new tagMCWeekPartyItem();

+                TransBytes (out DayInfoList[i].PItemInfo[j].NeedPoint, vBytes, NetDataType.WORD);

+                TransBytes (out DayInfoList[i].PItemInfo[j].ItemID, vBytes, NetDataType.DWORD);

+                TransBytes (out DayInfoList[i].PItemInfo[j].ItemCnt, vBytes, NetDataType.WORD);

+                TransBytes (out DayInfoList[i].PItemInfo[j].IsBind, vBytes, NetDataType.BYTE);

+            }

+        }

+        TransBytes (out TCount, vBytes, NetDataType.BYTE);

+        ActionInfo = new tagMCWeekPartyAction[TCount];

+        for (int i = 0; i < TCount; i ++) {

+            ActionInfo[i] = new tagMCWeekPartyAction();

+            TransBytes (out ActionInfo[i].TemplateID, vBytes, NetDataType.DWORD);

+            TransBytes (out ActionInfo[i].ActionType, vBytes, NetDataType.WORD);

+            TransBytes (out ActionInfo[i].TotalTimes, vBytes, NetDataType.BYTE);

+            TransBytes (out ActionInfo[i].SingleTimes, vBytes, NetDataType.DWORD);

+            TransBytes (out ActionInfo[i].Point, vBytes, NetDataType.DWORD);

+            TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.BYTE);

+            ActionInfo[i].ItemInfo = new tagMCWeekPartyItem[ActionInfo[i].Count];

+            for (int j = 0; j < ActionInfo[i].Count; j ++) {

+                ActionInfo[i].ItemInfo[j] = new tagMCWeekPartyItem();

+                TransBytes (out ActionInfo[i].ItemInfo[j].NeedPoint, vBytes, NetDataType.WORD);

+                TransBytes (out ActionInfo[i].ItemInfo[j].ItemID, vBytes, NetDataType.DWORD);

+                TransBytes (out ActionInfo[i].ItemInfo[j].ItemCnt, vBytes, NetDataType.WORD);

+                TransBytes (out ActionInfo[i].ItemInfo[j].IsBind, vBytes, NetDataType.BYTE);

+            }

+        }

+    }

+

+    public struct tagMCWeekPartyItem {

+        public ushort NeedPoint;        // 领奖需要积分

+        public uint ItemID;        // 物品ID

+        public ushort ItemCnt;        // 物品数量

+        public byte IsBind;        // 是否绑定

+    }

+

+    public struct tagMCWeekPartyAction {

+        public uint TemplateID;        // 模板ID

+        public ushort ActionType;        // 活动类别

+        public byte TotalTimes;        // 可完成的总次数,0表示不限次数

+        public uint SingleTimes;        // 单次领奖需要的次数

+        public uint Point;        // 单次领奖积分

+        public byte Count;        // 物品数

+        public  tagMCWeekPartyItem[] ItemInfo;        // 物品信息

+    }

+

+    public struct tagMCWeekPartyDayInfo {

+        public byte ActCnt;        // 数量

+        public  ushort[] TemplateList;        // 模板列表

+        public byte PCount;        // 物品数

+        public  tagMCWeekPartyItem[] PItemInfo;        // 物品信息

+    }

+

+}

diff --git a/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs.meta b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs.meta
new file mode 100644
index 0000000..9424a8c
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 105a5325e78cad84baafa89fb8522311
+timeCreated: 1546914879
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs
new file mode 100644
index 0000000..85557d2
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs
@@ -0,0 +1,47 @@
+using UnityEngine;
+using System.Collections;
+
+// AA 0B 周狂欢玩家活动信息 #tagMCWeekPartyPlayerInfo

+

+public class HAA0B_tagMCWeekPartyPlayerInfo : GameNetPackBasic {

+    public byte Count;

+    public  tagMCWeekPartyDayPlayerInfo[] DayInfoList;    //活动完成次数信息

+

+    public HAA0B_tagMCWeekPartyPlayerInfo () {

+        _cmd = (ushort)0xAA0B;

+    }

+

+    public override void ReadFromBytes (byte[] vBytes) {

+        TransBytes (out Count, vBytes, NetDataType.BYTE);

+        DayInfoList = new tagMCWeekPartyDayPlayerInfo[Count];

+        for (int i = 0; i < Count; i ++) {

+            DayInfoList[i] = new tagMCWeekPartyDayPlayerInfo();

+            TransBytes (out DayInfoList[i].DayIndex, vBytes, NetDataType.DWORD);

+            TransBytes (out DayInfoList[i].Point, vBytes, NetDataType.DWORD);

+            TransBytes (out DayInfoList[i].AwardRecord, vBytes, NetDataType.DWORD);

+            TransBytes (out DayInfoList[i].ACount, vBytes, NetDataType.DWORD);

+            DayInfoList[i].TaskList = new tagMCWeekPartyTaskInfo[DayInfoList[i].ACount];

+            for (int j = 0; j < DayInfoList[i].ACount; j ++) {

+                DayInfoList[i].TaskList[j] = new tagMCWeekPartyTaskInfo();

+                TransBytes (out DayInfoList[i].TaskList[j].TemplateID, vBytes, NetDataType.WORD);

+                TransBytes (out DayInfoList[i].TaskList[j].CurTimes, vBytes, NetDataType.WORD);

+                TransBytes (out DayInfoList[i].TaskList[j].GotTimes, vBytes, NetDataType.WORD);

+            }

+        }

+    }

+

+    public struct tagMCWeekPartyDayPlayerInfo {

+        public uint DayIndex;        //第X天

+        public uint Point;        //积分

+        public uint AwardRecord;        //积分领奖记录

+        public uint ACount;        //任务条目数

+        public  tagMCWeekPartyTaskInfo[] TaskList;        //活动完成次数信息

+    }

+

+    public struct tagMCWeekPartyTaskInfo {

+        public ushort TemplateID;        // 模板ID

+        public ushort CurTimes;        //已完成次数

+        public ushort GotTimes;        //已领取次数

+    }

+

+}

diff --git a/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs.meta b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs.meta
new file mode 100644
index 0000000..5ab9912
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1ed838c254d198840b0c0e9e5da66eaa
+timeCreated: 1546914879
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/MainInterfacePanel/HighSettingTip.cs b/System/MainInterfacePanel/HighSettingTip.cs
index 4e68341..0488b91 100644
--- a/System/MainInterfacePanel/HighSettingTip.cs
+++ b/System/MainInterfacePanel/HighSettingTip.cs
@@ -52,6 +52,7 @@
         [SerializeField] Button m_AllThePeopleBtn;//鍏ㄦ皯鍐叉
         [SerializeField] Button m_FlashRushBtn;//闄愭椂鎶㈣喘
         [SerializeField] Button m_CrossServerBtn;//璺ㄦ湇1V1鎸夐挳
+        [SerializeField] Button m_OpenServiceBtn;//鍛ㄧ媯娆㈡寜閽�
         private bool _bool = true;
         private int swicthCdTime = 0;
         private bool IsFadeOut = true;
@@ -94,6 +95,7 @@
             m_AllThePeopleBtn.AddListener(OnClickmAllThePeopleBtn);
             m_FlashRushBtn.AddListener(OnClickFlashRushBtn);
             m_CrossServerBtn.AddListener(OnClickCrossServerBtn);
+            m_OpenServiceBtn.AddListener(OnClickOpenServiceBtn);
             if (_bool)
             {
                 ColseButton();
@@ -383,7 +385,11 @@
             }
         }
 
-          
+        void OnClickOpenServiceBtn()
+        {
+            WindowCenter.Instance.Open<AchievementActivityWin>();
+
+        }
         public void ShowButton()//鍚戜笂
         {
 
diff --git a/System/OpenServerActivity/AchievementActivityWin.cs b/System/OpenServerActivity/AchievementActivityWin.cs
new file mode 100644
index 0000000..73f59e2
--- /dev/null
+++ b/System/OpenServerActivity/AchievementActivityWin.cs
@@ -0,0 +1,110 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Wednesday, January 09, 2019
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI {
+    //鎴愬氨娲诲姩闈㈡澘
+    public class AchievementActivityWin : Window
+    {
+
+        #region Built-in
+        [SerializeField] FunctionButtonGroup FuncBtnGroup;
+        [SerializeField] Button _CloseBtn;
+        [SerializeField] Button _LeftBtn;
+        [SerializeField] Button _RightBtn;
+        [SerializeField] FunctionButton m_OpenServiceAchievementBtn;//鍛ㄧ媯娆�
+        protected override void BindController()
+        {
+        }
+
+        protected override void AddListeners()
+        {
+            _CloseBtn.AddListener(OnClickClose);
+            _LeftBtn.AddListener(OnClickLeftBtn);
+            _RightBtn.AddListener(OnClickRight);
+            m_OpenServiceAchievementBtn.AddListener(OpenServiceAchievementButton);
+        }
+
+        protected override void OnPreOpen()
+        {
+            if (WindowCenter.Instance.IsOpen<MainInterfaceWin>())
+            {
+                WindowCenter.Instance.Close<MainInterfaceWin>();
+            }
+            functionOrder = 0;
+          
+        }
+
+        protected override void OnActived()
+        {
+            FuncBtnGroup.TriggerByOrder(functionOrder);
+        }
+        protected override void OnAfterOpen()
+        {
+          
+        }
+
+        protected override void OnPreClose()
+        {
+            CloseChild();
+            if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>())
+            {
+                WindowCenter.Instance.Open<MainInterfaceWin>();
+            }
+        }
+
+        protected override void OnAfterClose()
+        {
+        }
+
+        public void OnClickClose()
+        {
+            Close();
+        }
+        public void OnClickLeftBtn()
+        {
+            FuncBtnGroup.TriggerLast();
+        }
+
+        public void OnClickRight()
+        {
+            FuncBtnGroup.TriggerNext();
+        }
+
+        void CloseChild()
+        {
+            if (WindowCenter.Instance.IsOpen<OpenServiceAchievementWin>())
+            {
+                WindowCenter.Instance.CloseImmediately<OpenServiceAchievementWin>();
+            }
+        }
+
+        private void OpenServiceAchievementButton()
+        {
+            CloseChild();
+            if (windowState == WindowState.Opened)
+            {
+                WindowCenter.Instance.OpenWithoutAnimation<OpenServiceAchievementWin>();
+            }
+            else
+            {
+                WindowCenter.Instance.Open<OpenServiceAchievementWin>(true);
+            }
+            functionOrder = 0;
+        }
+        #endregion
+
+    }
+
+}
+
+
+
+
diff --git a/System/OpenServerActivity/AchievementActivityWin.cs.meta b/System/OpenServerActivity/AchievementActivityWin.cs.meta
new file mode 100644
index 0000000..4510920
--- /dev/null
+++ b/System/OpenServerActivity/AchievementActivityWin.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3d89f97ebb8d8bf4ba18dd39af06835f
+timeCreated: 1547026414
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/OpenServerActivity/OpenServiceAchievementCell.cs b/System/OpenServerActivity/OpenServiceAchievementCell.cs
new file mode 100644
index 0000000..3d979d2
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceAchievementCell.cs
@@ -0,0 +1,191 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Tuesday, January 08, 2019
+//--------------------------------------------------------
+using EnhancedUI.EnhancedScroller;
+using System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+using UnityEngine.UI;
+using System;
+
+namespace Snxxz.UI
+{
+    [XLua.Hotfix]
+    public class OpenServiceAchievementCell : ScrollerUI
+    {
+        [SerializeField] Text m_TextA;
+        [SerializeField] Text m_TextB;
+        [SerializeField] Text m_TextC;
+        [SerializeField] Transform m_ItemList;
+        [SerializeField] Button m_Btn;
+        [SerializeField] Text m_BtnText;
+        [SerializeField] GameObject m_Miss;//閿欒繃
+        [SerializeField] GameObject m_Reach;//鏈揪鎴�
+        [SerializeField] GameObject m_Draw;//宸查鍙�
+        [SerializeField] Text m_TextNumber;//宸查鍙栨鏁�
+        OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
+        ItemTipsModel _itemTipsModel;
+        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
+        public override void Refresh(CellView cell)
+        {
+            int ID = cell.index;
+            var config = Config.Instance.Get<WeekPartyConfig>(ID);
+            if (config==null||!model.WeekPartyDayInfoDic.ContainsKey(model.SelectedNow) || !model.WeekPartyActionDic.ContainsKey(ID))
+            {
+                return;
+            }
+            var WeekPartyAction = model.WeekPartyActionDic[ID];
+            int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//宸查濂栨鏁�
+            int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//宸插畬鎴愭鏁�
+            int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
+            if (number - rewardNum > 0)
+            {
+                m_TextA.text = Language.Get("OSA_1", (number - rewardNum));
+            }
+            else
+            {
+                m_TextA.text = Language.Get("OSA_4");
+            }
+            m_TextB.text = string.Format(config.Description,1);
+            m_TextC.text = Language.Get("OSA_2", WeekPartyAction.Point);
+            for (int i = 0; i < m_ItemList.childCount; i++)
+            {
+                GameObject Obj = m_ItemList.GetChild(i).gameObject;
+                ItemCell itemCell = Obj.GetComponent<ItemCell>();
+                if (i < WeekPartyAction.WeekPartyItem.Length)
+                {
+                    Obj.SetActive(true);
+                    var Item = WeekPartyAction.WeekPartyItem[i];
+                    ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt, Item.IsBind);
+                    itemCell.Init(cellModel);
+                    itemCell.cellBtn.SetListener(() =>
+                    {
+                        ItemAttrData attrData = new ItemAttrData(Item.ItemID, false, (ulong)Item.ItemCnt, -1, Item.IsBind);
+                        itemTipsModel.SetItemTipsModel(attrData);
+                    });
+                }
+                else
+                {
+                    Obj.SetActive(false);
+                }
+            }
+            if (model.SelectedNow != model.DayNow)
+            {
+                if (model.SelectedNow > model.DayNow)//杩樻湭鍒拌揪鐨勫ぉ鏁�
+                {
+                    m_Btn.gameObject.SetActive(false);
+                    m_TextNumber.gameObject.SetActive(false);
+                    m_Miss.SetActive(false);
+                    m_Reach.SetActive(false);
+                    m_Draw.SetActive(false);
+                }
+                else//宸茶繃鐨勫ぉ鏁�
+                {
+
+                    int TaypeNumber = 0;
+                    if (carryOutNum - rewardNum > 0)
+                    {
+                        TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes;
+                    }
+                    if (TaypeNumber > 0)//鍙
+                    {
+                        m_TextNumber.gameObject.SetActive(true);
+                        m_TextNumber.text = carryOutNum + "/" + number;
+                        m_Btn.gameObject.SetActive(true);
+                        UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
+                        uieffect.Play();
+                        m_BtnText.text = Language.Get("RealmPractice109");//棰嗗彇
+                        m_Miss.SetActive(false);
+                        m_Reach.SetActive(false);
+                        m_Draw.SetActive(false);
+                        m_Btn.SetListener(() =>
+                        {
+                            model.SendGetWeekParty(model.SelectedNow, ID);
+                            DebugEx.LogError("-----------------------------");
+                        });
+                    }
+                    else
+                    {
+                        if (rewardNum >= number)//宸茬粡棰嗗畬
+                        {
+                            m_TextNumber.gameObject.SetActive(false);
+                            m_Btn.gameObject.SetActive(false);
+                            m_Miss.SetActive(false);
+                            m_Reach.SetActive(false);
+                            m_Draw.SetActive(true);
+                        }
+                        else//鏈埌杈�
+                        {
+                            m_TextNumber.gameObject.SetActive(false);
+                            m_Btn.gameObject.SetActive(false);
+                            m_Miss.SetActive(false);
+                            m_Reach.SetActive(true);
+                            m_Draw.SetActive(false);
+
+                        }
+
+                    }
+                }
+            }
+            else//褰撳墠澶�
+            {
+                int TaypeNumber = 0;
+                if (carryOutNum - rewardNum > 0)
+                {
+                    TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes;
+                }
+                if (TaypeNumber > 0)//鍙
+                {
+                    m_TextNumber.gameObject.SetActive(true);
+                    m_TextNumber.text = carryOutNum + "/" + number;
+                    m_Btn.gameObject.SetActive(true);
+                    UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
+                    uieffect.Play();
+                    m_BtnText.text = Language.Get("RealmPractice109");//棰嗗彇
+                    m_Miss.SetActive(false);
+                    m_Reach.SetActive(false);
+                    m_Draw.SetActive(false);
+                    m_Btn.SetListener(() =>
+                    {
+                        model.SendGetWeekParty(model.SelectedNow, ID);
+                        DebugEx.LogError("-----------------------------");
+                    });
+                }
+                else
+                {
+                    if (rewardNum >= number)//宸茬粡棰嗗畬
+                    {
+                        m_TextNumber.gameObject.SetActive(false);
+                        m_Btn.gameObject.SetActive(false);
+                        m_Miss.SetActive(false);
+                        m_Reach.SetActive(false);
+                        m_Draw.SetActive(true);
+                    }
+                    else//鏈埌杈�(鍓嶅線)
+                    {
+                        m_TextNumber.gameObject.SetActive(true);
+                        m_TextNumber.text = carryOutNum + "/" + number;
+                        m_Btn.gameObject.SetActive(true);
+                        m_BtnText.text = Language.Get("RealmPractice108");//鍓嶅線
+                        UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
+                        uieffect.Stop();
+                        m_Miss.SetActive(false);
+                        m_Reach.SetActive(false);
+                        m_Draw.SetActive(false);
+                        m_Btn.SetListener(() =>
+                        {
+                            WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);
+                        });
+                    }
+                }
+            }
+        }
+
+    }
+
+}
+
+
+
diff --git a/System/OpenServerActivity/OpenServiceAchievementCell.cs.meta b/System/OpenServerActivity/OpenServiceAchievementCell.cs.meta
new file mode 100644
index 0000000..b28b661
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceAchievementCell.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4496751da23fc9a4398c7108cb98aa34
+timeCreated: 1546914150
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/OpenServerActivity/OpenServiceAchievementModel.cs b/System/OpenServerActivity/OpenServiceAchievementModel.cs
new file mode 100644
index 0000000..af8805f
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceAchievementModel.cs
@@ -0,0 +1,513 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Tuesday, January 08, 2019
+//--------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using TableConfig;
+using Snxxz.UI;
+using System.Linq;
+
+[XLua.LuaCallCSharp]
+public class ActionTypeClass
+{
+    public int TemplateID;	// 妯℃澘ID
+    public int CurTimes;	//宸插畬鎴愭鏁�
+    public int GotTimes;	//宸查鍙栨鏁�
+}
+public class WeekPartyDayInfoClass
+{
+    public int DayIndex;//绗琗澶�
+    public int Point;//绉垎
+    public int AwardRecord;//棰嗗璁板綍
+    public ActionTypeClass[] ActionType;//棰嗗淇℃伅
+}
+public class TimeDayClass
+{
+    public int Year;
+    public int Month;
+    public int Day;
+    public string TimeStr;
+}
+public class WeekPartyItemClass
+{
+    public int NeedPoint; // 棰嗗闇�瑕佺Н鍒�
+    public int ItemID;   // 鐗╁搧ID
+    public int ItemCnt;   // 鐗╁搧鏁伴噺
+    public int IsBind;	// 鏄惁缁戝畾
+}
+
+public class WeekPartyDayClass
+{
+    public int Day;
+    public int[] TemplateList;// 妯℃澘鍒楄〃
+    public WeekPartyItemClass[] WeekPartyItem;//濂栧姳鍒楄〃
+}
+
+public class WeekPartyActionClass//妯℃澘淇℃伅
+{
+    public int TemplateID;   // 妯℃澘ID
+    public int ActionType;    // 娲诲姩绫诲埆
+    public int TotalTimes;    // 鍙畬鎴愮殑鎬绘鏁帮紝0琛ㄧず涓嶉檺娆℃暟
+    public int SingleTimes;  // 鍗曟棰嗗闇�瑕佺殑娆℃暟
+    public int Point;    // 鍗曟棰嗗绉垎
+    public WeekPartyItemClass[] WeekPartyItem;//鐗╁搧濂栧姳鍒楄〃
+
+}
+public class OpenServiceAchievementModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
+{
+    public Dictionary<int, WeekPartyDayInfoClass> WeekPartyDayInfoDic = new Dictionary<int, WeekPartyDayInfoClass>();//姣忓ぉ棰嗗彇濂栧姳淇℃伅
+    public event Action WeekPartyDayInfoUpdate;//棰嗗璁板綍鍙樻洿
+    public TimeDayClass[] TimeDayBeginAndOver = new TimeDayClass[2];//寮�濮嬪拰缁撴潫鏃堕棿
+    public int LimitLV = 0;//闄愬埗绛夌骇
+    public Dictionary<int, WeekPartyDayClass> WeekPartyDayDic = new Dictionary<int, WeekPartyDayClass>();//姣忓ぉ鐨勫鍔变俊鎭�
+    public Dictionary<int, WeekPartyActionClass> WeekPartyActionDic = new Dictionary<int, WeekPartyActionClass>();//娲诲姩妯℃澘淇℃伅
+    public Dictionary<int, Redpoint> RedPointDic = new Dictionary<int, Redpoint>();//绾㈢偣
+    public event Action WeekPartyUpdate;//娲诲姩淇℃伅鍙樻洿
+    private const int Redpoint_key1 = 21401;//鍛ㄧ媯娆㈢孩鐐�
+    public Redpoint redPointStre1 = new Redpoint(214, Redpoint_key1);
+    private int _SelectedNow = 0;
+    private int ResetType = 0;// 閲嶇疆绫诲瀷锛�0-0鐐归噸缃紱1-5鐐归噸缃�
+    public event Action IsOpenEvent;
+    public int SelectedNow//閫変腑澶�
+    {
+        get { return _SelectedNow; }
+        set { _SelectedNow = value; }
+    }
+
+    private int _DayNow = 0;
+    public int DayNow//褰撳墠澶�
+    {
+        get { return _DayNow; }
+        set { _DayNow = value; }
+    }
+
+    private bool _IsOpen = false;//鍔熻兘鏄惁寮�鍚�
+    public bool IsOpen
+    {
+        get { return _IsOpen; }
+        set { _IsOpen = value; }
+    }
+    public override void Init()
+    {
+       
+    }
+
+    public void OnBeforePlayerDataInitialize()
+    {
+    }
+
+    public void OnPlayerLoginOk()
+    {
+        GlobalTimeEvent.Instance.secondEvent -= secondEvent;
+        GlobalTimeEvent.Instance.secondEvent += secondEvent;
+    }
+
+    private void secondEvent()
+    {
+        GetIsOpen();//鍒ゆ柇鍔熻兘鏄惁寮�鍚�
+    }
+
+    public override void UnInit()
+    {
+
+    }
+
+    public void WeekPartyPlayerInfo(HAA0B_tagMCWeekPartyPlayerInfo info)
+    {
+        for (int i = 0; i < info.Count; i++)
+        {
+            var DayInfo = info.DayInfoList[i];
+            WeekPartyDayInfoClass WeekPartyDayInfo = new WeekPartyDayInfoClass();
+            WeekPartyDayInfo.DayIndex = (int)DayInfo.DayIndex;
+            WeekPartyDayInfo.Point = (int)DayInfo.Point;
+            WeekPartyDayInfo.AwardRecord = (int)DayInfo.AwardRecord;
+            WeekPartyDayInfo.ActionType = new ActionTypeClass[DayInfo.ACount];
+            for (int k = 0; k < DayInfo.ACount; k++)
+            {
+                var Task = DayInfo.TaskList[k];
+                ActionTypeClass ActionType = new ActionTypeClass();
+                ActionType.TemplateID = Task.TemplateID;
+                ActionType.CurTimes = Task.CurTimes;
+                ActionType.GotTimes = Task.GotTimes;
+                WeekPartyDayInfo.ActionType[k] = ActionType;
+            }
+            if (WeekPartyDayInfoDic.ContainsKey((int)DayInfo.DayIndex))
+            {
+                WeekPartyDayInfoDic[(int)DayInfo.DayIndex] = WeekPartyDayInfo;
+            }
+            else
+            {
+                WeekPartyDayInfoDic.Add((int)DayInfo.DayIndex, WeekPartyDayInfo);
+            }
+        }
+        GetDayNow();//鑾峰彇褰撳墠澶╂暟
+        SetRedPoint();
+        if (WeekPartyDayInfoUpdate != null)
+        {
+            WeekPartyDayInfoUpdate();
+        }
+    }
+
+    public void WeekPartyInfo(HAA0A_tagMCWeekPartyInfo info)
+    {
+        ResetType = info.ResetType;
+        string[] dateArray = info.StartDate.Split('-');
+        if (dateArray != null && dateArray.Length == 3)
+        {
+            TimeDayClass TimeDay = new TimeDayClass();
+            TimeDay.Year = int.Parse(dateArray[0].Trim());
+            TimeDay.Month = int.Parse(dateArray[1].Trim());
+            TimeDay.Day = int.Parse(dateArray[2].Trim());
+            TimeDay.TimeStr = info.StartDate;
+            TimeDayBeginAndOver[0] = TimeDay;
+        }
+        string[] dateArrayO = info.EndtDate.Split('-');
+        if (dateArrayO != null && dateArrayO.Length == 3)
+        {
+            TimeDayClass TimeDay = new TimeDayClass();
+            TimeDay.Year = int.Parse(dateArrayO[0].Trim());
+            TimeDay.Month = int.Parse(dateArrayO[1].Trim());
+            TimeDay.Day = int.Parse(dateArrayO[2].Trim());
+            TimeDay.TimeStr = info.EndtDate;
+            TimeDayBeginAndOver[1] = TimeDay;
+        }
+        LimitLV = info.LimitLV;
+
+        for (int i = 0; i < info.DayCnt; i++)
+        {
+            int Index = i;
+            var DayInfo = info.DayInfoList[i];
+            WeekPartyDayClass WeekPartyDay = new WeekPartyDayClass();
+            WeekPartyDay.TemplateList = new int[DayInfo.ActCnt];
+            for (int k = 0; k < DayInfo.ActCnt; k++)
+            {
+                WeekPartyDay.TemplateList[k] = DayInfo.TemplateList[k];
+            }
+            WeekPartyDay.WeekPartyItem = new WeekPartyItemClass[DayInfo.PCount];
+            for (int p = 0; p < DayInfo.PCount; p++)
+            {
+                WeekPartyItemClass WeekPartyItem = new WeekPartyItemClass();
+                var Item = DayInfo.PItemInfo[p];
+                WeekPartyItem.NeedPoint = Item.NeedPoint;
+                WeekPartyItem.ItemID = (int)Item.ItemID;
+                WeekPartyItem.ItemCnt = (int)Item.ItemCnt;
+                WeekPartyItem.IsBind = (int)Item.IsBind;
+                WeekPartyDay.WeekPartyItem[p] = WeekPartyItem;
+            }
+            if (WeekPartyDayDic.ContainsKey(Index))
+            {
+                WeekPartyDayDic[Index] = WeekPartyDay;
+            }
+            else
+            {
+                WeekPartyDayDic.Add(Index, WeekPartyDay);
+            }
+        }// 姣忓ぉ妯℃澘
+
+        for (int i = 0; i < info.TCount; i++)
+        {
+            var ActionInfo = info.ActionInfo[i];
+            WeekPartyActionClass WeekPartyAction = new WeekPartyActionClass();
+            WeekPartyAction.TemplateID = (int)ActionInfo.TemplateID;
+            WeekPartyAction.ActionType = (int)ActionInfo.ActionType;
+            WeekPartyAction.TotalTimes = (int)ActionInfo.TotalTimes;
+            WeekPartyAction.SingleTimes = (int)ActionInfo.SingleTimes;
+            WeekPartyAction.Point = (int)ActionInfo.Point;
+            WeekPartyAction.WeekPartyItem = new WeekPartyItemClass[ActionInfo.Count];
+            for (int z = 0; z < ActionInfo.Count; z++)
+            {
+                var item = ActionInfo.ItemInfo[z];
+                WeekPartyItemClass WeekPartyItem = new WeekPartyItemClass();
+                WeekPartyItem.ItemID = (int)item.ItemID;
+                WeekPartyItem.ItemCnt = (int)item.ItemCnt;
+                WeekPartyItem.IsBind = item.IsBind;
+                WeekPartyItem.NeedPoint = 0;
+                WeekPartyAction.WeekPartyItem[z] = WeekPartyItem;
+            }
+            if (WeekPartyActionDic.ContainsKey((int)ActionInfo.TemplateID))
+            {
+                WeekPartyActionDic[(int)ActionInfo.TemplateID] = WeekPartyAction;
+            }
+            else
+            {
+                WeekPartyActionDic.Add((int)ActionInfo.TemplateID, WeekPartyAction);
+            }
+        }// 娲诲姩妯℃澘淇℃伅
+        GetDayNow();
+        SetRedPoint();
+        if (WeekPartyUpdate != null)
+        {
+            WeekPartyUpdate();
+        }
+
+    }
+    public int GetRewardNumber(int Day, int ID)//鑾峰彇棰嗗娆℃暟
+    {
+        int Num = -1;
+        if (WeekPartyDayInfoDic.ContainsKey(Day))
+        {
+            var WeekPartyDay = WeekPartyDayInfoDic[Day];
+
+            for (int i = 0; i < WeekPartyDay.ActionType.Length; i++)
+            {
+                var ActionType = WeekPartyDay.ActionType[i];
+                if (ID == ActionType.TemplateID)
+                {
+                    Num = ActionType.GotTimes;
+                }
+            }
+        }
+        return Num;
+    }
+    public int GetCarryOutNum(int Day, int ID)//鑾峰彇宸插畬鎴愭鏁�
+    {
+        int Num = 0;
+        if (WeekPartyDayInfoDic.ContainsKey(Day))
+        {
+            var WeekPartyDay = WeekPartyDayInfoDic[Day];
+
+            for (int i = 0; i < WeekPartyDay.ActionType.Length; i++)
+            {
+                var ActionType = WeekPartyDay.ActionType[i];
+                if (ID == ActionType.TemplateID)
+                {
+                    Num = ActionType.CurTimes;
+                }
+            }
+        }
+        return Num;
+    }
+
+    public int GetPoint(int day)//鑾峰彇鏌愪竴澶╃殑绉垎
+    {
+        int Point = 0;
+        if (WeekPartyDayInfoDic.ContainsKey(day))
+        {
+            Point = WeekPartyDayInfoDic[day].Point;
+        }
+        return Point;
+    }
+
+    public void GetDayNow()//鑾峰彇娲诲姩绗嚑澶�
+    {
+        int Day = 0;
+        var time = TimeDayBeginAndOver[0];
+        if (TimeDayBeginAndOver.Length <= 0 || time == null)
+        {
+            return;
+        }
+        int hour = 0;
+        if (ResetType == 0)
+        {
+            hour = 0;
+        }
+        else
+        {
+            hour = 5;
+        }
+        DateTime time1 = new DateTime(time.Year, time.Month, time.Day, hour,0,0);
+        DateTime time2 = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second);
+        TimeSpan ts = time2.Subtract(time1);
+        Day = (int)ts.TotalDays;
+        DebugEx.LogError("杈撳嚭褰撳墠鐨勫ぉ鏁�" + Day);
+        DayNow = Day;
+    }
+
+    public void SendGetWeekParty(int day, int temdayplateID)//棰嗗彇鍛ㄧ媯娆㈡椿鍔ㄥ鍔�
+    {
+        CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
+        getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_WeekPartyAct;
+        getReward.DataEx = (uint)day;
+        string StrID = temdayplateID.ToString();
+        getReward.DataExStrLen = (byte)StrID.Length;
+        getReward.DataExStr = StrID;
+        GameNetSystem.Instance.SendInfo(getReward);
+    }
+    public void SendGetWeekPartyPoint(int day, int point)//棰嗗彇鍛ㄧ媯娆㈢Н鍒嗗鍔�
+    {
+        CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
+        getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_WeekPartyPoint;
+        getReward.DataEx = (uint)day;
+        string StrID = point.ToString();
+        getReward.DataExStrLen = (byte)StrID.Length;
+        getReward.DataExStr = StrID;
+        GameNetSystem.Instance.SendInfo(getReward);
+    }
+
+    public bool IsDayReward(int day, int index)//鏄惁棰嗗彇濂栧姳
+    {
+        bool _bool = false;
+        int AwardRecord = 0;
+        foreach (var key in WeekPartyDayInfoDic.Keys)
+        {
+            if (key == day)
+            {
+                AwardRecord = WeekPartyDayInfoDic[key].AwardRecord;
+            }
+        }
+        _bool = MathUtility.GetBitValue((uint)AwardRecord, (ushort)index);
+        return _bool;
+    }
+    private void SetRedPoint()//绾㈢偣璁剧疆
+    {
+        SetRedPointId();
+        foreach (var key in RedPointDic.Keys)
+        {
+            RedPointDic[key].state = RedPointState.None;
+        }
+        foreach (var key in RedPointDic.Keys)
+        {
+            RedPointDic[key].state = SetRedPointState(key);
+        }
+    }
+    private void SetRedPointId()//璁剧疆绾㈢偣ID
+    {
+        if (RedPointDic.Count > 0)
+        {
+            return;
+        }
+        foreach (var key in WeekPartyDayInfoDic.Keys)
+        {
+            int RedPoint = Redpoint_key1 * 10 + key;
+            if (!RedPointDic.ContainsKey(key))
+            {
+                Redpoint redPointMountStare = new Redpoint(Redpoint_key1, RedPoint);
+                RedPointDic.Add(key, redPointMountStare);
+            }
+        }
+
+    }
+
+    private RedPointState SetRedPointState(int day)//绾㈢偣鐘舵�佽缃�
+    {
+        if (!WeekPartyDayDic.ContainsKey(day) || !WeekPartyDayInfoDic.ContainsKey(day))
+        {
+            return RedPointState.None;
+        }
+        WeekPartyDayClass WeekPartyDay = new WeekPartyDayClass();
+        int point = WeekPartyDayInfoDic[day].Point;
+        foreach (var key in WeekPartyDayDic.Keys)
+        {
+            if (key == day)
+            {
+                WeekPartyDay = WeekPartyDayDic[key];
+            }
+        }
+        for (int i = 0; i < WeekPartyDay.WeekPartyItem.Length; i++)//绉垎濂栧姳
+        {
+            var item = WeekPartyDay.WeekPartyItem[i];
+            int type = i;
+            bool IsBool = IsDayReward(day, type);
+            if (point >= item.NeedPoint && !IsBool)
+            {
+                return RedPointState.Simple;
+            }
+        }
+        for (int i = 0; i < WeekPartyDay.TemplateList.Length; i++)
+        {
+            var TemplateID = WeekPartyDay.TemplateList[i];
+            if (WeekPartyActionDic.ContainsKey(TemplateID))
+            {
+                var WeekPartyAction = WeekPartyActionDic[TemplateID];
+                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
+                int rewardNum = GetRewardNumber(day, TemplateID);//宸查濂栨鏁�
+                int carryOutNum = GetCarryOutNum(day, TemplateID);//宸插畬鎴愭鏁�
+                int TaypeNumber = 0;
+                if (carryOutNum - rewardNum > 0)
+                {
+                    TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes;
+                }
+                if (TaypeNumber > 0)
+                {
+                    return RedPointState.Simple;
+                }
+            }
+        }
+        return RedPointState.None;
+    }
+
+    public  int GetWeekDay(int dayIndex)//鑾峰彇鍛ㄥ嚑
+    {
+        int weekDay = 1;
+        var time = TimeDayBeginAndOver[0];
+        if (TimeDayBeginAndOver.Length <= 0 || time == null)
+        {
+            return weekDay;
+        }
+        DateTime time1 = new DateTime(time.Year, time.Month, time.Day);
+       var time2= time1.AddDays(dayIndex);
+        var dt = time2.DayOfWeek.ToString();
+        switch (dt)
+        {
+            case "Monday":
+                weekDay = 1;
+                break;
+            case "Tuesday":
+                weekDay = 2;
+                break;
+            case "Wednesday":
+                weekDay = 3;
+                break;
+            case "Thursday":
+                weekDay = 4;
+                break;
+            case "Friday":
+                weekDay = 5;
+                break;
+            case "Saturday":
+                weekDay = 6;
+                break;
+            case "Sunday":
+                weekDay = 0;
+                break;
+        }
+        return weekDay;
+    }
+
+    public void  GetIsOpen()
+    {
+        var time1 = TimeDayBeginAndOver[0];
+        var time2 = TimeDayBeginAndOver[0];
+        if (TimeDayBeginAndOver.Length <= 0 || time1 == null || time2 == null)
+        {
+            return;
+        }
+        int hour = 0;
+        if (ResetType == 0)
+        {
+            hour = 0;
+        }
+        else
+        {
+            hour = 5;
+        }
+        DateTime timeStar = new DateTime(time1.Year, time1.Month, time1.Day, hour,0,0);
+        DateTime timeEnd = new DateTime(time2.Year, time2.Month, time2.Day, hour, 0, 0);
+        DateTime timeNow= new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second);
+        int PlayerLv = PlayerDatas.Instance.baseData.LV;
+        if (PlayerLv >= LimitLV && timeNow >= timeStar && timeNow < timeEnd && !_IsOpen)
+        {
+            _IsOpen = true;
+            if (IsOpenEvent != null)
+            {
+                IsOpenEvent();
+            }
+
+        }
+        if (timeNow > timeEnd && _IsOpen)
+        {
+            _IsOpen = false;
+            if (IsOpenEvent != null)
+            {
+                IsOpenEvent();
+            }
+        }
+    }
+
+}
+
+
+
+
+
diff --git a/System/OpenServerActivity/OpenServiceAchievementModel.cs.meta b/System/OpenServerActivity/OpenServiceAchievementModel.cs.meta
new file mode 100644
index 0000000..aca462a
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceAchievementModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 47b6c129d29b8ca468b66b208c1da32c
+timeCreated: 1546914598
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/OpenServerActivity/OpenServiceAchievementWin.cs b/System/OpenServerActivity/OpenServiceAchievementWin.cs
new file mode 100644
index 0000000..39ba087
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceAchievementWin.cs
@@ -0,0 +1,357 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Monday, January 07, 2019
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using TableConfig;
+using EnhancedUI.EnhancedScroller;
+
+namespace Snxxz.UI
+{
+    //寮�鏈嶆垚灏�
+    [XLua.Hotfix]
+    public class OpenServiceAchievementWin : Window
+    {
+        [SerializeField] ScrollerController m_ScrollerController1;//澶�
+        [SerializeField] ScrollerController m_ScrollerController2;//鍒楄〃
+        [SerializeField] Button m_CloseBtn;
+        [SerializeField] Text m_TextIntegral;//褰撳墠绉垎
+        [SerializeField] GameObject m_One;
+        [SerializeField] GameObject m_Two;
+
+        [SerializeField] OpenServiceItem m_OpenServiceItemA;
+        [SerializeField] OpenServiceItem m_OpenServiceItemA1;
+        [SerializeField] OpenServiceItem m_OpenServiceItemB1;
+
+        #region Built-in
+        OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
+        DailyQuestModel dailymodel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
+        List<int> SortList = new List<int>();
+        List<WeekPartyItemClass> ItemDayList = new List<WeekPartyItemClass>();
+        protected override void BindController()
+        {
+            m_ScrollerController1.OnRefreshCell += OnRefreshGridCell_1;
+            m_ScrollerController2.OnRefreshCell += OnRefreshGridCell_2;
+        }
+
+
+        protected override void AddListeners()
+        {
+            m_CloseBtn.AddListener(() => { Close(); });
+        }
+
+        protected override void OnPreOpen()
+        {
+            model.SelectedNow = model.DayNow;
+            SetTextIntegral();
+            OnCreateGridLineCell1(m_ScrollerController1);
+            OnCreateGridLineCell2(m_ScrollerController2);
+        }
+
+        protected override void OnAfterOpen()
+        {
+            model.WeekPartyDayInfoUpdate += WeekPartyDayInfoUpdate;
+        }
+
+        protected override void OnPreClose()
+        {
+            model.WeekPartyDayInfoUpdate -= WeekPartyDayInfoUpdate;
+        }
+
+
+
+        protected override void OnAfterClose()
+        {
+        }
+        private void WeekPartyDayInfoUpdate()//鍒楄〃鍒锋柊
+        {
+            m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+            m_ScrollerController2.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+        }
+        #endregion
+        void OnCreateGridLineCell1(ScrollerController gridCtrl)
+        {
+            gridCtrl.Refresh();
+            foreach (var key in model.WeekPartyDayDic.Keys)
+            {
+                gridCtrl.AddCell(ScrollerDataType.Header, key);
+            }
+            gridCtrl.Restart();
+        }
+        private void OnRefreshGridCell_1(ScrollerDataType type, CellView cell)
+        {
+            int Index = cell.index;
+            ButtonEx Btn = cell.GetComponent<ButtonEx>();
+            GameObject SelectedObj = cell.transform.Find("Image_XZ").gameObject;//閫変腑
+            GameObject SelectedObj1 = cell.transform.Find("Image_XZ1").gameObject;//閫変腑
+            GameObject Unselected = cell.transform.Find("Image_WXZ").gameObject;//鏈�変腑
+            ImageEx UnselectedIm = Unselected.GetComponent<ImageEx>();
+            GameObject Lock = cell.transform.Find("Lock").gameObject;//閿�
+
+            GameObject IsNotGary = cell.transform.Find("Obj1").gameObject;
+            Text IsNotGary_text = IsNotGary.transform.Find("DayText").GetComponent<Text>();
+            GameObject Gary= cell.transform.Find("Obj2").gameObject;
+            Text Gary_text = Gary.transform.Find("DayText").GetComponent<Text>();
+
+            RedpointBehaviour redPoint = cell.transform.Find("RedPoint").GetComponent<RedpointBehaviour>();//绾㈢偣
+            if (model.RedPointDic.ContainsKey(Index))
+            {
+                redPoint.redpointId = model.RedPointDic[Index].id;
+            }
+            if (Index <= model.DayNow)
+            {
+                Unselected.SetActive(true);
+                UnselectedIm.gray = false;
+                SelectedObj.SetActive(false);
+                SelectedObj1.SetActive(false);
+                Lock.SetActive(false);
+                IsNotGary.SetActive(true);
+                Gary.SetActive(false);
+                IsNotGary_text.text = (Index + 1).ToString();
+            }
+            else
+            {
+                Unselected.SetActive(true);
+                UnselectedIm.gray = true;
+                SelectedObj.SetActive(false);
+                SelectedObj1.SetActive(false);
+                Lock.SetActive(true);
+                IsNotGary.SetActive(false);
+                Gary.SetActive(true);
+                Gary_text.text = (Index + 1).ToString();
+            }
+
+            if (Index == model.SelectedNow)
+            {
+                SelectedObj.SetActive(true);
+                SelectedObj1.SetActive(true);
+                Unselected.SetActive(false);
+                Lock.SetActive(false);
+                IsNotGary.SetActive(true);
+                Gary.SetActive(false);
+                IsNotGary_text.text = (Index + 1).ToString();
+            }
+            Btn.SetListener(() =>
+            {
+                if (Index != model.SelectedNow && Index<= model.DayNow)
+                {
+                    model.SelectedNow = Index;//閫変腑澶�
+                    SetTextIntegral();
+                    OnCreateGridLineCell2(m_ScrollerController2);
+                    m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+                }
+            });
+        }
+
+        private string InDayStr(int Day)
+        {
+            string DaySte = string.Empty;
+            DaySte = Language.Get("SignIn_4", Day);
+            return DaySte;
+        }
+        //-------------------------------
+        void OnCreateGridLineCell2(ScrollerController gridCtrl)
+        {
+            ToAddSorting();//鎺掑簭
+            GetPointRewardObj();//鑾峰彇绉垎棰嗗淇℃伅
+            gridCtrl.Refresh();
+            for (int i = 0; i < SortList.Count; i++)
+            {
+                gridCtrl.AddCell(ScrollerDataType.Header, SortList[i]);
+            }
+            gridCtrl.Restart();
+        }
+        private void OnRefreshGridCell_2(ScrollerDataType type, CellView cell)
+        {
+
+        }
+
+        private void ToAddSorting()
+        {
+            SortList.Clear();
+            int Weekday = model.GetWeekDay(model.SelectedNow);
+            var quests = dailymodel.GetQuestByWeekTime(Weekday);
+            List<int> dailyIdlist = new List<int>();
+            foreach (var key in quests.Keys)
+            {
+                var _list = quests[key];
+                for (int i = 0; i < _list.Count; i++)
+                {
+                    dailyIdlist.Add(_list[i]);
+                }
+            }
+          
+            foreach (var key in model.WeekPartyDayDic.Keys)
+            {
+                if (key == model.SelectedNow)
+                {
+                    for (int i = 0; i < model.WeekPartyDayDic[key].TemplateList.Length; i++)
+                    {
+                        var TemplateId = model.WeekPartyDayDic[key].TemplateList[i];
+                        var config = Config.Instance.Get<WeekPartyConfig>(TemplateId);
+                        if (config == null)
+                        {
+                            return;
+                        }
+                        if (config.DailyQusetId != 0)
+                        {
+                            if (dailyIdlist.Contains(config.DailyQusetId))
+                            {
+                                SortList.Add(TemplateId);
+                            }
+                           // var Dailyquse = Config.Instance.Get<DailyQuestConfig>(TemplateId);
+                        }
+                        else
+                        {
+                            SortList.Add(TemplateId);
+                        }
+                      
+
+                       
+                    }
+                }
+            }
+            SortList.Sort(Compare);
+        }
+        int Compare(int x, int y)//鏁扮粍鎺掑垪
+        {
+            bool havex1 = IsReceive(x);
+            bool havey1 = IsReceive(y);
+            if (havex1.CompareTo(havey1) != 0)
+            {
+                return -havex1.CompareTo(havey1);
+            }
+            bool havex2 = Undone(x);
+            bool havey2 = Undone(y);
+            if (havex2.CompareTo(havey2) != 0)
+            {
+                return -havex2.CompareTo(havey2);
+            }
+            bool havex3 = Completed(x);
+            bool havey3 = Completed(y);
+            if (havex3.CompareTo(havey3) != 0)
+            {
+                return -havex3.CompareTo(havey3);
+            }
+            int havex4 = SizeId(x);
+            int havey4 = SizeId(y);
+            if (havex4.CompareTo(havey4) != 0)
+            {
+                return havex4.CompareTo(havey4);
+            }
+            return 1;
+        }
+        private bool IsReceive(int ID)//鍙鍙�
+        {
+            bool Bool = false;
+            if (model.WeekPartyActionDic.ContainsKey(ID))
+            {
+                var WeekPartyAction = model.WeekPartyActionDic[ID];
+                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
+                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//宸查濂栨鏁�
+                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//宸插畬鎴愭鏁�
+                int TaypeNumber = 0;
+                if (carryOutNum - rewardNum > 0)
+                {
+                    TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes;
+                }
+                if (TaypeNumber > 0)
+                {
+                    Bool = true;
+                }
+            }
+            return Bool;
+        }
+        private bool Undone(int ID)//鏈畬鎴�
+        {
+            bool Bool = false;
+            if (model.WeekPartyActionDic.ContainsKey(ID))
+            {
+                var WeekPartyAction = model.WeekPartyActionDic[ID];
+                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
+                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//宸查濂栨鏁�
+                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//宸插畬鎴愭鏁�
+                int TaypeNumber = 0;
+                if (carryOutNum - rewardNum > 0)
+                {
+                    TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes;
+                }
+                if (TaypeNumber <= 0)
+                {
+                    Bool = true;
+                }
+            }
+            return Bool;
+        }
+        private bool Completed(int ID)//宸查鍙�
+        {
+            bool Bool = false;
+            if (model.WeekPartyActionDic.ContainsKey(ID))
+            {
+                var WeekPartyAction = model.WeekPartyActionDic[ID];
+                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
+                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//宸查濂栨鏁�
+                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//宸插畬鎴愭鏁�
+                if (rewardNum > number)
+                {
+                    Bool = true;
+                }
+            }
+            return Bool;
+        }
+        private int SizeId(int ID)
+        {
+            int index = 1;
+            var config = Config.Instance.Get<WeekPartyConfig>(ID);
+            if (config != null)
+            {
+                index = config.order;
+            }
+            return index;
+        }
+
+        private void SetTextIntegral()//鑾峰彇褰撳墠绉垎
+        {
+            int Point = model.GetPoint(model.SelectedNow);
+            m_TextIntegral.text = Point.ToString();
+        }
+
+        private void GetPointRewardObj()
+        {
+            ItemDayList.Clear();
+            foreach (var key in model.WeekPartyDayDic.Keys)
+            {
+                if (key == model.SelectedNow)
+                {
+                    for (int i = 0; i < model.WeekPartyDayDic[key].WeekPartyItem.Length; i++)
+                    {
+                        ItemDayList.Add(model.WeekPartyDayDic[key].WeekPartyItem[i]);
+                    }
+                }
+            }
+            if (ItemDayList.Count > 1)
+            {
+                m_One.SetActive(false);
+                m_Two.SetActive(true);
+                m_OpenServiceItemA1.SetReward(model.SelectedNow, ItemDayList[0],0);
+                m_OpenServiceItemB1.SetReward(model.SelectedNow, ItemDayList[1],1);
+            }
+            else
+            {
+                m_One.SetActive(true);
+                m_Two.SetActive(false);
+                m_OpenServiceItemA.SetReward(model.SelectedNow, ItemDayList[0], 0);
+            }
+        }
+    }
+
+}
+
+
+
+
diff --git a/System/OpenServerActivity/OpenServiceAchievementWin.cs.meta b/System/OpenServerActivity/OpenServiceAchievementWin.cs.meta
new file mode 100644
index 0000000..0fc7be0
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceAchievementWin.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a3ac1f2d21d751d44b6ccc8660a4514d
+timeCreated: 1546852387
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/OpenServerActivity/OpenServiceItem.cs b/System/OpenServerActivity/OpenServiceItem.cs
new file mode 100644
index 0000000..86ae58d
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceItem.cs
@@ -0,0 +1,69 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Wednesday, January 09, 2019
+//--------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using TableConfig;
+
+namespace Snxxz.UI
+{
+    [XLua.Hotfix]
+    public class OpenServiceItem : MonoBehaviour
+    {
+        [SerializeField] Text m_Text_A;
+        [SerializeField] Image m_BGM;
+        [SerializeField] Image m_ImageShow;
+        [SerializeField] Text m_TextPoint;
+        [SerializeField] Button m_ReceiveBtn;
+        [SerializeField] GameObject m_IsReachImage;
+        [SerializeField] GameObject m_IsDrawImage;
+        OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
+        public void SetReward(int day, WeekPartyItemClass item, int index)
+        {
+
+            int Point = model.GetPoint(day);           
+            m_TextPoint.text = Language.Get("OSA_3", item.NeedPoint);
+            bool IsBool = model.IsDayReward(model.SelectedNow, index);
+            if (model.SelectedNow > model.DayNow)
+            {
+                m_ReceiveBtn.gameObject.SetActive(false);
+                m_IsReachImage.SetActive(false);
+                m_IsDrawImage.SetActive(false);
+            }
+            else
+            {
+                if (Point >= item.NeedPoint && !IsBool)//鍙
+                {
+                    m_ReceiveBtn.gameObject.SetActive(true);
+                    m_ReceiveBtn.SetListener(() =>
+                    {
+                        model.SendGetWeekPartyPoint(model.SelectedNow, item.NeedPoint);
+                    });
+                    m_IsReachImage.SetActive(false);
+                    m_IsDrawImage.SetActive(false);
+
+                }
+                else if (Point >= item.NeedPoint && IsBool)//宸查
+                {
+                    m_ReceiveBtn.gameObject.SetActive(false);
+                    m_IsReachImage.SetActive(false);
+                    m_IsDrawImage.SetActive(true);
+                }
+                else if (item.NeedPoint > Point)
+                {
+                    m_ReceiveBtn.gameObject.SetActive(false);
+                    m_IsReachImage.SetActive(true);
+                    m_IsDrawImage.SetActive(false);
+                }
+            }
+        }
+    }
+
+}
+
+
+
diff --git a/System/OpenServerActivity/OpenServiceItem.cs.meta b/System/OpenServerActivity/OpenServiceItem.cs.meta
new file mode 100644
index 0000000..be3bf94
--- /dev/null
+++ b/System/OpenServerActivity/OpenServiceItem.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0b9e5e0dad0ffd24c91131cd43d537a2
+timeCreated: 1547014454
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/WindowBase/ModelCenter.cs b/System/WindowBase/ModelCenter.cs
index 9421d84..2a02611 100644
--- a/System/WindowBase/ModelCenter.cs
+++ b/System/WindowBase/ModelCenter.cs
@@ -219,6 +219,7 @@
             RegisterModel<GatherSoulDungeonModel>();
             RegisterModel<KingTreasureModel>();
             RegisterModel<CrossServerBossModel>();
+            RegisterModel<OpenServiceAchievementModel>();
             RegisterModel<FashionDressModel>();
             inited = true;
         }
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index 25c1f74..3d2e0d6 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -1199,7 +1199,9 @@
     Def_RewardType_WishingWell = 16,//  璁告効姹犲鍔�16
     Def_RewardType_OpenFunc = 17,//鍔熻兘棰勫憡濂栧姳
     Def_RewardType_TotalRecharge = 18,//绱鍏呭�煎鍔�
-    Def_RewardType_IceLodeStar, //鍐版櫠鐭胯剦鏄熺骇濂栧姳19
+    Def_RewardType_IceLodeStar=19, //鍐版櫠鐭胯剦鏄熺骇濂栧姳19
+    Def_RewardType_WeekPartyAct=20, //棰嗗彇鍛ㄧ媯娆㈡椿鍔ㄥ鍔�20
+    Def_RewardType_WeekPartyPoint=21,// 棰嗗彇鍛ㄧ媯娆㈢Н鍒嗗鍔�21
 
 }
 

--
Gitblit v1.8.0