From 290c08325d726f42bab81d412d21b246e4d5dfc7 Mon Sep 17 00:00:00 2001 From: BobSong <605277374@qq.com> Date: Thu, 9 Oct 2025 22:10:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=8E=A7=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prefabs/Player/Human_Male.prefab | 6 +- Assets/Resources/config/ConfigAssets.asset | 328 ++++++++++++++++++ Assets/Scripts/Configs/Mem/ConfigBase.cs | 2 - Assets/Scripts/Fishing2/Helper/ProtoHelper.cs | 2 +- .../Unit/Move/CharacterControllerComponent.cs | 15 +- .../NetworkProtocol/CommonProtoData.cs | 37 +- .../Generate/NetworkProtocol/GameMessage.cs | 300 ++++++++++++++++ .../Generate/NetworkProtocol/OuterOpcode.cs | 106 +++--- .../Generate/NetworkProtocol/RoomMessage.cs | 3 + Assets/Scripts/Model/Assets/PlayerAsset.cs | 27 -- Assets/Scripts/Model/Net/Net.cs | 1 + Config/fishing gear-渔具.xlsx | Bin 64945 -> 64587 bytes Config/~$fishing gear-渔具.xlsx | Bin 0 -> 165 bytes Fishing2.sln.DotSettings.user | 1 + UserSettings/EditorUserSettings.asset | 20 +- 15 files changed, 743 insertions(+), 105 deletions(-) create mode 100644 Config/~$fishing gear-渔具.xlsx diff --git a/Assets/Resources/Prefabs/Player/Human_Male.prefab b/Assets/Resources/Prefabs/Player/Human_Male.prefab index a51f21cb0..0275733d5 100644 --- a/Assets/Resources/Prefabs/Player/Human_Male.prefab +++ b/Assets/Resources/Prefabs/Player/Human_Male.prefab @@ -225,7 +225,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 284185ec1f1e5c6409bed7bc27c6c215, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 0.215 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 284185ec1f1e5c6409bed7bc27c6c215, type: 3} propertyPath: m_LocalPosition.y @@ -2594,8 +2594,8 @@ MonoBehaviour: FeetLengthAdjust: 0 baseTransform: {fileID: 0} Hips: {fileID: 2121359798269357256} - ScaleReferenceMode: 3 - finalScaleReference: 0.9072804 + ScaleReferenceMode: 1 + finalScaleReference: 0.85559285 finalScaleReferenceSqrt: 0.1 customScaleReferenceValue: 0.5 DelayedInitialization: 0 diff --git a/Assets/Resources/config/ConfigAssets.asset b/Assets/Resources/config/ConfigAssets.asset index a1f78b2ce..14bd62c5f 100644 --- a/Assets/Resources/config/ConfigAssets.asset +++ b/Assets/Resources/config/ConfigAssets.asset @@ -12,3 +12,331 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3d8691ef03f74aedb6cfd67e53cf664f, type: 3} m_Name: ConfigAssets m_EditorClassIdentifier: + BaitConfigArr: + - id: 500001 + modelPath: baits/worm_01/worm_01 + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 2.5 + lenght: 0 + amount: 1 + Level: 1 + - id: 500002 + modelPath: baits/fly/fly + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 2.5 + lenght: 0 + amount: 1 + Level: 1 + - id: 500003 + modelPath: baits/black_leech/black_leech + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 2.5 + lenght: 0 + amount: 1 + Level: 1 + - id: 500004 + modelPath: baits/bread/bread + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 2.5 + lenght: 0 + amount: 1 + Level: 1 + BobberConfigArr: + - id: 300001 + modelPath: bobbers/expressfishing/bob_25003/bob_25003 + group: 0 + type: 2 + weight: 0.5 + displacement: 3 + isNightLight: 0 + Level: 1 + amount: 1 + - id: 300002 + modelPath: bobbers/expressfishing/bob_25162_25163/bob_25162 + group: 0 + type: 0 + weight: 0.8 + displacement: 3 + isNightLight: 0 + Level: 1 + amount: 1 + - id: 300003 + modelPath: bobbers/expressfishing/bob_25166_25167/bob_25166 + group: 0 + type: 0 + weight: 0.8 + displacement: 3 + isNightLight: 0 + Level: 1 + amount: 1 + - id: 300004 + modelPath: bobbers/expressfishing/bob_25001/bob_25001 + group: 0 + type: 0 + weight: 0.8 + displacement: 3 + isNightLight: 0 + Level: 1 + amount: 1 + FeederConfigArr: + - id: 900001 + modelPath: Feeders/Feeder 1/FeedTrash 1 + group: 0 + type: 0 + weight: 5 + capacity: 100 + Level: 1 + amount: 1 + FishAcceptConfigArr: + - id: 2100001 + bait: 500189 + min: 0.3 + max: 26 + - id: 2100001 + bait: 500135 + min: 0.3 + max: 25 + FishConfigArr: + - id: 2200001 + speciesName: 10 + isEnabled: 1 + type: 0 + maxWeight: 34 + speciesCoins: 4 + rankingPoint: 1 + modelPath: + - Burbot_B + imagePath: [] + modelTrophyPath: [] + weightLenghtValues: [] + weightLengthCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + acceptFishBaits: [] + acceptFishLures: [] + - id: 2200002 + speciesName: 11 + isEnabled: 1 + type: 0 + maxWeight: 40 + speciesCoins: 4 + rankingPoint: 1 + modelPath: + - CarpCommon_B + imagePath: [] + modelTrophyPath: [] + weightLenghtValues: [] + weightLengthCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + acceptFishBaits: [] + acceptFishLures: [] + - id: 2200003 + speciesName: 14 + isEnabled: 1 + type: 0 + maxWeight: 45 + speciesCoins: 4 + rankingPoint: 1 + modelPath: + - CarpGrass_B + imagePath: [] + modelTrophyPath: [] + weightLenghtValues: [] + weightLengthCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + acceptFishBaits: [] + acceptFishLures: [] + - id: 2200004 + speciesName: 16 + isEnabled: 1 + type: 0 + maxWeight: 3 + speciesCoins: 4 + rankingPoint: 1 + modelPath: + - CarpCrucian_B + imagePath: [] + modelTrophyPath: [] + weightLenghtValues: [] + weightLengthCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + acceptFishBaits: [] + acceptFishLures: [] + HookConfigArr: + - id: 700001 + modelPath: hooks/alliance/c_hook_20789_20794/c_hook_20789 + group: 0 + color: Nickel + type: 1 + zadzior: 1 + size: 1 + amount: 1 + Level: 1 + - id: 700102 + modelPath: hooks/berserk_hooks/triple_20569_20577/triple_20569 + group: 0 + color: Nickel + type: 1 + zadzior: 1 + size: 1 + amount: 1 + Level: 1 + LeadersConfigArr: [] + LineConfigArr: + - id: 400001 + modelPath: Lines/UFE Mono/UFE monoClear + group: 0 + type: 0 + length: 75 + strength: 1.51 + size: 0.12 + Level: 1 + - id: 400002 + modelPath: Lines/UFE Mono/UFE monoClear + group: 0 + type: 0 + length: 75 + strength: 2.51 + size: 0.16 + Level: 1 + LureConfigArr: + - id: 600001 + modelPath: lures/express_fishing/crankbaits_1/775/crankbaits_775 + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 5.3 + lenght: 80 + amount: 0 + Level: 1 + hook: c6ae0a00 + - id: 600002 + modelPath: lures/express_fishing/poppers_1/poppers_590/poppers_590 + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 5.3 + lenght: 80 + amount: 0 + Level: 1 + hook: c6ae0a00 + - id: 600003 + modelPath: lures/express_fishing/softplastic/ef_supergrab_6/softplastic_g_1622 + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 5.3 + lenght: 80 + amount: 0 + Level: 1 + hook: + - id: 600004 + modelPath: lures/express_fishing/softplastic/ef_superminnow_6/softplastic_m_1634 + group: 0 + type: 0 + acceptFish: + weightFishAccept: {x: 0, y: 3} + weight: 5.3 + lenght: 80 + amount: 0 + Level: 1 + hook: + ReelConfigArr: + - id: 200001 + modelPath: reels/syberia/spin_5002/spin_5002 + group: 0 + type: 0 + strength: 3 + gearRatio: {x: 6.2, y: 1} + size: 2000 + Level: 1 + - id: 200002 + modelPath: reels/syberia/spin_5036/spin_5036 + group: 0 + type: 0 + strength: 4.5 + gearRatio: {x: 6.2, y: 1} + size: 2000 + Level: 1 + RingConfigArr: + - id: 1100001 + modelPath: rod_rings/rumoi/rumoi_oxiline_spin + group: 0 + - id: 1100002 + modelPath: rod_rings/smt/smt_pure_ceramic_bolo + group: 0 + RodConfigArr: + - id: 100001 + modelPath: rods/syberia/tele_10037/tele_10037_t13 + group: 0 + type: 1 + length: 3,7 + weight: 250 + strength: 40.82 + maxRange: 67 + ring: 0 + - id: 100002 + modelPath: rods/syberia/bolo_10021/bolo_10021_LB400 + group: 0 + type: 0 + length: 2,5 + weight: 120 + strength: 1.59 + maxRange: 30 + ring: 1100002 + - id: 100003 + modelPath: rods/syberia/spin_10034/spin_10034_S60H + group: 0 + type: 0 + length: 2,5 + weight: 120 + strength: 1.59 + maxRange: 30 + ring: 1100001 + UnitConfigArr: + - id: 310001 + Type: 1 + - id: 310002 + Type: 2 + - id: 310003 + Type: 3 + - id: 310004 + Type: 4 + WeightConfigArr: + - id: 800001 + modelPath: Weights/Weight2_5g + group: 0 + type: 0 + weight: 3 + Level: 1 + amount: 1 diff --git a/Assets/Scripts/Configs/Mem/ConfigBase.cs b/Assets/Scripts/Configs/Mem/ConfigBase.cs index 6c0934d5e..88acd92e0 100644 --- a/Assets/Scripts/Configs/Mem/ConfigBase.cs +++ b/Assets/Scripts/Configs/Mem/ConfigBase.cs @@ -18,8 +18,6 @@ namespace NBF [Serializable] public abstract class ConfigBase { - public string name; - public int id; } diff --git a/Assets/Scripts/Fishing2/Helper/ProtoHelper.cs b/Assets/Scripts/Fishing2/Helper/ProtoHelper.cs index bece7b9ee..0922b3380 100644 --- a/Assets/Scripts/Fishing2/Helper/ProtoHelper.cs +++ b/Assets/Scripts/Fishing2/Helper/ProtoHelper.cs @@ -12,7 +12,7 @@ namespace NBF.Fishing2 MapUnitInfo mapUnit = new MapUnitInfo(); mapUnit.Id = self.RoleId; mapUnit.RoleInfo = self.ToSimpleInfo(); - mapUnit.Gears = self.Gears; + // mapUnit.Gears = self.Gears; return mapUnit; } diff --git a/Assets/Scripts/Fishing2/Unit/Move/CharacterControllerComponent.cs b/Assets/Scripts/Fishing2/Unit/Move/CharacterControllerComponent.cs index 48dade45a..fd4f24583 100644 --- a/Assets/Scripts/Fishing2/Unit/Move/CharacterControllerComponent.cs +++ b/Assets/Scripts/Fishing2/Unit/Move/CharacterControllerComponent.cs @@ -289,14 +289,12 @@ namespace NBF.Fishing2 private void StartMovement(MoveState moveState) { targetPosition = moveState.startPosition; - PlayerAsset.InputMagnitude = 0.5f; Debug.Log($"开始移动 - 位置: {moveState.startPosition}"); } private void StopMovement(MoveState moveState) { targetPosition = moveState.startPosition; - PlayerAsset.InputMagnitude = 0; Debug.Log($"停止移动 - 最终位置: {moveState.startPosition}"); } @@ -344,6 +342,8 @@ namespace NBF.Fishing2 Vector3 totalMovement = currentVelocity * Time.deltaTime; totalMovement.y = verticalVelocity * Time.deltaTime; + Log.Info($"移动=== Id={Parent.Id} 位置: {characterController.transform.position} 移动量: {totalMovement}"); + characterController.Move(totalMovement); } @@ -351,14 +351,13 @@ namespace NBF.Fishing2 private void InterpolatePositionAndRotation() { // 只对非本地玩家进行插值 - var mapUnit = Parent as MapUnit; - if (!mapUnit.IsSelf()) + if (!IsSelf) { // 插值位置 - characterController.transform.position = Vector3.Lerp( - characterController.transform.position, - targetPosition, - positionLerpSpeed * Time.deltaTime); + // characterController.transform.position = Vector3.Lerp( + // characterController.transform.position, + // targetPosition, + // positionLerpSpeed * Time.deltaTime); // 插值旋转 - 使用更平滑的插值方法 characterController.transform.rotation = Quaternion.Slerp( diff --git a/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs b/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs index 4d3c9abf0..d0ec126b8 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs @@ -82,12 +82,12 @@ namespace NBC BaseInfo = default; RoleId = default; Items.Clear(); + ItemBinds.Clear(); Fishs.Clear(); Activities.Clear(); Currency.Clear(); Slots.Clear(); Skills.Clear(); - Gears.Clear(); MapId = default; #if FANTASY_NET || FANTASY_UNITY GetScene().MessagePoolComponent.Return(this); @@ -100,17 +100,17 @@ namespace NBC [ProtoMember(3)] public List Items = new List(); [ProtoMember(4)] - public List Fishs = new List(); + public List ItemBinds = new List(); [ProtoMember(5)] - public List Activities = new List(); + public List Fishs = new List(); [ProtoMember(6)] - public List Currency = new List(); + public List Activities = new List(); [ProtoMember(7)] - public List Slots = new List(); + public List Currency = new List(); [ProtoMember(8)] - public List Skills = new List(); + public List Slots = new List(); [ProtoMember(9)] - public List Gears = new List(); + public List Skills = new List(); [ProtoMember(10)] public int MapId { get; set; } } @@ -199,6 +199,29 @@ namespace NBC public int Count { get; set; } } /// + /// 玩家当前使用钓组信息 + /// + [ProtoContract] + public partial class ItemBindInfo : AMessage, IProto + { + public static ItemBindInfo Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + Item = default; + BindItems.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + [ProtoMember(1)] + public long Item { get; set; } + [ProtoMember(2)] + public List BindItems = new List(); + } + /// /// 物品信息 /// [ProtoContract] diff --git a/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs index b63f5ca3c..d1129c55b 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs @@ -9,4 +9,304 @@ using NBC.Serialize; namespace NBC { + /// + /// /////////// ******** 物品信息 *******///////////// + /// + /// + /// 请求背包列表 + /// + [ProtoContract] + public partial class C2Game_GetItemsRequest : AMessage, ICustomRouteRequest, IProto + { + public static C2Game_GetItemsRequest Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + [ProtoIgnore] + public Game2C_GetItemsResponse ResponseType { get; set; } + public uint OpCode() { return OuterOpcode.C2Game_GetItemsRequest; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.GameRoute; + } + /// + /// 请求背包列表响应 + /// + [ProtoContract] + public partial class Game2C_GetItemsResponse : AMessage, ICustomRouteResponse, IProto + { + public static Game2C_GetItemsResponse Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + ErrorCode = default; + Items.Clear(); + Rigs.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Game2C_GetItemsResponse; } + [ProtoMember(1)] + public List Items = new List(); + [ProtoMember(2)] + public List Rigs = new List(); + [ProtoMember(3)] + public uint ErrorCode { get; set; } + } + /// + /// 请求使用物品 + /// + [ProtoContract] + public partial class C2Game_UseItemRequest : AMessage, ICustomRouteRequest, IProto + { + public static C2Game_UseItemRequest Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + [ProtoIgnore] + public Game2C_UseItemResponse ResponseType { get; set; } + public uint OpCode() { return OuterOpcode.C2Game_UseItemRequest; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.GameRoute; + } + /// + /// 请求使用物品响应 + /// + [ProtoContract] + public partial class Game2C_UseItemResponse : AMessage, ICustomRouteResponse, IProto + { + public static Game2C_UseItemResponse Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + ErrorCode = default; +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Game2C_UseItemResponse; } + [ProtoMember(1)] + public uint ErrorCode { get; set; } + } + /// + /// 物品变化 + /// + [ProtoContract] + public partial class Game2C_ItemChange : AMessage, ICustomRouteMessage, IProto + { + public static Game2C_ItemChange Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + Type = default; + Items.Clear(); + Removes.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Game2C_ItemChange; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.GameRoute; + [ProtoMember(1)] + public int Type { get; set; } + [ProtoMember(2)] + public List Items = new List(); + [ProtoMember(3)] + public List Removes = new List(); + } + /// + /// /////////// ******** 鱼护 *******///////////// + /// + /// + /// 请求鱼护列表 + /// + [ProtoContract] + public partial class C2Game_GetFishsRequest : AMessage, ICustomRouteRequest, IProto + { + public static C2Game_GetFishsRequest Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + [ProtoIgnore] + public Game2C_GetFishsResponse ResponseType { get; set; } + public uint OpCode() { return OuterOpcode.C2Game_GetFishsRequest; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.GameRoute; + } + /// + /// 请求鱼护列表响应 + /// + [ProtoContract] + public partial class Game2C_GetFishsResponse : AMessage, ICustomRouteResponse, IProto + { + public static Game2C_GetFishsResponse Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + ErrorCode = default; + Fishs.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Game2C_GetFishsResponse; } + [ProtoMember(1)] + public List Fishs = new List(); + [ProtoMember(2)] + public uint ErrorCode { get; set; } + } + /// + /// 鱼护变化 + /// + [ProtoContract] + public partial class Game2C_FishChange : AMessage, ICustomRouteMessage, IProto + { + public static Game2C_FishChange Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + Type = default; + Fishs.Clear(); + Removes.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Game2C_FishChange; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.GameRoute; + [ProtoMember(1)] + public int Type { get; set; } + [ProtoMember(2)] + public List Fishs = new List(); + [ProtoMember(3)] + public List Removes = new List(); + } + /// + /// 请求出售 + /// + [ProtoContract] + public partial class C2Game_SellFishRequest : AMessage, ICustomRouteRequest, IProto + { + public static C2Game_SellFishRequest Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + Ids.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + [ProtoIgnore] + public Game2C_SellFishResponse ResponseType { get; set; } + public uint OpCode() { return OuterOpcode.C2Game_SellFishRequest; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.GameRoute; + [ProtoMember(1)] + public List Ids = new List(); + } + /// + /// 请求出售响应 + /// + [ProtoContract] + public partial class Game2C_SellFishResponse : AMessage, ICustomRouteResponse, IProto + { + public static Game2C_SellFishResponse Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + ErrorCode = default; + Awards.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Game2C_SellFishResponse; } + [ProtoMember(1)] + public List Awards = new List(); + [ProtoMember(2)] + public uint ErrorCode { get; set; } + } + /// + /// /////////// ******** 商店 *******///////////// + /// + /// + /// 请求购买 + /// + [ProtoContract] + public partial class C2Game_BuyRequest : AMessage, ICustomRouteRequest, IProto + { + public static C2Game_BuyRequest Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + [ProtoIgnore] + public Game2C_GetFishsResponse ResponseType { get; set; } + public uint OpCode() { return OuterOpcode.C2Game_BuyRequest; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.GameRoute; + } + /// + /// 请求购买响应 + /// + [ProtoContract] + public partial class Game2C_BuyResponse : AMessage, ICustomRouteResponse, IProto + { + public static Game2C_BuyResponse Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + ErrorCode = default; + Awards.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Game2C_BuyResponse; } + [ProtoMember(1)] + public List Awards = new List(); + [ProtoMember(2)] + public uint ErrorCode { get; set; } + } } diff --git a/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs b/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs index 16493aacf..5d4482248 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs @@ -2,61 +2,73 @@ namespace Fantasy { public static partial class OuterOpcode { - public const uint C2Map_CreateRoomRequest = 2281711377; - public const uint Map2C_CreateRoomResponse = 2415929105; + public const uint C2Game_GetItemsRequest = 2281711377; + public const uint Game2C_GetItemsResponse = 2415929105; + public const uint C2Game_UseItemRequest = 2281711378; + public const uint Game2C_UseItemResponse = 2415929106; + public const uint Game2C_ItemChange = 2147493649; + public const uint C2Game_GetFishsRequest = 2281711379; + public const uint Game2C_GetFishsResponse = 2415929107; + public const uint Game2C_FishChange = 2147493650; + public const uint C2Game_SellFishRequest = 2281711380; + public const uint Game2C_SellFishResponse = 2415929108; + public const uint C2Game_BuyRequest = 2281711381; + public const uint Game2C_BuyResponse = 2415929109; + public const uint C2Map_CreateRoomRequest = 2281711382; + public const uint Map2C_CreateRoomResponse = 2415929110; public const uint C2G_ExitRoomRequest = 268445457; public const uint G2C_ExitRoomResponse = 402663185; public const uint C2G_EnterMapRequest = 268445458; public const uint G2C_EnterMapResponse = 402663186; - public const uint Map2C_ChangeMap = 2147493649; + public const uint Map2C_ChangeMap = 2147493651; public const uint C2A_LoginRequest = 268445459; public const uint A2C_LoginResponse = 402663187; public const uint C2G_LoginRequest = 268445460; public const uint G2C_LoginResponse = 402663188; public const uint G2C_RepeatLogin = 134227729; - public const uint C2Game_GetRoleInfoRequest = 2281711378; - public const uint Game2C_GetRoleInfoResponse = 2415929106; - public const uint Map2C_RoleEnterRoomNotify = 2147493650; - public const uint Map2C_RoleExitRoomNotify = 2147493651; - public const uint C2Map_RolePropertyChange = 2147493652; - public const uint Map2C_RoleStateNotify = 2147493653; - public const uint Map2C_RoleGearChangeNotify = 2147493654; - public const uint Map2C_RolePropertyChangeNotify = 2147493655; - public const uint C2Map_Move = 2147493656; - public const uint C2Map_Look = 2147493657; - public const uint Map2C_MoveNotify = 2147493658; - public const uint Map2C_LookeNotify = 2147493659; - public const uint C2S_GetConversationsRequest = 2281711379; - public const uint S2C_GetConversationsResponse = 2415929107; - public const uint C2S_SendMailRequest = 2281711380; - public const uint S2C_SendMailResponse = 2415929108; - public const uint C2S_DeleteMailRequest = 2281711381; - public const uint S2C_DeleteMailResponse = 2415929109; - public const uint S2C_HaveMail = 2147493660; - public const uint S2C_MailState = 2147493661; - public const uint C2S_CreateChannelRequest = 2281711382; - public const uint S2C_CreateChannelResponse = 2415929110; - public const uint C2S_JoinChannelRequest = 2281711383; - public const uint S2C_JoinChannelResponse = 2415929111; - public const uint C2S_SendMessageRequest = 2281711384; - public const uint S2C_SendMessageResponse = 2415929112; - public const uint S2C_Message = 2147493662; - public const uint C2S_CreateClubRequest = 2281711385; - public const uint S2C_CreateClubResponse = 2415929113; - public const uint C2S_GetClubInfoRequest = 2281711386; - public const uint S2C_GetClubInfoResponse = 2415929114; - public const uint C2S_GetMemberListRequest = 2281711387; - public const uint S2C_GetMemberListResponse = 2415929115; - public const uint C2S_GetClubListRequest = 2281711388; - public const uint S2C_GetClubListResponse = 2415929116; - public const uint C2S_JoinClubRequest = 2281711389; - public const uint S2C_JoinClubResponse = 2415929117; - public const uint C2S_LeaveClubRequest = 2281711390; - public const uint S2C_LeaveClubResponse = 2415929118; - public const uint C2S_DissolveClubRequest = 2281711391; - public const uint S2C_DissolveClubResponse = 2415929119; - public const uint C2S_DisposeJoinRequest = 2281711392; - public const uint S2C_DisposeJoinResponse = 2415929120; - public const uint S2C_ClubChange = 2147493663; + public const uint C2Game_GetRoleInfoRequest = 2281711383; + public const uint Game2C_GetRoleInfoResponse = 2415929111; + public const uint Map2C_RoleEnterRoomNotify = 2147493652; + public const uint Map2C_RoleExitRoomNotify = 2147493653; + public const uint C2Map_RolePropertyChange = 2147493654; + public const uint Map2C_RoleStateNotify = 2147493655; + public const uint Map2C_RoleGearChangeNotify = 2147493656; + public const uint Map2C_RolePropertyChangeNotify = 2147493657; + public const uint C2Map_Move = 2147493658; + public const uint C2Map_Look = 2147493659; + public const uint Map2C_MoveNotify = 2147493660; + public const uint Map2C_LookeNotify = 2147493661; + public const uint C2S_GetConversationsRequest = 2281711384; + public const uint S2C_GetConversationsResponse = 2415929112; + public const uint C2S_SendMailRequest = 2281711385; + public const uint S2C_SendMailResponse = 2415929113; + public const uint C2S_DeleteMailRequest = 2281711386; + public const uint S2C_DeleteMailResponse = 2415929114; + public const uint S2C_HaveMail = 2147493662; + public const uint S2C_MailState = 2147493663; + public const uint C2S_CreateChannelRequest = 2281711387; + public const uint S2C_CreateChannelResponse = 2415929115; + public const uint C2S_JoinChannelRequest = 2281711388; + public const uint S2C_JoinChannelResponse = 2415929116; + public const uint C2S_SendMessageRequest = 2281711389; + public const uint S2C_SendMessageResponse = 2415929117; + public const uint S2C_Message = 2147493664; + public const uint C2S_CreateClubRequest = 2281711390; + public const uint S2C_CreateClubResponse = 2415929118; + public const uint C2S_GetClubInfoRequest = 2281711391; + public const uint S2C_GetClubInfoResponse = 2415929119; + public const uint C2S_GetMemberListRequest = 2281711392; + public const uint S2C_GetMemberListResponse = 2415929120; + public const uint C2S_GetClubListRequest = 2281711393; + public const uint S2C_GetClubListResponse = 2415929121; + public const uint C2S_JoinClubRequest = 2281711394; + public const uint S2C_JoinClubResponse = 2415929122; + public const uint C2S_LeaveClubRequest = 2281711395; + public const uint S2C_LeaveClubResponse = 2415929123; + public const uint C2S_DissolveClubRequest = 2281711396; + public const uint S2C_DissolveClubResponse = 2415929124; + public const uint C2S_DisposeJoinRequest = 2281711397; + public const uint S2C_DisposeJoinResponse = 2415929125; + public const uint S2C_ClubChange = 2147493665; } } diff --git a/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs index 4370832e4..56c73cf38 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs @@ -225,6 +225,7 @@ namespace NBC Rotation = default; Direction = default; IsStop = default; + IsRun = default; Timestamp = default; #if FANTASY_NET || FANTASY_UNITY GetScene().MessagePoolComponent.Return(this); @@ -244,6 +245,8 @@ namespace NBC [ProtoMember(5)] public bool IsStop { get; set; } [ProtoMember(6)] + public bool IsRun { get; set; } + [ProtoMember(7)] public long Timestamp { get; set; } } /// diff --git a/Assets/Scripts/Model/Assets/PlayerAsset.cs b/Assets/Scripts/Model/Assets/PlayerAsset.cs index 885f673ab..45d7c6b6b 100644 --- a/Assets/Scripts/Model/Assets/PlayerAsset.cs +++ b/Assets/Scripts/Model/Assets/PlayerAsset.cs @@ -29,33 +29,6 @@ namespace NBF #region 动画 #region 参数定义 - private static readonly int InputHorizontalHash = Animator.StringToHash("InputHorizontal"); - private static readonly int InputVerticalHash = Animator.StringToHash("InputVertical"); - private static readonly int InputMagnitudeHash = Animator.StringToHash("InputMagnitude"); - private static readonly int IsSprintingHash = Animator.StringToHash("IsSprinting"); - public float InputHorizontal - { - get => Animator.GetFloat(InputHorizontalHash); - set => Animator.SetFloat(InputHorizontalHash, value); - } - public float InputVertical - { - get => Animator.GetFloat(InputVerticalHash); - set => Animator.SetFloat(InputVerticalHash, value); - } - public float InputMagnitude - { - get => Animator.GetFloat(InputMagnitudeHash); - set => Animator.SetFloat(InputMagnitudeHash, value); - } - public bool IsSprinting - { - get => Animator.GetBool(IsSprintingHash); - set => Animator.SetBool(IsSprintingHash, value); - } - - - diff --git a/Assets/Scripts/Model/Net/Net.cs b/Assets/Scripts/Model/Net/Net.cs index f488db1e7..f1d6d912b 100644 --- a/Assets/Scripts/Model/Net/Net.cs +++ b/Assets/Scripts/Model/Net/Net.cs @@ -39,6 +39,7 @@ namespace NBF private static void OnConnectComplete() { Log.Debug("连接成功"); + // 心跳 Session.AddComponent().Start(HeartbeatInterval); } diff --git a/Config/fishing gear-渔具.xlsx b/Config/fishing gear-渔具.xlsx index e1fb0f36bbaa7081a2758613977deaad9e824cc9..f9ed12d9a2193f0d8fab27fdc34becb80ef4bfc7 100644 GIT binary patch delta 30445 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 z
  • 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 diff --git a/Config/~$fishing gear-渔具.xlsx b/Config/~$fishing gear-渔具.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fd5ec18548fa218ea975c406c092d06f02ee4679 GIT binary patch literal 165 fcmZQIGcYwWS0ELzGMF(KFqkqJF_<$b&>R8)fr}1P literal 0 HcmV?d00001 diff --git a/Fishing2.sln.DotSettings.user b/Fishing2.sln.DotSettings.user index 693d08ffe..0f7534b34 100644 --- a/Fishing2.sln.DotSettings.user +++ b/Fishing2.sln.DotSettings.user @@ -31,6 +31,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded <AssemblyExplorer> diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 17674f295..201b361f7 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -9,32 +9,32 @@ EditorUserSettings: value: 18134705175a055722080a3115371d4a0d55006876786860616b0471b8b07a68ffab74f9ee2a3a30300cea1a11320d0beb1a0c25f7060f494b4cc80018eb09361fc211cb1f862d19c51d19dcc413d6ade0d8ddfcddf9f4d9d29195fcfde6ebeae6f0a9c9afa6f8c5b89ff7a1aacececac4eba4d7c9d28bda flags: 0 RecentlyUsedSceneGuid-0: - value: 57030605040158595e085f7745760e441416492f7a7d27617c704f64e4e46d60 - flags: 0 - RecentlyUsedSceneGuid-1: value: 07070052520d08590b5b5f7149200744474f4e7d7d2c7067757e4d6ae0e3673a flags: 0 - RecentlyUsedSceneGuid-2: + RecentlyUsedSceneGuid-1: value: 5457515604055e5d5c5f5a2012270d44444e4d73742a7e637f2c1f65b3b7603c flags: 0 - RecentlyUsedSceneGuid-3: + RecentlyUsedSceneGuid-2: value: 51500d5451575a5a545655754173594415164f727b2a7e67797c1b6bb4e2303e flags: 0 - RecentlyUsedSceneGuid-4: + RecentlyUsedSceneGuid-3: value: 52550d0256025d0c08595f2347735c4417154078747172642f784f66b4b8366c flags: 0 - RecentlyUsedSceneGuid-5: + RecentlyUsedSceneGuid-4: value: 005752035c000a090b5a0d711376074443151b282e297f32742f4564b5b63660 flags: 0 - RecentlyUsedSceneGuid-6: + RecentlyUsedSceneGuid-5: value: 50035657070c0b0c55565d7b427a0c44154e4c2e7b7d75627f2c1c32e3b46639 flags: 0 - RecentlyUsedSceneGuid-7: + RecentlyUsedSceneGuid-6: value: 5300575451055d580b585f20457a5944134e197d7b2e22617e7a1e66bae1313a flags: 0 - RecentlyUsedSceneGuid-8: + RecentlyUsedSceneGuid-7: value: 5301015556035e585c57082643210e4410164b7d2a2923327a791e35e3b3636f flags: 0 + RecentlyUsedSceneGuid-8: + value: 0652525055575c5d5c0f5c7a1477094440151a2b2f2a2434747d4835e1e46661 + flags: 0 RecentlyUsedSceneGuid-9: value: 5505015f5c515a085f5b092149760f441716407a787d7564287b1b36e7e1366e flags: 0