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

769 lines
30 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 Framework;
using Gameplay.LegionBattle;
using Google.Protobuf;
using NLDMID;
using NLDPB;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
using static CriWare.CriAtomExBeatSync;
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<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)}");
}
/// <summary>
/// 领取章节宝箱
/// </summary>
/// <param name="nGroupID"></param>
/// <param name="nIndex"></param>
public static void LevelGroupReward(uint nGroupID)
{
MSG_Clt_G_GroupReward msg = NetManager.Instance.GetMessage(NLDMID.MSGID.CltGGroupReward) as MSG_Clt_G_GroupReward;
msg.mPB.GroupId = nGroupID;
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>
public static void CreateTeam(uint nIndex, string name, uint nIcon, uint conductor, List<uint> characterIDs, uint[] playerSkillIds, bool isLegionBattle = false)
{
// TODO 更新服务器协议
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.Commander = conductor;
msg.mPB.UnitIds.Clear();
msg.mPB.UnitIds.AddRange(characterIDs);
msg.mPB.PlayerSkills.Clear();
for (int i = 0; i < playerSkillIds.Length; ++i)
msg.mPB.PlayerSkills.Add(playerSkillIds[i]);
msg.mPB.Page = isLegionBattle? (uint)1 : 0;
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(params ulong[] ids)
{
MSG_Clt_Ml_ClaimMailItems msg = NetManager.Instance.GetMessage(MSGID.CltMlClaimMailItems) as MSG_Clt_Ml_ClaimMailItems;
msg.mPB.MailId.Clear();
for (int i = 0; i < ids.Length; i++)
{
msg.mPB.MailId.Add(ids[i]);
}
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 InAppPurchaseTest(uint id)
{
MSG_Clt_G_InAppPurchaseTest msg =
NetManager.Instance.GetMessage(NLDMID.MSGID.CltGInAppPurchaseTest) as MSG_Clt_G_InAppPurchaseTest;
msg.mPB.Id = id;
NetManager.Instance.mClient.SendMessage(msg);
}
public static void SetDefenceTeamForPvp(uint[] characterIDs, uint[] vehicleIDs, uint[] buildingIDs, byte[] teamData)
{
DebugUtil.LogG("SetDefenceTeamForPvp");
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.Clear();
foreach (var vehicleID in vehicleIDs)
{
msg.mPB.VehicleId.Add(vehicleID);
}
msg.mPB.BuildingId.Clear();
foreach (var bulidingID in buildingIDs)
{
msg.mPB.BuildingId.Add(bulidingID);
}
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>
/// 关卡扫荡
/// </summary>
/// <param name="levelId"></param>
/// <param name="count"></param>
public static void LevelSweep(uint teamIndex, uint levelId, uint count)
{
MSG_Clt_G_LevelSweep msg = NetManager.Instance.GetMessage(MSGID.CltGLevelSweep) as MSG_Clt_G_LevelSweep;
msg.mPB.TeamIndex = teamIndex;
msg.mPB.LevelId = levelId;
msg.mPB.Count = count;
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="text"></param>
public static void SetPlayerIntroduction(string text)
{
MSG_Clt_G_SetActorBase msg = NetManager.Instance.GetMessage(MSGID.CltGSetActorBase) as MSG_Clt_G_SetActorBase;
msg.mPB.Desc = text;
msg.mPB.Birthday = Actor.Instance.Base.Birthday;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 设置玩家生日
/// </summary>
/// <param name="date"></param>
public static void SetPlayerBirthday(string date)
{
MSG_Clt_G_SetActorBase msg = NetManager.Instance.GetMessage(MSGID.CltGSetActorBase) as MSG_Clt_G_SetActorBase;
msg.mPB.Desc = Actor.Instance.Base.Description;
msg.mPB.Birthday = date;
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);
}
/// <summary>
/// 验证字符串是否包含屏蔽字库
/// </summary>
public static void CheckString(string text)
{
MSG_Clt_G_StringCheck msg = NetManager.Instance.GetMessage(MSGID.CltGStringCheck) as MSG_Clt_G_StringCheck;
msg.mPB.Content = text;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 载具升级
/// </summary>
/// <param name="vehicleIDs">升级路线上的所有载具</param>
/// <param name="componentIDs">升级路线上的所有部件</param>
/// <param name="type">路线起点类型1-载具,2-部件</param>
public static void VehicleUpgrade(List<long> vehicleIDs, List<long> componentIDs, uint type)
{
MSG_Clt_G_VehicleDevelopment msg = NetManager.Instance.GetMessage(MSGID.CltGVehicleDevelopment) as MSG_Clt_G_VehicleDevelopment;
msg.mPB.VehicleIds.Clear();
msg.mPB.VehicleIds.AddRange(vehicleIDs);
msg.mPB.ComponentIds.Clear();
msg.mPB.ComponentIds.AddRange(componentIDs);
msg.mPB.FirstNodeType = type;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 购买载具涂装
/// </summary>
/// <param name="vehicleID"></param>
/// <param name="paintID"></param>
public static void VehicleBuyPaint(uint vehicleID, uint paintID)
{
MSG_Clt_G_VehicleBuyPaint msg = NetManager.Instance.GetMessage(MSGID.CltGVehicleBuyPaint) as MSG_Clt_G_VehicleBuyPaint;
msg.mPB.VehicleId = vehicleID;
msg.mPB.PaintId = paintID;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 设置载具涂装
/// </summary>
/// <param name="vehicleID"></param>
/// <param name="paintID"></param>
public static void VehicleSetPaint(uint vehicleID, uint paintID)
{
MSG_Clt_G_VehicleSetPaint msg = NetManager.Instance.GetMessage(MSGID.CltGVehicleSetPaint) as MSG_Clt_G_VehicleSetPaint;
msg.mPB.VehicleId = vehicleID;
msg.mPB.PaintId = paintID;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 通过页数获取军团列表数据
/// </summary>
/// <param name="page"></param>
public static void ReqLegionListByPage(uint page)
{
MSG_Clt_Lg_LegionList msg = NetManager.Instance.GetMessage(MSGID.CltLgLegionList) as MSG_Clt_Lg_LegionList;
msg.mPB.SearchKey = "";
msg.mPB.Page = page;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 通过Key搜索军团列表数据
/// </summary>
/// <param name="page"></param>
public static void ReqLegionListByKey(string key)
{
MSG_Clt_Lg_LegionList msg = NetManager.Instance.GetMessage(MSGID.CltLgLegionList) as MSG_Clt_Lg_LegionList;
msg.mPB.SearchKey = key;
msg.mPB.Page = 0;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 创建军团
/// </summary>
/// <param name="legionData"></param>
public static void ReqCreateLegion(MSG_LegionData legionData)
{
MSG_Clt_Lg_CreateLegion msg = NetManager.Instance.GetMessage(MSGID.CltLgCreateLegion) as MSG_Clt_Lg_CreateLegion;
msg.mPB.Info = legionData;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 保存编辑军团信息
/// </summary>
/// <param name="legionData"></param>
public static void ReqSaveEditLegion(MSG_LegionData legionData)
{
MSG_Clt_Lg_UpdateLegion msg = NetManager.Instance.GetMessage(MSGID.CltLgUpdateLegion) as MSG_Clt_Lg_UpdateLegion;
msg.mPB.Info = legionData;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 请求军团详细信息
/// </summary>
/// <param name="legionID"></param>
// public static void ReqLegionInfo(uint legionID)
// {
// MSG_Clt_Lg_LegionInfo msg = NetManager.Instance.GetMessage(MSGID.CltLgLegionInfo) as MSG_Clt_Lg_LegionInfo;
// msg.mPB.LegionId = legionID;
// NetManager.Instance.mClient.SendMessage(msg);
// }
/// <summary>
/// 请求加入军团
/// </summary>
/// <param name="id"></param>
public static void ReqJoinLegion(uint id)
{
MSG_Clt_Lg_JoinLegion msg = NetManager.Instance.GetMessage(MSGID.CltLgJoinLegion) as MSG_Clt_Lg_JoinLegion;
msg.mPB.LegionId = id;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 请求退出军团,团长请求退出时,无成员会解散军团
/// </summary>
public static void ReqLeaveLegion()
{
MSG_Clt_Lg_QuitLegion msg = NetManager.Instance.GetMessage(MSGID.CltLgQuitLegion) as MSG_Clt_Lg_QuitLegion;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 审批加入申请
/// </summary>
/// <param name="uid"></param>
/// <param name="status"></param>
public static void ReqExamineApply(uint uid, uint status)
{
MSG_Clt_Lg_ExamineJoinLegion msg = NetManager.Instance.GetMessage(MSGID.CltLgExamineJoinLegion) as MSG_Clt_Lg_ExamineJoinLegion;
msg.mPB.ActorId = uid;
msg.mPB.Status = status;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 团长请求申请加入列表
/// </summary>
public static void ReqLegionPart(uint partType)
{
//MSG_Clt_Lg_ApplyList msg = NetManager.Instance.GetMessage(MSGID.CltLgApplyList) as MSG_Clt_Lg_ApplyList;
MSG_Clt_Lg_LegionPart msg = NetManager.Instance.GetMessage(MSGID.CltLgLegionPart) as MSG_Clt_Lg_LegionPart;
msg.mPB.PartType = partType;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 请求编辑成员
/// </summary>
public static void ReqEditMember(uint id, uint post)
{
MSG_Clt_Lg_UpdateMember msg = NetManager.Instance.GetMessage(MSGID.CltLgUpdateMember) as MSG_Clt_Lg_UpdateMember;
msg.mPB.ActorId = id;
msg.mPB.Position = post;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 请求踢出成员
/// </summary>
/// <param name="uid"></param>
public static void ReqDismissMember(uint uid)
{
MSG_Clt_Lg_DismissMember msg =
NetManager.Instance.GetMessage(MSGID.CltLgDismissMember) as MSG_Clt_Lg_DismissMember;
msg.mPB.ActorId = uid;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 请求自身Legion数据部件
/// </summary>
/// <param name="part"></param>
public static void ReqMyLegionData(uint part)
{
MSG_Clt_Lg_LegionPart msg = NetManager.Instance.GetMessage(MSGID.CltLgLegionPart) as MSG_Clt_Lg_LegionPart;
msg.mPB.PartType = part;
NetManager.Instance.mClient.SendMessage(msg);
}
public static void CheckCharacter(int characterID)
{
MSG_Clt_G_CheckCharacter msg = NetManager.Instance.GetMessage(MSGID.CltGCheckCharacter) as MSG_Clt_G_CheckCharacter;
msg.mPB.CharacterId = (uint)characterID;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 通行证购买等级
/// </summary>
public static void BattlePassBuyLevel(int level, int cost)
{
MSG_Clt_G_BuyBattlePassLevel msg = NetManager.Instance.GetMessage(MSGID.CltGBuyBattlePassLevel) as MSG_Clt_G_BuyBattlePassLevel;
msg.mPB.BuyLevel = (uint)level;
msg.mPB.BuyCost = (uint)cost;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 领取通行证奖励
/// </summary>
public static void BattlePassGetReward()
{
MSG_Clt_G_BattlePassReward msg = NetManager.Instance.GetMessage(MSGID.CltGBattlePassReward) as MSG_Clt_G_BattlePassReward;
NetManager.Instance.mClient.SendMessage(msg);
}
/// <summary>
/// 月卡每日奖励
/// </summary>
public static void MonthlyPassGetReward()
{
DebugUtil.Log("请求领取月卡奖励");
}
#region 军团战外部
public static void BattleLegionSignUp()
{
MSG_Clt_Lg_LegionBattleSignUp msg = NetManager.Instance.GetMessage(MSGID.CltLgLegionBattleSignUp) as MSG_Clt_Lg_LegionBattleSignUp;
NetManager.Instance.mClient.SendMessage(msg);
}
#endregion
#region 军团战战斗消息
/// <summary>
/// 进入军团战
/// </summary>
public static void EnterLegionBattle()
{
MSG_Clt_B_EnterLegionBattlefield msg = NetManager.Instance.GetMessage(MSGID.CltBEnterLegionBattlefield) as MSG_Clt_B_EnterLegionBattlefield;
NetManager.Instance.mClient.SendMessage(msg);
/*{
#region 模拟军团数据
MSG_LB_Legion legionA = new() { Icon = 1, Name = "蓝色军团" };
MSG_LB_Member memberA = new() { ActorId = 1, HeadIcon = 1, Level = 1, Name = "玩家" };
MSG_LB_Character characterA = new() { Id = 100001, Level = 2 };
MSG_LB_Team teamA = new() { Commander = 1 };
teamA.Units.Add(100001);
memberA.Characters.Add(characterA);
memberA.Teams.Add(teamA);
legionA.Members.Add(memberA);
MSG_LB_Legion legionB = new() { Icon = 1, Name = "红色军团" };
LegionBattleManager.Instance.InitLegionData(1,
(uint)(Stopwatch.StartNew().ElapsedMilliseconds / 1000),
1800,
legionA,
legionB);
#endregion
#region 模拟玩家数据
MSG_LB_Actor actor = new()
{
Attack = 5,
HpMax = 10,
HpCurrent = 10,
X = 5,
Z = 5,
Id = 1,
MoveTime = 1000,
Speed = 5,
Hunger = 100
};
LegionBattleManager.Instance.InitActorData(actor);
#endregion
EventManager.Instance.Send(EventManager.EventName.EnterLegionBattle); // TODO 假数据模拟进入军团战
}*/
}
/// <summary>
/// 进入军团战完成
/// </summary>
public static void EnterLegionBattleOK()
{
MSG_Clt_B_EnterLegionBattlefieldOk msg = NetManager.Instance.GetMessage(MSGID.CltBEnterLegionBattlefieldOk) as MSG_Clt_B_EnterLegionBattlefieldOk;
NetManager.Instance.mClient.SendMessage(msg);
//EventManager.Instance.Send(EventManager.EventName.EnterLegionBattleSuccess); // TODO 模拟进入军团战成功
}
/// <summary>
/// 退出军团战
/// </summary>
public static void ExitLegionBattle()
{
// TODO
EventManager.Instance.Send(EventManager.EventName.ExitLegionBattle); // TODO 模拟退出军团战成功
}
/// <summary>
/// 军团战玩家操作指令
/// </summary>
public static void LegionBattleCommand(BattlefieldActorCommand command, int actorId, Vector2Int pos)
{
/*MSG_Clt_B_LegionBattleCommand msg = NetManager.Instance.GetMessage(MSGID.CltBLegionBattleCommand) as MSG_Clt_B_LegionBattleCommand;
msg.mPB.Command = (uint)command;
msg.mPB.Nx = (uint)pos.y;
msg.mPB.Nz = (uint)pos.x;
msg.mPB.ActorId = (uint)actorId;*/
LegionBattleManager.Instance.UpdateActorDataById((uint)actorId, command, pos.y, pos.x,
new Google.Protobuf.Collections.RepeatedField<uint>() { (uint)pos.x + 1 },
new Google.Protobuf.Collections.RepeatedField<uint>() { (uint)pos.y }); // 模拟假数据
}
/// <summary>
/// 军团长命令
/// </summary>
/// <param name="pos"></param>
/// <param name="type"></param>
public static void LegionBattleCaptainOrder(Vector2Int pos, int type)
{
MSG_Clt_B_LegionBattleCaptainOrder msg = NetManager.Instance.GetMessage(MSGID.CltBLegionBattleCaptainOrder) as MSG_Clt_B_LegionBattleCaptainOrder;
msg.mPB.X = (uint)pos.y;
msg.mPB.Z = (uint)pos.x;
msg.mPB.OrderType = (uint)type;
}
/// <summary>
/// 军团长命令(建筑)
/// </summary>
public static void LegionBattleCaptainOrderByBuilding(Vector2Int pos, BattlefieldActorCamp camp, int type)
{
MSG_B_Clt_LegionBattleCaptainOrder msg = NetManager.Instance.GetMessage(MSGID.BCltLegionBattleCaptainOrder) as MSG_B_Clt_LegionBattleCaptainOrder;
msg.mPB.X = (uint)pos.y;
msg.mPB.Z = (uint)pos.x;
msg.mPB.Camp = (uint)camp;
msg.mPB.OrderType = (uint)type;
}
#endregion
}
}