协议定义

This commit is contained in:
2025-08-22 00:08:41 +08:00
parent ac6c79fc17
commit 8c3be0a5bb
8 changed files with 574 additions and 95 deletions

View File

@@ -135,6 +135,7 @@ namespace Fantasy
Currency.Clear();
Slots.Clear();
Skills.Clear();
MapId = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<RoleInfo>(this);
#endif
@@ -155,6 +156,8 @@ namespace Fantasy
public List<KeyValueInt64> Slots = new List<KeyValueInt64>();
[ProtoMember(8)]
public List<SkillInfo> Skills = new List<SkillInfo>();
[ProtoMember(9)]
public int MapId { get; set; }
}
/// <summary>
/// 角色信息
@@ -174,6 +177,7 @@ namespace Fantasy
Country = default;
Level = default;
Vip = default;
MapId = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<RoleSimpleInfo>(this);
#endif
@@ -190,6 +194,8 @@ namespace Fantasy
public int Level { get; set; }
[ProtoMember(6)]
public bool Vip { get; set; }
[ProtoMember(7)]
public int MapId { get; set; }
}
/// <summary>
/// VIP信息

View File

@@ -0,0 +1,468 @@
using ProtoBuf;
using System.Collections.Generic;
using MongoDB.Bson.Serialization.Attributes;
using Fantasy;
using Fantasy.Network.Interface;
using Fantasy.Serialize;
// ReSharper disable InconsistentNaming
// ReSharper disable RedundantUsingDirective
// ReSharper disable RedundantOverriddenMember
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable CheckNamespace
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
#pragma warning disable CS8618
namespace Fantasy
{
[ProtoContract]
public partial class RoleGearItemInfo : AMessage, IProto
{
public static RoleGearItemInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<RoleGearItemInfo>();
}
public override void Dispose()
{
Id = default;
ConfigId = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<RoleGearItemInfo>(this);
#endif
}
[ProtoMember(1)]
public long Id { get; set; }
[ProtoMember(2)]
public int ConfigId { get; set; }
}
[ProtoContract]
public partial class RoleGearInfo : AMessage, IProto
{
public static RoleGearInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<RoleGearInfo>();
}
public override void Dispose()
{
Rod = default;
Reel = default;
Bobber = default;
Hook = default;
Bait = default;
Lure = default;
Weight = default;
Line = default;
Leader = default;
Feeder = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<RoleGearInfo>(this);
#endif
}
[ProtoMember(1)]
public RoleGearItemInfo Rod { get; set; }
[ProtoMember(2)]
public RoleGearItemInfo Reel { get; set; }
[ProtoMember(3)]
public RoleGearItemInfo Bobber { get; set; }
[ProtoMember(4)]
public RoleGearItemInfo Hook { get; set; }
[ProtoMember(5)]
public RoleGearItemInfo Bait { get; set; }
[ProtoMember(6)]
public RoleGearItemInfo Lure { get; set; }
[ProtoMember(7)]
public RoleGearItemInfo Weight { get; set; }
[ProtoMember(8)]
public RoleGearItemInfo Line { get; set; }
[ProtoMember(9)]
public RoleGearItemInfo Leader { get; set; }
[ProtoMember(10)]
public RoleGearItemInfo Feeder { get; set; }
}
[ProtoContract]
public partial class Vector3Info : AMessage, IProto
{
public static Vector3Info Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Vector3Info>();
}
public override void Dispose()
{
x = default;
y = default;
z = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Vector3Info>(this);
#endif
}
[ProtoMember(1)]
public float x { get; set; }
[ProtoMember(2)]
public float y { get; set; }
[ProtoMember(3)]
public float z { get; set; }
}
[ProtoContract]
public partial class QuaternionInfo : AMessage, IProto
{
public static QuaternionInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<QuaternionInfo>();
}
public override void Dispose()
{
x = default;
y = default;
z = default;
w = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<QuaternionInfo>(this);
#endif
}
[ProtoMember(1)]
public float x { get; set; }
[ProtoMember(2)]
public float y { get; set; }
[ProtoMember(3)]
public float z { get; set; }
[ProtoMember(4)]
public float w { get; set; }
}
[ProtoContract]
public partial class RoleFishingInfo : AMessage, IProto
{
public static RoleFishingInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<RoleFishingInfo>();
}
public override void Dispose()
{
LineLength = default;
ReelSpeed = default;
OpenLight = default;
RodSetting = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<RoleFishingInfo>(this);
#endif
}
[ProtoMember(1)]
public float LineLength { get; set; }
[ProtoMember(2)]
public float ReelSpeed { get; set; }
[ProtoMember(3)]
public bool OpenLight { get; set; }
[ProtoMember(4)]
public int RodSetting { get; set; }
}
[ProtoContract]
public partial class RoleStateInfo : AMessage, IProto
{
public static RoleStateInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<RoleStateInfo>();
}
public override void Dispose()
{
State = default;
Args.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<RoleStateInfo>(this);
#endif
}
[ProtoMember(1)]
public int State { get; set; }
[ProtoMember(2)]
public List<string> Args = new List<string>();
}
[ProtoContract]
public partial class MapRoleInfo : AMessage, IProto
{
public static MapRoleInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<MapRoleInfo>();
}
public override void Dispose()
{
Id = default;
RoleInfo = default;
Location = default;
State = default;
Gears = default;
FishingInfo = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<MapRoleInfo>(this);
#endif
}
[ProtoMember(1)]
public long Id { get; set; }
[ProtoMember(2)]
public RoleSimpleInfo RoleInfo { get; set; }
[ProtoMember(3)]
public MapRolePositionInfo Location { get; set; }
[ProtoMember(4)]
public RoleStateInfo State { get; set; }
[ProtoMember(5)]
public RoleGearInfo Gears { get; set; }
[ProtoMember(6)]
public RoleFishingInfo FishingInfo { get; set; }
}
[ProtoContract]
public partial class MapRolePositionInfo : AMessage, IProto
{
public static MapRolePositionInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<MapRolePositionInfo>();
}
public override void Dispose()
{
Position = default;
Rotation = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<MapRolePositionInfo>(this);
#endif
}
[ProtoMember(1)]
public Vector3Info Position { get; set; }
[ProtoMember(2)]
public QuaternionInfo Rotation { get; set; }
}
[ProtoContract]
public partial class Map2C_CreateMapResponse : AMessage, ICustomRouteResponse, IProto
{
public static Map2C_CreateMapResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_CreateMapResponse>();
}
public override void Dispose()
{
ErrorCode = default;
Roles.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_CreateMapResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Map2C_CreateMapResponse; }
[ProtoMember(1)]
public List<MapRoleInfo> Roles = new List<MapRoleInfo>();
[ProtoMember(2)]
public uint ErrorCode { get; set; }
}
[ProtoContract]
public partial class C2Map_EnterMapRequest : AMessage, ICustomRouteRequest, IProto
{
public static C2Map_EnterMapRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Map_EnterMapRequest>();
}
public override void Dispose()
{
MapId = default;
RoomId = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Map_EnterMapRequest>(this);
#endif
}
[ProtoIgnore]
public Map2C_EnterMapResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2Map_EnterMapRequest; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.MapRoute;
[ProtoMember(1)]
public int MapId { get; set; }
[ProtoMember(2)]
public long RoomId { get; set; }
}
[ProtoContract]
public partial class Map2C_EnterMapResponse : AMessage, ICustomRouteResponse, IProto
{
public static Map2C_EnterMapResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_EnterMapResponse>();
}
public override void Dispose()
{
ErrorCode = default;
Roles.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_EnterMapResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Map2C_EnterMapResponse; }
[ProtoMember(1)]
public List<MapRoleInfo> Roles = new List<MapRoleInfo>();
[ProtoMember(2)]
public uint ErrorCode { get; set; }
}
[ProtoContract]
public partial class C2Map_Move : AMessage, ICustomRouteMessage, IProto
{
public static C2Map_Move Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Map_Move>();
}
public override void Dispose()
{
Location = default;
IsStop = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Map_Move>(this);
#endif
}
public uint OpCode() { return OuterOpcode.C2Map_Move; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.MapRoute;
[ProtoMember(1)]
public MapRolePositionInfo Location { get; set; }
[ProtoMember(2)]
public bool IsStop { get; set; }
}
/// <summary>
/// 用户进入地图
/// </summary>
[ProtoContract]
public partial class Map2C_RoleEnterMapNotify : AMessage, ICustomRouteMessage, IProto
{
public static Map2C_RoleEnterMapNotify Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_RoleEnterMapNotify>();
}
public override void Dispose()
{
Info = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_RoleEnterMapNotify>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Map2C_RoleEnterMapNotify; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.MapRoute;
[ProtoMember(1)]
public MapRoleInfo Info { get; set; }
}
/// <summary>
/// 用户离开地图
/// </summary>
[ProtoContract]
public partial class Map2C_RoleExitMapNotify : AMessage, ICustomRouteMessage, IProto
{
public static Map2C_RoleExitMapNotify Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_RoleExitMapNotify>();
}
public override void Dispose()
{
Id = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_RoleExitMapNotify>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Map2C_RoleExitMapNotify; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.MapRoute;
[ProtoMember(1)]
public long Id { get; set; }
}
/// <summary>
/// 玩家状态变化同步
/// </summary>
[ProtoContract]
public partial class Map2C_RoleStateNotify : AMessage, ICustomRouteMessage, IProto
{
public static Map2C_RoleStateNotify Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_RoleStateNotify>();
}
public override void Dispose()
{
Id = default;
State = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_RoleStateNotify>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Map2C_RoleStateNotify; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.MapRoute;
[ProtoMember(1)]
public long Id { get; set; }
[ProtoMember(2)]
public RoleStateInfo State { get; set; }
}
/// <summary>
/// 玩家钓组状态变化
/// </summary>
[ProtoContract]
public partial class Map2C_RoleGearStateNotify : AMessage, ICustomRouteMessage, IProto
{
public static Map2C_RoleGearStateNotify Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_RoleGearStateNotify>();
}
public override void Dispose()
{
Id = default;
State = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_RoleGearStateNotify>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Map2C_RoleGearStateNotify; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.MapRoute;
[ProtoMember(1)]
public long Id { get; set; }
[ProtoMember(2)]
public RoleFishingInfo State { get; set; }
}
/// <summary>
/// 玩家钓组变化
/// </summary>
[ProtoContract]
public partial class Map2C_RoleGearChangeNotify : AMessage, ICustomRouteMessage, IProto
{
public static Map2C_RoleGearChangeNotify Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_RoleGearChangeNotify>();
}
public override void Dispose()
{
Id = default;
Gears = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_RoleGearChangeNotify>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Map2C_RoleGearChangeNotify; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.MapRoute;
[ProtoMember(1)]
public long Id { get; set; }
[ProtoMember(2)]
public RoleGearInfo Gears { get; set; }
}
/// <summary>
/// 玩家位置变化
/// </summary>
[ProtoContract]
public partial class Map2C_MoveNotify : AMessage, IProto
{
public static Map2C_MoveNotify Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Map2C_MoveNotify>();
}
public override void Dispose()
{
Id = default;
Location = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_MoveNotify>(this);
#endif
}
[ProtoMember(1)]
public long Id { get; set; }
[ProtoMember(2)]
public MapRolePositionInfo Location { get; set; }
}
}

