Browse Source

增加好友功能

LiuQilin 7 years ago
parent
commit
06817a14d0
32 changed files with 590 additions and 98 deletions
  1. 72 0
      Assets/AtlasUtility/Script/Editor/TestEditor.cs
  2. 3 1
      Assets/AtlasUtility/Script/Test.cs
  3. 19 9
      Assets/Resource/Logo.unity
  4. 1 0
      Assets/Resource/Prefab/Object/DebugMode.prefab
  5. 18 6
      Assets/Resource/Prefab/PrefabUI/Canvas.prefab
  6. 1 1
      Assets/Resource/Prefab/PrefabUI/PlazaroomMemberItem.prefab
  7. 1 1
      Assets/Resource/Prefab/PrefabUI/PlazaroomMemberItem.prefab.meta
  8. 16 0
      Assets/Resource/XML/lan/ChineseSimplified.xml
  9. 16 0
      Assets/Resource/XML/lan/ChineseTraditional.xml
  10. 16 0
      Assets/Resource/XML/lan/English.xml
  11. BIN
      Assets/Resource/Xlsx/language_config.xlsx
  12. 16 0
      Assets/Script/Label/LanguageLabel.cs
  13. 14 0
      Assets/Script/Label/ObjectLabel.cs
  14. 1 0
      Assets/Script/Label/ResourceLabel.cs
  15. 3 0
      Assets/Script/Manage/Initializer.cs
  16. 1 0
      Assets/Script/Manage/ResourceManager.cs
  17. 1 4
      Assets/Script/Manage/UIManager.cs
  18. 1 0
      Assets/Script/Manage/VisitManager.cs
  19. 2 2
      Assets/Script/Object/PlazaRoomItem.cs
  20. 133 0
      Assets/Script/Object/PlazaroomMemberItem.cs
  21. 12 0
      Assets/Script/Object/PlazaroomMemberItem.cs.meta
  22. 77 2
      Assets/Script/Object/PlazaroomMemberPanel.cs
  23. 2 0
      Assets/Script/SFS/Data/InfoLabel.cs
  24. 1 0
      Assets/Script/SFS/Data/SFSLabel.cs
  25. 2 2
      Assets/Script/SFS/Manager/BaseConnector.cs
  26. 1 1
      Assets/Script/SFS/Manager/ChestManager.cs
  27. 96 54
      Assets/Script/SFS/Manager/PlazaRoomController.cs
  28. 5 1
      Assets/Script/SFS/Object/Robot.cs
  29. 10 13
      Assets/Script/SFS/SFSEvent/PlazaRoomEvent.cs
  30. 9 1
      Assets/Script/Tool/DashGame/DateUtil.cs
  31. 32 0
      Assets/新建文本文档.txt
  32. 8 0
      Assets/新建文本文档.txt.meta

+ 72 - 0
Assets/AtlasUtility/Script/Editor/TestEditor.cs

@@ -1,4 +1,9 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
 using System.Text;
+using System.Text.RegularExpressions;
 
 namespace AtlasUtility
 {
@@ -25,7 +30,74 @@ namespace AtlasUtility
 
             if (GUILayout.Button("Test"))
             {
+                List<string> strings = new List<string>();
+                StreamReader streamReader = new StreamReader("C:\\Users\\Administrator\\Desktop\\123.txt");
+                strings = streamReader.ReadToEnd().Split(new[] {"\r\n"}, StringSplitOptions.None).ToList();
+                streamReader.Close();
 
+                List<string> serialNumbers = new List<string>();
+                List<string> nicknames = new List<string>();
+
+                foreach (var VARIABLE in strings)
+                {
+                    string[] idAndName = VARIABLE.Split(' ');
+                    serialNumbers.Add(idAndName[0]);
+                    nicknames.Add(idAndName[1]);
+                }
+
+                for (int i = 0; i < serialNumbers.Count; i++)
+                {
+                    //URLRequestData urlData = new URLRequestData();
+
+                    //urlData.Add("u", serialNumber);
+                    //urlData.Add("n", nickname);
+
+                    //URLRequest.CreateStrURLRequest
+                    //(
+                    //    true,
+                    //    HttpManager.NicknameURL,
+                    //    urlData,
+                    //    data =>
+                    //    {
+                    //        Debug.Log(data);
+                    //    },
+                    //    URLRequest.Method.POST
+                    //);
+
+                    URLRequestData urlData = new URLRequestData();
+
+                    urlData.Add("u", serialNumbers[i]);
+
+                    URLRequest.CreateURLRequest
+                    (
+                        true,
+                        HttpManager.OtherURL,
+                        urlData,
+                        jData =>
+                        {
+                            //1709110835209952822
+                            //1709110834024000936
+                            //1709110822272287343
+                            //Debug.Log(jData["l"].ToString());
+                            string config = Regex.Replace(jData["l"].ToString(), "<NickName value=\"\" />", $"<NickName value=\"{nicknames[i]}\" />");
+                            if (!string.IsNullOrEmpty(config))
+                            {
+                                if (serialNumbers[i] == "1709110835209952822" || serialNumbers[i] == "1709110835209952822" || serialNumbers[i] == "1709110835209952822")
+                                {
+                                    Debug.LogWarning("Sava " + config);
+                                    URLRequestData newUrlData = new URLRequestData();
+
+                                    newUrlData.Add("u", serialNumbers[i]);
+                                    newUrlData.Add("v", 3);
+                                    newUrlData.Add("l", Regex.Replace(jData["l"].ToString(), "<NickName value=\"\" />", $"<NickName value=\"{nicknames[i]}\" />"));
+
+                                    URLRequest.CreateURLRequest(false, HttpManager.SaveURL, newUrlData, data => { Debug.Log(data.ToJson()); }, URLRequest.Method.POST);
+                                }
+                            }
+                        },
+                        URLRequest.Method.POST
+                    );
+                }
             }
         }
     }

+ 3 - 1
Assets/AtlasUtility/Script/Test.cs

@@ -13,6 +13,8 @@ namespace AtlasUtility
     {
         #region Variable
 
+        public TextAsset TextAsset;
+
         public Text Text;
         public Texture2D Texture2D;
         public SpriteRenderer SpriteRenderer;
@@ -57,7 +59,7 @@ namespace AtlasUtility
         private void OnApplicationQuit()
         {
             smartFox.Disconnect();
-            Debug.Log("Disconnect");
+            //Debug.Log("Disconnect");
         }
     }
 }

+ 19 - 9
Assets/Resource/Logo.unity

@@ -330,15 +330,6 @@ Prefab:
       propertyPath: m_Name
       value: Canvas (1)
       objectReference: {fileID: 0}
