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)
|
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)
|
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.KcpSharp;
|
||||||
using KianaBH.Proto;
|
using KianaBH.Proto;
|
||||||
|
|
||||||
@@ -5,19 +6,23 @@ namespace KianaBH.GameServer.Server.Packet.Send.ExBoss;
|
|||||||
|
|
||||||
public class PacketGetExBossInfoRsp : BasePacket
|
public class PacketGetExBossInfoRsp : BasePacket
|
||||||
{
|
{
|
||||||
public PacketGetExBossInfoRsp() : base(CmdIds.GetExBossInfoRsp)
|
public PacketGetExBossInfoRsp(PlayerInstance player) : base(CmdIds.GetExBossInfoRsp)
|
||||||
{
|
{
|
||||||
// TODO:Hardcoded
|
|
||||||
|
|
||||||
var proto = new GetExBossInfoRsp
|
var proto = new GetExBossInfoRsp
|
||||||
{
|
{
|
||||||
BossInfo = new ExBossInfo
|
BossInfo = new ExBossInfo
|
||||||
{
|
{
|
||||||
BossIdList = { },
|
BossIdList =
|
||||||
CurMaxEnterTimes = 18,
|
{
|
||||||
|
player.Data.ExBossMonster.Select(x => new ExBossIdInfo
|
||||||
|
{
|
||||||
|
BossId = (uint)x
|
||||||
|
})
|
||||||
|
},
|
||||||
|
CurMaxEnterTimes = 36,
|
||||||
|
NowScheduleId = 10407,
|
||||||
RankId = 104,
|
RankId = 104,
|
||||||
ScheduleId = 10377,
|
ScheduleId = 10407
|
||||||
NowScheduleId = 10377
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -6,31 +6,17 @@ namespace KianaBH.GameServer.Server.Packet.Send.ExBoss;
|
|||||||
|
|
||||||
public class PacketGetExBossRankRsp : BasePacket
|
public class PacketGetExBossRankRsp : BasePacket
|
||||||
{
|
{
|
||||||
public PacketGetExBossRankRsp(PlayerInstance player) : base(CmdIds.GetExBossRankRsp)
|
public PacketGetExBossRankRsp(PlayerInstance player, uint bossId, uint rankId) : base(CmdIds.GetExBossRankRsp)
|
||||||
{
|
{
|
||||||
// TODO: Hardcoded
|
// TODO: Hardcoded
|
||||||
var proto = new GetExBossRankRsp
|
var proto = new GetExBossRankRsp
|
||||||
{
|
{
|
||||||
RankId = 104,
|
BossId = bossId,
|
||||||
|
RankId = rankId,
|
||||||
RankData = new RankShowData
|
RankData = new RankShowData
|
||||||
{
|
{
|
||||||
MyRank = 104,
|
MyRank = 1,
|
||||||
MyRankType = 2,
|
MyRankType = 1
|
||||||
MyScore = 116330,
|
|
||||||
RankList =
|
|
||||||
{
|
|
||||||
new UserRankData
|
|
||||||
{
|
|
||||||
AvatarId = 3101,
|
|
||||||
CustomHeadId = 161099,
|
|
||||||
DressId = 50217,
|
|
||||||
FrameId = 200080,
|
|
||||||
NickName = "Kiana",
|
|
||||||
Rank = 1,
|
|
||||||
Score = 119727,
|
|
||||||
Uid = (uint)player.Data.Uid
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user