diff --git a/Assets/Scripts/Scenes/MainController.cs b/Assets/Scripts/Scenes/MainController.cs
index a5b6ed39..2c14887c 100644
--- a/Assets/Scripts/Scenes/MainController.cs
+++ b/Assets/Scripts/Scenes/MainController.cs
@@ -176,6 +176,7 @@ public class MainController : BaseScene
}
void FinishMessageLeft()
{
+#if UNITY_STANDALONE_WIN
msgIndex = 0;
if (msgs != null)
{
@@ -184,6 +185,7 @@ public class MainController : BaseScene
item.DOFade(0, 0.3f);
}
}
+#endif
}
void FinishMessageRight()
@@ -313,7 +315,8 @@ public class MainController : BaseScene
MapUDPService.Send(0, App.CurrentUser.Id, new double[]{ 0d,0d}, competitionId: 0);
//发送消息
- foreach (var item in MapUDPService.GetOnlineUserList())
+ var list = MapUDPService.GetAllOnlineUserList();
+ foreach (var item in list)
{
if (item.RouteId > 0)
{
@@ -326,7 +329,7 @@ public class MainController : BaseScene
App.RouteNameDict.Add(item.RouteId, item.RouteName);
}
}
- else
+ else
{
item.RouteName = App.RouteNameDict[item.RouteId];
}
@@ -339,27 +342,32 @@ public class MainController : BaseScene
{
message = $"完成了{item.RouteName}的挑战";
}
- if (!string.IsNullOrEmpty(message))
+ if (!string.IsNullOrEmpty(message))
{
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}");
}
}
+ if (item.Point[0] == -1d)
+ {
+ var message = $"{item.Name}上线了";
+ EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.Id}{item.LastActiveTime}{item.Point}");
+ }
//距离
if (item.EndDistance > 50)
{
- var message = $"在骑行过程中突破了{"50KM"}的挑战" ;
+ var message = $"在骑行过程中突破了{"50KM"}的挑战";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}50KM");
}
//速度
if (item.Speed > 10)
{
- var message = $"在骑行过程中速度达到了惊人的{item.Speed}KM/H";
+ var message = $"在骑行过程中速度达到了惊人的{item.Speed}KM/H";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}10KM/H");
}
//功体比
if (item.WeightKg > 2)
{
- var message = $"在骑行过程中功体比达到了惊人的{item.WeightKg}w/kg";
+ var message = $"在骑行过程中功体比达到了惊人的{item.WeightKg}w/kg";
EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}2WeightKg");
}
}
@@ -417,6 +425,7 @@ public class MainController : BaseScene
}
private void OnDestroy()
{
+ EventQueueSystem.RemoveListener(LinkedMessageHandler);
App.isHomeChanged -= OnIsHomeChanged;
}
}
diff --git a/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs b/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs
index 1ca9b1e1..4aefe67b 100644
--- a/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs
+++ b/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs
@@ -303,7 +303,7 @@ namespace Assets.Scenes.Ride.Scripts
return result;
}
- public static List GetOnlineUserList()
+ public static List GetAllOnlineUserList()
{
var result = onlineUserHelper.OnlineUsers.Where(c => !c.IsSelf).ToList();
return result;
@@ -325,6 +325,11 @@ namespace Assets.Scenes.Ride.Scripts
}
public static int GetNearRiderCount()
+ {
+ return onlineUserHelper.OnlineUsers.Where(c=> (c.Point[0] != 0 && c.Point[1] != 0)|| (c.Point[0] != -1 && c.Point[1] != -1)).Count();
+ }
+
+ public static int GetAllOnlineUserCount()
{
return onlineUserHelper.OnlineUsers.Count();
}
@@ -484,7 +489,7 @@ namespace Assets.Scenes.Ride.Scripts
var list = mes.ToList();
//去除自己的数据和命令包
//mes.RemoveAll(item => item.MemberId == App.CurrentUser.Id || item.Point[0] == 0);
- list.RemoveAll(item => item.Point[0] == 0 && item.Point[1] == 0);
+ //list.RemoveAll(item => item.Point[0] == 0 && item.Point[1] == 0);
//去除重复数据
list = list.Distinct(new OlineUserComparer()).ToList();
diff --git a/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs b/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs
index 2b5a7044..6aa19ece 100644
--- a/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs
+++ b/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs
@@ -64,6 +64,7 @@ namespace Assets.Scenes.Ride.Scripts
Instance.delegates[typeof(T)] = temp;
}
Instance.delegateLookup.Remove(del);
+ keyList.Clear();
}
}
@@ -120,16 +121,15 @@ namespace Assets.Scenes.Ride.Scripts
return;
Instance.eventQueue.Enqueue(e);
}
- static List keyList = new List();
+ private static Dictionary keyList = new Dictionary();
public static void QueueEventOnce(GameEvent e,string key)
{
if (!Instance.delegates.ContainsKey(e.GetType()))
return;
- if (keyList.Contains(key))
+ if (keyList.ContainsKey(key))
return;
- keyList.Add(key);
- Debug.Log(126);
+ keyList.Add(key,e);
Instance.eventQueue.Enqueue(e);
}
float timer = 0.0f;
diff --git a/Assets/Scripts/Utils/Loom.cs b/Assets/Scripts/Utils/Loom.cs
index 75921602..ea44f950 100644
--- a/Assets/Scripts/Utils/Loom.cs
+++ b/Assets/Scripts/Utils/Loom.cs
@@ -46,8 +46,8 @@ public class Loom : MonoBehaviour
DontDestroyOnLoad(g);
_current = g.AddComponent();
MapUDPService.Init();
+ MapUDPService.Send(0, App.CurrentUser.Id, new double[] { -1d, -1d }, competitionId: 0);
}
-
}
private List _actions = new List();