View File

@@ -100,14 +100,14 @@ namespace Fantasy
public override void Dispose()
{
ErrorCode = default;
GameAccountInfo = default;
RoleId = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2C_LoginResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.G2C_LoginResponse; }
[ProtoMember(1)]
public GameAccountInfo GameAccountInfo { get; set; }
public long RoleId { get; set; }
[ProtoMember(2)]
public uint ErrorCode { get; set; }
}
@@ -129,29 +129,6 @@ namespace Fantasy
}
public uint OpCode() { return OuterOpcode.G2C_RepeatLogin; }
}
/// <summary>
/// GameAccount实体类
/// </summary>
[ProtoContract]
public partial class GameAccountInfo : AMessage, IProto
{
public static GameAccountInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<GameAccountInfo>();
}
public override void Dispose()
{
CreateTime = default;
LoginTime = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<GameAccountInfo>(this);
#endif
}
[ProtoMember(1)]
public long CreateTime { get; set; }
[ProtoMember(2)]
public long LoginTime { get; set; }
}
[ProtoContract]
public partial class C2Game_GetRoleInfoRequest : AMessage, ICustomRouteRequest, IProto
{
@@ -181,15 +158,18 @@ namespace Fantasy
public override void Dispose()
{
ErrorCode = default;
Roles = default;
RoleInfo = default;
RoomId = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_GetRoleInfoResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_GetRoleInfoResponse; }
[ProtoMember(1)]
public RoleSimpleInfo Roles { get; set; }
public RoleInfo RoleInfo { get; set; }
[ProtoMember(2)]
public long RoomId { get; set; }
[ProtoMember(3)]
public uint ErrorCode { get; set; }
}
}