-    - target: {fileID: 1132125090877062, guid: 8647d80b558fa724a84d05f9e6aee9bc, type: 2}
-      propertyPath: m_IsActive
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 224600134575381614, guid: 8647d80b558fa724a84d05f9e6aee9bc,
-        type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_ParentPrefab: {fileID: 100100000, guid: 8647d80b558fa724a84d05f9e6aee9bc, type: 2}
   m_IsPrefabParent: 0
@@ -707,6 +698,7 @@ GameObject:
   m_Component:
   - component: {fileID: 1833966245}
   - component: {fileID: 1833966244}
+  - component: {fileID: 1833966246}
   m_Layer: 0
   m_Name: ManagerGame
   m_TagString: Untagged
@@ -742,3 +734,21 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1833966246
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1833966243}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ef3c42f14ba649d4aaf2ea3afe194ba7, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  TextAsset: {fileID: 4900000, guid: cf9154e7a5e129a4d93d68e17ce22dc6, type: 3}
+  Text: {fileID: 0}
+  Texture2D: {fileID: 0}
+  SpriteRenderer: {fileID: 0}
+  Sprite: {fileID: 0}
+  MeshFilter: {fileID: 0}
+  MeshRenderer: {fileID: 0}

+ 1 - 0
Assets/Resource/Prefab/Object/DebugMode.prefab

@@ -128,6 +128,7 @@ MonoBehaviour:
   - {fileID: 21300000, guid: f9937d5d43f2ff447aeb985a91a7d690, type: 3}
   - {fileID: 2100000, guid: 91a83bc59ad093c499f353b165d031b8, type: 2}
   - {fileID: 1496129780866346, guid: 03f5f694f13d5b44c924fb59c9bf7b8f, type: 2}
+  - {fileID: 1449331818472170, guid: d30fd90e19065bd4c93efcb54dc8261d, type: 2}
   AtlasList:
   - {fileID: 21300004, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}
   - {fileID: 21300006, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}

+ 18 - 6
Assets/Resource/Prefab/PrefabUI/Canvas.prefab

@@ -1065,7 +1065,7 @@ GameObject:
   - component: {fileID: 222175989069485746}
   - component: {fileID: 114169965580666922}
   m_Layer: 5
-  m_Name: AE_Tit
+  m_Name: AE_PanelTitle
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -1261,7 +1261,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!1 &1092966110053212
 GameObject:
   m_ObjectHideFlags: 1
@@ -1913,7 +1913,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!1 &1132159904803572
 GameObject:
   m_ObjectHideFlags: 1
@@ -2080,7 +2080,7 @@ GameObject:
   - component: {fileID: 222400410199716816}
   - component: {fileID: 114358258132751248}
   m_Layer: 5
-  m_Name: AE_CloseLab
+  m_Name: AE_CloseButtonTitle
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -3460,6 +3460,7 @@ GameObject:
   - component: {fileID: 222860261026742538}
   - component: {fileID: 114042397356508628}
   - component: {fileID: 114176111168209820}
+  - component: {fileID: 225132893225767092}
   m_Layer: 5
   m_Name: X_MemberButton
   m_TagString: Untagged
@@ -7685,7 +7686,7 @@ GameObject:
   - component: {fileID: 114710469057679750}
   - component: {fileID: 114412494006630870}
   m_Layer: 5
-  m_Name: AE_Close
+  m_Name: AE_CloseButton
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -64548,6 +64549,17 @@ CanvasGroup:
   m_Interactable: 1
   m_BlocksRaycasts: 1
   m_IgnoreParentGroups: 0
+--- !u!225 &225132893225767092
+CanvasGroup:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1241986858950538}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
 --- !u!225 &225136886829367084
 CanvasGroup:
   m_ObjectHideFlags: 1
@@ -65149,7 +65161,7 @@ CanvasGroup:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1092011122088176}
   m_Enabled: 1
-  m_Alpha: 1
+  m_Alpha: 0
   m_Interactable: 1
   m_BlocksRaycasts: 1
   m_IgnoreParentGroups: 0

+ 1 - 1
Assets/Resource/Prefab/PrefabUI/PlazaroomMemberItem.prefab

@@ -544,7 +544,7 @@ MonoBehaviour:
     m_FontStyle: 0
     m_BestFit: 1
     m_MinSize: 10
-    m_MaxSize: 25
+    m_MaxSize: 20
     m_Alignment: 4
     m_AlignByGeometry: 0
     m_RichText: 1

+ 1 - 1
Assets/Resource/Prefab/PrefabUI/PlazaroomMemberItem.prefab.meta

@@ -4,5 +4,5 @@ timeCreated: 1511150614
 licenseType: Pro
 NativeFormatImporter:
   userData: 
-  assetBundleName: 
+  assetBundleName: ui
   assetBundleVariant: 

+ 16 - 0
Assets/Resource/XML/lan/ChineseSimplified.xml

@@ -212,7 +212,23 @@
     <AD_CoinCDDescription desc=""><![CDATA[减少[&value&]秒]]></AD_CoinCDDescription>
     <AD_DiamondCDDescription desc=""><![CDATA[减少全部]]></AD_DiamondCDDescription>
     <AD_ComfirmButtonTitle desc=""><![CDATA[减少等待]]></AD_ComfirmButtonTitle>
+    <AE_Title desc=""><![CDATA[派对成员]]></AE_Title>
+    <AE_FilterTitle desc=""><![CDATA[只看好友]]></AE_FilterTitle>
+    <AE_Nickname desc=""><![CDATA[昵称]]></AE_Nickname>
+    <AE_JoinedTime0 desc=""><![CDATA[[&value&]分钟前]]></AE_JoinedTime0>
+    <AE_JoinedTime1 desc=""><![CDATA[刚刚]]></AE_JoinedTime1>
+    <AE_CloseTitle desc=""><![CDATA[关闭]]></AE_CloseTitle>
+    <AE_FriendPanelButtonTitle desc=""><![CDATA[好友列表]]></AE_FriendPanelButtonTitle>
   </UI>
+  <CommentItem>
+    <AddFriend desc=""><![CDATA[加为好友]]></AddFriend>
+    <SendMessage desc=""><![CDATA[私信]]></SendMessage>
+  </CommentItem>
+  <PlazaroomMemberItem>
+    <AddFriend desc=""><![CDATA[加为好友]]></AddFriend>
+    <SendMessage desc=""><![CDATA[私信]]></SendMessage>
+    <VisitWarning desc=""><![CDATA[即将离开派对访问TA的花园,确定继续?]]></VisitWarning>
+  </PlazaroomMemberItem>
   <FlowerName>
     <Flower1 desc=""><![CDATA[粉色小花]]></Flower1>
     <Flower2 desc=""><![CDATA[紫色小花]]></Flower2>

+ 16 - 0
Assets/Resource/XML/lan/ChineseTraditional.xml

