Compare commits

..

4 Commits

Author SHA1 Message Date
edmand46 06ff76fe0b fixed: second migration 2022-12-01 22:24:03 +04:00
edmand46 c92b5a5bc4 chore: update readme 2022-11-30 23:56:17 +04:00
edmand46 f83d3ea0c7 chore: update version 2022-11-13 18:54:23 +04:00
edmand46 3564eb2adc feat: added except invoker target 2022-11-13 18:53:56 +04:00
8 changed files with 27 additions and 18 deletions
+1
View File
@@ -4,6 +4,7 @@ namespace Ragon.Common
{
Owner,
ExceptOwner,
ExceptInvoker,
All,
}
}
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -21,7 +21,7 @@ namespace Ragon.Core
public int MaxRooms;
private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
private static readonly string _serverVersion = "1.0.24-rc";
private static readonly string _serverVersion = "1.0.26-rc";
private static void CopyrightInfo()
{
+7 -2
View File
@@ -81,7 +81,7 @@ public class Entity
serializer.WriteData(ref payload);
var sendData = serializer.ToArray();
Send(targetMode, sendData);
RouteEvent(peerId, targetMode, sendData);
}
public void ReadState(uint peerId, RagonSerializer serializer)
@@ -208,7 +208,7 @@ public class Entity
_room.BroadcastToReady(sendData, DeliveryType.Reliable);
}
void Send(RagonTarget targetMode, byte[] sendData)
void RouteEvent(ushort peerId, RagonTarget targetMode, byte[] sendData)
{
switch (targetMode)
{
@@ -222,6 +222,11 @@ public class Entity
_room.BroadcastToReady(sendData, new [] { OwnerId }, DeliveryType.Reliable);
break;
}
case RagonTarget.ExceptInvoker:
{
_room.BroadcastToReady(sendData, new[] {peerId}, DeliveryType.Reliable);
break;
}
case RagonTarget.All:
{
_room.BroadcastToReady(sendData, DeliveryType.Reliable);
+7 -5
View File
@@ -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);
}
@@ -219,8 +217,6 @@ namespace Ragon.Core
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);
+1 -1
View File
@@ -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);
+5 -4
View File
@@ -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)