View File

@@ -2,44 +2,53 @@ namespace Fantasy
{
public static partial class OuterOpcode
{
public const uint Map2C_CreateMapResponse = 2415929105;
public const uint C2Map_EnterMapRequest = 2281711377;
public const uint Map2C_EnterMapResponse = 2415929106;
public const uint C2Map_Move = 2147493649;
public const uint Map2C_RoleEnterMapNotify = 2147493650;
public const uint Map2C_RoleExitMapNotify = 2147493651;
public const uint Map2C_RoleStateNotify = 2147493652;
public const uint Map2C_RoleGearStateNotify = 2147493653;
public const uint Map2C_RoleGearChangeNotify = 2147493654;
public const uint C2A_LoginRequest = 268445457;
public const uint A2C_LoginResponse = 402663185;
public const uint C2G_LoginRequest = 268445458;
public const uint G2C_LoginResponse = 402663186;
public const uint G2C_RepeatLogin = 134227729;
public const uint C2Game_GetRoleInfoRequest = 2281711377;
public const uint Game2C_GetRoleInfoResponse = 2415929105;
public const uint C2S_GetConversationsRequest = 2281711378;
public const uint S2C_GetConversationsResponse = 2415929106;
public const uint C2S_SendMailRequest = 2281711379;
public const uint S2C_SendMailResponse = 2415929107;
public const uint C2S_DeleteMailRequest = 2281711380;
public const uint S2C_DeleteMailResponse = 2415929108;
public const uint S2C_HaveMail = 2147493649;
public const uint S2C_MailState = 2147493650;
public const uint C2S_CreateChannelRequest = 2281711381;
public const uint S2C_CreateChannelResponse = 2415929109;
public const uint C2S_JoinChannelRequest = 2281711382;
public const uint S2C_JoinChannelResponse = 2415929110;
public const uint C2S_SendMessageRequest = 2281711383;
public const uint S2C_SendMessageResponse = 2415929111;
public const uint S2C_Message = 2147493651;
public const uint C2S_CreateClubRequest = 2281711384;
public const uint S2C_CreateClubResponse = 2415929112;
public const uint C2S_GetClubInfoRequest = 2281711385;
public const uint S2C_GetClubInfoResponse = 2415929113;
public const uint C2S_GetMemberListRequest = 2281711386;
public const uint S2C_GetMemberListResponse = 2415929114;
public const uint C2S_GetClubListRequest = 2281711387;
public const uint S2C_GetClubListResponse = 2415929115;
public const uint C2S_JoinClubRequest = 2281711388;
public const uint S2C_JoinClubResponse = 2415929116;
public const uint C2S_LeaveClubRequest = 2281711389;
public const uint S2C_LeaveClubResponse = 2415929117;
public const uint C2S_DissolveClubRequest = 2281711390;
public const uint S2C_DissolveClubResponse = 2415929118;
public const uint C2S_DisposeJoinRequest = 2281711391;
public const uint S2C_DisposeJoinResponse = 2415929119;
public const uint S2C_ClubChange = 2147493652;
public const uint C2Game_GetRoleInfoRequest = 2281711378;
public const uint Game2C_GetRoleInfoResponse = 2415929107;
public const uint C2S_GetConversationsRequest = 2281711379;
public const uint S2C_GetConversationsResponse = 2415929108;
public const uint C2S_SendMailRequest = 2281711380;
public const uint S2C_SendMailResponse = 2415929109;
public const uint C2S_DeleteMailRequest = 2281711381;
public const uint S2C_DeleteMailResponse = 2415929110;
public const uint S2C_HaveMail = 2147493655;
public const uint S2C_MailState = 2147493656;
public const uint C2S_CreateChannelRequest = 2281711382;
public const uint S2C_CreateChannelResponse = 2415929111;
public const uint C2S_JoinChannelRequest = 2281711383;
public const uint S2C_JoinChannelResponse = 2415929112;
public const uint C2S_SendMessageRequest = 2281711384;
public const uint S2C_SendMessageResponse = 2415929113;
public const uint S2C_Message = 2147493657;
public const uint C2S_CreateClubRequest = 2281711385;
public const uint S2C_CreateClubResponse = 2415929114;
public const uint C2S_GetClubInfoRequest = 2281711386;
public const uint S2C_GetClubInfoResponse = 2415929115;
public const uint C2S_GetMemberListRequest = 2281711387;
public const uint S2C_GetMemberListResponse = 2415929116;
public const uint C2S_GetClubListRequest = 2281711388;
public const uint S2C_GetClubListResponse = 2415929117;
public const uint C2S_JoinClubRequest = 2281711389;
public const uint S2C_JoinClubResponse = 2415929118;
public const uint C2S_LeaveClubRequest = 2281711390;
public const uint S2C_LeaveClubResponse = 2415929119;
public const uint C2S_DissolveClubRequest = 2281711391;
public const uint S2C_DissolveClubResponse = 2415929120;
public const uint C2S_DisposeJoinRequest = 2281711392;
public const uint S2C_DisposeJoinResponse = 2415929121;
public const uint S2C_ClubChange = 2147493658;
}
}

View File

@@ -6,5 +6,6 @@ namespace Fantasy
public const int GateRoute = 1001; // Gate
public const int SocialRoute = 1002; // Social
public const int GameRoute = 1003; // Game
public const int MapRoute = 1004; // Map
}
}

View File

@@ -1,4 +1,5 @@
using Fantasy.Entitas;
using Unity.Mathematics;
namespace NB.Map;
@@ -7,4 +8,13 @@ namespace NB.Map;
/// </summary>
public class MapUnit : Entity
{
/// <summary>
/// 位置
/// </summary>
public float3 Position;
/// <summary>
/// 旋转
/// </summary>
public float4 Rotation;
}