@@ -212,7 +212,23 @@
     <AD_CoinCDDescription desc=""><![CDATA[]]></AD_CoinCDDescription>
     <AD_DiamondCDDescription desc=""><![CDATA[]]></AD_DiamondCDDescription>
     <AD_ComfirmButtonTitle desc=""><![CDATA[]]></AD_ComfirmButtonTitle>
+    <AE_Title desc=""><![CDATA[]]></AE_Title>
+    <AE_FilterTitle desc=""><![CDATA[]]></AE_FilterTitle>
+    <AE_Nickname desc=""><![CDATA[]]></AE_Nickname>
+    <AE_JoinedTime0 desc=""><![CDATA[]]></AE_JoinedTime0>
+    <AE_JoinedTime1 desc=""><![CDATA[]]></AE_JoinedTime1>
+    <AE_CloseTitle desc=""><![CDATA[]]></AE_CloseTitle>
+    <AE_FriendPanelButtonTitle desc=""><![CDATA[]]></AE_FriendPanelButtonTitle>
   </UI>
+  <CommentItem>
+    <AddFriend desc=""><![CDATA[]]></AddFriend>
+    <SendMessage desc=""><![CDATA[]]></SendMessage>
+  </CommentItem>
+  <PlazaroomMemberItem>
+    <AddFriend desc=""><![CDATA[]]></AddFriend>
+    <SendMessage desc=""><![CDATA[]]></SendMessage>
+    <VisitWarning desc=""><![CDATA[]]></VisitWarning>
+  </PlazaroomMemberItem>
   <FlowerName>
     <Flower1 desc=""><![CDATA[粉色小花]]></Flower1>
     <Flower2 desc=""><![CDATA[紫色小花]]></Flower2>

+ 16 - 0
Assets/Resource/XML/lan/English.xml

@@ -212,7 +212,23 @@ Program 水怪
     <AD_CoinCDDescription desc=""><![CDATA[]]></AD_CoinCDDescription>
     <AD_DiamondCDDescription desc=""><![CDATA[]]></AD_DiamondCDDescription>
     <AD_ComfirmButtonTitle desc=""><![CDATA[]]></AD_ComfirmButtonTitle>
+    <AE_Title desc=""><![CDATA[]]></AE_Title>
+    <AE_FilterTitle desc=""><![CDATA[]]></AE_FilterTitle>
+    <AE_Nickname desc=""><![CDATA[]]></AE_Nickname>
+    <AE_JoinedTime0 desc=""><![CDATA[]]></AE_JoinedTime0>
+    <AE_JoinedTime1 desc=""><![CDATA[]]></AE_JoinedTime1>
+    <AE_CloseTitle desc=""><![CDATA[]]></AE_CloseTitle>
+    <AE_FriendPanelButtonTitle desc=""><![CDATA[]]></AE_FriendPanelButtonTitle>
   </UI>
+  <CommentItem>
+    <AddFriend desc=""><![CDATA[]]></AddFriend>
+    <SendMessage desc=""><![CDATA[]]></SendMessage>
+  </CommentItem>
+  <PlazaroomMemberItem>
+    <AddFriend desc=""><![CDATA[]]></AddFriend>
+    <SendMessage desc=""><![CDATA[]]></SendMessage>
+    <VisitWarning desc=""><![CDATA[]]></VisitWarning>
+  </PlazaroomMemberItem>
   <FlowerName>
     <Flower1 desc=""><![CDATA[Pink Flower]]></Flower1>
     <Flower2 desc=""><![CDATA[Purple Flower]]></Flower2>

BIN
Assets/Resource/Xlsx/language_config.xlsx


+ 16 - 0
Assets/Script/Label/LanguageLabel.cs

@@ -210,6 +210,22 @@ public class LanguageLabel
 	public static string UI__AD_CoinCDDescription = "UI__AD_CoinCDDescription";
 	public static string UI__AD_DiamondCDDescription = "UI__AD_DiamondCDDescription";
 	public static string UI__AD_ComfirmButtonTitle = "UI__AD_ComfirmButtonTitle";
+	public static string UI__AE_Title = "UI__AE_Title";
+	public static string UI__AE_FilterTitle = "UI__AE_FilterTitle";
+	public static string UI__AE_Nickname = "UI__AE_Nickname";
+	public static string UI__AE_JoinedTime0 = "UI__AE_JoinedTime0";
+	public static string UI__AE_JoinedTime1 = "UI__AE_JoinedTime1";
+	public static string UI__AE_CloseTitle = "UI__AE_CloseTitle";
+	public static string UI__AE_FriendPanelButtonTitle = "UI__AE_FriendPanelButtonTitle";
+	
+	public static string CommentItem = "CommentItem";
+	public static string CommentItem__AddFriend = "CommentItem__AddFriend";
+	public static string CommentItem__SendMessage = "CommentItem__SendMessage";
+	
+	public static string PlazaroomMemberItem = "PlazaroomMemberItem";
+	public static string PlazaroomMemberItem__AddFriend = "PlazaroomMemberItem__AddFriend";
+	public static string PlazaroomMemberItem__SendMessage = "PlazaroomMemberItem__SendMessage";
+	public static string PlazaroomMemberItem__VisitWarning = "PlazaroomMemberItem__VisitWarning";
 	
 	public static string FlowerName = "FlowerName";
 	public static string FlowerName__Flower1 = "FlowerName__Flower1";

+ 14 - 0
Assets/Script/Label/ObjectLabel.cs

@@ -681,6 +681,20 @@ public class ObjectLabel
 	public static string AD_CloseButton = "AD_CloseButton";
 	public static string AD_ConfirmButton = "AD_ConfirmButton";
 	public static string AD_ConfirmButtonTitle = "AD_ConfirmButtonTitle";
+	public static string AE_PlazaroomMemberPanelParent = "AE_PlazaroomMemberPanelParent";
+	public static string AE_PlazaroomMemberPanelMask = "AE_PlazaroomMemberPanelMask";
+	public static string AE_PlazaroomMemberPanel = "AE_PlazaroomMemberPanel";
+	public static string AE_Frame = "AE_Frame";
+	public static string AE_NicknameTitle = "AE_NicknameTitle";
+	public static string AE_ContentTitle = "AE_ContentTitle";
+	public static string AE_FriendFilterButton = "AE_FriendFilterButton";
+	public static string AE_FriendFilterIcon = "AE_FriendFilterIcon";
+	public static string AE_FriendFilterTitle = "AE_FriendFilterTitle";
+	public static string AE_PanelTitle = "AE_PanelTitle";
+	public static string AE_CloseButton = "AE_CloseButton";
+	public static string AE_CloseButtonTitle = "AE_CloseButtonTitle";
+	public static string AE_ScrollRect = "AE_ScrollRect";
+	public static string AE_Grid = "AE_Grid";
 	public static string B_SignIn0 = "B_SignIn0";
 	public static string B_SignIn = "B_SignIn";
 	public static string Bb_SignIn = "Bb_SignIn";

