mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-12 13:04:33 +01:00
feat: add memorial arena
This commit is contained in:
16
Common/Data/Excel/ExBossMonsterDataExcel.cs
Normal file
16
Common/Data/Excel/ExBossMonsterDataExcel.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
namespace KianaBH.Data.Excel;
|
||||
|
||||
[ResourceEntity("ExBossMonsterData.json")]
|
||||
public class ExBossMonsterDataExcel : ExcelResource
|
||||
{
|
||||
public int BossId { get; set; }
|
||||
public override int GetId()
|
||||
{
|
||||
return BossId;
|
||||
}
|
||||
|
||||
public override void Loaded()
|
||||
{
|
||||
GameData.ExBossMonsterData.Add(BossId, this);
|
||||
}
|
||||
}
|
||||
25
Common/Data/Excel/UltraEndlessFloorExcel.cs
Normal file
25
Common/Data/Excel/UltraEndlessFloorExcel.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
namespace KianaBH.Data.Excel;
|
||||
|
||||
[ResourceEntity("UltraEndlessFloor.json")]
|
||||
public class UltraEndlessFloorExcel : ExcelResource
|
||||
{
|
||||
public int NeedScore { get; set; }
|
||||
public int MaxScore { get; set; }
|
||||
public int FloorID { get; set; }
|
||||
public int StageID { get; set; }
|
||||
|
||||
public override int GetId()
|
||||
{
|
||||
return StageID;
|
||||
}
|
||||
|
||||
public override void Loaded()
|
||||
{
|
||||
if (!GameData.UltraEndlessFloorData.ContainsKey(StageID))
|
||||
{
|
||||
GameData.UltraEndlessFloorData[StageID] = new List<UltraEndlessFloorExcel>();
|
||||
}
|
||||
GameData.UltraEndlessFloorData[StageID].Add(this);
|
||||
}
|
||||
}
|
||||
23
Common/Data/Excel/UltraEndlessSiteExcel.cs
Normal file
23
Common/Data/Excel/UltraEndlessSiteExcel.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
namespace KianaBH.Data.Excel;
|
||||
|
||||
[ResourceEntity("UltraEndlessSite.json")]
|
||||
public class UltraEndlessSiteExcel : ExcelResource
|
||||
{
|
||||
public int StageID { get; set; }
|
||||
public int BuffID { get; set; }
|
||||
public string SiteNodeName { get; set; } = "";
|
||||
public string SiteName { get; set; } = "";
|
||||
public int HardLevelGroup { get; set; }
|
||||
public int SiteID { get; set; }
|
||||
|
||||
public override int GetId()
|
||||
{
|
||||
return SiteID;
|
||||
}
|
||||
|
||||
public override void Loaded()
|
||||
{
|
||||
GameData.UltraEndlessSiteData.Add(SiteID, this);
|
||||
}
|
||||
}
|
||||
47
GameServer/Command/Commands/CommandAbyss.cs
Normal file
47
GameServer/Command/Commands/CommandAbyss.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using System.Numerics;
|
||||
using KianaBH.Data;
|
||||
using KianaBH.Enums.Player;
|
||||
using KianaBH.Internationalization;
|
||||
|
||||
namespace KianaBH.GameServer.Command.Commands;
|
||||
|
||||
[CommandInfo("abyss", "Game.Command.Abyss.Desc", "Game.Command.Abyss.Usage", ["ab"], [PermEnum.Admin, PermEnum.Support])]
|
||||
public class CommandAbyss : ICommands
|
||||
{
|
||||
[CommandMethod("bracket")]
|
||||
public async ValueTask SetBracket(CommandArg arg)
|
||||
{
|
||||
if (!await arg.CheckOnlineTarget()) return;
|
||||
var bracket = arg.GetInt(0);
|
||||
arg.Target!.Player!.Data.Abyss.GroupLevel = bracket > 0 && bracket < 10 ? bracket : 9;
|
||||
await arg.SendMsg(I18NManager.Translate("Game.Command.Abyss.Success", I18NManager.Translate("Word.Bracket")));
|
||||
}
|
||||
|
||||
[CommandMethod("temp")]
|
||||
public async ValueTask SetDisturbance(CommandArg arg)
|
||||
{
|
||||
if (!await arg.CheckOnlineTarget()) return;
|
||||
var disturbanceValue = arg.GetInt(0);
|
||||
arg.Target!.Player!.Data.Abyss.DynamicHard = disturbanceValue;
|
||||
await arg.SendMsg(I18NManager.Translate("Game.Command.Abyss.Success", I18NManager.Translate("Word.Disturbance")));
|
||||
}
|
||||
|
||||
[CommandMethod("site")]
|
||||
public async ValueTask SetSite(CommandArg arg)
|
||||
{
|
||||
if (!await arg.CheckOnlineTarget()) return;
|
||||
var siteId = arg.GetInt(0);
|
||||
|
||||
var data = GameData.UltraEndlessSiteData.Values
|
||||
.FirstOrDefault(x => x.SiteID == siteId);
|
||||
if (data == null)
|
||||
{
|
||||
await arg.SendMsg(I18NManager.Translate("Game.Command.Abyss.AreaNotFound"));
|
||||
return;
|
||||
}
|
||||
|
||||
arg.Target!.Player!.Data.Abyss.SiteId = siteId;
|
||||
await arg.SendMsg(I18NManager.Translate("Game.Command.Abyss.Success", I18NManager.Translate("Word.Site")));
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,6 @@ public class HandlerGetExBossInfoReq : Handler
|
||||
{
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
await connection.SendPacket(new PacketGetExBossInfoRsp());
|
||||
await connection.SendPacket(new PacketGetExBossInfoRsp(connection.Player!));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ public class HandlerGetExBossRankReq : Handler
|
||||
{
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
await connection.SendPacket(new PacketGetExBossRankRsp(connection.Player!));
|
||||
var req = GetExBossRankReq.Parser.ParseFrom(data);
|
||||
await connection.SendPacket(new PacketGetExBossRankRsp(connection.Player!,req.BossId,req.RankId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using KianaBH.GameServer.Game.Player;
|
||||
using KianaBH.KcpSharp;
|
||||
using KianaBH.Proto;
|
||||
|
||||
@@ -5,19 +6,23 @@ namespace KianaBH.GameServer.Server.Packet.Send.ExBoss;
|
||||
|
||||
public class PacketGetExBossInfoRsp : BasePacket
|
||||
{
|
||||
public PacketGetExBossInfoRsp() : base(CmdIds.GetExBossInfoRsp)
|
||||
public PacketGetExBossInfoRsp(PlayerInstance player) : base(CmdIds.GetExBossInfoRsp)
|
||||
{
|
||||
// TODO:Hardcoded
|
||||
|
||||
var proto = new GetExBossInfoRsp
|
||||
{
|
||||
BossInfo = new ExBossInfo
|
||||
{
|
||||
BossIdList = { },
|
||||
CurMaxEnterTimes = 18,
|
||||
BossIdList =
|
||||
{
|
||||
player.Data.ExBossMonster.Select(x => new ExBossIdInfo
|
||||
{
|
||||
BossId = (uint)x
|
||||
})
|
||||
},
|
||||
CurMaxEnterTimes = 36,
|
||||
NowScheduleId = 10407,
|
||||
RankId = 104,
|
||||
ScheduleId = 10377,
|
||||
NowScheduleId = 10377
|
||||
ScheduleId = 10407
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -6,31 +6,17 @@ namespace KianaBH.GameServer.Server.Packet.Send.ExBoss;
|
||||
|
||||
public class PacketGetExBossRankRsp : BasePacket
|
||||
{
|
||||
public PacketGetExBossRankRsp(PlayerInstance player) : base(CmdIds.GetExBossRankRsp)
|
||||
public PacketGetExBossRankRsp(PlayerInstance player, uint bossId, uint rankId) : base(CmdIds.GetExBossRankRsp)
|
||||
{
|
||||
// TODO: Hardcoded
|
||||
var proto = new GetExBossRankRsp
|
||||
{
|
||||
RankId = 104,
|
||||
BossId = bossId,
|
||||
RankId = rankId,
|
||||
RankData = new RankShowData
|
||||
{
|
||||
MyRank = 104,
|
||||
MyRankType = 2,
|
||||
MyScore = 116330,
|
||||
RankList =
|
||||
{
|
||||
new UserRankData
|
||||
{
|
||||
AvatarId = 3101,
|
||||
CustomHeadId = 161099,
|
||||
DressId = 50217,
|
||||
FrameId = 200080,
|
||||
NickName = "Kiana",
|
||||
Rank = 1,
|
||||
Score = 119727,
|
||||
Uid = (uint)player.Data.Uid
|
||||
}
|
||||
}
|
||||
MyRank = 1,
|
||||
MyRankType = 1
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user