////////////////////////////////////////////////////////////////////////// // // 文件:Assets/Code/Scripts/Gameplay/Net/Client/NetHelper.cs // 作者:Xoen Xie // 时间:2023/07/19 // 描述:网络相关接口 // 说明: // ////////////////////////////////////////////////////////////////////////// using System.Collections.Generic; using System.Linq; using Google.Protobuf.Collections; using Google.Protobuf; using NLDMID; using NLDPB; using UnityEngine.Rendering; namespace Gameplay.Net { public static class NetHelper { // 发送服务器消息,请求角色养成 public static void CharacterUpgrade(uint nCharacterID, UpgradeType type, uint nTargetLevel, bool addAllExp = false) { MSG_Clt_G_CharacterUpgrade msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGCharacterUpgrade) as MSG_Clt_G_CharacterUpgrade; msg.mPB.CharacterId = nCharacterID; msg.mPB.UpgradeType = (uint)type; msg.mPB.TargetLevel = nTargetLevel; msg.mPB.AddAllExp = addAllExp; NetManager.Instance.mClient.SendMessage(msg); } // 进入关卡 public static void EnterLevel(uint nLevelID, uint nTeamIndex) { MSG_Clt_G_EnterLevel msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGEnterLevel) as MSG_Clt_G_EnterLevel; msg.mPB.LevelId = nLevelID; msg.mPB.TeamIndex = nTeamIndex; NetManager.Instance.mClient.SendMessage(msg); DebugUtil.Log($"C->S send message EnterLevel,levelID:{nLevelID} nTeamIndex:{nTeamIndex}"); } // 退出关卡,关卡结算 public static void ExitLevel(bool isSuccess, List nStar) { MSG_Clt_G_ExitLevel msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGExitLevel) as MSG_Clt_G_ExitLevel; msg.mPB.IsSuccess = isSuccess; msg.mPB.StarIndex.Clear(); msg.mPB.StarIndex.AddRange(nStar); NetManager.Instance.mClient.SendMessage(msg); DebugUtil.Log($"ExitLevel PB:{msg.mPB}"); DebugUtil.Log($"C->S TryExitLevel isSuccess:{isSuccess} StarResult:{string.Join(",",nStar)}"); } // 领取章节宝箱 public static void LevelGroupReward(uint nGroupID, uint nIndex) { MSG_Clt_G_GroupReward msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGGroupReward) as MSG_Clt_G_GroupReward; msg.mPB.GroupId = nGroupID; msg.mPB.Index = nIndex; NetManager.Instance.mClient.SendMessage(msg); } // 载具升级 public static void VehicleUpgrade(uint nVehicleID, uint[] upgrade_type, uint[] upgrade_count) { MSG_Clt_G_VehicleUpgrade msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGVehicleUpgrade) as MSG_Clt_G_VehicleUpgrade; msg.mPB.VehicleId = nVehicleID; msg.mPB.UpgradeType.Clear(); msg.mPB.UpgradeType.AddRange(upgrade_type); msg.mPB.UpgradeCount.Clear(); msg.mPB.UpgradeCount.AddRange(upgrade_count); NetManager.Instance.mClient.SendMessage(msg); } /// /// 创建队伍 /// /// /// /// /// /// /// public static void CreateTeam(uint nIndex, string name, uint nIcon, uint[] characterIDs, uint[] playerSkillIds, uint nVehicleID) { MSG_Clt_G_CreateTeam msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGCreateTeam) as MSG_Clt_G_CreateTeam; msg.mPB.Name = name; msg.mPB.Icon = nIcon; msg.mPB.Index = nIndex; msg.mPB.CharacterId.Clear(); for (int i = 0; i < characterIDs.Length; ++i) msg.mPB.CharacterId.Add(characterIDs[i]); msg.mPB.PlayerSkills.Clear(); for (int i = 0; i < playerSkillIds.Length; ++i) msg.mPB.PlayerSkills.Add(playerSkillIds[i]); msg.mPB.VehicleId = nVehicleID; NetManager.Instance.mClient.SendMessage(msg); } /// /// 抽卡 /// /// /// /// /// public static void Raffle(uint id, uint raffleType, bool isFree, uint useTicketCounr) { MSG_Clt_G_Raffle msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGRaffle) as MSG_Clt_G_Raffle; msg.mPB.Id = id; msg.mPB.Type = raffleType; msg.mPB.IsFree = isFree; msg.mPB.TicketCount = useTicketCounr; NetManager.Instance.mClient.SendMessage(msg); } // 机器人初始化 public static void RobotTestInit() { MSG_Clt_G_TestInit msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGTestInit) as MSG_Clt_G_TestInit; NetManager.Instance.mClient.SendMessage(msg); } public static void GiftCode(string code) { MSG_Clt_G_GiftCode msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGGiftCode) as MSG_Clt_G_GiftCode; msg.mPB.Code = code; NetManager.Instance.mClient.SendMessage(msg); } public static void Relogin() { MSG_Clt_G_Relogin msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGRelogin) as MSG_Clt_G_Relogin; msg.mPB.ActorId = Actor.Instance.Base.GetProp(ActorProp.ActorId); msg.mPB.LoginKey = Actor.Instance.Login.LoginKey; NetManager.Instance.mClient.SendMessage(msg, Actor.Instance.Login.ServerID); } // 请求邮件列表 public static void RequestMailList(bool NeedAll) { MSG_Clt_Ml_MailRequest msg = NetManager.Instance.GetMessage(MSGID.CltMlMailRequest) as MSG_Clt_Ml_MailRequest; msg.mPB.NeedAll = NeedAll; NetManager.Instance.mClient.SendMessage(msg); } // 打开一封邮件 public static void OpenMail(ulong id) { MSG_Clt_Ml_OpenMail msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltMlOpenMail) as MSG_Clt_Ml_OpenMail; msg.mPB.Id = id; NetManager.Instance.mClient.SendMessage(msg); } // 领取邮件附件,如果id为0,则领取所有 public static void CliamMail(ulong id) { MSG_Clt_Ml_ClaimMailItems msg = NetManager.Instance.GetMessage(MSGID.CltMlClaimMailItems) as MSG_Clt_Ml_ClaimMailItems; msg.mPB.MailId = id; NetManager.Instance.mClient.SendMessage(msg); } public static void DeleteMail(ulong id) { MSG_Clt_Ml_DeleteMail msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltMlDeleteMail) as MSG_Clt_Ml_DeleteMail; msg.mPB.MailId = id; NetManager.Instance.mClient.SendMessage(msg); } /// /// 升级指挥官技能 /// /// public static void PlayerSkillUpgrade(uint nSkillID, uint toLevel) { MSG_Clt_G_PlayerSkillUpgrade msg = NetManager.Instance.GetMessage(MSGID.CltGPlayerSkillUpgrade) as MSG_Clt_G_PlayerSkillUpgrade; msg.mPB.SkillId = nSkillID; msg.mPB.Level = toLevel; NetManager.Instance.mClient.SendMessage(msg); } //领取任务奖励 public static void ClaimTaskReward(uint[] taskIds) { MSG_Clt_G_TaskClaim msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGTaskClaim) as MSG_Clt_G_TaskClaim; msg.mPB.TaskId.Clear(); for (int i = 0; i < taskIds.Length; i++) { msg.mPB.TaskId.Add(taskIds[i]); } NetManager.Instance.mClient.SendMessage(msg); } public static void GetShopData(uint nShopId) { MSG_Clt_G_GetShopContent msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGGetShopContent) as MSG_Clt_G_GetShopContent; msg.mPB.ShopId = nShopId; NetManager.Instance.mClient.SendMessage(msg); } public static void ShopBuySth(uint nShopId, int index, int count) { MSG_Clt_G_ShopPurchase msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGShopPurchase) as MSG_Clt_G_ShopPurchase; msg.mPB.ShopId = nShopId; msg.mPB.Index = (uint)index; msg.mPB.Count = (uint)count; NetManager.Instance.mClient.SendMessage(msg); } public static void SetDefenceTeamForPvp(uint[] characterIDs, uint vehicleID, byte[] teamData) { MSG_Clt_G_SetDefenceTeamForPvp msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGSetDefenceTeamForPvp) as MSG_Clt_G_SetDefenceTeamForPvp; msg.mPB.CharacterId.Clear(); foreach (var characterID in characterIDs) { msg.mPB.CharacterId.Add(characterID); } msg.mPB.VehicleId = vehicleID; msg.mPB.TeamData = ByteString.CopyFrom(teamData); NetManager.Instance.mClient.SendMessage(msg); } public static void StartPVPFight(uint actorID) { MSG_Clt_G_PvpStart msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGPvpStart) as MSG_Clt_G_PvpStart; msg.mPB.ActorId = actorID; NetManager.Instance.mClient.SendMessage(msg); } public static void GetPVPInformation() { MSG_Clt_Mg_PvpInformation msg = NetManager.Instance.GetMessage(MSGID.CltMgPvpInformation) as MSG_Clt_Mg_PvpInformation; NetManager.Instance.SendMessage(msg); } public static void FinishPVPFight(bool isWin,uint key) { MSG_Clt_G_PvpResult msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGPvpResult) as MSG_Clt_G_PvpResult; msg.mPB.IsWin = isWin; msg.mPB.Key = key; NetManager.Instance.SendMessage(msg); } public static void GetPvpOrderList(uint page) { MSG_Clt_Mg_PvpOrderList msg = NetManager.Instance.GetMessage(MSGID.CltMgPvpOrderList) as MSG_Clt_Mg_PvpOrderList; msg.mPB.Page = page; NetManager.Instance.SendMessage(msg); } public static void PatioExchange(uint gachaId,uint index) { MSG_Clt_G_PatioExchange msg = NetManager.Instance.GetMessage(MSGID.CltGPatioExchange) as MSG_Clt_G_PatioExchange; msg.mPB.GachaId = gachaId; msg.mPB.Index = index; NetManager.Instance.SendMessage(msg); } public static void InAppPurchase(string transaction_id,string product_id) { MSG_Clt_G_InAppPurchase msg = NetManager.Instance.GetMessage(MSGID.CltGInAppPurchase) as MSG_Clt_G_InAppPurchase; msg.mPB.Platform = (int)PurchasePlatform.Ios; msg.mPB.IsSandbox = true; msg.mPB.TransactionId = transaction_id; msg.mPB.ProductId = product_id; NetManager.Instance.SendMessage(msg); } /// /// 物品转化(如使用物品,打开宝箱等 /// /// 使用物品id /// 使用份数 /// 获得物品id public static void ConvertResources(uint consumeID, uint consumeAmount, uint receivedID) { MSG_Clt_G_ExchangeItem msg = NetManager.Instance.GetMessage(MSGID.CltGExchangeItem) as MSG_Clt_G_ExchangeItem; msg.mPB.Id = consumeID; msg.mPB.Count = consumeAmount; msg.mPB.TargetId = receivedID; NetManager.Instance.mClient.SendMessage(msg); } public static void UseItem(uint consumeID, uint consumeAmount, uint receivedID = default) { MSG_Clt_G_UseItem msg = NetManager.Instance.GetMessage(MSGID.CltGUseItem) as MSG_Clt_G_UseItem; msg.mPB.Id = consumeID; msg.mPB.Count = consumeAmount; msg.mPB.Param = receivedID; NetManager.Instance.mClient.SendMessage(msg); } public static void BuyAlbum(uint AlbumItemID) { MSG_Clt_G_BuyAlbum msg = NetManager.Instance.GetMessage(MSGID.CltGBuyAlbum) as MSG_Clt_G_BuyAlbum; msg.mPB.Id = AlbumItemID; NetManager.Instance.mClient.SendMessage(msg); } /// /// 保存已经完成的引导组id /// /// public static void SaveGuideProgress(uint guideId) { MSG_Clt_G_NewGuideProgress msg = NetManager.Instance.GetMessage(MSGID.CltGNewGuideProgress) as MSG_Clt_G_NewGuideProgress; msg.mPB.Id = guideId; NetManager.Instance.mClient.SendMessage(msg); } /// /// 设置玩家形象 /// public static void SetPlayeHead(uint id) { MSG_Clt_G_SetHeadicon msg = NetManager.Instance.GetMessage(MSGID.CltGSetHeadicon) as MSG_Clt_G_SetHeadicon; msg.mPB.Id = id; NetManager.Instance.mClient.SendMessage(msg); } /// /// 设置玩家名 /// /// public static void SetPlayerName(string name) { MSG_Clt_G_SetNickname msg = NetManager.Instance.GetMessage(MSGID.CltGSetNickname) as MSG_Clt_G_SetNickname; msg.mPB.Nickname = name; NetManager.Instance.mClient.SendMessage(msg); } /// /// 实名认证信息 /// /// /// public static void SendAdultAuth(string name,string ID) { MSG_Clt_G_AdultAuth msg = NetManager.Instance.GetMessage(MSGID.CltGAdultAuth) as MSG_Clt_G_AdultAuth; msg.mPB.Name = name; msg.mPB.Id = ID; NetManager.Instance.mClient.SendMessage(msg); } } }