NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Net/Client/NetHelper.cs

365 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//////////////////////////////////////////////////////////////////////////
//
// 文件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)
{
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;
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<uint> 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);
}
/// <summary>
/// 创建队伍
/// </summary>
/// <param name="nIndex"></param>
/// <param name="name"></param>
/// <param name="nIcon"></param>
/// <param name="characterIDs"></param>
/// <param name="playerSkillIds"></param>
/// <param name="nVehicleID"></param>
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);
}
/// <summary>
/// 抽卡
/// </summary>
/// <param name="id"></param>
/// <param name="raffleType"></param>
/// <param name="isFree"></param>
/// <param name="useTicketCounr"></param>
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);
}
/// <summary>
/// 升级指挥官技能
/// </summary>
/// <param name="nSkillID"></param>
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);
}
/// <summary>
/// 物品转化(如使用物品,打开宝箱等
/// </summary>
/// <param name="consumeID">使用物品id</param>
/// <param name="consumeAmount">使用份数</param>
/// <param name="receivedID">获得物品id</param>
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);
}
/// <summary>
/// 保存已经完成的引导组id
/// </summary>
/// <param name="guideId"></param>
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);
}
/// <summary>
/// 设置玩家形象
/// </summary>
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);
}
/// <summary>
/// 设置玩家名
/// </summary>
/// <param name="name"></param>
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);
}
/// <summary>
/// 实名认证信息
/// </summary>
/// <param name="name"></param>
/// <param name="ID"></param>
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);
}
}
}