mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
feat: rogue tourn division(difficulty)
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
public class MonsterConfigExcel : ExcelResource
|
||||
{
|
||||
public int MonsterID { get; set; }
|
||||
public int MonsterTemplateID { get; set; }
|
||||
public int HardLevelGroup { get; set; }
|
||||
|
||||
public override int GetId()
|
||||
{
|
||||
|
||||
19
Common/Data/Excel/MonsterTemplateConfigExcel.cs
Normal file
19
Common/Data/Excel/MonsterTemplateConfigExcel.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
namespace EggLink.DanhengServer.Data.Excel;
|
||||
|
||||
[ResourceEntity("MonsterTemplateConfig.json")]
|
||||
public class MonsterTemplateConfigExcel : ExcelResource
|
||||
{
|
||||
public int MonsterTemplateID { get; set; }
|
||||
public List<int> NPCMonsterList { get; set; } = [];
|
||||
public int MonsterCampID { get; set; }
|
||||
|
||||
public override int GetId()
|
||||
{
|
||||
return MonsterTemplateID;
|
||||
}
|
||||
|
||||
public override void Loaded()
|
||||
{
|
||||
GameData.MonsterTemplateConfigData.Add(MonsterTemplateID, this);
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,7 @@ public class RogueTournAreaExcel : ExcelResource
|
||||
public int ExpScoreID { get; set; }
|
||||
public int UnlockID { get; set; }
|
||||
public int AreaID { get; set; }
|
||||
public int DivisionLevel { get; set; }
|
||||
public HashName AreaNameID { get; set; } = new();
|
||||
public bool IsHard { get; set; }
|
||||
|
||||
|
||||
18
Common/Data/Excel/RogueTournDivisionExcel.cs
Normal file
18
Common/Data/Excel/RogueTournDivisionExcel.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace EggLink.DanhengServer.Data.Excel;
|
||||
|
||||
[ResourceEntity("RogueTournDivision.json")]
|
||||
public class RogueTournDivisionExcel : ExcelResource
|
||||
{
|
||||
public int DivisionLevel { get; set; }
|
||||
public int DivisionProgress { get; set; }
|
||||
|
||||
public override int GetId()
|
||||
{
|
||||
return DivisionLevel;
|
||||
}
|
||||
|
||||
public override void Loaded()
|
||||
{
|
||||
GameData.RogueTournDivisionData.Add(DivisionLevel, this);
|
||||
}
|
||||
}
|
||||
22
Common/Data/Excel/RogueTournLayerRoomExcel.cs
Normal file
22
Common/Data/Excel/RogueTournLayerRoomExcel.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
namespace EggLink.DanhengServer.Data.Excel;
|
||||
|
||||
[ResourceEntity("RogueTournLayerRoom.json")]
|
||||
public class RogueTournLayerRoomExcel : ExcelResource
|
||||
{
|
||||
public int LayerID { get; set; }
|
||||
public int RoomIndex { get; set; }
|
||||
public Dictionary<int, int> Door1 { get; set; } = [];
|
||||
public Dictionary<int, int> Door2 { get; set; } = [];
|
||||
public Dictionary<int, int> Door3 { get; set; } = [];
|
||||
|
||||
public override int GetId()
|
||||
{
|
||||
return LayerID;
|
||||
}
|
||||
|
||||
public override void Loaded()
|
||||
{
|
||||
GameData.RogueTournLayerRoomData.TryAdd(LayerID, []);
|
||||
GameData.RogueTournLayerRoomData[LayerID][RoomIndex] = this;
|
||||
}
|
||||
}
|
||||
@@ -95,6 +95,7 @@ public static class GameData
|
||||
public static Dictionary<int, InteractConfigExcel> InteractConfigData { get; private set; } = [];
|
||||
public static Dictionary<int, NPCMonsterDataExcel> NpcMonsterDataData { get; private set; } = [];
|
||||
public static Dictionary<int, MonsterConfigExcel> MonsterConfigData { get; private set; } = [];
|
||||
public static Dictionary<int, MonsterTemplateConfigExcel> MonsterTemplateConfigData { get; private set; } = [];
|
||||
public static Dictionary<int, MonsterDropExcel> MonsterDropData { get; private set; } = [];
|
||||
public static Dictionary<int, BattleCollegeConfigExcel> BattleCollegeConfigData { get; private set; } = [];
|
||||
public static Dictionary<int, BattleTargetConfigExcel> BattleTargetConfigData { get; private set; } = [];
|
||||
@@ -322,7 +323,9 @@ public static class GameData
|
||||
#region TournRogue
|
||||
|
||||
public static Dictionary<int, RogueTournAreaExcel> RogueTournAreaData { get; private set; } = [];
|
||||
public static Dictionary<int, Dictionary<int, RogueTournLayerRoomExcel>> RogueTournLayerRoomData { get; private set; } = [];
|
||||
public static Dictionary<int, RogueTournWorkbenchExcel> RogueTournWorkbenchData { get; private set; } = [];
|
||||
public static Dictionary<int, RogueTournDivisionExcel> RogueTournDivisionData { get; private set; } = [];
|
||||
public static Dictionary<int, RogueTournWorkbenchFuncExcel> RogueTournWorkbenchFuncData { get; private set; } = [];
|
||||
public static Dictionary<int, RogueTournFormulaExcel> RogueTournFormulaData { get; private set; } = [];
|
||||
public static Dictionary<int, RogueTournMiracleExcel> RogueTournMiracleData { get; private set; } = [];
|
||||
|
||||
@@ -67,6 +67,7 @@ public class BattleInstance(PlayerInstance player, LineupInfo lineup, List<Stage
|
||||
public Dictionary<int, BattleTargetList> BattleTargets { get; set; } = [];
|
||||
public BattleCollegeConfigExcel? CollegeConfigExcel { get; set; }
|
||||
public PVEBattleResultCsReq? BattleResult { get; set; }
|
||||
public bool IsTournRogue { get; set; }
|
||||
|
||||
public ItemList GetDropItemList()
|
||||
{
|
||||
@@ -220,6 +221,7 @@ public class BattleInstance(PlayerInstance player, LineupInfo lineup, List<Stage
|
||||
if (CustomLevel > 0)
|
||||
foreach (var item in protoWave)
|
||||
item.MonsterParam.Level = (uint)CustomLevel;
|
||||
|
||||
proto.MonsterWaveList.AddRange(protoWave);
|
||||
}
|
||||
|
||||
@@ -302,6 +304,9 @@ public class BattleInstance(PlayerInstance player, LineupInfo lineup, List<Stage
|
||||
}
|
||||
}
|
||||
|
||||
if (IsTournRogue)
|
||||
proto.AJGPJGLPMIO = new();
|
||||
|
||||
proto.BuffList.AddRange(Buffs.Select(buff => buff.ToProto(this)));
|
||||
return proto;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using EggLink.DanhengServer.Data;
|
||||
using EggLink.DanhengServer.Data.Custom;
|
||||
using EggLink.DanhengServer.Data.Excel;
|
||||
using EggLink.DanhengServer.Enums.Rogue;
|
||||
using EggLink.DanhengServer.Enums.Scene;
|
||||
@@ -69,11 +70,9 @@ public class RogueTournInstance : BaseRogueInstance
|
||||
public Dictionary<RogueTournRoomTypeEnum, int> RoomTypeWeight { get; set; } = new()
|
||||
{
|
||||
{ RogueTournRoomTypeEnum.Battle, 15 },
|
||||
{ RogueTournRoomTypeEnum.Coin, 4 },
|
||||
{ RogueTournRoomTypeEnum.Shop, 4 },
|
||||
{ RogueTournRoomTypeEnum.Event, 7 },
|
||||
{ RogueTournRoomTypeEnum.Reward, 5 },
|
||||
{ RogueTournRoomTypeEnum.Hidden, 1 }
|
||||
{ RogueTournRoomTypeEnum.Encounter, 5 },
|
||||
};
|
||||
|
||||
public RogueTournLevelInstance? CurLevel => Levels.GetValueOrDefault(CurLayerId);
|
||||
@@ -84,7 +83,12 @@ public class RogueTournInstance : BaseRogueInstance
|
||||
|
||||
public async ValueTask EnterNextLayer(int roomIndex, RogueTournRoomTypeEnum type)
|
||||
{
|
||||
CurLayerId += 100;
|
||||
var curInd = Levels.Keys.ToList().IndexOf(CurLayerId);
|
||||
var nextLayerId = Levels.Keys.ToList()[curInd + 1];
|
||||
var nextLayer = Levels[nextLayerId];
|
||||
CurLevel!.LevelStatus = RogueTournLayerStatus.Finish;
|
||||
|
||||
CurLayerId = nextLayer.LayerId;
|
||||
await EnterRoom(1, type);
|
||||
}
|
||||
|
||||
@@ -311,6 +315,13 @@ public class RogueTournInstance : BaseRogueInstance
|
||||
return res;
|
||||
}
|
||||
|
||||
public override async ValueTask AddBuffList(List<BaseRogueBuffExcel> excel)
|
||||
{
|
||||
await base.AddBuffList(excel);
|
||||
|
||||
await ExpandFormula();
|
||||
}
|
||||
|
||||
public async ValueTask ExpandFormula()
|
||||
{
|
||||
// expand formula
|
||||
@@ -375,6 +386,7 @@ public class RogueTournInstance : BaseRogueInstance
|
||||
RogueActions.Remove(action.QueuePosition);
|
||||
}
|
||||
|
||||
await ExpandFormula();
|
||||
await UpdateMenu();
|
||||
|
||||
await Player.SendPacket(
|
||||
@@ -426,11 +438,36 @@ public class RogueTournInstance : BaseRogueInstance
|
||||
}
|
||||
};
|
||||
|
||||
Dictionary<int, int> divisionBuffs =
|
||||
new() {
|
||||
{ 1, 651031 },
|
||||
{ 2, 651032 },
|
||||
{ 3, 651033 },
|
||||
{ 4, 651034 },
|
||||
{ 5, 651035 },
|
||||
{ 6, 651036 },
|
||||
};
|
||||
|
||||
var divisionLevel = AreaExcel.DivisionLevel;
|
||||
foreach (var buff in divisionBuffs.Where(x => divisionLevel >= x.Key))
|
||||
{
|
||||
battle.Buffs.Add(new MazeBuff(buff.Value, 1, -1)
|
||||
{
|
||||
WaveFlag = -1,
|
||||
DynamicValues =
|
||||
{
|
||||
{ "_RogueLayer", CurLevel?.LevelIndex ?? 1 }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
battle.IsTournRogue = true;
|
||||
|
||||
if (DifficultyExcels.Count > 0)
|
||||
{
|
||||
var diff = DifficultyExcels.RandomElement();
|
||||
var diff = DifficultyExcels[Math.Min(DifficultyExcels.Count, CurLevel!.LevelIndex) - 1];
|
||||
if (diff.LevelList.Count > 0)
|
||||
battle.CustomLevel = diff.LevelList.RandomElement();
|
||||
battle.CustomLevel = diff.LevelList.First();
|
||||
}
|
||||
|
||||
foreach (var formula in RogueFormulas.Where(formula =>
|
||||
@@ -442,6 +479,11 @@ public class RogueTournInstance : BaseRogueInstance
|
||||
WaveFlag = -1
|
||||
});
|
||||
|
||||
battle.Buffs.Add(new MazeBuff(634000, 1, -1) // day and night
|
||||
{
|
||||
WaveFlag = -1
|
||||
});
|
||||
|
||||
RogueTitanBlessInstance.OnBattleStart(battle);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,8 @@ public class RogueTournManager(PlayerInstance player) : BasePlayerManager(player
|
||||
|
||||
public RogueTournInfo ToProto()
|
||||
{
|
||||
var maxDivision = GameData.RogueTournDivisionData.Values.MaxBy(x => x.DivisionLevel) ?? new RogueTournDivisionExcel();
|
||||
|
||||
var proto = new RogueTournInfo
|
||||
{
|
||||
ExtraScoreInfo = ToExtraScoreProto(),
|
||||
@@ -60,7 +62,11 @@ public class RogueTournManager(PlayerInstance player) : BasePlayerManager(player
|
||||
Capacity = 0
|
||||
},
|
||||
SeasonTalentInfo = ToSeasonTalentProto(),
|
||||
LKCEFCLJCBM = new KCLCHJMNPGL()
|
||||
RogueDivisionInfo = new RogueTournDivisionInfo
|
||||
{
|
||||
DivisionLevel = (uint)maxDivision.DivisionLevel,
|
||||
DivisionProgress = (uint)maxDivision.DivisionProgress
|
||||
}
|
||||
};
|
||||
|
||||
return proto;
|
||||
@@ -166,11 +172,11 @@ public class RogueTournManager(PlayerInstance player) : BasePlayerManager(player
|
||||
foreach (var formulaId in GameData.RogueTournFormulaData.Keys) proto.HandbookFormulaList.Add((uint)formulaId);
|
||||
|
||||
foreach (var miracleId in GameData.RogueTournHandbookMiracleData.Keys)
|
||||
proto.HandbookMiracleList.Add((uint)miracleId);
|
||||
proto.HandbookTournMiracleList.Add((uint)miracleId);
|
||||
|
||||
foreach (var blessId in GameData.RogueTournTitanBlessData.Keys) proto.HandbookTitanBlessList.Add((uint)blessId);
|
||||
|
||||
//foreach (var eventId in GameData.RogueTournHandBookEventData.Keys) proto.HandbookEventList.Add((uint)eventId);
|
||||
foreach (var eventId in GameData.RogueTournHandBookEventData.Keys) proto.HandbookMiracleList.Add((uint)eventId); // TODO edit field name
|
||||
|
||||
return proto;
|
||||
}
|
||||
|
||||
@@ -8,14 +8,16 @@ using EggLink.DanhengServer.GameServer.Game.Rogue.Scene.Entity;
|
||||
using EggLink.DanhengServer.GameServer.Game.Scene;
|
||||
using EggLink.DanhengServer.GameServer.Game.Scene.Entity;
|
||||
using EggLink.DanhengServer.Util;
|
||||
using EggLink.DanhengServer.Util.Security;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Game.RogueTourn.Scene;
|
||||
|
||||
public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player) : SceneEntityLoader(scene)
|
||||
{
|
||||
public List<RogueTournRoomTypeEnum> ExistTypes = [];
|
||||
public List<int> FinalRoomBossIds = [3007091, 3007101, 3007111, 3007121, 3007131, 3007141];
|
||||
public List<int> LayerNormalBossIds = [3007011, 3007021, 3007031, 3007041, 3007051, 3007061, 3007071, 3007081];
|
||||
public List<int> FinalRoomBossIds = [5004141, 3004171, 3004161, 3004151];
|
||||
public List<int> Layer1NormalBossIds { get; set; } = [3013081, 3013161, 3013041, 3013241, 3013131, 3013201, 3013231, 3013181, 3013191, 3013251, 3013121];
|
||||
public List<int> Layer2NormalBossIds { get; set; } = [5004071, 5004051, 5004021, 5004081];
|
||||
public PlayerInstance Player = player;
|
||||
public List<int> RogueDoorPropIds = [1033, 1034, 1035, 1036, 1037, 1000];
|
||||
|
||||
@@ -43,7 +45,7 @@ public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player)
|
||||
foreach (var npc in info.NPCList)
|
||||
try
|
||||
{
|
||||
if (await LoadNpc(npc, info) is EntityNpc entity) entityList.Add(entity);
|
||||
if (await LoadNpc(npc, info) is { } entity) entityList.Add(entity);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -52,7 +54,7 @@ public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player)
|
||||
foreach (var monster in info.MonsterList)
|
||||
try
|
||||
{
|
||||
if (await LoadMonster(monster, info) is EntityMonster entity) entityList.Add(entity);
|
||||
if (await LoadMonster(monster, info) is { } entity) entityList.Add(entity);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -61,7 +63,7 @@ public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player)
|
||||
foreach (var prop in info.PropList)
|
||||
try
|
||||
{
|
||||
if (await LoadProp(prop, info) is EntityProp entity) entityList.Add(entity);
|
||||
if (await LoadProp(prop, info) is { } entity) entityList.Add(entity);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -120,28 +122,52 @@ public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player)
|
||||
{
|
||||
if (rogueInstance.CurLevel?.LevelIndex == 3)
|
||||
rogueMonster = GameData.RogueMonsterData[FinalRoomBossIds.RandomElement()];
|
||||
else if (rogueInstance.CurLevel?.LevelIndex == 2)
|
||||
rogueMonster = GameData.RogueMonsterData[Layer2NormalBossIds.RandomElement()];
|
||||
else
|
||||
rogueMonster = GameData.RogueMonsterData[LayerNormalBossIds.RandomElement()];
|
||||
rogueMonster = GameData.RogueMonsterData[Layer1NormalBossIds.RandomElement()];
|
||||
}
|
||||
else
|
||||
{
|
||||
NPCMonsterDataExcel? data;
|
||||
MonsterTemplateConfigExcel? templateConfigExcel;
|
||||
do
|
||||
{
|
||||
rogueMonster = GameData.RogueMonsterData.Values.ToList().RandomElement();
|
||||
GameData.NpcMonsterDataData.TryGetValue(rogueMonster.NpcMonsterID, out data);
|
||||
} while (data == null || !allowedRank.Contains(data.Rank));
|
||||
templateConfigExcel = GameData.MonsterTemplateConfigData.Values.FirstOrDefault(x =>
|
||||
x.NPCMonsterList.Contains(rogueMonster.NpcMonsterID));
|
||||
|
||||
} while (data == null || !allowedRank.Contains(data.Rank) || templateConfigExcel == null ||
|
||||
templateConfigExcel.MonsterCampID < 12 || templateConfigExcel.MonsterCampID > 15);
|
||||
}
|
||||
|
||||
GameData.NpcMonsterDataData.TryGetValue(rogueMonster.NpcMonsterID, out var excel);
|
||||
var template = GameData.MonsterTemplateConfigData.Values.FirstOrDefault(x =>
|
||||
x.NPCMonsterList.Contains(rogueMonster.NpcMonsterID));
|
||||
if (excel == null) return null;
|
||||
|
||||
var level = 10;
|
||||
|
||||
if (rogueInstance.DifficultyExcels.Count > 0)
|
||||
{
|
||||
var diff = rogueInstance.DifficultyExcels[
|
||||
Math.Min(rogueInstance.DifficultyExcels.Count, rogueInstance.CurLevel!.LevelIndex) - 1];
|
||||
if (diff.LevelList.Count > 0)
|
||||
level = diff.LevelList.First();
|
||||
}
|
||||
|
||||
var monsterConf =
|
||||
GameData.MonsterConfigData.Values.FirstOrDefault(x => x.MonsterTemplateID == template?.MonsterTemplateID);
|
||||
|
||||
EntityMonster entity =
|
||||
new(Scene, info.ToPositionProto(), info.ToRotationProto(), group.Id, info.ID, excel, info)
|
||||
{
|
||||
EventId = rogueMonster.EventID,
|
||||
CustomStageId = rogueMonster.EventID,
|
||||
RogueMonsterId = rogueMonster.RogueMonsterID
|
||||
RogueMonsterId = rogueMonster.RogueMonsterID,
|
||||
CustomLevel = level,
|
||||
HardLevelGroup = monsterConf?.HardLevelGroup ?? 1
|
||||
};
|
||||
|
||||
await Scene.AddEntity(entity, sendPacket);
|
||||
@@ -151,8 +177,9 @@ public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player)
|
||||
|
||||
public override async ValueTask<EntityProp?> LoadProp(PropInfo info, GroupInfo group, bool sendPacket = false)
|
||||
{
|
||||
var rogue = Player.RogueTournManager?.RogueTournInstance;
|
||||
var room = Player.RogueTournManager?.RogueTournInstance?.CurLevel?.CurRoom;
|
||||
if (room == null) return null;
|
||||
if (room == null || rogue == null) return null;
|
||||
|
||||
GameData.MazePropData.TryGetValue(info.PropID, out var propExcel);
|
||||
if (propExcel == null) return null;
|
||||
@@ -163,9 +190,12 @@ public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player)
|
||||
|
||||
if (RogueDoorPropIds.Contains(prop.PropInfo.PropID))
|
||||
{
|
||||
if (room is { RoomIndex: 4, LevelInstance.LevelIndex: 3 }) // last room
|
||||
if (rogue.CurLevel?.LayerId == rogue.Levels.Last().Key &&
|
||||
rogue.CurLevel?.Rooms.Last().RoomIndex == room.RoomIndex) // last room
|
||||
{
|
||||
// exit
|
||||
prop.CustomPropId = 1033;
|
||||
}
|
||||
else
|
||||
do // find next room
|
||||
{
|
||||
@@ -200,13 +230,13 @@ public class RogueTournEntityLoader(SceneInstance scene, PlayerInstance player)
|
||||
RogueTournRoomTypeEnum.Reward => 1035,
|
||||
RogueTournRoomTypeEnum.Adventure => 1035,
|
||||
RogueTournRoomTypeEnum.Hidden => 1037,
|
||||
RogueTournRoomTypeEnum.Respite => 1034,
|
||||
RogueTournRoomTypeEnum.Respite => 1036,
|
||||
_ => 1034
|
||||
};
|
||||
|
||||
|
||||
if (room.LevelInstance.Rooms.Last() == room) // last room
|
||||
prop.EnterNextLayer = true;
|
||||
|
||||
prop.RoomType = nextRoom;
|
||||
prop.IsTournRogue = true;
|
||||
|
||||
|
||||
@@ -14,12 +14,26 @@ public class RogueTournLevelInstance
|
||||
EntranceId = GameData.RogueTournRoomGenData.Where(x => x.RoomType != RogueTournRoomTypeEnum.Adventure)
|
||||
.Select(x => x.EntranceId).ToHashSet().ToList()
|
||||
.RandomElement();
|
||||
if (levelIndex == 2)
|
||||
foreach (var index in Enumerable.Range(1, 5))
|
||||
Rooms.Add(new RogueTournRoomInstance(index, this));
|
||||
|
||||
if (levelIndex == 3)
|
||||
EntranceId = 8060101;
|
||||
|
||||
var roomExcel = GameData.RogueTournLayerRoomData.GetValueOrDefault(layerId);
|
||||
|
||||
if (roomExcel == null)
|
||||
{
|
||||
if (levelIndex == 2)
|
||||
foreach (var index in Enumerable.Range(1, 5))
|
||||
Rooms.Add(new RogueTournRoomInstance(index, this));
|
||||
else
|
||||
foreach (var index in Enumerable.Range(1, 4))
|
||||
Rooms.Add(new RogueTournRoomInstance(index, this));
|
||||
}
|
||||
else
|
||||
foreach (var index in Enumerable.Range(1, 4))
|
||||
{
|
||||
foreach (var index in Enumerable.Range(1, roomExcel.Count))
|
||||
Rooms.Add(new RogueTournRoomInstance(index, this));
|
||||
}
|
||||
}
|
||||
|
||||
public List<RogueTournRoomInstance> Rooms { get; set; } = [];
|
||||
|
||||
@@ -34,6 +34,7 @@ public class EntityMonster(
|
||||
|
||||
public int RogueMonsterId { get; set; } = 0;
|
||||
public int CustomLevel { get; set; } = 0;
|
||||
public int HardLevelGroup { get; set; } = 0;
|
||||
public override int EntityId { get; set; } = 0;
|
||||
public override int GroupId { get; set; } = groupId;
|
||||
|
||||
@@ -125,7 +126,8 @@ public class EntityMonster(
|
||||
RogueGameInfo = new NpcMonsterRogueInfo
|
||||
{
|
||||
RogueMonsterId = (uint)RogueMonsterId,
|
||||
Level = (uint)CustomLevel
|
||||
Level = (uint)CustomLevel,
|
||||
HardLevelGroup = (uint)HardLevelGroup
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using EggLink.DanhengServer.GameServer.Game.RogueTourn;
|
||||
using EggLink.DanhengServer.Data;
|
||||
using EggLink.DanhengServer.Data.Excel;
|
||||
using EggLink.DanhengServer.GameServer.Game.RogueTourn;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
@@ -8,6 +10,8 @@ public class PacketRogueTournSettleScRsp : BasePacket
|
||||
{
|
||||
public PacketRogueTournSettleScRsp(RogueTournInstance instance) : base(CmdIds.RogueTournSettleScRsp)
|
||||
{
|
||||
var maxDivision = GameData.RogueTournDivisionData.Values.MaxBy(x => x.DivisionLevel) ?? new RogueTournDivisionExcel();
|
||||
|
||||
var proto = new RogueTournSettleScRsp
|
||||
{
|
||||
RogueTournCurSceneInfo = instance.ToCurSceneInfo(),
|
||||
@@ -16,7 +20,11 @@ public class PacketRogueTournSettleScRsp : BasePacket
|
||||
RogueTournCurInfo = instance.ToProto(),
|
||||
RogueLineupInfo = instance.Player.LineupManager!.GetCurLineup()!.ToProto(),
|
||||
CJCOJAMLEEL = new(),
|
||||
CLKHPONDDDO = new(),
|
||||
NewDivisionInfo = new RogueTournDivisionInfo
|
||||
{
|
||||
DivisionLevel = (uint)maxDivision.DivisionLevel,
|
||||
DivisionProgress = (uint)maxDivision.DivisionProgress
|
||||
},
|
||||
GCGLNKFDKKN = new(),
|
||||
KGCIAIAFIBE = new(),
|
||||
PFOEPFPHFNJ = new()
|
||||
|
||||
Reference in New Issue
Block a user