+ 1 - 0
Assets/Script/Label/ResourceLabel.cs

@@ -18,6 +18,7 @@ public class ResourceLabel
     public static string UI = "UI";
 
     public static string LOGO0005 = "LOGO0005";
+    public static string PlazaroomMemberItem = "PlazaroomMemberItem";
     public static string MailItem = "MailItem";
     public static string NotifyItem = "NotifyItem";
     public static string Music = "Music";

+ 3 - 0
Assets/Script/Manage/Initializer.cs

@@ -207,6 +207,9 @@ public class Initializer : MonoBehaviour
         gameObject.AddScript<EnterMinigamePanelManager>();
 
         InitScriptProgress = index++.ToString();
+        gameObject.AddScript<PlazaroomMemberPanel>();
+
+        InitScriptProgress = index++.ToString();
         StartCoroutine(WaitToInit());
     }
 

+ 1 - 0
Assets/Script/Manage/ResourceManager.cs

@@ -51,6 +51,7 @@ public enum ObjType
     HudText,
     MailItem,
     GardenInfoItem,
+    PlazaroomMemberItem,
     PlazaroomInfoItem,
     SkillItem,
     SignItem,

+ 1 - 4
Assets/Script/Manage/UIManager.cs

@@ -2940,10 +2940,7 @@ public class UIManager : Regist
             {
                 AudioManager.PlayClip(AudioLabel.ClickButton);
 
-                SFSObject arg = new SFSObject();
-                arg.PutInt(SFSLabel.CommandID, PlazaRoomReq.LeaveRoom.GetHashCode());
-                arg.PutInt(SFSLabel.RoomID, SFSManager.GardenSmartFox.PlazaRoomController.CurrentPlazaRoom.Id);
-                SFSManager.GardenSmartFox.AddRequest(arg, RequestType.Immediate);
+                SFSManager.GardenSmartFox.PlazaRoomController.LeavePlazaRoom();
             }
         );
 

+ 1 - 0
Assets/Script/Manage/VisitManager.cs

