快速使用协议

This commit is contained in:
2025-11-19 00:08:10 +08:00
parent 32dadfcfad
commit c8e7b38d3f
8 changed files with 192 additions and 95 deletions

View File

@@ -12,16 +12,21 @@ public sealed class PlayerItemContainerComponent : Entity
/// 最大格子数量 /// 最大格子数量
/// </summary> /// </summary>
public int CellCountMax; public int CellCountMax;
/// <summary> /// <summary>
/// 容器内的物品 /// 容器内的物品
/// </summary> /// </summary>
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)] [BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<long, Item> Items = new Dictionary<long, Item>(); public Dictionary<long, Item> Items = new Dictionary<long, Item>();
/// <summary> /// <summary>
/// 物品绑定信息 /// 物品绑定信息
/// </summary> /// </summary>
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)] [BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<long, List<long>> Binding = new Dictionary<long, List<long>>(); public Dictionary<long, List<long>> Binding = new Dictionary<long, List<long>>();
/// <summary>
/// 快速使用插槽
/// </summary>
public List<long> Slots = new List<long>(9);
} }

View File

@@ -58,6 +58,7 @@ namespace Fantasy
ErrorCode = default; ErrorCode = default;
Items.Clear(); Items.Clear();
Rigs.Clear(); Rigs.Clear();
Slots.Clear();
#if FANTASY_NET || FANTASY_UNITY #if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_GetItemsResponse>(this); GetScene().MessagePoolComponent.Return<Game2C_GetItemsResponse>(this);
#endif #endif
@@ -68,6 +69,8 @@ namespace Fantasy
[ProtoMember(2)] [ProtoMember(2)]
public List<ItemBindInfo> Rigs = new List<ItemBindInfo>(); public List<ItemBindInfo> Rigs = new List<ItemBindInfo>();
[ProtoMember(3)] [ProtoMember(3)]
public List<long> Slots = new List<long>();
[ProtoMember(4)]
public uint ErrorCode { get; set; } public uint ErrorCode { get; set; }
} }
/// <summary> /// <summary>
@@ -204,6 +207,61 @@ namespace Fantasy
public uint ErrorCode { get; set; } public uint ErrorCode { get; set; }
} }
/// <summary> /// <summary>
/// /////////// ******** 快速使用插槽 *******/////////////
/// </summary>
/// <summary>
/// 请求设置快速使用
/// </summary>
[ProtoContract]
public partial class C2Game_SetSlotRequest : AMessage, ICustomRouteRequest
{
public static C2Game_SetSlotRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Game_SetSlotRequest>();
}
public override void Dispose()
{
Index = default;
Id = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Game_SetSlotRequest>(this);
#endif
}
[ProtoIgnore]
public Game2C_SetSlotResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2Game_SetSlotRequest; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
[ProtoMember(1)]
public int Index { get; set; }
[ProtoMember(2)]
public long Id { get; set; }
}
/// <summary>
/// 请求设置快速使用响应
/// </summary>
[ProtoContract]
public partial class Game2C_SetSlotResponse : AMessage, ICustomRouteResponse
{
public static Game2C_SetSlotResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_SetSlotResponse>();
}
public override void Dispose()
{
ErrorCode = default;
Slots.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_SetSlotResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_SetSlotResponse; }
[ProtoMember(1)]
public List<long> Slots = new List<long>();
[ProtoMember(2)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// /////////// ******** 鱼护 *******///////////// /// /////////// ******** 鱼护 *******/////////////
/// </summary> /// </summary>
/// <summary> /// <summary>

View File

@@ -9,15 +9,17 @@ namespace Fantasy
public const uint Game2C_ItemChange = 2147493649; public const uint Game2C_ItemChange = 2147493649;
public const uint C2Game_RigChangeRequest = 2281711379; public const uint C2Game_RigChangeRequest = 2281711379;
public const uint Game2C_RigChangeResponse = 2415929107; public const uint Game2C_RigChangeResponse = 2415929107;
public const uint C2Game_GetFishsRequest = 2281711380; public const uint C2Game_SetSlotRequest = 2281711380;
public const uint Game2C_GetFishsResponse = 2415929108; public const uint Game2C_SetSlotResponse = 2415929108;
public const uint C2Game_GetFishsRequest = 2281711381;
public const uint Game2C_GetFishsResponse = 2415929109;
public const uint Game2C_FishChange = 2147493650; public const uint Game2C_FishChange = 2147493650;
public const uint C2Game_SellFishRequest = 2281711381; public const uint C2Game_SellFishRequest = 2281711382;
public const uint Game2C_SellFishResponse = 2415929109; public const uint Game2C_SellFishResponse = 2415929110;
public const uint C2Game_BuyRequest = 2281711382; public const uint C2Game_BuyRequest = 2281711383;
public const uint Game2C_BuyResponse = 2415929110; public const uint Game2C_BuyResponse = 2415929111;
public const uint C2Map_CreateRoomRequest = 2281711383; public const uint C2Map_CreateRoomRequest = 2281711384;
public const uint Map2C_CreateRoomResponse = 2415929111; public const uint Map2C_CreateRoomResponse = 2415929112;
public const uint C2G_ExitRoomRequest = 268445457; public const uint C2G_ExitRoomRequest = 268445457;
public const uint G2C_ExitRoomResponse = 402663185; public const uint G2C_ExitRoomResponse = 402663185;
public const uint C2G_EnterMapRequest = 268445458; public const uint C2G_EnterMapRequest = 268445458;
@@ -28,8 +30,8 @@ namespace Fantasy
public const uint C2G_LoginRequest = 268445460; public const uint C2G_LoginRequest = 268445460;
public const uint G2C_LoginResponse = 402663188; public const uint G2C_LoginResponse = 402663188;
public const uint G2C_RepeatLogin = 134227729; public const uint G2C_RepeatLogin = 134227729;
public const uint C2Game_GetRoleInfoRequest = 2281711384; public const uint C2Game_GetRoleInfoRequest = 2281711385;
public const uint Game2C_GetRoleInfoResponse = 2415929112; public const uint Game2C_GetRoleInfoResponse = 2415929113;
public const uint Map2C_RoleEnterRoomNotify = 2147493652; public const uint Map2C_RoleEnterRoomNotify = 2147493652;
public const uint Map2C_RoleExitRoomNotify = 2147493653; public const uint Map2C_RoleExitRoomNotify = 2147493653;
public const uint C2Map_RolePropertyChange = 2147493654; public const uint C2Map_RolePropertyChange = 2147493654;
@@ -40,37 +42,37 @@ namespace Fantasy
public const uint C2Map_Look = 2147493659; public const uint C2Map_Look = 2147493659;
public const uint Map2C_MoveNotify = 2147493660; public const uint Map2C_MoveNotify = 2147493660;
public const uint Map2C_LookeNotify = 2147493661; public const uint Map2C_LookeNotify = 2147493661;
public const uint C2S_GetConversationsRequest = 2281711385; public const uint C2S_GetConversationsRequest = 2281711386;
public const uint S2C_GetConversationsResponse = 2415929113; public const uint S2C_GetConversationsResponse = 2415929114;
public const uint C2S_SendMailRequest = 2281711386; public const uint C2S_SendMailRequest = 2281711387;
public const uint S2C_SendMailResponse = 2415929114; public const uint S2C_SendMailResponse = 2415929115;
public const uint C2S_DeleteMailRequest = 2281711387; public const uint C2S_DeleteMailRequest = 2281711388;
public const uint S2C_DeleteMailResponse = 2415929115; public const uint S2C_DeleteMailResponse = 2415929116;
public const uint S2C_HaveMail = 2147493662; public const uint S2C_HaveMail = 2147493662;
public const uint S2C_MailState = 2147493663; public const uint S2C_MailState = 2147493663;
public const uint C2S_CreateChannelRequest = 2281711388; public const uint C2S_CreateChannelRequest = 2281711389;
public const uint S2C_CreateChannelResponse = 2415929116; public const uint S2C_CreateChannelResponse = 2415929117;
public const uint C2S_JoinChannelRequest = 2281711389; public const uint C2S_JoinChannelRequest = 2281711390;
public const uint S2C_JoinChannelResponse = 2415929117; public const uint S2C_JoinChannelResponse = 2415929118;
public const uint C2S_SendMessageRequest = 2281711390; public const uint C2S_SendMessageRequest = 2281711391;
public const uint S2C_SendMessageResponse = 2415929118; public const uint S2C_SendMessageResponse = 2415929119;
public const uint S2C_Message = 2147493664; public const uint S2C_Message = 2147493664;
public const uint C2S_CreateClubRequest = 2281711391; public const uint C2S_CreateClubRequest = 2281711392;
public const uint S2C_CreateClubResponse = 2415929119; public const uint S2C_CreateClubResponse = 2415929120;
public const uint C2S_GetClubInfoRequest = 2281711392; public const uint C2S_GetClubInfoRequest = 2281711393;
public const uint S2C_GetClubInfoResponse = 2415929120; public const uint S2C_GetClubInfoResponse = 2415929121;
public const uint C2S_GetMemberListRequest = 2281711393; public const uint C2S_GetMemberListRequest = 2281711394;
public const uint S2C_GetMemberListResponse = 2415929121; public const uint S2C_GetMemberListResponse = 2415929122;
public const uint C2S_GetClubListRequest = 2281711394; public const uint C2S_GetClubListRequest = 2281711395;
public const uint S2C_GetClubListResponse = 2415929122; public const uint S2C_GetClubListResponse = 2415929123;
public const uint C2S_JoinClubRequest = 2281711395; public const uint C2S_JoinClubRequest = 2281711396;
public const uint S2C_JoinClubResponse = 2415929123; public const uint S2C_JoinClubResponse = 2415929124;
public const uint C2S_LeaveClubRequest = 2281711396; public const uint C2S_LeaveClubRequest = 2281711397;
public const uint S2C_LeaveClubResponse = 2415929124; public const uint S2C_LeaveClubResponse = 2415929125;
public const uint C2S_DissolveClubRequest = 2281711397; public const uint C2S_DissolveClubRequest = 2281711398;
public const uint S2C_DissolveClubResponse = 2415929125; public const uint S2C_DissolveClubResponse = 2415929126;
public const uint C2S_DisposeJoinRequest = 2281711398; public const uint C2S_DisposeJoinRequest = 2281711399;
public const uint S2C_DisposeJoinResponse = 2415929126; public const uint S2C_DisposeJoinResponse = 2415929127;
public const uint S2C_ClubChange = 2147493665; public const uint S2C_ClubChange = 2147493665;
} }
} }

