Compare commits
4 Commits
v1.0.25-rc
...
v1.0.28-rc
| Author | SHA1 | Date | |
|---|---|---|---|
| e2ef761bd7 | |||
| 828112855f | |||
| 06ff76fe0b | |||
| c92b5a5bc4 |
@@ -99,12 +99,12 @@ namespace Ragon.Core
|
||||
|
||||
public void OnConnected(ushort peerId)
|
||||
{
|
||||
_logger.Trace("Connected " + peerId);
|
||||
// _logger.Trace("Connected " + peerId);
|
||||
}
|
||||
|
||||
public void OnDisconnected(ushort peerId)
|
||||
{
|
||||
_logger.Trace("Disconnected " + peerId);
|
||||
// _logger.Trace("Disconnected " + peerId);
|
||||
|
||||
var player = _lobby.AuthorizationManager.GetPlayer(peerId);
|
||||
if (player != null)
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Ragon.Core
|
||||
public int MaxRooms;
|
||||
|
||||
private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
|
||||
private static readonly string _serverVersion = "1.0.25-rc";
|
||||
private static readonly string _serverVersion = "1.0.27-rc";
|
||||
|
||||
private static void CopyrightInfo()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using Ragon.Common;
|
||||
@@ -129,7 +128,6 @@ namespace Ragon.Core
|
||||
var propertySize = reader.ReadUShort();
|
||||
entity.AddProperty(new EntityProperty(propertySize, propertyType));
|
||||
}
|
||||
|
||||
player.AttachEntity(entity);
|
||||
AttachEntity(player, entity);
|
||||
}
|
||||
@@ -218,9 +216,7 @@ namespace Ragon.Core
|
||||
var entityType = reader.ReadUShort();
|
||||
var eventAuthority = (RagonAuthority) reader.ReadByte();
|
||||
var propertiesCount = reader.ReadUShort();
|
||||
|
||||
_logger.Trace($"[{peerId}] Create Entity {entityType}");
|
||||
|
||||
|
||||
var player = _players[peerId];
|
||||
var entity = new Entity(this, player.PeerId, entityType, 0, eventAuthority);
|
||||
for (var i = 0; i < propertiesCount; i++)
|
||||
@@ -306,12 +302,17 @@ namespace Ragon.Core
|
||||
_writer.WriteOperation(RagonOperation.OWNERSHIP_CHANGED);
|
||||
_writer.WriteString(next.Id);
|
||||
_writer.WriteUShort((ushort) entitiesToUpdate.Length);
|
||||
|
||||
foreach (var entity in entitiesToUpdate)
|
||||
{
|
||||
_writer.WriteUShort(entity.EntityId);
|
||||
entity.SetOwner((ushort) next.PeerId);
|
||||
entity.SetOwner(next.PeerId);
|
||||
|
||||
next.Entities.Add(entity);
|
||||
}
|
||||
|
||||
next.EntitiesIds = next.Entities.Select(e => e.EntityId).ToList();
|
||||
|
||||
BroadcastToReady(_writer, DeliveryType.Reliable);
|
||||
}
|
||||
|
||||
@@ -345,6 +346,7 @@ namespace Ragon.Core
|
||||
|
||||
void BroadcastSnapshot(ushort[] peersIds)
|
||||
{
|
||||
_logger.Trace("Snapshot");
|
||||
_writer.Clear();
|
||||
_writer.WriteOperation(RagonOperation.SNAPSHOT);
|
||||
_writer.WriteUShort((ushort) _readyPlayers.Length);
|
||||
@@ -367,7 +369,7 @@ namespace Ragon.Core
|
||||
_writer.WriteUShort(entity.OwnerId);
|
||||
_writer.WriteUShort((ushort) payload.Length);
|
||||
_writer.WriteData(ref payload);
|
||||
|
||||
|
||||
entity.WriteSnapshot(_writer);
|
||||
}
|
||||
|
||||
@@ -384,7 +386,7 @@ namespace Ragon.Core
|
||||
_writer.WriteUShort(entity.OwnerId);
|
||||
_writer.WriteUShort((ushort) payload.Length);
|
||||
_writer.WriteData(ref payload);
|
||||
|
||||
|
||||
entity.WriteSnapshot(_writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ public class RoomManager
|
||||
{
|
||||
if (existRoom.Map == map && existRoom.PlayersCount < existRoom.PlayersMax)
|
||||
{
|
||||
_logger.Trace($"Player ({player.PlayerName}|{player.Id}) joined to room with Id {roomId}");
|
||||
_logger.Trace($"Player ({player.PlayerName}|{player.Id}) joined to room with Id {existRoom.Id}");
|
||||
|
||||
existRoom.AddPlayer(player, payload);
|
||||
_roomsBySocket.Add(player.PeerId, existRoom);
|
||||
|
||||
@@ -27,6 +27,8 @@ namespace Ragon.Core
|
||||
|
||||
public void Start(ushort port, int connections, uint protocol)
|
||||
{
|
||||
Library.Initialize();
|
||||
|
||||
_address = default;
|
||||
_address.Port = port;
|
||||
_peers = new Peer[connections];
|
||||
@@ -146,6 +148,8 @@ namespace Ragon.Core
|
||||
public void Stop()
|
||||
{
|
||||
_host?.Dispose();
|
||||
|
||||
Library.Deinitialize();
|
||||
}
|
||||
|
||||
private bool IsValidProtocol(uint protocol)
|
||||
|
||||
@@ -75,7 +75,14 @@ public class WebSocketServer : ISocketServer
|
||||
{
|
||||
if (_webSockets.TryGetValue(evnt.PeerId, out var ws) && ws.State == WebSocketState.Open)
|
||||
{
|
||||
await ws.SendAsync(evnt.Data, WebSocketMessageType.Binary, WebSocketMessageFlags.EndOfMessage, CancellationToken.None);
|
||||
try
|
||||
{
|
||||
await ws.SendAsync(evnt.Data, WebSocketMessageType.Binary, WebSocketMessageFlags.EndOfMessage, CancellationToken.None);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@ Ragon is fully free, small and high perfomance room based game server with plugi
|
||||
- Simple matchmaking
|
||||
- Room based architecture
|
||||
- Сustomizable authorization
|
||||
- Сustomizable server-side logic via plugins with flexible API
|
||||
- No CCU limitations*
|
||||
- Сustomizable server-side logic via plugins with flexible API*(2)
|
||||
- No CCU limitations*(1)
|
||||
- No Room count limitations
|
||||
- Reliable UDP
|
||||
|
||||
@@ -27,10 +27,11 @@ Ragon is fully free, small and high perfomance room based game server with plugi
|
||||
|
||||
### Dependencies
|
||||
* ENet-Sharp [v2.4.8]
|
||||
* NetStack [latest]
|
||||
|
||||
### License
|
||||
MIT
|
||||
|
||||
### Tips
|
||||
\* Limited to 4095 CCU by library ENet-Sharp
|
||||
\* Limited to 4095 CCU by library ENet-Sharp (1)
|
||||
|
||||
\* Non finally (2)
|
||||
|
||||
Reference in New Issue
Block a user