新增相关协议
This commit is contained in:
@@ -1,25 +1,28 @@
|
||||
syntax = "proto3";
|
||||
package Sining.Message;
|
||||
///通知游戏服角色进入该游戏服
|
||||
message G2Game_EnterRequest // IRouteRequest,Game2G_EnterResponse
|
||||
message G2Common_EnterRequest // IRouteRequest,G2Common_EnterResponse
|
||||
{
|
||||
int64 AccountId = 1; //账号id
|
||||
int64 GateRouteId = 2; //网关路由地址
|
||||
int32 RouteType = 3; //登陆的路由类型
|
||||
}
|
||||
|
||||
message G2Common_EnterResponse // IRouteResponse
|
||||
{
|
||||
int64 RoleRouteId = 1; //实体的路由id
|
||||
int32 RouteType = 2; //登陆的场景类型
|
||||
}
|
||||
|
||||
message G2Common_ExitRequest // IRouteRequest,Common2G_ExitResponse
|
||||
{
|
||||
int64 AccountId = 1; //账号id
|
||||
int64 GateRouteId = 2;//网关路由地址
|
||||
}
|
||||
|
||||
message Game2G_EnterResponse // IRouteResponse
|
||||
{
|
||||
int64 RoleRouteId = 1; //角色实体的路由id
|
||||
RoleSimpleInfo RoleInfo = 2; //角色信息
|
||||
}
|
||||
message G2Game_ExitRequest // IRouteRequest,Game2G_ExitResponse
|
||||
{
|
||||
int64 AccountId = 1; //账号id
|
||||
int64 GateRouteId = 2;//网关路由地址
|
||||
}
|
||||
|
||||
message Game2G_ExitResponse // IRouteResponse
|
||||
message Common2G_ExitResponse // IRouteResponse
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -36,30 +39,6 @@ message G2S_GetPlayerBasicInfoResponse // IRouteResponse
|
||||
|
||||
|
||||
|
||||
///通知游戏服角色进入该聊天服
|
||||
message G2S_EnterRequest // IRouteRequest,S2G_EnterResponse
|
||||
{
|
||||
RoleSimpleInfo Role = 1; //角色信息
|
||||
int64 GateRouteId = 2;//网关路由地址
|
||||
}
|
||||
|
||||
message S2G_EnterResponse // IRouteResponse
|
||||
{
|
||||
int64 RoleRouteId = 1; //角色实体的路由id
|
||||
}
|
||||
|
||||
message G2S_ExitRequest // IRouteRequest,S2G_ExitResponse
|
||||
{
|
||||
int64 AccountId = 1; //账号id
|
||||
int64 GateRouteId = 2;//网关路由地址
|
||||
}
|
||||
|
||||
message S2G_ExitResponse // IRouteResponse
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
message S2G_ChatMessage // IRouteMessage
|
||||
{
|
||||
ChatMessageInfo Message = 1; //聊天内容
|
||||
|
||||
44
Config/NetworkProtocol/Outer/GameMessage.proto
Normal file
44
Config/NetworkProtocol/Outer/GameMessage.proto
Normal file
@@ -0,0 +1,44 @@
|
||||
syntax = "proto3";
|
||||
package Fantasy.Network.Message;
|
||||
|
||||
/// 请求创建房间
|
||||
message C2Game_CreateRoomRequest // ICustomRouteRequest,Game2C_CreateRoomResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
string Password = 2;//进入密码
|
||||
}
|
||||
|
||||
/// 请求创建房间成功
|
||||
message Game2C_CreateRoomResponse // ICustomRouteResponse
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
int64 RoomId = 2;//房间id
|
||||
}
|
||||
|
||||
/// 请求进入地图
|
||||
message C2Game_EnterMapRequest // ICustomRouteRequest,Game2C_EnterMapResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1; //房间id
|
||||
int32 Type = 2; //进入地图方式
|
||||
}
|
||||
|
||||
/// 请求进入地图响应
|
||||
message Game2C_EnterMapResponse // ICustomRouteResponse
|
||||
{
|
||||
int32 MapId = 1; //地图id
|
||||
int Pos = 2; //位置
|
||||
}
|
||||
|
||||
/// 请求进入房间
|
||||
message C2Game_EnterRoomRequest // ICustomRouteRequest,Game2C_EnterRoomResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1;//房间id
|
||||
string Password = 2;//进入密码
|
||||
}
|
||||
|
||||
/// 请求进入房间响应
|
||||
message Game2C_EnterRoomResponse // ICustomRouteResponse
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
int64 RoomId = 2;//房间id
|
||||
}
|
||||
@@ -1,151 +0,0 @@
|
||||
syntax = "proto3";
|
||||
package Fantasy.Network.Message;
|
||||
|
||||
message UnitGearItemInfo
|
||||
{
|
||||
int64 Id = 1; //唯一id
|
||||
int32 ConfigId = 2; //配置id
|
||||
}
|
||||
|
||||
message UnitGearInfo
|
||||
{
|
||||
UnitGearItemInfo Rod = 1;
|
||||
UnitGearItemInfo Reel = 2;
|
||||
UnitGearItemInfo Bobber = 3;
|
||||
UnitGearItemInfo Hook = 4;
|
||||
UnitGearItemInfo Bait = 5;
|
||||
UnitGearItemInfo Lure = 6;
|
||||
UnitGearItemInfo Weight = 7;
|
||||
UnitGearItemInfo Line = 8;
|
||||
UnitGearItemInfo Leader = 9;
|
||||
UnitGearItemInfo Feeder = 10;
|
||||
}
|
||||
|
||||
message Vector3Info
|
||||
{
|
||||
float x = 1;
|
||||
float y = 2;
|
||||
float z = 3;
|
||||
}
|
||||
message QuaternionInfo
|
||||
{
|
||||
float x = 1;
|
||||
float y = 2;
|
||||
float z = 3;
|
||||
float w = 4;
|
||||
}
|
||||
|
||||
message UnitFishingInfo
|
||||
{
|
||||
float LineLength = 1;//线长度
|
||||
float ReelSpeed = 2;//收线速度
|
||||
bool OpenLight = 3;//打开手电筒
|
||||
int RodSetting = 4;
|
||||
}
|
||||
|
||||
message UnitStateInfo
|
||||
{
|
||||
int32 State = 1; //状态id
|
||||
repeated string Args = 2; //状态参数
|
||||
}
|
||||
|
||||
message MapUnitInfo
|
||||
{
|
||||
int64 Id = 1; //用户id
|
||||
RoleSimpleInfo RoleInfo = 2; //基础信息
|
||||
MapUnitPositionInfo Location = 3; //位置信息
|
||||
UnitStateInfo State = 4; //状态信息
|
||||
UnitGearInfo Gears = 5; //钓组数据
|
||||
UnitFishingInfo FishingInfo = 6; //钓鱼状态信息
|
||||
repeated KeyValueInt32 KV = 7; //属性信息
|
||||
}
|
||||
|
||||
message MapUnitPositionInfo
|
||||
{
|
||||
Vector3Info Position = 1;
|
||||
QuaternionInfo Rotation = 2;
|
||||
}
|
||||
|
||||
message C2Map_CreateRoomRequest // ICustomRouteRequest,Map2C_CreateRoomResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1;//房间id
|
||||
string Password = 2;//进入密码
|
||||
}
|
||||
|
||||
message Map2C_CreateRoomResponse // ICustomRouteResponse
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
int64 RoomId = 2;//房间id
|
||||
}
|
||||
|
||||
message C2Map_EnterRoomRequest // ICustomRouteRequest,Map2C_EnterRoomResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1;//房间id
|
||||
string Password = 2;//进入密码
|
||||
}
|
||||
|
||||
message Map2C_EnterRoomResponse // ICustomRouteResponse
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
int64 RoomId = 2;//房间id
|
||||
}
|
||||
|
||||
message C2Map_EnterMapRequest // ICustomRouteRequest,Map2C_EnterMapResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
int64 RoomId = 2;//房间id,如果联机则有
|
||||
}
|
||||
|
||||
message Map2C_EnterMapResponse // ICustomRouteResponse
|
||||
{
|
||||
repeated MapUnitInfo Roles = 1; //地图玩家列表
|
||||
int64 MapId = 2; //地图id
|
||||
}
|
||||
|
||||
|
||||
message C2Map_Move // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
MapUnitPositionInfo Location = 1;
|
||||
bool IsStop = 2;
|
||||
}
|
||||
|
||||
|
||||
///用户进入地图
|
||||
message Map2C_RoleEnterMapNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
MapUnitInfo Info = 1;
|
||||
}
|
||||
|
||||
///用户离开地图
|
||||
message Map2C_RoleExitMapNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;//离开人员
|
||||
}
|
||||
|
||||
///玩家状态变化同步
|
||||
message Map2C_RoleStateNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;
|
||||
UnitStateInfo State = 2;
|
||||
}
|
||||
|
||||
///玩家钓组状态变化
|
||||
message Map2C_RoleGearStateNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;
|
||||
UnitFishingInfo State = 2;
|
||||
}
|
||||
|
||||
///玩家钓组变化
|
||||
message Map2C_RoleGearChangeNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;
|
||||
UnitGearInfo Gears = 2; //钓组数据
|
||||
}
|
||||
|
||||
///玩家位置变化
|
||||
message Map2C_MoveNotify
|
||||
{
|
||||
int64 Id = 1;
|
||||
MapUnitPositionInfo Location = 2;
|
||||
}
|
||||
@@ -30,6 +30,18 @@ message G2C_LoginResponse // IResponse
|
||||
{
|
||||
int64 RoleId = 1;
|
||||
}
|
||||
|
||||
/// 客户端登陆聊天服
|
||||
message C2G_LoginChatRequest
|
||||
{
|
||||
int32 Type = 1;
|
||||
}
|
||||
/// 客户端登陆聊天服响应
|
||||
message G2C_LoginChatResponse // IResponse
|
||||
{
|
||||
int64 RouteId = 1;
|
||||
}
|
||||
|
||||
/// 通知客户端重复登录
|
||||
message G2C_RepeatLogin // IMessage
|
||||
{
|
||||
|
||||
141
Config/NetworkProtocol/Outer/RoomMessage.proto
Normal file
141
Config/NetworkProtocol/Outer/RoomMessage.proto
Normal file
@@ -0,0 +1,141 @@
|
||||
syntax = "proto3";
|
||||
package Fantasy.Network.Message;
|
||||
|
||||
message UnitGearItemInfo
|
||||
{
|
||||
int64 Id = 1; //唯一id
|
||||
int32 ConfigId = 2; //配置id
|
||||
}
|
||||
|
||||
message UnitGearInfo
|
||||
{
|
||||
UnitGearItemInfo Rod = 1;
|
||||
UnitGearItemInfo Reel = 2;
|
||||
UnitGearItemInfo Bobber = 3;
|
||||
UnitGearItemInfo Hook = 4;
|
||||
UnitGearItemInfo Bait = 5;
|
||||
UnitGearItemInfo Lure = 6;
|
||||
UnitGearItemInfo Weight = 7;
|
||||
UnitGearItemInfo Line = 8;
|
||||
UnitGearItemInfo Leader = 9;
|
||||
UnitGearItemInfo Feeder = 10;
|
||||
}
|
||||
|
||||
message Vector3Info
|
||||
{
|
||||
float x = 1;
|
||||
float y = 2;
|
||||
float z = 3;
|
||||
}
|
||||
message QuaternionInfo
|
||||
{
|
||||
float x = 1;
|
||||
float y = 2;
|
||||
float z = 3;
|
||||
float w = 4;
|
||||
}
|
||||
|
||||
message UnitFishingInfo
|
||||
{
|
||||
float LineLength = 1;//线长度
|
||||
float ReelSpeed = 2;//收线速度
|
||||
bool OpenLight = 3;//打开手电筒
|
||||
int RodSetting = 4;
|
||||
}
|
||||
|
||||
message UnitStateInfo
|
||||
{
|
||||
int32 State = 1; //状态id
|
||||
repeated string Args = 2; //状态参数
|
||||
}
|
||||
|
||||
message MapUnitInfo
|
||||
{
|
||||
int64 Id = 1; //用户id
|
||||
RoleSimpleInfo RoleInfo = 2; //基础信息
|
||||
MapUnitPositionInfo Location = 3; //位置信息
|
||||
UnitStateInfo State = 4; //状态信息
|
||||
UnitGearInfo Gears = 5; //钓组数据
|
||||
UnitFishingInfo FishingInfo = 6; //钓鱼状态信息
|
||||
repeated KeyValueInt32 KV = 7; //属性信息
|
||||
}
|
||||
|
||||
message MapUnitPositionInfo
|
||||
{
|
||||
Vector3Info Position = 1;
|
||||
QuaternionInfo Rotation = 2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
message C2Map_EnterRoomRequest // ICustomRouteRequest,Map2C_EnterRoomResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1;//房间id
|
||||
string Password = 2;//进入密码
|
||||
}
|
||||
|
||||
message Map2C_EnterRoomResponse // ICustomRouteResponse
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
int64 RoomId = 2;//房间id
|
||||
}
|
||||
|
||||
message C2Map_EnterMapRequest // ICustomRouteRequest,Map2C_EnterMapResponse,MapRoute
|
||||
{
|
||||
int32 MapId = 1;//地图id
|
||||
int64 RoomId = 2;//房间id,如果联机则有
|
||||
}
|
||||
|
||||
message Map2C_EnterMapResponse // ICustomRouteResponse
|
||||
{
|
||||
repeated MapUnitInfo Roles = 1; //地图玩家列表
|
||||
int64 MapId = 2; //地图id
|
||||
}
|
||||
|
||||
|
||||
message C2Map_Move // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
MapUnitPositionInfo Location = 1;
|
||||
bool IsStop = 2;
|
||||
}
|
||||
|
||||
|
||||
///用户进入地图
|
||||
message Map2C_RoleEnterMapNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
MapUnitInfo Info = 1;
|
||||
}
|
||||
|
||||
///用户离开地图
|
||||
message Map2C_RoleExitMapNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;//离开人员
|
||||
}
|
||||
|
||||
///玩家状态变化同步
|
||||
message Map2C_RoleStateNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;
|
||||
UnitStateInfo State = 2;
|
||||
}
|
||||
|
||||
///玩家钓组状态变化
|
||||
message Map2C_RoleGearStateNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;
|
||||
UnitFishingInfo State = 2;
|
||||
}
|
||||
|
||||
///玩家钓组变化
|
||||
message Map2C_RoleGearChangeNotify // ICustomRouteMessage,MapRoute
|
||||
{
|
||||
int64 Id = 1;
|
||||
UnitGearInfo Gears = 2; //钓组数据
|
||||
}
|
||||
|
||||
///玩家位置变化
|
||||
message Map2C_MoveNotify
|
||||
{
|
||||
int64 Id = 1;
|
||||
MapUnitPositionInfo Location = 2;
|
||||
}
|
||||
@@ -2,5 +2,4 @@
|
||||
GateRoute = 1001 // Gate
|
||||
SocialRoute = 1002 // Social
|
||||
GameRoute = 1003 // Game
|
||||
MapRoute = 1004 // Map
|
||||
RoomRoute = 1005 // Room
|
||||
MapRoute = 1004 // 地图
|
||||
@@ -29,9 +29,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Room\" />
|
||||
<Folder Include="Social\Entity\" />
|
||||
<Folder Include="Social\Mail\" />
|
||||
<Folder Include="Generate\NetworkProtocol\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -8,7 +8,6 @@ public class GateUnit : Entity
|
||||
public bool Kick;
|
||||
public long AccountID;
|
||||
public int Region;
|
||||
public long GameSceneRouteId;
|
||||
public long ChatSceneRouteId;
|
||||
public Dictionary<int,long> SceneRoutes = new Dictionary<int, long>();
|
||||
public EntityReference<Session> Session;
|
||||
}
|
||||
185
Entity/Generate/NetworkProtocol/GameMessage.cs
Normal file
185
Entity/Generate/NetworkProtocol/GameMessage.cs
Normal file
@@ -0,0 +1,185 @@
|
||||
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
|
||||
{
|
||||
/// <summary>
|
||||
/// 请求创建房间
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Game_CreateRoomRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Game_CreateRoomRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Game_CreateRoomRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
MapId = default;
|
||||
Password = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Game_CreateRoomRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Game2C_CreateRoomResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Game_CreateRoomRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.MapRoute;
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string Password { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求创建房间成功
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Game2C_CreateRoomResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Game2C_CreateRoomResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_CreateRoomResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
MapId = default;
|
||||
RoomId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_CreateRoomResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_CreateRoomResponse; }
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long RoomId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求进入地图
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Game_EnterMapRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Game_EnterMapRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Game_EnterMapRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
MapId = default;
|
||||
Type = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Game_EnterMapRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Game2C_EnterMapResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Game_EnterMapRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.MapRoute;
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public int Type { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求进入地图响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Game2C_EnterMapResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Game2C_EnterMapResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_EnterMapResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
MapId = default;
|
||||
Pos = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_EnterMapResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_EnterMapResponse; }
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public int Pos { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求进入房间
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Game_EnterRoomRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Game_EnterRoomRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Game_EnterRoomRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
MapId = default;
|
||||
Password = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Game_EnterRoomRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Game2C_EnterRoomResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Game_EnterRoomRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.MapRoute;
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string Password { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求进入房间响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Game2C_EnterRoomResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Game2C_EnterRoomResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_EnterRoomResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
MapId = default;
|
||||
RoomId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_EnterRoomResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_EnterRoomResponse; }
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long RoomId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -21,90 +21,93 @@ namespace Fantasy
|
||||
/// 通知游戏服角色进入该游戏服
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class G2Game_EnterRequest : AMessage, IRouteRequest, IProto
|
||||
public partial class G2Common_EnterRequest : AMessage, IRouteRequest, IProto
|
||||
{
|
||||
public static G2Game_EnterRequest Create(Scene scene)
|
||||
public static G2Common_EnterRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<G2Game_EnterRequest>();
|
||||
return scene.MessagePoolComponent.Rent<G2Common_EnterRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
AccountId = default;
|
||||
GateRouteId = default;
|
||||
RouteType = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<G2Game_EnterRequest>(this);
|
||||
GetScene().MessagePoolComponent.Return<G2Common_EnterRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Game2G_EnterResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return InnerOpcode.G2Game_EnterRequest; }
|
||||
public G2Common_EnterResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return InnerOpcode.G2Common_EnterRequest; }
|
||||
[ProtoMember(1)]
|
||||
public long AccountId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long GateRouteId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public int RouteType { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class Game2G_EnterResponse : AMessage, IRouteResponse, IProto
|
||||
public partial class G2Common_EnterResponse : AMessage, IRouteResponse, IProto
|
||||
{
|
||||
public static Game2G_EnterResponse Create(Scene scene)
|
||||
public static G2Common_EnterResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2G_EnterResponse>();
|
||||
return scene.MessagePoolComponent.Rent<G2Common_EnterResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
RoleRouteId = default;
|
||||
RoleInfo = default;
|
||||
RouteType = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2G_EnterResponse>(this);
|
||||
GetScene().MessagePoolComponent.Return<G2Common_EnterResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return InnerOpcode.Game2G_EnterResponse; }
|
||||
public uint OpCode() { return InnerOpcode.G2Common_EnterResponse; }
|
||||
[ProtoMember(1)]
|
||||
public long RoleRouteId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public RoleSimpleInfo RoleInfo { get; set; }
|
||||
public int RouteType { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class G2Game_ExitRequest : AMessage, IRouteRequest, IProto
|
||||
public partial class G2Common_ExitRequest : AMessage, IRouteRequest, IProto
|
||||
{
|
||||
public static G2Game_ExitRequest Create(Scene scene)
|
||||
public static G2Common_ExitRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<G2Game_ExitRequest>();
|
||||
return scene.MessagePoolComponent.Rent<G2Common_ExitRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
AccountId = default;
|
||||
GateRouteId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<G2Game_ExitRequest>(this);
|
||||
GetScene().MessagePoolComponent.Return<G2Common_ExitRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Game2G_ExitResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return InnerOpcode.G2Game_ExitRequest; }
|
||||
public Common2G_ExitResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return InnerOpcode.G2Common_ExitRequest; }
|
||||
[ProtoMember(1)]
|
||||
public long AccountId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long GateRouteId { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class Game2G_ExitResponse : AMessage, IRouteResponse, IProto
|
||||
public partial class Common2G_ExitResponse : AMessage, IRouteResponse, IProto
|
||||
{
|
||||
public static Game2G_ExitResponse Create(Scene scene)
|
||||
public static Common2G_ExitResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2G_ExitResponse>();
|
||||
return scene.MessagePoolComponent.Rent<Common2G_ExitResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2G_ExitResponse>(this);
|
||||
GetScene().MessagePoolComponent.Return<Common2G_ExitResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return InnerOpcode.Game2G_ExitResponse; }
|
||||
public uint OpCode() { return InnerOpcode.Common2G_ExitResponse; }
|
||||
[ProtoMember(1)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
@@ -155,94 +158,6 @@ namespace Fantasy
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 通知游戏服角色进入该聊天服
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class G2S_EnterRequest : AMessage, IRouteRequest, IProto
|
||||
{
|
||||
public static G2S_EnterRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<G2S_EnterRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Role = default;
|
||||
GateRouteId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<G2S_EnterRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2G_EnterResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return InnerOpcode.G2S_EnterRequest; }
|
||||
[ProtoMember(1)]
|
||||
public RoleSimpleInfo Role { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long GateRouteId { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class S2G_EnterResponse : AMessage, IRouteResponse, IProto
|
||||
{
|
||||
public static S2G_EnterResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2G_EnterResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
RoleRouteId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2G_EnterResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return InnerOpcode.S2G_EnterResponse; }
|
||||
[ProtoMember(1)]
|
||||
public long RoleRouteId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class G2S_ExitRequest : AMessage, IRouteRequest, IProto
|
||||
{
|
||||
public static G2S_ExitRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<G2S_ExitRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
AccountId = default;
|
||||
GateRouteId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<G2S_ExitRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2G_ExitResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return InnerOpcode.G2S_ExitRequest; }
|
||||
[ProtoMember(1)]
|
||||
public long AccountId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long GateRouteId { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class S2G_ExitResponse : AMessage, IRouteResponse, IProto
|
||||
{
|
||||
public static S2G_ExitResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2G_ExitResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2G_ExitResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return InnerOpcode.S2G_ExitResponse; }
|
||||
[ProtoMember(1)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class S2G_ChatMessage : AMessage, IRouteMessage, IProto
|
||||
{
|
||||
|
||||
@@ -2,16 +2,12 @@ namespace Fantasy
|
||||
{
|
||||
public static partial class InnerOpcode
|
||||
{
|
||||
public const uint G2Game_EnterRequest = 1073751825;
|
||||
public const uint Game2G_EnterResponse = 1207969553;
|
||||
public const uint G2Game_ExitRequest = 1073751826;
|
||||
public const uint Game2G_ExitResponse = 1207969554;
|
||||
public const uint G2Common_EnterRequest = 1073751825;
|
||||
public const uint G2Common_EnterResponse = 1207969553;
|
||||
public const uint G2Common_ExitRequest = 1073751826;
|
||||
public const uint Common2G_ExitResponse = 1207969554;
|
||||
public const uint S2G_GetPlayerBasicInfoRequest = 1073751827;
|
||||
public const uint G2S_GetPlayerBasicInfoResponse = 1207969555;
|
||||
public const uint G2S_EnterRequest = 1073751828;
|
||||
public const uint S2G_EnterResponse = 1207969556;
|
||||
public const uint G2S_ExitRequest = 1073751829;
|
||||
public const uint S2G_ExitResponse = 1207969557;
|
||||
public const uint S2G_ChatMessage = 939534097;
|
||||
public const uint Club2Chat_CreateChannel = 939534098;
|
||||
}
|
||||
|
||||
@@ -17,486 +17,4 @@ using Fantasy.Serialize;
|
||||
|
||||
namespace Fantasy
|
||||
{
|
||||
[ProtoContract]
|
||||
public partial class UnitGearItemInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitGearItemInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitGearItemInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Id = default;
|
||||
ConfigId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<UnitGearItemInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public long Id { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public int ConfigId { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class UnitGearInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitGearInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitGearInfo>();
|
||||
}
|
||||
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<UnitGearInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public UnitGearItemInfo Rod { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public UnitGearItemInfo Reel { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public UnitGearItemInfo Bobber { get; set; }
|
||||
[ProtoMember(4)]
|
||||
public UnitGearItemInfo Hook { get; set; }
|
||||
[ProtoMember(5)]
|
||||
public UnitGearItemInfo Bait { get; set; }
|
||||
[ProtoMember(6)]
|
||||
public UnitGearItemInfo Lure { get; set; }
|
||||
[ProtoMember(7)]
|
||||
public UnitGearItemInfo Weight { get; set; }
|
||||
[ProtoMember(8)]
|
||||
public UnitGearItemInfo Line { get; set; }
|
||||
[ProtoMember(9)]
|
||||
public UnitGearItemInfo Leader { get; set; }
|
||||
[ProtoMember(10)]
|
||||
public UnitGearItemInfo 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 UnitFishingInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitFishingInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitFishingInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
LineLength = default;
|
||||
ReelSpeed = default;
|
||||
OpenLight = default;
|
||||
RodSetting = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<UnitFishingInfo>(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 UnitStateInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitStateInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitStateInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
State = default;
|
||||
Args.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<UnitStateInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public int State { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public List<string> Args = new List<string>();
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class MapUnitInfo : AMessage, IProto
|
||||
{
|
||||
public static MapUnitInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<MapUnitInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Id = default;
|
||||
RoleInfo = default;
|
||||
Location = default;
|
||||
State = default;
|
||||
Gears = default;
|
||||
FishingInfo = default;
|
||||
KV.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<MapUnitInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public long Id { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public RoleSimpleInfo RoleInfo { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public MapUnitPositionInfo Location { get; set; }
|
||||
[ProtoMember(4)]
|
||||
public UnitStateInfo State { get; set; }
|
||||
[ProtoMember(5)]
|
||||
public UnitGearInfo Gears { get; set; }
|
||||
[ProtoMember(6)]
|
||||
public UnitFishingInfo FishingInfo { get; set; }
|
||||
[ProtoMember(7)]
|
||||
public List<KeyValueInt32> KV = new List<KeyValueInt32>();
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class MapUnitPositionInfo : AMessage, IProto
|
||||
{
|
||||
public static MapUnitPositionInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<MapUnitPositionInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Position = default;
|
||||
Rotation = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<MapUnitPositionInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public Vector3Info Position { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public QuaternionInfo Rotation { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class C2Map_CreateRoomRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Map_CreateRoomRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Map_CreateRoomRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
MapId = default;
|
||||
Password = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Map_CreateRoomRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Map2C_CreateRoomResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Map_CreateRoomRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.MapRoute;
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string Password { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class Map2C_CreateRoomResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Map2C_CreateRoomResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Map2C_CreateRoomResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
MapId = default;
|
||||
RoomId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Map2C_CreateRoomResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Map2C_CreateRoomResponse; }
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long RoomId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
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();
|
||||
MapId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Map2C_EnterMapResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Map2C_EnterMapResponse; }
|
||||
[ProtoMember(1)]
|
||||
public List<MapUnitInfo> Roles = new List<MapUnitInfo>();
|
||||
[ProtoMember(2)]
|
||||
public long MapId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
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 MapUnitPositionInfo 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 MapUnitInfo 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 UnitStateInfo 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 UnitFishingInfo 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 UnitGearInfo 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 MapUnitPositionInfo Location { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,6 +112,50 @@ namespace Fantasy
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 客户端登陆聊天服
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2G_LoginChatRequest : AMessage, IProto
|
||||
{
|
||||
public static C2G_LoginChatRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2G_LoginChatRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Type = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2G_LoginChatRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public int Type { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 客户端登陆聊天服响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class G2C_LoginChatResponse : AMessage, IResponse, IProto
|
||||
{
|
||||
public static G2C_LoginChatResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<G2C_LoginChatResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
RouteId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<G2C_LoginChatResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.G2C_LoginChatResponse; }
|
||||
[ProtoMember(1)]
|
||||
public long RouteId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 通知客户端重复登录
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
|
||||
@@ -2,54 +2,61 @@ namespace Fantasy
|
||||
{
|
||||
public static partial class OuterOpcode
|
||||
{
|
||||
public const uint C2Map_CreateRoomRequest = 2281711377;
|
||||
public const uint Map2C_CreateRoomResponse = 2415929105;
|
||||
public const uint C2Map_EnterMapRequest = 2281711378;
|
||||
public const uint Map2C_EnterMapResponse = 2415929106;
|
||||
public const uint C2Game_CreateRoomRequest = 2281711377;
|
||||
public const uint Game2C_CreateRoomResponse = 2415929105;
|
||||
public const uint C2Game_EnterMapRequest = 2281711378;
|
||||
public const uint Game2C_EnterMapResponse = 2415929106;
|
||||
public const uint C2Game_EnterRoomRequest = 2281711379;
|
||||
public const uint Game2C_EnterRoomResponse = 2415929107;
|
||||
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_LoginChatResponse = 402663187;
|
||||
public const uint G2C_RepeatLogin = 134227729;
|
||||
public const uint C2Game_GetRoleInfoRequest = 2281711380;
|
||||
public const uint Game2C_GetRoleInfoResponse = 2415929108;
|
||||
public const uint C2Map_EnterRoomRequest = 2281711381;
|
||||
public const uint Map2C_EnterRoomResponse = 2415929109;
|
||||
public const uint C2Map_EnterMapRequest = 2281711382;
|
||||
public const uint Map2C_EnterMapResponse = 2415929110;
|
||||
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 = 2281711379;
|
||||
public const uint Game2C_GetRoleInfoResponse = 2415929107;
|
||||
public const uint C2S_GetConversationsRequest = 2281711380;
|
||||
public const uint S2C_GetConversationsResponse = 2415929108;
|
||||
public const uint C2S_SendMailRequest = 2281711381;
|
||||
public const uint S2C_SendMailResponse = 2415929109;
|
||||
public const uint C2S_DeleteMailRequest = 2281711382;
|
||||
public const uint S2C_DeleteMailResponse = 2415929110;
|
||||
public const uint C2S_GetConversationsRequest = 2281711383;
|
||||
public const uint S2C_GetConversationsResponse = 2415929111;
|
||||
public const uint C2S_SendMailRequest = 2281711384;
|
||||
public const uint S2C_SendMailResponse = 2415929112;
|
||||
public const uint C2S_DeleteMailRequest = 2281711385;
|
||||
public const uint S2C_DeleteMailResponse = 2415929113;
|
||||
public const uint S2C_HaveMail = 2147493655;
|
||||
public const uint S2C_MailState = 2147493656;
|
||||
public const uint C2S_CreateChannelRequest = 2281711383;
|
||||
public const uint S2C_CreateChannelResponse = 2415929111;
|
||||
public const uint C2S_JoinChannelRequest = 2281711384;
|
||||
public const uint S2C_JoinChannelResponse = 2415929112;
|
||||
public const uint C2S_SendMessageRequest = 2281711385;
|
||||
public const uint S2C_SendMessageResponse = 2415929113;
|
||||
public const uint C2S_CreateChannelRequest = 2281711386;
|
||||
public const uint S2C_CreateChannelResponse = 2415929114;
|
||||
public const uint C2S_JoinChannelRequest = 2281711387;
|
||||
public const uint S2C_JoinChannelResponse = 2415929115;
|
||||
public const uint C2S_SendMessageRequest = 2281711388;
|
||||
public const uint S2C_SendMessageResponse = 2415929116;
|
||||
public const uint S2C_Message = 2147493657;
|
||||
public const uint C2S_CreateClubRequest = 2281711386;
|
||||
public const uint S2C_CreateClubResponse = 2415929114;
|
||||
public const uint C2S_GetClubInfoRequest = 2281711387;
|
||||
public const uint S2C_GetClubInfoResponse = 2415929115;
|
||||
public const uint C2S_GetMemberListRequest = 2281711388;
|
||||
public const uint S2C_GetMemberListResponse = 2415929116;
|
||||
public const uint C2S_GetClubListRequest = 2281711389;
|
||||
public const uint S2C_GetClubListResponse = 2415929117;
|
||||
public const uint C2S_JoinClubRequest = 2281711390;
|
||||
public const uint S2C_JoinClubResponse = 2415929118;
|
||||
public const uint C2S_LeaveClubRequest = 2281711391;
|
||||
public const uint S2C_LeaveClubResponse = 2415929119;
|
||||
public const uint C2S_DissolveClubRequest = 2281711392;
|
||||
public const uint S2C_DissolveClubResponse = 2415929120;
|
||||
public const uint C2S_DisposeJoinRequest = 2281711393;
|
||||
public const uint S2C_DisposeJoinResponse = 2415929121;
|
||||
public const uint C2S_CreateClubRequest = 2281711389;
|
||||
public const uint S2C_CreateClubResponse = 2415929117;
|
||||
public const uint C2S_GetClubInfoRequest = 2281711390;
|
||||
public const uint S2C_GetClubInfoResponse = 2415929118;
|
||||
public const uint C2S_GetMemberListRequest = 2281711391;
|
||||
public const uint S2C_GetMemberListResponse = 2415929119;
|
||||
public const uint C2S_GetClubListRequest = 2281711392;
|
||||
public const uint S2C_GetClubListResponse = 2415929120;
|
||||
public const uint C2S_JoinClubRequest = 2281711393;
|
||||
public const uint S2C_JoinClubResponse = 2415929121;
|
||||
public const uint C2S_LeaveClubRequest = 2281711394;
|
||||
public const uint S2C_LeaveClubResponse = 2415929122;
|
||||
public const uint C2S_DissolveClubRequest = 2281711395;
|
||||
public const uint S2C_DissolveClubResponse = 2415929123;
|
||||
public const uint C2S_DisposeJoinRequest = 2281711396;
|
||||
public const uint S2C_DisposeJoinResponse = 2415929124;
|
||||
public const uint S2C_ClubChange = 2147493658;
|
||||
}
|
||||
}
|
||||
|
||||
502
Entity/Generate/NetworkProtocol/RoomMessage.cs
Normal file
502
Entity/Generate/NetworkProtocol/RoomMessage.cs
Normal file
@@ -0,0 +1,502 @@
|
||||
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 UnitGearItemInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitGearItemInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitGearItemInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Id = default;
|
||||
ConfigId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<UnitGearItemInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public long Id { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public int ConfigId { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class UnitGearInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitGearInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitGearInfo>();
|
||||
}
|
||||
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<UnitGearInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public UnitGearItemInfo Rod { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public UnitGearItemInfo Reel { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public UnitGearItemInfo Bobber { get; set; }
|
||||
[ProtoMember(4)]
|
||||
public UnitGearItemInfo Hook { get; set; }
|
||||
[ProtoMember(5)]
|
||||
public UnitGearItemInfo Bait { get; set; }
|
||||
[ProtoMember(6)]
|
||||
public UnitGearItemInfo Lure { get; set; }
|
||||
[ProtoMember(7)]
|
||||
public UnitGearItemInfo Weight { get; set; }
|
||||
[ProtoMember(8)]
|
||||
public UnitGearItemInfo Line { get; set; }
|
||||
[ProtoMember(9)]
|
||||
public UnitGearItemInfo Leader { get; set; }
|
||||
[ProtoMember(10)]
|
||||
public UnitGearItemInfo 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 UnitFishingInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitFishingInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitFishingInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
LineLength = default;
|
||||
ReelSpeed = default;
|
||||
OpenLight = default;
|
||||
RodSetting = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<UnitFishingInfo>(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 UnitStateInfo : AMessage, IProto
|
||||
{
|
||||
public static UnitStateInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<UnitStateInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
State = default;
|
||||
Args.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<UnitStateInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public int State { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public List<string> Args = new List<string>();
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class MapUnitInfo : AMessage, IProto
|
||||
{
|
||||
public static MapUnitInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<MapUnitInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Id = default;
|
||||
RoleInfo = default;
|
||||
Location = default;
|
||||
State = default;
|
||||
Gears = default;
|
||||
FishingInfo = default;
|
||||
KV.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<MapUnitInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public long Id { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public RoleSimpleInfo RoleInfo { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public MapUnitPositionInfo Location { get; set; }
|
||||
[ProtoMember(4)]
|
||||
public UnitStateInfo State { get; set; }
|
||||
[ProtoMember(5)]
|
||||
public UnitGearInfo Gears { get; set; }
|
||||
[ProtoMember(6)]
|
||||
public UnitFishingInfo FishingInfo { get; set; }
|
||||
[ProtoMember(7)]
|
||||
public List<KeyValueInt32> KV = new List<KeyValueInt32>();
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class MapUnitPositionInfo : AMessage, IProto
|
||||
{
|
||||
public static MapUnitPositionInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<MapUnitPositionInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Position = default;
|
||||
Rotation = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<MapUnitPositionInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public Vector3Info Position { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public QuaternionInfo Rotation { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class C2Map_EnterRoomRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Map_EnterRoomRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Map_EnterRoomRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
MapId = default;
|
||||
Password = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Map_EnterRoomRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Map2C_EnterRoomResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Map_EnterRoomRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.MapRoute;
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string Password { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class Map2C_EnterRoomResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Map2C_EnterRoomResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Map2C_EnterRoomResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
MapId = default;
|
||||
RoomId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Map2C_EnterRoomResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Map2C_EnterRoomResponse; }
|
||||
[ProtoMember(1)]
|
||||
public int MapId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long RoomId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
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();
|
||||
MapId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Map2C_EnterMapResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Map2C_EnterMapResponse; }
|
||||
[ProtoMember(1)]
|
||||
public List<MapUnitInfo> Roles = new List<MapUnitInfo>();
|
||||
[ProtoMember(2)]
|
||||
public long MapId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
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 MapUnitPositionInfo 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 MapUnitInfo 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 UnitStateInfo 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 UnitFishingInfo 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 UnitGearInfo 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 MapUnitPositionInfo Location { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,7 +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
|
||||
public const int RoomRoute = 1005; // Room
|
||||
public const int MapRoute = 1004; // 地图
|
||||
}
|
||||
}
|
||||
|
||||
66
Hotfix/Common/Handler/G2Common_EnterRequestHandler.cs
Normal file
66
Hotfix/Common/Handler/G2Common_EnterRequestHandler.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network.Interface;
|
||||
using NB.Chat;
|
||||
using NB.Game;
|
||||
|
||||
namespace NB.Common;
|
||||
|
||||
public class G2Common_EnterRequestHandler : RouteRPC<Scene, G2Common_EnterRequest, G2Common_EnterResponse>
|
||||
{
|
||||
protected override async FTask Run(Scene scene, G2Common_EnterRequest request, G2Common_EnterResponse response,
|
||||
Action reply)
|
||||
{
|
||||
response.RouteType = request.RouteType;
|
||||
|
||||
switch (scene.SceneType)
|
||||
{
|
||||
case SceneType.Game:
|
||||
{
|
||||
await RunGame(scene, request, response);
|
||||
|
||||
break;
|
||||
}
|
||||
case SceneType.Social:
|
||||
{
|
||||
await RunSocial(scene, request, response);
|
||||
break;
|
||||
}
|
||||
case SceneType.Map:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
await FTask.CompletedTask;
|
||||
}
|
||||
|
||||
private async FTask RunGame(Scene scene, G2Common_EnterRequest request, G2Common_EnterResponse response)
|
||||
{
|
||||
// 在缓存中检查该账号是否存在
|
||||
var gameAccountManageComponent = scene.GetComponent<PlayerManageComponent>();
|
||||
var account = await gameAccountManageComponent.Online(scene, request.AccountId, request.GateRouteId);
|
||||
if (account == null)
|
||||
{
|
||||
response.ErrorCode = ErrorCode.ErrServer;
|
||||
return;
|
||||
}
|
||||
|
||||
response.RoleRouteId = account.RuntimeId;
|
||||
}
|
||||
|
||||
private async FTask RunSocial(Scene scene, G2Common_EnterRequest request, G2Common_EnterResponse response)
|
||||
{
|
||||
// 在缓存中检查该账号是否存在
|
||||
var chatUnitManageComponent = scene.GetComponent<SocialUnitManageComponent>();
|
||||
var account = await chatUnitManageComponent.Online(scene, request.AccountId, request.GateRouteId);
|
||||
|
||||
if (account == null)
|
||||
{
|
||||
response.ErrorCode = ErrorCode.ErrServer;
|
||||
return;
|
||||
}
|
||||
|
||||
response.RoleRouteId = account.RuntimeId;
|
||||
}
|
||||
}
|
||||
55
Hotfix/Common/Handler/G2Common_ExitRequestHandler.cs
Normal file
55
Hotfix/Common/Handler/G2Common_ExitRequestHandler.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network.Interface;
|
||||
using NB.Chat;
|
||||
|
||||
namespace NB.Common;
|
||||
|
||||
public class G2Common_ExitRequestHandler : RouteRPC<Scene, G2Common_ExitRequest, Common2G_ExitResponse>
|
||||
{
|
||||
protected override async FTask Run(Scene scene, G2Common_ExitRequest request, Common2G_ExitResponse response,
|
||||
Action reply)
|
||||
{
|
||||
switch (scene.SceneType)
|
||||
{
|
||||
case SceneType.Game:
|
||||
{
|
||||
await RunGame(scene, request, response);
|
||||
|
||||
break;
|
||||
}
|
||||
case SceneType.Social:
|
||||
{
|
||||
await RunSocial(scene, request, response);
|
||||
break;
|
||||
}
|
||||
case SceneType.Map:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
await FTask.CompletedTask;
|
||||
}
|
||||
|
||||
private async FTask RunGame(Scene scene, G2Common_ExitRequest request, Common2G_ExitResponse response)
|
||||
{
|
||||
// // 在缓存中检查该账号是否存在
|
||||
// var gameAccountManageComponent = scene.GetComponent<PlayerManageComponent>();
|
||||
// var account = await gameAccountManageComponent.Online(scene, request.AccountId, request.GateRouteId);
|
||||
// if (account == null)
|
||||
// {
|
||||
// response.ErrorCode = ErrorCode.ErrServer;
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// response.RoleRouteId = account.RuntimeId;
|
||||
}
|
||||
|
||||
private async FTask RunSocial(Scene scene, G2Common_ExitRequest request, Common2G_ExitResponse response)
|
||||
{
|
||||
// 在缓存中检查该账号是否存在
|
||||
var chatUnitManageComponent = scene.GetComponent<SocialUnitManageComponent>();
|
||||
await chatUnitManageComponent.Offline(scene, request.AccountId, request.GateRouteId);
|
||||
}
|
||||
}
|
||||
9
Hotfix/Common/Helper/LoginHelper.cs
Normal file
9
Hotfix/Common/Helper/LoginHelper.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
|
||||
namespace NB.Common;
|
||||
|
||||
public static class LoginHelper
|
||||
{
|
||||
|
||||
}
|
||||
14
Hotfix/Common/Helper/SceneConfigHelper.cs
Normal file
14
Hotfix/Common/Helper/SceneConfigHelper.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Platform.Net;
|
||||
|
||||
namespace NB.Common;
|
||||
|
||||
public class SceneConfigHelper
|
||||
{
|
||||
public static SceneConfig GetConfig(int sceneType)
|
||||
{
|
||||
var gameSceneConfigs = SceneConfigData.Instance.GetSceneBySceneType(sceneType);
|
||||
|
||||
return gameSceneConfigs.First();
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using NB.Common;
|
||||
|
||||
namespace NB.Game;
|
||||
|
||||
@@ -13,7 +14,7 @@ public static class CacheHandler
|
||||
/// <returns></returns>
|
||||
public static async FTask<List<RoleSimpleInfo>> GetPlayerBasicCacheInfos(Scene scene, List<long> id)
|
||||
{
|
||||
var gameSceneConfig = GameSceneHelper.GetSceneConfig();
|
||||
var gameSceneConfig = SceneConfigHelper.GetConfig(SceneType.Game);
|
||||
var gameRouteId = gameSceneConfig.RouteId;
|
||||
//连接到游戏中心服
|
||||
var gameResponse = (G2S_GetPlayerBasicInfoResponse)await scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Entitas;
|
||||
using Fantasy.Helper;
|
||||
using Fantasy.Network;
|
||||
using Fantasy.Network.Interface;
|
||||
using NB;
|
||||
using NB.Gate;
|
||||
|
||||
namespace NB.Game;
|
||||
|
||||
public class G2Game_EnterRequestHandler : RouteRPC<Scene, G2Game_EnterRequest, Game2G_EnterResponse>
|
||||
{
|
||||
protected override async FTask Run(Scene scene, G2Game_EnterRequest request, Game2G_EnterResponse response,
|
||||
Action reply)
|
||||
{
|
||||
Log.Debug("收到 G2Game_EnterRequestHandler");
|
||||
|
||||
|
||||
// 在缓存中检查该账号是否存在
|
||||
var gameAccountManageComponent = scene.GetComponent<PlayerManageComponent>();
|
||||
|
||||
var account = await gameAccountManageComponent.Online(scene, request.AccountId, request.GateRouteId);
|
||||
|
||||
response.RoleRouteId = account.RuntimeId;
|
||||
response.RoleInfo = account.GetRoleSimpleInfo();
|
||||
await FTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
// using Fantasy;
|
||||
// using Fantasy.Async;
|
||||
// using Fantasy.Entitas;
|
||||
// using Fantasy.Helper;
|
||||
// using Fantasy.Network;
|
||||
// using Fantasy.Network.Interface;
|
||||
// using NB;
|
||||
// using NB.Gate;
|
||||
//
|
||||
// namespace NB.Game;
|
||||
//
|
||||
// public class G2Game_EnterRequestHandler : RouteRPC<Scene, G2Game_EnterRequest, Game2G_EnterResponse>
|
||||
// {
|
||||
// protected override async FTask Run(Scene scene, G2Game_EnterRequest request, Game2G_EnterResponse response,
|
||||
// Action reply)
|
||||
// {
|
||||
// Log.Debug("收到 G2Game_EnterRequestHandler");
|
||||
//
|
||||
//
|
||||
// // 在缓存中检查该账号是否存在
|
||||
// var gameAccountManageComponent = scene.GetComponent<PlayerManageComponent>();
|
||||
//
|
||||
// var account = await gameAccountManageComponent.Online(scene, request.AccountId, request.GateRouteId);
|
||||
//
|
||||
// response.RoleRouteId = account.RuntimeId;
|
||||
// response.RoleInfo = account.GetRoleSimpleInfo();
|
||||
// await FTask.CompletedTask;
|
||||
// }
|
||||
// }
|
||||
@@ -1,48 +0,0 @@
|
||||
using System.Net;
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network;
|
||||
using Fantasy.Platform.Net;
|
||||
|
||||
namespace NB.Game;
|
||||
|
||||
public static class GameSceneHelper
|
||||
{
|
||||
#region 上线 下线
|
||||
|
||||
public static SceneConfig GetSceneConfig()
|
||||
{
|
||||
var gameSceneConfigs = SceneConfigData.Instance.GetSceneBySceneType(SceneType.Game);
|
||||
|
||||
return gameSceneConfigs.First();
|
||||
}
|
||||
|
||||
|
||||
public static async FTask<(long, RoleSimpleInfo?)> Online(Scene scene, long accountID, long gateRuntimeId)
|
||||
{
|
||||
var gameSceneConfig = GetSceneConfig();
|
||||
var gameRouteId = gameSceneConfig.RouteId;
|
||||
//连接到游戏中心服
|
||||
var gameResponse = (Game2G_EnterResponse)await scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
gameRouteId, new G2Game_EnterRequest()
|
||||
{
|
||||
AccountId = accountID,
|
||||
GateRouteId = gateRuntimeId
|
||||
});
|
||||
|
||||
if (gameResponse.ErrorCode != 0)
|
||||
{
|
||||
return (0, null);
|
||||
}
|
||||
|
||||
return (gameResponse.RoleRouteId, gameResponse.RoleInfo);
|
||||
}
|
||||
|
||||
public static async FTask Offline(Scene scene, long accountId, long gateRuntimeId)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
@@ -42,7 +42,8 @@ public static class PlayerManageComponentSystem
|
||||
/// <param name="self"></param>
|
||||
/// <param name="scene"></param>
|
||||
/// <param name="accountId"></param>
|
||||
public static async FTask<Player> Online(this PlayerManageComponent self, Scene scene, long accountId,
|
||||
/// <param name="gateRouteId"></param>
|
||||
public static async FTask<Player?> Online(this PlayerManageComponent self, Scene scene, long accountId,
|
||||
long gateRouteId)
|
||||
{
|
||||
Log.Debug("检查账号是否在缓存中");
|
||||
|
||||
@@ -61,7 +61,7 @@ public static class PlayerHelper
|
||||
/// <param name="scene"></param>
|
||||
/// <param name="accountId">账号Id</param>
|
||||
/// <returns></returns>
|
||||
public static async FTask<Player> LoadDataBase(Scene scene, long accountId)
|
||||
public static async FTask<Player?> LoadDataBase(Scene scene, long accountId)
|
||||
{
|
||||
var account = await scene.World.DataBase.First<Player>(d => d.Id == accountId);
|
||||
if (account == null)
|
||||
|
||||
@@ -42,32 +42,5 @@ public sealed class C2G_LoginRequestHandler : MessageRPC<C2G_LoginRequest, G2C_L
|
||||
|
||||
response.ErrorCode = await GateLoginHelper.Online(gateUnit);
|
||||
Log.Debug($"当前的Gate服务器:{session.Scene.SceneConfigId} accountId:{accountId}");
|
||||
|
||||
// var gameSceneConfig = GameSceneHelper.GetSceneConfig(session);
|
||||
//
|
||||
// // 通过chatSceneConfig拿到这个Scene的RouteId
|
||||
// var gameRouteId = gameSceneConfig.RouteId;
|
||||
// //连接到游戏中心服
|
||||
// var gameResponse = (Game2G_EnterResponse)await session.Scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
// gameRouteId, new G2Game_EnterRequest()
|
||||
// {
|
||||
// AccountId = accountId,
|
||||
// GateRouteId = session.RuntimeId
|
||||
// });
|
||||
//
|
||||
// if (gameResponse.ErrorCode != 0)
|
||||
// {
|
||||
// // 如果ErrorCode不是0表示请求的协议发生错误,应该提示给客户端。
|
||||
// response.ErrorCode = gameResponse.ErrorCode;
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// // 要实现Route协议的转发,需要给Session添加一个RouteComponent,这个非常重要。
|
||||
// var routeComponent = session.AddComponent<RouteComponent>();
|
||||
// routeComponent.AddAddress(RouteType.GameRoute, gameResponse.RoleRouteId);
|
||||
//
|
||||
// // 给当前Session添加一个组件,当Session销毁的时候会销毁这个组件。
|
||||
// var accountFlagComponent = session.AddComponent<SessionPlayerComponent>();
|
||||
// accountFlagComponent.AccountID = accountId;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,8 @@ using Fantasy.Platform.Net;
|
||||
using NB.Chat;
|
||||
using NB.Game;
|
||||
|
||||
// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
|
||||
|
||||
namespace NB.Gate;
|
||||
|
||||
public static class GateLoginHelper
|
||||
@@ -37,43 +39,13 @@ public static class GateLoginHelper
|
||||
var routeComponent = session.GetComponent<RouteComponent>();
|
||||
if (routeComponent == null)
|
||||
{
|
||||
routeComponent = session.AddComponent<RouteComponent>();
|
||||
session.AddComponent<RouteComponent>();
|
||||
}
|
||||
|
||||
gateUnitSessionComponent.AccountID = gateUnit.AccountID;
|
||||
gateUnitSessionComponent.SessionId = session.RuntimeId;
|
||||
|
||||
|
||||
//安排游戏服务器,并通知进入
|
||||
var (gameRouteId, roleSimpleInfo) =
|
||||
await GameSceneHelper.Online(session.Scene, gateUnit.AccountID, session.RuntimeId);
|
||||
if (gameRouteId <= 0 || roleSimpleInfo == null)
|
||||
{
|
||||
return ErrorCode.OnlineSceneFailed;
|
||||
}
|
||||
|
||||
Log.Info($"连接游戏服成功,gameRouteId:{gameRouteId}");
|
||||
routeComponent.AddAddress(RouteType.GameRoute, gameRouteId);
|
||||
gateUnit.GameSceneRouteId = gameRouteId;
|
||||
|
||||
|
||||
//安排进入的聊天服
|
||||
var (chatRouteId, sceneRouteId) =
|
||||
await SocialSceneHelper.Online(session.Scene, roleSimpleInfo, session.RuntimeId);
|
||||
if (chatRouteId <= 0)
|
||||
{
|
||||
return ErrorCode.OnlineSceneFailed;
|
||||
}
|
||||
|
||||
routeComponent.AddAddress(RouteType.SocialRoute, chatRouteId);
|
||||
gateUnit.ChatSceneRouteId = sceneRouteId;
|
||||
Log.Info($"连接聊天服成功,gameRouteId:{gameRouteId}");
|
||||
|
||||
var gameSceneConfigs = SceneConfigData.Instance.GetSceneBySceneType(SceneType.Map);
|
||||
|
||||
var mapSceneConfig = gameSceneConfigs.First();
|
||||
routeComponent.AddAddress(RouteType.MapRoute, mapSceneConfig.RouteId);
|
||||
return ErrorCode.Successful;
|
||||
return await gateUnit.Online(RouteType.GameRoute, RouteType.SocialRoute, RouteType.MapRoute);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -88,11 +60,13 @@ public static class GateLoginHelper
|
||||
public static async FTask<uint> Offline(GateUnit gateUnit, long sessionId)
|
||||
{
|
||||
//通知服务器下线
|
||||
Log.Info($"断线的session id={sessionId} ChatSceneRouteId={gateUnit.ChatSceneRouteId}");
|
||||
await GameSceneHelper.Offline(gateUnit.Scene, gateUnit.AccountID, sessionId);
|
||||
await SocialSceneHelper.Offline(gateUnit.Scene, gateUnit.AccountID, sessionId,
|
||||
gateUnit.ChatSceneRouteId);
|
||||
return ErrorCode.Successful;
|
||||
Log.Info($"断线的session id={sessionId}");
|
||||
var ret = await gateUnit.Offline(sessionId, RouteType.GameRoute, RouteType.SocialRoute, RouteType.MapRoute);
|
||||
|
||||
// await GameSceneHelper.Offline(gateUnit.Scene, gateUnit.AccountID, sessionId);
|
||||
// await SocialSceneHelper.Offline(gateUnit.Scene, gateUnit.AccountID, sessionId,
|
||||
// gateUnit.ChatSceneRouteId);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
using Fantasy.Entitas.Interface;
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Entitas.Interface;
|
||||
using Fantasy.Network;
|
||||
using NB.Common;
|
||||
|
||||
// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
|
||||
|
||||
namespace NB.Gate;
|
||||
|
||||
@@ -11,6 +17,120 @@ public class GateUnitDestroySystem : DestroySystem<GateUnit>
|
||||
}
|
||||
}
|
||||
|
||||
public class GateUnitSystem
|
||||
public static class GateUnitSystem
|
||||
{
|
||||
#region Address
|
||||
|
||||
private static void RemoveAddress(this GateUnit self, int routType, long routeId)
|
||||
{
|
||||
if (self.SceneRoutes.TryGetValue(routType, out var route))
|
||||
{
|
||||
if (route == routeId)
|
||||
{
|
||||
self.SceneRoutes.Remove(routType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void AddAddress(this GateUnit self, int routType, long routeId)
|
||||
{
|
||||
self.SceneRoutes[routType] = routeId;
|
||||
}
|
||||
|
||||
private static long GetAddress(this GateUnit self, int routType)
|
||||
{
|
||||
return self.SceneRoutes.GetValueOrDefault(routType, 0);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 上线
|
||||
|
||||
public static async FTask<uint> Online(this GateUnit self, params int[] routeType)
|
||||
{
|
||||
if (routeType != null && routeType.Length > 0)
|
||||
{
|
||||
foreach (var route in routeType)
|
||||
{
|
||||
var ret = await self.Online(route);
|
||||
if (ret != ErrorCode.Successful) return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return ErrorCode.Successful;
|
||||
}
|
||||
|
||||
public static async FTask<uint> Online(this GateUnit self, int routeType)
|
||||
{
|
||||
Session session = self.Session;
|
||||
var routeComponent = session.GetComponent<RouteComponent>();
|
||||
if (routeComponent == null)
|
||||
{
|
||||
routeComponent = session.AddComponent<RouteComponent>();
|
||||
}
|
||||
|
||||
var gameSceneConfig = SceneConfigHelper.GetConfig(routeType);
|
||||
var gameRouteId = gameSceneConfig.RouteId;
|
||||
//连接到游戏中心服
|
||||
var gameResponse = (G2Common_EnterResponse)await self.Scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
gameRouteId, new G2Common_EnterRequest()
|
||||
{
|
||||
AccountId = self.AccountID,
|
||||
GateRouteId = session.RuntimeId
|
||||
});
|
||||
|
||||
if (gameResponse.ErrorCode != 0)
|
||||
{
|
||||
return gameResponse.ErrorCode;
|
||||
}
|
||||
|
||||
routeComponent.AddAddress(routeType, gameRouteId);
|
||||
self.AddAddress(routeType, gameRouteId);
|
||||
|
||||
return ErrorCode.Successful;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 下线
|
||||
|
||||
public static async FTask<uint> Offline(this GateUnit self, long sessionId, params int[] routeType)
|
||||
{
|
||||
if (routeType != null && routeType.Length > 0)
|
||||
{
|
||||
foreach (var route in routeType)
|
||||
{
|
||||
var ret = await self.Offline(sessionId, route);
|
||||
if (ret != ErrorCode.Successful) return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return ErrorCode.Successful;
|
||||
}
|
||||
|
||||
public static async FTask<uint> Offline(this GateUnit self, long sessionId, int routeType)
|
||||
{
|
||||
var sceneRouteId = self.GetAddress(routeType);
|
||||
if (sceneRouteId < 1) return ErrorCode.Successful;
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
var gameResponse = (Common2G_ExitResponse)await self.Scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
sceneRouteId, new G2Common_ExitRequest()
|
||||
{
|
||||
AccountId = self.AccountID,
|
||||
GateRouteId = sessionId
|
||||
});
|
||||
if (gameResponse.ErrorCode == 0)
|
||||
{
|
||||
self.RemoveAddress(routeType, sceneRouteId);
|
||||
return ErrorCode.Successful;
|
||||
}
|
||||
}
|
||||
|
||||
Log.Error($"重试多次还是退出失败,需检查,sessionId={sessionId} route={routeType}");
|
||||
return ErrorCode.ErrServer;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -13,8 +13,10 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Game\Helper\" />
|
||||
<Folder Include="Map\Helper\" />
|
||||
<Folder Include="Map\System\" />
|
||||
<Folder Include="Room\" />
|
||||
<Folder Include="Social\Chat\" />
|
||||
<Folder Include="Social\Club\" />
|
||||
<Folder Include="Social\Mail\Handler\Inner\" />
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network.Interface;
|
||||
|
||||
namespace NB.Map;
|
||||
|
||||
public class C2Map_CreateRoomRequestHandler : RouteRPC<Scene, C2Map_CreateRoomRequest, Map2C_CreateRoomResponse>
|
||||
{
|
||||
protected override async FTask Run(Scene entity, C2Map_CreateRoomRequest request, Map2C_CreateRoomResponse response,
|
||||
Action reply)
|
||||
{
|
||||
Log.Info($"创建房间=== map:{request.MapId} pass:{request.Password}");
|
||||
await FTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
// using Fantasy;
|
||||
// using Fantasy.Async;
|
||||
// using Fantasy.Network.Interface;
|
||||
//
|
||||
// namespace NB.Map;
|
||||
//
|
||||
// public class C2Map_CreateRoomRequestHandler : RouteRPC<Scene, C2Map_CreateRoomRequest, Map2C_CreateRoomResponse>
|
||||
// {
|
||||
// protected override async FTask Run(Scene entity, C2Map_CreateRoomRequest request, Map2C_CreateRoomResponse response,
|
||||
// Action reply)
|
||||
// {
|
||||
// Log.Info($"创建房间=== map:{request.MapId} pass:{request.Password}");
|
||||
// await FTask.CompletedTask;
|
||||
// }
|
||||
// }
|
||||
@@ -1,22 +0,0 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network.Interface;
|
||||
using NB.Game;
|
||||
|
||||
namespace NB.Chat;
|
||||
|
||||
public class G2S_EnterRequestHandler : RouteRPC<Scene, G2S_EnterRequest, S2G_EnterResponse>
|
||||
{
|
||||
protected override async FTask Run(Scene scene, G2S_EnterRequest request, S2G_EnterResponse response,
|
||||
Action reply)
|
||||
{
|
||||
var roleId = request.Role.RoleId;
|
||||
Log.Debug($"收到 G2S_EnterRequestHandler {roleId}");
|
||||
|
||||
// 在缓存中检查该账号是否存在
|
||||
var chatUnitManageComponent = scene.GetComponent<SocialUnitManageComponent>();
|
||||
var account = await chatUnitManageComponent.Online(scene, request.Role, request.GateRouteId);
|
||||
|
||||
response.RoleRouteId = account.RuntimeId;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network.Interface;
|
||||
|
||||
namespace NB.Chat;
|
||||
|
||||
public class G2S_ExitRequestHandler : RouteRPC<Scene, G2S_ExitRequest, S2G_ExitResponse>
|
||||
{
|
||||
protected override async FTask Run(Scene scene, G2S_ExitRequest request, S2G_ExitResponse response,
|
||||
Action reply)
|
||||
{
|
||||
// 在缓存中检查该账号是否存在
|
||||
var chatUnitManageComponent = scene.GetComponent<SocialUnitManageComponent>();
|
||||
await chatUnitManageComponent.Offline(scene, request.AccountId, request.GateRouteId);
|
||||
}
|
||||
}
|
||||
@@ -122,52 +122,51 @@ public static class SocialSceneHelper
|
||||
|
||||
#region 上线下线
|
||||
|
||||
public static async FTask<(long, long)> Online(Scene scene, RoleSimpleInfo roleSimple, long gateRuntimeId)
|
||||
{
|
||||
var gameSceneConfig = GetSceneConfig();
|
||||
var gameRouteId = gameSceneConfig.RouteId;
|
||||
//连接到游戏中心服
|
||||
var gameResponse = (S2G_EnterResponse)await scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
gameRouteId, new G2S_EnterRequest()
|
||||
{
|
||||
Role = roleSimple,
|
||||
GateRouteId = gateRuntimeId
|
||||
});
|
||||
|
||||
if (gameResponse.ErrorCode != 0)
|
||||
{
|
||||
return (0, 0);
|
||||
}
|
||||
|
||||
return (gameResponse.RoleRouteId, gameRouteId);
|
||||
// return gameRouteId;
|
||||
}
|
||||
|
||||
public static async FTask Offline(Scene scene, long accountId, long gateRuntimeId, long sceneRouteId)
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
var gameResponse = (S2G_ExitResponse)await scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
sceneRouteId, new G2S_ExitRequest()
|
||||
{
|
||||
AccountId = accountId,
|
||||
GateRouteId = gateRuntimeId
|
||||
});
|
||||
if (gameResponse.ErrorCode == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Log.Error("重试多次还是退出失败,需检查");
|
||||
}
|
||||
|
||||
private static SceneConfig GetSceneConfig()
|
||||
{
|
||||
var gameSceneConfigs = SceneConfigData.Instance.GetSceneBySceneType(SceneType.Social);
|
||||
|
||||
return gameSceneConfigs.First();
|
||||
}
|
||||
// public static async FTask<(long, long)> Online(Scene scene, RoleSimpleInfo roleSimple, long gateRuntimeId)
|
||||
// {
|
||||
// var gameSceneConfig = GetSceneConfig();
|
||||
// var gameRouteId = gameSceneConfig.RouteId;
|
||||
// //连接到游戏中心服
|
||||
// var gameResponse = (S2G_EnterResponse)await scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
// gameRouteId, new G2S_EnterRequest()
|
||||
// {
|
||||
// Role = roleSimple,
|
||||
// GateRouteId = gateRuntimeId
|
||||
// });
|
||||
//
|
||||
// if (gameResponse.ErrorCode != 0)
|
||||
// {
|
||||
// return (0, 0);
|
||||
// }
|
||||
//
|
||||
// return (gameResponse.RoleRouteId, gameRouteId);
|
||||
// }
|
||||
//
|
||||
// public static async FTask Offline(Scene scene, long accountId, long gateRuntimeId, long sceneRouteId)
|
||||
// {
|
||||
// for (int i = 0; i < 10; i++)
|
||||
// {
|
||||
// var gameResponse = (S2G_ExitResponse)await scene.NetworkMessagingComponent.CallInnerRoute(
|
||||
// sceneRouteId, new G2S_ExitRequest()
|
||||
// {
|
||||
// AccountId = accountId,
|
||||
// GateRouteId = gateRuntimeId
|
||||
// });
|
||||
// if (gameResponse.ErrorCode == 0)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// Log.Error("重试多次还是退出失败,需检查");
|
||||
// }
|
||||
//
|
||||
// private static SceneConfig GetSceneConfig()
|
||||
// {
|
||||
// var gameSceneConfigs = SceneConfigData.Instance.GetSceneBySceneType(SceneType.Social);
|
||||
//
|
||||
// return gameSceneConfigs.First();
|
||||
// }
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -29,13 +29,13 @@ public static class ChatUnitManageComponentSystem
|
||||
/// </summary>
|
||||
/// <param name="self"></param>
|
||||
/// <param name="scene"></param>
|
||||
/// <param name="roleSimpleInfo"></param>
|
||||
/// <param name="accountId"></param>
|
||||
/// <param name="gateRouteId"></param>
|
||||
public static async FTask<SocialUnit?> Online(this SocialUnitManageComponent self, Scene scene,
|
||||
RoleSimpleInfo roleSimpleInfo,
|
||||
long accountId,
|
||||
long gateRouteId)
|
||||
{
|
||||
var accountId = roleSimpleInfo.RoleId;
|
||||
// var accountId = roleSimpleInfo.RoleId;
|
||||
if (!self.TryGet(accountId, out var account))
|
||||
{
|
||||
account = ChatUnitFactory.Create(scene, accountId);
|
||||
@@ -46,7 +46,7 @@ public static class ChatUnitManageComponentSystem
|
||||
{
|
||||
await account.TryComponent<MailComponent>();
|
||||
account.GateRouteId = gateRouteId;
|
||||
account.Role = roleSimpleInfo;
|
||||
// account.Role = roleSimpleInfo;
|
||||
}
|
||||
|
||||
await FTask.CompletedTask;
|
||||
|
||||
Reference in New Issue
Block a user