View File

@@ -12,6 +12,7 @@ public class C2Game_GetItemsRequestHandler : RouteRPC<Player, C2Game_GetItemsReq
var itemContainer = entity.GetComponent<PlayerItemContainerComponent>(); var itemContainer = entity.GetComponent<PlayerItemContainerComponent>();
response.Items = itemContainer.GetItemInfos(); response.Items = itemContainer.GetItemInfos();
response.Rigs = itemContainer.GetRigInfos(); response.Rigs = itemContainer.GetRigInfos();
response.Slots = itemContainer.Slots;
await FTask.CompletedTask; await FTask.CompletedTask;
} }
} }

View File

@@ -0,0 +1,43 @@
using Fantasy;
using Fantasy.Async;
using Fantasy.Network.Interface;
namespace NB.Game;
public class C2Game_SetSlotRequestHandler : RouteRPC<Player, C2Game_SetSlotRequest, Game2C_SetSlotResponse>
{
protected override async FTask Run(Player entity, C2Game_SetSlotRequest request, Game2C_SetSlotResponse response,
Action reply)
{
var itemContainer = entity.GetComponent<PlayerItemContainerComponent>();
if (itemContainer == null)
{
response.ErrorCode = ErrorCode.ErrArgs;
return;
}
if (request.Index < 0 || request.Index >= itemContainer.Slots.Count)
{
response.ErrorCode = ErrorCode.ErrArgs;
return;
}
if (request.Id > 0)
{
if (!itemContainer.Items.TryGetValue(request.Id, out var item))
{
response.ErrorCode = ErrorCode.ErrArgs;
return;
}
itemContainer.Slots[request.Index] = request.Id;
}
else
{
itemContainer.Slots[request.Index] = 0;
}
await itemContainer.Save();
response.Slots = itemContainer.Slots;
}
}