@@ -895,6 +895,7 @@ public class VisitManager : Regist
                         ShowVisitFailPanel,
                         (jData) =>
                         {
+                            Debug.Log(jData.ToJson());
                             XmlDocument document = new XmlDocument();
                             document.LoadXml(data["l"].ToString());
                             EnterVisiteeGarden(new VisitData(jData, document));

+ 2 - 2
Assets/Script/Object/PlazaRoomItem.cs

@@ -52,8 +52,8 @@ public class RoomData
         Duration = arg.GetInt(DurationLabel);
         MaxPlayer = arg.GetInt(MaxPlayerLabel);
         Name = arg.GetUtfString(NameLabel);
-        StartTime = DateUtil.GetTimeFromSecends(arg.GetLong(StartTimeLabel).ToString());
-        EndTime = DateUtil.GetTimeFromSecends(arg.GetLong(EndTimeLabel).ToString());
+        StartTime = DateUtil.GetTimeFromSeconds(arg.GetLong(StartTimeLabel).ToString());
+        EndTime = DateUtil.GetTimeFromSeconds(arg.GetLong(EndTimeLabel).ToString());
 
         if (ID == 1)
             IsSystemRoom = true;

+ 133 - 0
Assets/Script/Object/PlazaroomMemberItem.cs

@@ -0,0 +1,133 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Sfs2X;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class PlazaroomMemberItemLabel
+{
+    public static string PlazaroomMemberItem = "PlazaroomMemberItem";
+    public static string Nickname = "Nickname";
+    public static string Content = "Content";
+    public static string Frame = "Frame";
+    public static string VisitButton = "VisitButton";
+    public static string VisitButtonTitle = "VisitButtonTitle";
+    public static string VisitImagePlus = "VisitImagePlus";
+    public static string AddFriendButton = "AddFriendButton";
+    public static string AddFriendTitle = "AddFriendTitle";
+    public static string SendMessageButton = "SendMessageButton";
+    public static string SendMessageText = "SendMessageText";
+}
+
+public class PlazaroomMemberItem : MonoBehaviour
+{
+    #region Config
+
+    public Text NicknameTitle;
+    public Text ContentTitle;
+    public Text VisitButtonTitle;
+    public Text AddFriendTitle;
+    public Text SendMessageText;
+    public Button VisitButton;
+    public Button AddFriendButton;
+    public Button SendMessageButton;
+
+    private float RefreshTime = 10f;
+    private float RefreshTimer;
+    private string Nickname;
+    private string SerialNumber;
+    private DateTime JoinedRoomTime;
+
+    private bool Inited;
+
+    #endregion
+
+    private void Update()
+    {
+        RefreshTimer += Time.deltaTime;
+        if (RefreshTimer >= RefreshTime)
+        {
+            RefreshTimer = 0;
+            ContentTitle.text = GetContent();
+        }
+    }
+
+
+    private void Init()
+    {
+        if (Inited)
+        {
+            return;
+        }
+        else
+        {
+            Inited = true;
+        }
+
+        Dictionary<string, Transform> childDictionary = new Dictionary<string, Transform>();
+        Auxiliary.CompileDic(transform, childDictionary);
+
+        NicknameTitle = childDictionary[PlazaroomMemberItemLabel.Nickname].GetComponent<Text>();
+        ContentTitle = childDictionary[PlazaroomMemberItemLabel.Content].GetComponent<Text>();
+        VisitButtonTitle = childDictionary[PlazaroomMemberItemLabel.VisitButtonTitle].GetComponent<Text>();
+        AddFriendTitle = childDictionary[PlazaroomMemberItemLabel.AddFriendTitle].GetComponent<Text>();
+        SendMessageText = childDictionary[PlazaroomMemberItemLabel.SendMessageText].GetComponent<Text>();
+        VisitButton = childDictionary[PlazaroomMemberItemLabel.VisitButton].GetComponent<Button>();
+        AddFriendButton = childDictionary[PlazaroomMemberItemLabel.AddFriendButton].GetComponent<Button>();
+        SendMessageButton = childDictionary[PlazaroomMemberItemLabel.SendMessageButton].GetComponent<Button>();
+
+        VisitButton.onClick.AddListener(OnVisitButtonClick);
+    }
+
+    public void Reset(string nickname, string serialNumber, DateTime joinedTime)
+    {
+        Init();
+        //Debug.Log(joinedTime);
+        Nickname = nickname;
+        SerialNumber = serialNumber;
+        JoinedRoomTime = joinedTime;
+
+        NicknameTitle.text = Nickname;
+        ContentTitle.text = GetContent();
+    }
+
+    private string GetContent()
+    {
+        int minutes = (int)HttpManager.CurrentDateTime.Subtract(JoinedRoomTime).TotalMinutes;
+        if (minutes == 0)
+        {
+            return Language.GetStr(LanguageLabel.UI__AE_JoinedTime1);
+        }
+        else if (minutes > 0)
+        {
+            string content = Language.GetStr(LanguageLabel.UI__AE_JoinedTime0);
+            return content.Replace(TransferLabel.Value, minutes.ToString());
+        }
+        else
+        {
+            throw new Exception(minutes.ToString());
+        }
+    }
+
+
+    private void OnVisitButtonClick()
+    {
+        if (Manager.Coin < VisitManager.VisitCost)
+        {
+            Bubble.Show(Language.GetStr(LanguageLabel.Common__ShortCoin), null, null, Lib.GoldSprite);
+        }
+        else
+        {
+            Bubble.Show(null, Language.GetStr(LanguageLabel.PlazaroomMemberItem__VisitWarning), null, null, Visit);
+        }
+    }
+
+    private void Visit()
+    {
+        SFSManager.GardenSmartFox.PlazaRoomController.ExitToVisitFlag = true;
+        SFSManager.GardenSmartFox.PlazaRoomController.VisiteeSerialNumber = SerialNumber;
+        SFSManager.GardenSmartFox.PlazaRoomController.LeavePlazaRoom();
+        PlazaroomMemberPanel.ClosePanel();
+    }
+}

+ 12 - 0
Assets/Script/Object/PlazaroomMemberItem.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 75f160b5e50d6f84692704dd4cfa6d9d
+timeCreated: 1511151984
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 2
Assets/Script/Object/PlazaroomMemberPanel.cs

@@ -1,9 +1,84 @@
-using System.Collections;
+using System;
+using System.Collections;
 using System.Collections.Generic;
 
 using UnityEngine;
+using UnityEngine.UI;
 
 public class PlazaroomMemberPanel : Regist
 {
-    //Mark
+    #region Config
+    
+    private static Text PanelTitle;
+    private static Text ContentTitle;
+    private static Text FriendFilterTitle;
+    private static Text NicknameTitle;
+    private static Text CloseButtonTitle;
+    private static Button CloseButton;
+    private static Button FriendFilterButton;
+    private static Button MemberButton;
+    private static Transform Grid;
+    private static Transform PanelMask;
+
+    private static Dictionary<string, PlazaroomMemberItem> MemberItemDictionary = new Dictionary<string, PlazaroomMemberItem>();
+
+    #endregion
+
+    public override void RegistReference()
+    {
+        PanelTitle = ResourceManager.Get<Text>(ObjectLabel.AE_PanelTitle);
+        ContentTitle = ResourceManager.Get<Text>(ObjectLabel.AE_ContentTitle);
+        FriendFilterTitle = ResourceManager.Get<Text>(ObjectLabel.AE_FriendFilterTitle);
+        NicknameTitle = ResourceManager.Get<Text>(ObjectLabel.AE_NicknameTitle);
+        CloseButtonTitle = ResourceManager.Get<Text>(ObjectLabel.AE_CloseButtonTitle);
+        CloseButton = ResourceManager.Get<Button>(ObjectLabel.AE_CloseButton);
+        MemberButton = ResourceManager.Get<Button>(ObjectLabel.X_MemberButton);
+        FriendFilterButton = ResourceManager.Get<Button>(ObjectLabel.AE_FriendFilterButton);
+        Grid = ResourceManager.Get(ObjectLabel.AE_Grid);
+        PanelMask = ResourceManager.Get(ObjectLabel.AE_PlazaroomMemberPanelMask);
+
+        PanelMask.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        MemberButton.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        MemberButton.onClick.AddListener(OpenPanel);
+        CloseButton.onClick.AddListener(ClosePanel);
+    }
+
+    public static void OpenPanel()
+    {
+        PanelMask.TweenForCG();
+        MemberButton.TweenBacCG();
+    }
+
+    public static void ClosePanel()
+    {
+        PanelMask.TweenBacCG();
+        MemberButton.TweenForCG();
+    }
+
+    private static void EnableFriendFilter()
+    {
+        
+    }
+
+    private static void DisableFriendFilter()
+    {
+
+    }
+
+
+    public static void AddMemberItem(string nickname, string serialNumber, DateTime joinedTime)
+    {
+        PlazaroomMemberItem memberItem = ResourceManager.Get(ResourceLabel.PlazaroomMemberItem, Folder.UI, false, Grid, false, ObjType.PlazaroomMemberItem, typeof(PlazaroomMemberItem)).GetComponent<PlazaroomMemberItem>();
+        memberItem.transform.SetAsFirstSibling();
+        memberItem.Reset(nickname, serialNumber, joinedTime);
+        MemberItemDictionary.Add(serialNumber, memberItem);
+    }
+
+    public static void SaveMemberItem(string serialNumber)
+    {
+        PlazaroomMemberItem memberItem = MemberItemDictionary[serialNumber];
+        ResourceManager.Save(memberItem);
+        MemberItemDictionary.Remove(serialNumber);
+    }
 }

+ 2 - 0
Assets/Script/SFS/Data/InfoLabel.cs

@@ -8,4 +8,6 @@ public enum InfoLabel
     PlayerDirection = 5,
     NickName = 6,
     Expression = 7,
+    SerialNumber = 8,
+    JoinedTime = 9,
 }

+ 1 - 0
Assets/Script/SFS/Data/SFSLabel.cs

@@ -12,6 +12,7 @@ public class SFSLabel
     public static string Nickname = "n";
     public static string DataArray = "da";
     public static string CommandID = "c";
+    public static string DateTime = "dt";
 
     public static string UserID = "ui";
     public static string RoomID = "ri";

+ 2 - 2
Assets/Script/SFS/Manager/BaseConnector.cs

@@ -9,8 +9,8 @@ public abstract class BaseConnector
     public GardenSmartFox GardenSmartFox;
 
     public static int TcpPort = 9933;
-    public static string Host = "121.199.20.79";
-    //public static string Host = "127.0.0.1";
+    //public static string Host = "121.199.20.79";
+    public static string Host = "127.0.0.1";
     public static string Zone = "Garden";
     //public static string Zone = "GardenTest";
 

+ 1 - 1
Assets/Script/SFS/Manager/ChestManager.cs

@@ -47,7 +47,7 @@ public class ChestData
         RemainRound = arg.GetInt(gd_chest.RemainRound);
         DatabaseRoomID = arg.GetInt(gd_chest.DatabaseRoomID);
         Owner = arg.GetLong(gd_chest.Owner);
