mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-12 19:24:34 +01:00
ma abyss & chapter 37 fix
This commit is contained in:
89
Common/Utils/ExcelReader/ExBossMonsterData.cs
Normal file
89
Common/Utils/ExcelReader/ExBossMonsterData.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
using Common.Utils.ExcelReader;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace PemukulPaku.GameServer.Commands
|
||||
{
|
||||
internal class ExBossMonsterData : BaseExcelReader<ExBossMonsterData, ExBossMonsterDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "ExBossMonsterData.json"; } }
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public partial class ExBossMonsterDataExcel
|
||||
{
|
||||
[JsonProperty("BossGroupId")]
|
||||
public int BossGroupId { get; set; }
|
||||
|
||||
[JsonProperty("BossName")]
|
||||
public string BossName { get; set; }
|
||||
|
||||
[JsonProperty("BossPrefabPath")]
|
||||
public string BossPrefabPath { get; set; }
|
||||
|
||||
[JsonProperty("MonsterId")]
|
||||
public int MonsterId { get; set; }
|
||||
|
||||
[JsonProperty("HardLevel")]
|
||||
public int HardLevel { get; set; }
|
||||
|
||||
[JsonProperty("HardLevelGroup")]
|
||||
public int HardLevelGroup { get; set; }
|
||||
|
||||
[JsonProperty("MonsterHp")]
|
||||
public int MonsterHp { get; set; }
|
||||
|
||||
[JsonProperty("MonsterLevel")]
|
||||
public uint MonsterLevel { get; set; }
|
||||
|
||||
[JsonProperty("MonsterBaseScore")]
|
||||
public int MonsterBaseScore { get; set; }
|
||||
|
||||
[JsonProperty("SceneName")]
|
||||
public string SceneName { get; set; }
|
||||
|
||||
[JsonProperty("BossAttribute")]
|
||||
public int BossAttribute { get; set; }
|
||||
|
||||
[JsonProperty("BossSkillTipsList")]
|
||||
public int[] BossSkillTipsList { get; set; }
|
||||
|
||||
[JsonProperty("DefaultShowSkillDetail")]
|
||||
public bool DefaultShowSkillDetail { get; set; }
|
||||
|
||||
[JsonProperty("BossDesc")]
|
||||
public HashName BossDesc { get; set; }
|
||||
|
||||
[JsonProperty("ImagePath")]
|
||||
public string ImagePath { get; set; }
|
||||
|
||||
[JsonProperty("RestrictList")]
|
||||
public int[] RestrictList { get; set; }
|
||||
|
||||
[JsonProperty("EventMark")]
|
||||
public HashName EventMark { get; set; }
|
||||
|
||||
[JsonProperty("TimesScore")]
|
||||
public int TimesScore { get; set; }
|
||||
|
||||
[JsonProperty("CornerMarkPath")]
|
||||
public string CornerMarkPath { get; set; }
|
||||
|
||||
[JsonProperty("UpTagList")]
|
||||
public TagList[] UpTagList { get; set; }
|
||||
|
||||
[JsonProperty("DownTagList")]
|
||||
public TagList[] DownTagList { get; set; }
|
||||
|
||||
[JsonProperty("ExtraTimeScore")]
|
||||
public int ExtraTimeScore { get; set; }
|
||||
|
||||
[JsonProperty("ConfigID")]
|
||||
public int ConfigId { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("BossId")]
|
||||
public int BossId { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
using System.Security.Cryptography;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
@@ -43,6 +44,27 @@ namespace Common.Utils.ExcelReader
|
||||
return new LevelData(level, expRemain);
|
||||
}
|
||||
|
||||
public uint ExBossRankFromExp(int exp)
|
||||
{
|
||||
int UserLevel = CalculateLevel(exp).Level;
|
||||
if (UserLevel >= 81)
|
||||
{
|
||||
return 104;
|
||||
}
|
||||
else if (UserLevel >= 70)
|
||||
{
|
||||
return 103;
|
||||
}
|
||||
else if (UserLevel >= 56)
|
||||
{
|
||||
return 102;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 101;
|
||||
}
|
||||
}
|
||||
|
||||
public LevelData CalculateExpForLevel(int level)
|
||||
{
|
||||
int exp = 0;
|
||||
|
||||
88
GameServer/Commands/ExBossMonsterData.cs
Normal file
88
GameServer/Commands/ExBossMonsterData.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
internal class ExBossMonsterData : BaseExcelReader<ExBossMonsterData, ExBossMonsterDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "ExBossMonsterData.json"; } }
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public partial class ExBossMonsterDataExcel
|
||||
{
|
||||
[JsonProperty("BossGroupId")]
|
||||
public int BossGroupId { get; set; }
|
||||
|
||||
[JsonProperty("BossName")]
|
||||
public string BossName { get; set; }
|
||||
|
||||
[JsonProperty("BossPrefabPath")]
|
||||
public string BossPrefabPath { get; set; }
|
||||
|
||||
[JsonProperty("MonsterId")]
|
||||
public int MonsterId { get; set; }
|
||||
|
||||
[JsonProperty("HardLevel")]
|
||||
public int HardLevel { get; set; }
|
||||
|
||||
[JsonProperty("HardLevelGroup")]
|
||||
public int HardLevelGroup { get; set; }
|
||||
|
||||
[JsonProperty("MonsterHp")]
|
||||
public uint MonsterHp { get; set; }
|
||||
|
||||
[JsonProperty("MonsterLevel")]
|
||||
public int MonsterLevel { get; set; }
|
||||
|
||||
[JsonProperty("MonsterBaseScore")]
|
||||
public int MonsterBaseScore { get; set; }
|
||||
|
||||
[JsonProperty("SceneName")]
|
||||
public string SceneName { get; set; }
|
||||
|
||||
[JsonProperty("BossAttribute")]
|
||||
public int BossAttribute { get; set; }
|
||||
|
||||
[JsonProperty("BossSkillTipsList")]
|
||||
public int[] BossSkillTipsList { get; set; }
|
||||
|
||||
[JsonProperty("DefaultShowSkillDetail")]
|
||||
public bool DefaultShowSkillDetail { get; set; }
|
||||
|
||||
[JsonProperty("BossDesc")]
|
||||
public HashName BossDesc { get; set; }
|
||||
|
||||
[JsonProperty("ImagePath")]
|
||||
public string ImagePath { get; set; }
|
||||
|
||||
[JsonProperty("RestrictList")]
|
||||
public int[] RestrictList { get; set; }
|
||||
|
||||
[JsonProperty("EventMark")]
|
||||
public HashName EventMark { get; set; }
|
||||
|
||||
[JsonProperty("TimesScore")]
|
||||
public int TimesScore { get; set; }
|
||||
|
||||
[JsonProperty("CornerMarkPath")]
|
||||
public string CornerMarkPath { get; set; }
|
||||
|
||||
[JsonProperty("UpTagList")]
|
||||
public TagList[] UpTagList { get; set; }
|
||||
|
||||
[JsonProperty("DownTagList")]
|
||||
public TagList[] DownTagList { get; set; }
|
||||
|
||||
[JsonProperty("ExtraTimeScore")]
|
||||
public int ExtraTimeScore { get; set; }
|
||||
|
||||
[JsonProperty("ConfigID")]
|
||||
public int ConfigId { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("BossId")]
|
||||
public int BossId { get; set; }
|
||||
}
|
||||
}
|
||||
23
GameServer/Handlers/ChapterBwWorldGetDataReqHandler.cs
Normal file
23
GameServer/Handlers/ChapterBwWorldGetDataReqHandler.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.ChapterBwWorldGetDataReq)]
|
||||
internal class ChapterBwWorldGetDataReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
ChapterBwWorldGetDataReq Data = packet.GetDecodedBody<ChapterBwWorldGetDataReq>();
|
||||
|
||||
session.Send(Packet.FromProto(new ChapterBwWorldGetDataRsp()
|
||||
{
|
||||
retcode = ChapterBwWorldGetDataRsp.Retcode.Succ,
|
||||
ChapterBwWorld = new()
|
||||
{
|
||||
ChapterId = Data.ChapterId,
|
||||
EquipRuneUniqueIdLists = new uint[] { 0, 0 }
|
||||
}
|
||||
}, CmdId.ChapterBwWorldGetDataRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
13
GameServer/Handlers/ExBossStageBeginReqHandler.cs
Normal file
13
GameServer/Handlers/ExBossStageBeginReqHandler.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.ExBossStageBeginReq)]
|
||||
internal class ExBossStageBeginReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
session.Send(Packet.FromProto(new ExBossStageBeginRsp() { retcode = ExBossStageBeginRsp.Retcode.Succ }, CmdId.ExBossStageBeginRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
21
GameServer/Handlers/ExBossStageEndReqHandler.cs
Normal file
21
GameServer/Handlers/ExBossStageEndReqHandler.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.ExBossStageEndReq)]
|
||||
internal class ExBossStageEndReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
ExBossStageEndReq Data = packet.GetDecodedBody<ExBossStageEndReq>();
|
||||
|
||||
session.Send(Packet.FromProto(new ExBossStageEndRsp()
|
||||
{
|
||||
retcode = ExBossStageEndRsp.Retcode.Succ,
|
||||
BossId = Data.BossId,
|
||||
EndStatus = Data.EndStatus
|
||||
}, CmdId.ExBossStageEndRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
30
GameServer/Handlers/GetExBossInfoReqHandler.cs
Normal file
30
GameServer/Handlers/GetExBossInfoReqHandler.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Common.Resources.Proto;
|
||||
using Common.Utils.ExcelReader;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.GetExBossInfoReq)]
|
||||
internal class GetExBossInfoReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetExBossInfoRsp Rsp = new()
|
||||
{
|
||||
retcode = GetExBossInfoRsp.Retcode.Succ,
|
||||
BossInfo = new()
|
||||
{
|
||||
EnterTimes = 0,
|
||||
ScheduleId = 1,
|
||||
MaxSweepLevel = 4
|
||||
}
|
||||
};
|
||||
Rsp.BossInfo.RankId = PlayerLevelData.GetInstance().ExBossRankFromExp(session.Player.User.Exp);
|
||||
foreach (ExBossMonsterDataExcel monsterData in ExBossMonsterData.GetInstance().All.Where(monster => monster.ConfigId == Rsp.BossInfo.RankId))
|
||||
{
|
||||
Rsp.BossInfo.BossIdLists.Add(new() { BossId = (uint)monsterData.BossId });
|
||||
}
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.GetExBossInfoRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
27
GameServer/Handlers/GetExBossRankReqHandler.cs
Normal file
27
GameServer/Handlers/GetExBossRankReqHandler.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.GetExBossRankReq)]
|
||||
internal class GetExBossRankReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetExBossRankReq Data = packet.GetDecodedBody<GetExBossRankReq>();
|
||||
GetExBossRankRsp Rsp = new()
|
||||
{
|
||||
retcode = GetExBossRankRsp.Retcode.Succ,
|
||||
BossId = Data.BossId,
|
||||
RankId = Data.RankId,
|
||||
RankData = new()
|
||||
{
|
||||
MyScore = 0,
|
||||
MyRank = 1,
|
||||
MyRankType = 1
|
||||
}
|
||||
};
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.GetExBossRankRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
26
GameServer/Handlers/GetExBossScheduleReqHandler.cs
Normal file
26
GameServer/Handlers/GetExBossScheduleReqHandler.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Common;
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
using Common.Utils.ExcelReader;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.GetExBossScheduleReq)]
|
||||
internal class GetExBossScheduleReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetExBossScheduleRsp Rsp = new()
|
||||
{
|
||||
retcode = GetExBossScheduleRsp.Retcode.Succ,
|
||||
BeginTime = 0,
|
||||
EndTime = (uint)Global.GetUnixInSeconds() + 604800,
|
||||
MinLevel = 0,
|
||||
ScheduleId = 1
|
||||
};
|
||||
Rsp.RankId = PlayerLevelData.GetInstance().ExBossRankFromExp(session.Player.User.Exp);
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.GetExBossScheduleRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
13
GameServer/Handlers/GetGodWarReqHandler.cs
Normal file
13
GameServer/Handlers/GetGodWarReqHandler.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.GetGodWarReq)]
|
||||
internal class GetGodWarReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
session.Send(Packet.FromProto(new GetGodWarRsp() { retcode = GetGodWarRsp.Retcode.NotOpen }, CmdId.GetGodWarRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
20
GameServer/Handlers/GetStageRecommendAvatarReqHandler.cs
Normal file
20
GameServer/Handlers/GetStageRecommendAvatarReqHandler.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.GetStageRecommendAvatarReq)]
|
||||
internal class GetStageRecommendAvatarReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetStageRecommendAvatarReq Data = packet.GetDecodedBody<GetStageRecommendAvatarReq>();
|
||||
GetStageRecommendAvatarRsp Rsp = new() { retcode = GetStageRecommendAvatarRsp.Retcode.Succ };
|
||||
if(Data.IdLists is not null)
|
||||
{
|
||||
Rsp.StageRecommendAvatarLists.AddRange(Data.IdLists.Select(x => new StageRecommendAvatar() { Id = x }));
|
||||
}
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.GetStageRecommendAvatarRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
13
GameServer/Handlers/ThemeWantedRefreshTicketReqHandler.cs
Normal file
13
GameServer/Handlers/ThemeWantedRefreshTicketReqHandler.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.ThemeWantedRefreshTicketReq)]
|
||||
internal class ThemeWantedRefreshTicketReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
session.Send(Packet.FromProto(new ThemeWantedRefreshTicketRsp() { retcode = ThemeWantedRefreshTicketRsp.Retcode.Succ }, CmdId.ThemeWantedRefreshTicketRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
23
GameServer/Handlers/UpdateAvatarTeamNotifyHandler.cs
Normal file
23
GameServer/Handlers/UpdateAvatarTeamNotifyHandler.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.UpdateAvatarTeamNotify)]
|
||||
internal class UpdateAvatarTeamNotifyHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
UpdateAvatarTeamNotify Data = packet.GetDecodedBody<UpdateAvatarTeamNotify>();
|
||||
|
||||
AvatarTeam? avatarTeam = session.Player.User.AvatarTeamList.FirstOrDefault(team => team.StageType == Data.Team.StageType);
|
||||
if(avatarTeam is not null)
|
||||
{
|
||||
avatarTeam.AvatarIdLists = Data.Team.AvatarIdLists;
|
||||
}
|
||||
else
|
||||
{
|
||||
session.Player.User.AvatarTeamList.Add(Data.Team);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
32
GameServer/Handlers/UpdateCustomAvatarTeamReqHandler.cs
Normal file
32
GameServer/Handlers/UpdateCustomAvatarTeamReqHandler.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.UpdateCustomAvatarTeamReq)]
|
||||
internal class UpdateCustomAvatarTeamReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
UpdateCustomAvatarTeamReq Data = packet.GetDecodedBody<UpdateCustomAvatarTeamReq>();
|
||||
UpdateCustomAvatarTeamRsp Rsp = new() { retcode = UpdateCustomAvatarTeamRsp.Retcode.Succ };
|
||||
|
||||
CustomAvatarTeam? customAvatarTeam = session.Player.User.CustomAvatarTeamList.FirstOrDefault(x => x.TeamId == Data.Team.TeamId);
|
||||
if (customAvatarTeam is not null)
|
||||
{
|
||||
customAvatarTeam.AvatarIdLists = Data.Team.AvatarIdLists;
|
||||
customAvatarTeam.ElfIdLists = Data.Team.ElfIdLists;
|
||||
customAvatarTeam.Name = Data.Team.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
session.Player.User.CustomAvatarTeamList.Add(Data.Team);
|
||||
}
|
||||
|
||||
GetAvatarTeamDataRsp avatarTeamDataRsp = new() { retcode = GetAvatarTeamDataRsp.Retcode.Succ };
|
||||
avatarTeamDataRsp.CustomAvatarTeamLists.Add(Data.Team);
|
||||
|
||||
session.Send(Packet.FromProto(avatarTeamDataRsp, CmdId.GetAvatarTeamDataRsp), Packet.FromProto(Rsp, CmdId.UpdateCustomAvatarTeamRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user