View File

@@ -21,6 +21,30 @@ public sealed class ItemContainerDestroySystem : DestroySystem<PlayerItemContain
} }
} }
public sealed class ItemContainerAwakeSystem : AwakeSystem<PlayerItemContainerComponent>
{
protected override void Awake(PlayerItemContainerComponent self)
{
}
}
public sealed class ItemContainerAwakeSystem1 : DeserializeSystem<PlayerItemContainerComponent>
{
protected override void Deserialize(PlayerItemContainerComponent self)
{
if (self.Slots.Count < 9)
{
var add = 9 - self.Slots.Count;
for (int i = 0; i < add; i++)
{
self.Slots.Add(0);
}
// _ = self.Save();
}
}
}
public static class PlayerItemContainerComponentSystem public static class PlayerItemContainerComponentSystem
{ {
#region Save #region Save
@@ -65,47 +89,8 @@ public static class PlayerItemContainerComponentSystem
item = null; item = null;
return false; return false;
// if (!self.ItemsByConfigId.TryGetValue(configId, out var itemList))
// {
// item = null;
// return;
// }
//
// item = itemList.First();
} }
// /// <summary>
// /// 通过配置id获取物品
// /// </summary>
// /// <param name="self"></param>
// /// <param name="configId"></param>
// /// <param name="items"></param>
// public static void GetItemByConfigId(this ItemContainer self, uint configId, List<Item> items)
// {
// if (!self.ItemsByConfigId.TryGetValue(configId, out var itemList))
// {
// return;
// }
//
// items.AddRange(itemList);
// }
// /// <summary>
// /// 通过类型获取物品
// /// </summary>
// /// <param name="self"></param>
// /// <param name="type"></param>
// /// <param name="items"></param>
// public static void GetItemByType(this ItemContainer self, ItemType type, List<Item> items)
// {
// if (!self.ItemsByType.TryGetValue((uint)type, out var itemList))
// {
// return;
// }
//
// items.AddRange(itemList);
// }
#endregion #endregion
#region Add #region Add
@@ -146,22 +131,6 @@ public static class PlayerItemContainerComponentSystem
return ret; return ret;
} }
// public static List<GearInfo> GetGearInfos(this PlayerItemContainerComponent self)
// {
// List<GearInfo> ret = new List<GearInfo>(self.FishingRig.Count);
//
// foreach (var (rod, rigs) in self.FishingRig)
// {
// GearInfo gearInfo = new GearInfo();
// gearInfo.Rod = rod;
// gearInfo.Rigs.AddRange(rigs);
// ret.Add(gearInfo);
// }
//
// return ret;
// }
public static ItemBindInfo GetRigInfo(this PlayerItemContainerComponent self, long id) public static ItemBindInfo GetRigInfo(this PlayerItemContainerComponent self, long id)
{ {
if (self.Binding.TryGetValue(id, out var info)) if (self.Binding.TryGetValue(id, out var info))

View File

@@ -2,5 +2,8 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssemblyHelper_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003F76_003Ff4d4d636_003FAssemblyHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssemblyHelper_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003F76_003Ff4d4d636_003FAssemblyHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssemblyLoadContext_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb241c378a97f4447a2e6baf64e656013e8e910_003F96_003Fd3906b05_003FAssemblyLoadContext_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssemblyLoadContext_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb241c378a97f4447a2e6baf64e656013e8e910_003F96_003Fd3906b05_003FAssemblyLoadContext_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssembly_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb241c378a97f4447a2e6baf64e656013e8e910_003F9f_003Fab186807_003FAssembly_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssembly_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb241c378a97f4447a2e6baf64e656013e8e910_003F9f_003Fab186807_003FAssembly_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAwakeSystem_00601_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003Fd6_003F72740830_003FAwakeSystem_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADestroySystem_00601_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003Fbd_003Fcd9cb7f1_003FDestroySystem_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADictionary_00602_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F76803a04e31b4fee99d90bcbfc5a6bdde8e930_003F33_003F170c5f2b_003FDictionary_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AScene_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003F6a_003F5adfe93e_003FScene_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AScene_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003F6a_003F5adfe93e_003FScene_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWorld_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003F4f_003F90b7c061_003FWorld_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWorld_002Ecs_002Fl_003AC_0021_003FUsers_003FFIREBAT_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3cbbaf32e578423d8d0163d75da8233f87e00_003F4f_003F90b7c061_003FWorld_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>

View File

@@ -14,6 +14,7 @@ message Game2C_GetItemsResponse // ICustomRouteResponse
{ {
repeated ItemInfo Items = 1; //物品信息 repeated ItemInfo Items = 1; //物品信息
repeated ItemBindInfo Rigs = 2; //钓组信息 repeated ItemBindInfo Rigs = 2; //钓组信息
repeated int64 Slots = 3; //快速使用插槽
} }
///请求使用物品 ///请求使用物品
@@ -53,6 +54,21 @@ message Game2C_RigChangeResponse // ICustomRouteResponse
} }
////////////// ******** 快速使用插槽 *******/////////////
///请求设置快速使用
message C2Game_SetSlotRequest // ICustomRouteRequest,Game2C_SetSlotResponse,GameRoute
{
int32 Index = 1;//插槽位置
int64 Id = 2;//快速使用物品
}
///请求设置快速使用响应
message Game2C_SetSlotResponse // ICustomRouteResponse
{
repeated int64 Slots = 1; //快速使用插槽
}
////////////// ******** 鱼护 *******///////////// ////////////// ******** 鱼护 *******/////////////
///请求鱼护列表 ///请求鱼护列表