-        ActivatedTime = DateUtil.GetTimeFromSecends(arg.GetLong(gd_chest.ActivatedTime).ToString());
+        ActivatedTime = DateUtil.GetTimeFromSeconds(arg.GetLong(gd_chest.ActivatedTime).ToString());
         ChestType = (ChestType) arg.GetInt(gd_chest.Type);
 
         Vector3 defaultPosition = DefaultPosition + ChestOffset;

+ 96 - 54
Assets/Script/SFS/Manager/PlazaRoomController.cs

@@ -31,6 +31,8 @@ public class PlazaRoomController
         #region Config
 
         public string NickName;
+        public string SerialNumber;
+        public DateTime JoinedTime;
 
         public Player Player;
         public Transform NickNameTransform;
@@ -41,9 +43,11 @@ public class PlazaRoomController
 
         #endregion
 
-        public PlazaRoomPlayer(Player player, string nickname)
+        public PlazaRoomPlayer(Player player, string nickname, string serialNumber, DateTime joinedTime)
         {
             Player = player;
+            SerialNumber = serialNumber;
+            JoinedTime = joinedTime;
             TweenRoots = new List<TweenRoot>();
 
 
@@ -63,6 +67,11 @@ public class PlazaRoomController
             NickNameTransform.GetComponent<Text>().text = NickName;
 
 
+            if (serialNumber != HttpManager.SerialNumber)
+            {
+                PlazaroomMemberPanel.AddMemberItem(nickname, serialNumber, joinedTime);
+            }
+
             MessageBox = ResourceManager.Get(ResourceLabel.MessageBox, Folder.UI, false, ResourceManager.Get(ObjectLabel.W_HudParent), false, ObjType.MessageBox);
             MessageLab = MessageBox.GetComponentInChildren<BestfitText>();
             MessageLab.VerticalMinSize = MinMessageFontSize;
@@ -91,6 +100,11 @@ public class PlazaRoomController
             ResourceManager.Save(NickNameTransform);
             ResourceManager.Save(MessageBox);
 
+            if (SerialNumber != HttpManager.SerialNumber)
+            {
+                PlazaroomMemberPanel.SaveMemberItem(SerialNumber);
+            }
+
             Player.PlayAnim(Player.IdleAnimationName);
             Player.DeactiveShadow();
             Player.Shadow.SetLZ(0);
@@ -302,10 +316,14 @@ public class PlazaRoomController
         ResourceManager.SetActive(ObjectLabel.X_PlazaRoom, true);
     }
 
+    public bool ExitToVisitFlag;
+    public string VisiteeSerialNumber;
     public void ExitPlazaRoom()
     {
         QuitPlazaRoom();
 
+        AudioManager.PartyThemeAudio.TweenBacAudio();
+
         TweenRoot tweenRoot = ResourceManager.Get(ObjectLabel.V_BlackMask).TweenBacCG();
 
         tweenRoot.AddEventOnetime
@@ -313,51 +331,33 @@ public class PlazaRoomController
             EventType.BackwardFinish,
             () =>
             {
-                ChestManager.RetrieveAllChest();
-
-                InPlazaRoom = false;
-
-                AudioManager.GardenThemeAudio.TweenForAudio();
-
-                PlazaRoomSky.position = SkyOriginPosition;
-                PlazaRoomCamera.transform.position = CameraOriginPosition;
-
-                ResourceManager.SetActive(ObjectLabel.C_Main2, true);
-                ResourceManager.SetActive(ResourceLabel.Garden, true);
-                ResourceManager.SetActive(PlazaRoomLabel.PlazaRoom, false);
-                ResourceManager.SetActive(ObjectLabel.W_HudParent, false);
-                ResourceManager.SetActive(ObjectLabel.X_PlazaRoom, false);
-
-                ResourceManager.Get(ObjectLabel.V_BlackMask).TweenForCG();
-                ResourceManager.Get(ObjectLabel.B_SignIn0).TweenForCG();
-                ResourceManager.Get(ObjectLabel.T_NickName).TweenForCG();
+                ResetScene();
+            }
+        );
 
-                ResourceManager.Get<Text>(ObjectLabel.X_CurrentInfoLab).text = "";
-                Transform tra = ResourceManager.Get(ObjectLabel.X_Info);
-                while (tra.childCount > 0)
+        if (ExitToVisitFlag)
+        {
+            tweenRoot.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
                 {
-                    ResourceManager.Save(tra.GetChild(0));
+                    ExitToVisitFlag = false;
+                    VisitManager.Visit(ConfigSource.SerialNumber, VisiteeSerialNumber);
                 }
-
-                foreach (var kv in UserInstanceDictionary)
+            );
+        }
+        else
+        {
+            tweenRoot.AddEventOnetime
+            (
+                EventType.ForwardFinish,
+                () =>
                 {
-                    kv.Value.Save();
+                    PlazaRoomManager.OpenJoinRoomPanel();
                 }
-
-                UserInstanceDictionary = new Dictionary<int, PlazaRoomPlayer>();
-
-                RobotManager.DeactivateAllRobots(true);
-            }
-        );
-
-        tweenRoot.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                PlazaRoomManager.OpenJoinRoomPanel();
-            }
-        );
+            );
+        }
     }
 
     public void QuitPlazaRoom()
@@ -371,6 +371,52 @@ public class PlazaRoomController
         GardenSmartFox.PlazaRoomController.CurrentPlazaRoom = null;
     }
 
+    public void LeavePlazaRoom()
+    {
+        SFSObject arg = new SFSObject();
+        arg.PutInt(SFSLabel.CommandID, PlazaRoomReq.LeaveRoom.GetHashCode());
+        arg.PutInt(SFSLabel.RoomID, SFSManager.GardenSmartFox.PlazaRoomController.CurrentPlazaRoom.Id);
+        SFSManager.GardenSmartFox.AddRequest(arg, RequestType.Immediate);
+    }
+
+    private void ResetScene()
+    {
+        ChestManager.RetrieveAllChest();
+
+        InPlazaRoom = false;
+
+        AudioManager.GardenThemeAudio.TweenForAudio();
+
+        PlazaRoomSky.position = SkyOriginPosition;
+        PlazaRoomCamera.transform.position = CameraOriginPosition;
+
+        ResourceManager.SetActive(ObjectLabel.C_Main2, true);
+        ResourceManager.SetActive(ResourceLabel.Garden, true);
+        ResourceManager.SetActive(PlazaRoomLabel.PlazaRoom, false);
+        ResourceManager.SetActive(ObjectLabel.W_HudParent, false);
+        ResourceManager.SetActive(ObjectLabel.X_PlazaRoom, false);
+
+        ResourceManager.Get(ObjectLabel.V_BlackMask).TweenForCG();
+        ResourceManager.Get(ObjectLabel.B_SignIn0).TweenForCG();
+        ResourceManager.Get(ObjectLabel.T_NickName).TweenForCG();
+
+        ResourceManager.Get<Text>(ObjectLabel.X_CurrentInfoLab).text = "";
+        Transform tra = ResourceManager.Get(ObjectLabel.X_Info);
+        while (tra.childCount > 0)
+        {
+            ResourceManager.Save(tra.GetChild(0));
+        }
+
+        foreach (var kv in UserInstanceDictionary)
+        {
+            kv.Value.Save();
+        }
+
+        UserInstanceDictionary = new Dictionary<int, PlazaRoomPlayer>();
+
+        RobotManager.DeactivateAllRobots(true);
+    }
+
 
     public PlazaRoomController(GardenSmartFox gardenSmartFox)
     {
@@ -481,19 +527,13 @@ public class PlazaRoomController
     {
         if (JoinedPlazaRoom)
         {
-            OnExitPlazaRoom();
+            ExitPlazaRoom();
         }
     }
 
 
-    public void OnExitPlazaRoom()
-    {
-        AudioManager.PartyThemeAudio.TweenBacAudio();
-        ExitPlazaRoom();
-    }
-
     private float SelfInstanceOffset = 0.001f;
-    public void OnJoinPlazaRoom(Room room)
+    public void OnJoinPlazaRoom(Room room, DateTime joinedTime)
     {
         if (JoinRoomResult == JoinRoomResult.Pending)
         {
@@ -501,7 +541,7 @@ public class PlazaRoomController
 
             PlazaRoom.Initialize();
             PlayerDefaultPosition = GetDefaultPosition();
-            SelfInstance = InstantiatePlayer(NickNameManager.NickName, PlayerDefaultPosition, PlayerDirection.Left, ConfigManager.GetDressDataIDs(PlayerManager.Player));
+            SelfInstance = InstantiatePlayer(NickNameManager.NickName, HttpManager.SerialNumber, joinedTime, PlayerDefaultPosition, PlayerDirection.Left, ConfigManager.GetDressDataIDs(PlayerManager.Player));
             UserInstanceDictionary.Add(SFSManager.GardenSmartFox.User.Id, SelfInstance);
             SendInstantiateRequset(-1);
             SelfInstance.Player.transform.SetLZ(SelfInstance.Player.transform.localPosition.z - SelfInstanceOffset);
@@ -646,7 +686,7 @@ public class PlazaRoomController
 
     public void SendInstantiateRequset(int receiverID)
     {
-        SFSManager.GardenSmartFox.EventManager.PlazaRoomEvent.SendInstantiateRequset(GardenSmartFox.User.Id, ConfigManager.GetDressDataIDs(SelfInstance.Player).ToArray(), SelfInstance.Player.transform.position, SelfInstance.Player.PlayerDirection, NickNameManager.NickName, receiverID);
+        SFSManager.GardenSmartFox.EventManager.PlazaRoomEvent.SendInstantiateRequset(GardenSmartFox.User.Id, ConfigManager.GetDressDataIDs(SelfInstance.Player).ToArray(), HttpManager.SerialNumber, SelfInstance.JoinedTime, SelfInstance.Player.transform.position, SelfInstance.Player.PlayerDirection, NickNameManager.NickName, receiverID);
 
         if (SelfInstance.IsMoving)
         {
@@ -661,7 +701,7 @@ public class PlazaRoomController
 
 
     private float ShaowLocalZ = 3;
-    public PlazaRoomPlayer InstantiatePlayer(string nickName, Vector3 position, PlayerDirection direction, List<int> dressDataIDs)
+    public PlazaRoomPlayer InstantiatePlayer(string nickName, string serialNumber, DateTime joinedTime, Vector3 position, PlayerDirection direction, List<int> dressDataIDs)
     {
         Transform parent = ResourceManager.Get(PlazaRoomLabel.PlazaRoom, false);
         Transform tra = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, parent, false, ObjType.Player);
@@ -690,7 +730,7 @@ public class PlazaRoomController
 
         tra.localScale = PlazaRoomPlayerScale;
 
-        return new PlazaRoomPlayer(player, nickName);
+        return new PlazaRoomPlayer(player, nickName, serialNumber, joinedTime);
     }
 
     public PlazaRoomPlayer InstantiatePlayer(ISFSObject parameter)
@@ -699,8 +739,10 @@ public class PlazaRoomController
         Vector3 position = parameter.GetUtfString(InfoLabel.Position.GetHashString()).ToVector();
         PlayerDirection direction = (PlayerDirection) parameter.GetInt(InfoLabel.PlayerDirection.GetHashString());
         string nickName = parameter.GetUtfString(InfoLabel.NickName.GetHashString());
+        string serialNumber = parameter.GetUtfString(InfoLabel.SerialNumber.GetHashString());
+        DateTime joinedTime = new DateTime(parameter.GetLong(InfoLabel.JoinedTime.GetHashString()));
 
-        PlazaRoomPlayer plazaRoomPlayer = InstantiatePlayer(nickName, position, direction, dressDatas);
+        PlazaRoomPlayer plazaRoomPlayer = InstantiatePlayer(nickName, serialNumber, joinedTime, position, direction, dressDatas);
 
         return plazaRoomPlayer;
     }

+ 5 - 1
Assets/Script/SFS/Object/Robot.cs

@@ -36,7 +36,9 @@ public class Robot
     private long RobotConfigID;
     private string Nickname;
     private Vector3 Position;
+    private DateTime JoinedTime;
     private PlayerDirection Direction;
+
     private User User;
     private SmartFox SmartFox;
 
@@ -178,7 +180,7 @@ public class Robot
 
     private void SendInstantiateRequest(int receiver)
     {
-        SFSManager.GardenSmartFox.EventManager.PlazaRoomEvent.SendInstantiateRequset(User.Id, DressdataIDs.ToArray(), Position, Direction, Nickname, receiver);
+        SFSManager.GardenSmartFox.EventManager.PlazaRoomEvent.SendInstantiateRequset(User.Id, DressdataIDs.ToArray(), RobotConfigID.ToString(), JoinedTime, Position, Direction, Nickname, receiver);
     }
 
 
@@ -244,6 +246,8 @@ public class Robot
         MoveTime = Random.Range(MinMoveTime, MaxMoveTime);
         LifetimeTime = Random.Range(MinLifetime, MaxLifetime);
         CreateChestTime = Random.Range(0, LifetimeTime);
+        JoinedTime = DateUtil.GetTimeFromSeconds(((ISFSObject) evt.Params[SFSLabel.DefaultParams]).GetLong(SFSLabel.DateTime).ToString());
+        //Debug.Log(JoinedTime);
         SendInstantiateRequest(-1);
     }
 

+ 10 - 13
Assets/Script/SFS/SFSEvent/PlazaRoomEvent.cs

@@ -74,13 +74,6 @@ public class PlazaRoomEvent
         );
     }
 
-    public void ExitPlazaRoom()
-    {
-        SFSEventManager.GardenSmartFox.SmartFox.Send(new LeaveRoomRequest(CurrentPlazaRoom));
-
-        SFSEventManager.GardenSmartFox.PlazaRoomController.OnExitPlazaRoom();
-    }
-
     public void JoinPlazaRoom(int databaseRoomID)
     {
         SFSManager.GardenSmartFox.ExecuteAfterCheckConection
@@ -98,7 +91,7 @@ public class PlazaRoomEvent
     }
 
 
-    public void SendInstantiateRequset(int senderID, int[] dressDataIDs, Vector3 position, PlayerDirection direction, string nickname, int receiverID)
+    public void SendInstantiateRequset(int senderID, int[] dressDataIDs, string serialNumber, DateTime joinedTime, Vector3 position, PlayerDirection direction, string nickname, int receiverID)
     {
         SFSObject parameter = new SFSObject();
         parameter.PutInt(SFSLabel.InfoID, InfoID.Instantiate.GetHashCode());
@@ -107,7 +100,9 @@ public class PlazaRoomEvent
         parameter.PutUtfString(InfoLabel.Position.GetHashString(), position.ToStr());
         parameter.PutInt(InfoLabel.PlayerDirection.GetHashString(), direction.GetHashCode());
         parameter.PutUtfString(InfoLabel.NickName.GetHashString(), nickname);
-
+        parameter.PutUtfString(InfoLabel.SerialNumber.GetHashString(), serialNumber);
+        parameter.PutLong(InfoLabel.JoinedTime.GetHashString(), joinedTime.Ticks);
+        
         SFSEventManager.GardenSmartFox.AddRequest(WrapInfoRequest(CurrentPlazaRoom.Id, receiverID, parameter), RequestType.Immediate);
     }
 
@@ -362,7 +357,7 @@ public class PlazaRoomEvent
     public void OnActivateDefaultChest(BaseEvent baseEvent)
     {
         ISFSObject arg = baseEvent.Params[SFSLabel.DefaultParams] as ISFSObject;
-        DateTime dateTime = DateUtil.GetTimeFromSecends(arg.GetLong(SFSLabel.Data).ToString());
+        DateTime dateTime = DateUtil.GetTimeFromSeconds(arg.GetLong(SFSLabel.Data).ToString());
         //Debug.Log(dateTime);
         ChestManager.ActivateSystemChest(dateTime);
     }
@@ -370,7 +365,7 @@ public class PlazaRoomEvent
     public void OnReactivateDefaultChest(BaseEvent baseEvent)
     {
         ISFSObject arg = baseEvent.Params[SFSLabel.DefaultParams] as ISFSObject;
-        DateTime dateTime = DateUtil.GetTimeFromSecends(arg.GetLong(SFSLabel.Data).ToString());
+        DateTime dateTime = DateUtil.GetTimeFromSeconds(arg.GetLong(SFSLabel.Data).ToString());
         //Debug.Log(dateTime);
         ChestManager.ReactivateSystemChest(dateTime);
     }
@@ -430,12 +425,14 @@ public class PlazaRoomEvent
 
     public void OnJoinPlazaRoomSucceed(BaseEvent baseEvent)
     {
-        int roomID = (baseEvent.Params[SFSLabel.DefaultParams] as ISFSObject).GetInt(SFSLabel.RoomID);
+        ISFSObject arg = baseEvent.Params[SFSLabel.DefaultParams] as ISFSObject;
+        int roomID = arg.GetInt(SFSLabel.RoomID);
+        DateTime joinedTime = DateUtil.GetTimeFromSeconds(arg.GetLong(SFSLabel.DateTime).ToString()); 
         Room room = new SFSRoom(roomID, Random.Range(1f,100f).ToString());           
 
         CurrentPlazaRoom = room;
 
-        SFSEventManager.GardenSmartFox.PlazaRoomController.OnJoinPlazaRoom(room);
+        SFSEventManager.GardenSmartFox.PlazaRoomController.OnJoinPlazaRoom(room, joinedTime);
     }
 
     public void OnJoinPlazaRoomError(BaseEvent baseEvent)

+ 9 - 1
Assets/Script/Tool/DashGame/DateUtil.cs

@@ -148,7 +148,7 @@ public class DateUtil
         return dtStart.Add(toNow);
     }
 
-    public static DateTime GetTimeFromSecends(string timeStamp)
+    public static DateTime GetTimeFromSeconds(string timeStamp)
     {
         DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
         long lTime = long.Parse(timeStamp + "0000");
@@ -156,6 +156,14 @@ public class DateUtil
         return dtStart.Add(toNow);
     }
 
+    public static DateTime GetTimeFromMiliseconds(string timeStamp)
+    {
+        DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
+        long lTime = long.Parse(timeStamp);
+        TimeSpan toNow = new TimeSpan(lTime);
+        return dtStart.Add(toNow);
+    }
+
     /// <summary>
     /// DateTime时间格式转换为Unix时间戳格式
     /// </summary>

+ 32 - 0
Assets/新建文本文档.txt

@@ -0,0 +1,32 @@
+1709110707145813465 高兴的胡萝卜
+1709110718814712295 无聊的奇迹
+1709110742885333235 动听的故事
+1709110749091662938 殷勤的奇异果
+1709110751808885702 阔达的网络
+1709110796831336996 爱听歌的樱桃
+1709110821992596239 健康的咖啡
+1709110822272287343 闪闪的柜子
+1709110822575416146 虚心的流沙
+1709110822826981212 快乐的裙子
+1709110823081672996 QiaoQingQ
+1709110823094172995 贤惠的黑米
+1709110833705246366 还单身的龙猫
+1709110834024000936 孝顺的大白
+1709110834264628935 英勇的麦片
+1709110834517756974 勤奋的羊
+1709110834736509581 缓慢的招牌
+1709110835209952822 安详的火
+1709110835511519554 背后的大米
+1709110835792772697 落后的吐司
+1709110836214653948 紧张的小兔子
+1709110836699034488 犹豫的电源
+1709110837009975053 愉快的毛豆
+1709110837472481803 英勇的黑裤
+1709110837794360346 安详的钢笔
+1709110838145927924 靓丽的水蜜桃
+1709110838519370988 安详的银耳汤
+1709110838883437731 包容的向日葵
+1709110839194378775 典雅的篮球
+1709110839485007906 热情的灯泡
+1709110839817824597 虚拟的豆芽
+1709110840338143223 细腻的鸡

+ 8 - 0
Assets/新建文本文档.txt.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cf9154e7a5e129a4d93d68e17ce22dc6
+timeCreated: 1511168057
+licenseType: Pro
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: