diff --git a/Common/Data/Config/TaskInfo.cs b/Common/Data/Config/TaskInfo.cs index 581d51fe..7573f444 100644 --- a/Common/Data/Config/TaskInfo.cs +++ b/Common/Data/Config/TaskInfo.cs @@ -71,7 +71,8 @@ public class LifeTimeInfo public int GetLifeTime() { if (IsDynamic) return 20; // find a better way to get the value - if (FixedValue.Value <= 0) return -1; // infinite + if (FixedValue.Value <= 0 && FixedValue.Value >= -30000) return -1; // infinite + if (FixedValue.Value < -30000) return 20; return (int)(FixedValue.Value * 10); } } diff --git a/Common/Data/Excel/SpecialAvatarExcel.cs b/Common/Data/Excel/SpecialAvatarExcel.cs index 2237ecee..47ff6e81 100644 --- a/Common/Data/Excel/SpecialAvatarExcel.cs +++ b/Common/Data/Excel/SpecialAvatarExcel.cs @@ -47,7 +47,6 @@ public class SpecialAvatarExcel : ExcelResource public override void AfterAllDone() { - // TODO Relic handler } public AvatarInfo ToAvatarData(int uid) @@ -84,9 +83,13 @@ public class SpecialAvatarExcel : ExcelResource }); if (avatarConfig != null) + { foreach (var skill in avatarConfig.DefaultSkillTree) instance.SkillTree.Add(skill.PointID, skill.Level); + instance.Excel = avatarConfig; + } + return instance; } } \ No newline at end of file diff --git a/Common/Data/Excel/StageConfigExcel.cs b/Common/Data/Excel/StageConfigExcel.cs index 53454c7d..eb973f06 100644 --- a/Common/Data/Excel/StageConfigExcel.cs +++ b/Common/Data/Excel/StageConfigExcel.cs @@ -30,33 +30,40 @@ public class StageConfigExcel : ExcelResource var proto = new SceneMonsterWave { BattleWaveId = (uint)waveId++, - BattleStageId = (uint)StageID + BattleStageId = (uint)StageID, + DropList = { } }; - proto.MonsterList.Add(new SceneMonster - { - MonsterId = (uint)monsters.Monster0 - }); + if (monsters.Monster0 != 0) + proto.MonsterList.Add(new SceneMonster + { + MonsterId = (uint)monsters.Monster0 + }); - proto.MonsterList.Add(new SceneMonster - { - MonsterId = (uint)monsters.Monster1 - }); - proto.MonsterList.Add(new SceneMonster - { - MonsterId = (uint)monsters.Monster2 - }); + if (monsters.Monster1 != 0) + proto.MonsterList.Add(new SceneMonster + { + MonsterId = (uint)monsters.Monster1 + }); - proto.MonsterList.Add(new SceneMonster - { - MonsterId = (uint)monsters.Monster3 - }); + if (monsters.Monster2 != 0) + proto.MonsterList.Add(new SceneMonster + { + MonsterId = (uint)monsters.Monster2 + }); - proto.MonsterList.Add(new SceneMonster - { - MonsterId = (uint)monsters.Monster4 - }); + if (monsters.Monster3 != 0) + proto.MonsterList.Add(new SceneMonster + { + MonsterId = (uint)monsters.Monster3 + }); + + if (monsters.Monster4 != 0) + proto.MonsterList.Add(new SceneMonster + { + MonsterId = (uint)monsters.Monster4 + }); proto.MonsterParam = new SceneMonsterWaveParam(); result.Add(proto); diff --git a/Common/Util/Extensions.cs b/Common/Util/Extensions.cs index 7af7f8df..eda40ead 100644 --- a/Common/Util/Extensions.cs +++ b/Common/Util/Extensions.cs @@ -22,6 +22,13 @@ public static class Extensions return values[index]; } + public static ICollection Clone(this ICollection values) + { + List list = [.. values]; + + return list; + } + public static int RandomInt(int from, int to) { return new Random().Next(from, to); diff --git a/Common/Util/GameConstants.cs b/Common/Util/GameConstants.cs index 3023ee60..c6816d3e 100644 --- a/Common/Util/GameConstants.cs +++ b/Common/Util/GameConstants.cs @@ -22,6 +22,7 @@ public static class GameConstants public const int CHALLENGE_ENTRANCE = 100000103; public const int CHALLENGE_STORY_ENTRANCE = 102020107; + public const int CHALLENGE_BOSS_ENTRANCE = 1030402; public static readonly List UpgradeWorldLevel = [20, 30, 40, 50, 60, 65]; public static readonly List AllowedChessRogueEntranceId = [8020701, 8020901, 8020401, 8020201]; diff --git a/GameServer/Game/Battle/BattleInstance.cs b/GameServer/Game/Battle/BattleInstance.cs index c300cec1..05f49314 100644 --- a/GameServer/Game/Battle/BattleInstance.cs +++ b/GameServer/Game/Battle/BattleInstance.cs @@ -216,8 +216,7 @@ public class BattleInstance(PlayerInstance player, LineupInfo lineup, List wave.ToProto())) diff --git a/GameServer/Game/Battle/Skill/Action/MazeSummonUnit.cs b/GameServer/Game/Battle/Skill/Action/MazeSummonUnit.cs index ce5cc916..d88967a9 100644 --- a/GameServer/Game/Battle/Skill/Action/MazeSummonUnit.cs +++ b/GameServer/Game/Battle/Skill/Action/MazeSummonUnit.cs @@ -17,7 +17,7 @@ public class MazeSummonUnit(SummonUnitDataExcel excel, MotionInfo motion) : IMaz AttachEntityId = excel.ConfigInfo?.AttachPoint == "Origin" ? avatar.EntityID : 0, SummonUnitId = excel.ID, CreateAvatarId = avatar.AvatarInfo.GetAvatarId(), - LifeTimeMs = 15000, + LifeTimeMs = 20000, TriggerList = excel.ConfigInfo?.TriggerConfig.CustomTriggers ?? [], Motion = motion }; diff --git a/GameServer/Game/Challenge/ChallengeEntityLoader.cs b/GameServer/Game/Challenge/ChallengeEntityLoader.cs index 37f26ad0..bccfb7f5 100644 --- a/GameServer/Game/Challenge/ChallengeEntityLoader.cs +++ b/GameServer/Game/Challenge/ChallengeEntityLoader.cs @@ -31,6 +31,9 @@ public class ChallengeEntityLoader(SceneInstance scene, PlayerInstance player) : Scene.LeaveEntryId = instance.IsStory() ? GameConstants.CHALLENGE_STORY_ENTRANCE : GameConstants.CHALLENGE_ENTRANCE; + if (instance.IsBoss()) + Scene.LeaveEntryId = GameConstants.CHALLENGE_BOSS_ENTRANCE; + foreach (var group in Scene.FloorInfo.Groups.Values) { // Skip non-server groups diff --git a/GameServer/Game/Scene/Entity/EntityMonster.cs b/GameServer/Game/Scene/Entity/EntityMonster.cs index 0f067d60..265d2623 100644 --- a/GameServer/Game/Scene/Entity/EntityMonster.cs +++ b/GameServer/Game/Scene/Entity/EntityMonster.cs @@ -100,9 +100,6 @@ public class EntityMonster( public int GetStageId() { if (CustomStageID > 0) return CustomStageID; - var id = Info.EventID * 10 + Scene.Player.Data.WorldLevel; - if (GameData.StageConfigData.ContainsKey(id)) - return id; return Info.EventID; } diff --git a/GameServer/Game/Scene/SceneBuff.cs b/GameServer/Game/Scene/SceneBuff.cs index dc20d8de..f2d8f38e 100644 --- a/GameServer/Game/Scene/SceneBuff.cs +++ b/GameServer/Game/Scene/SceneBuff.cs @@ -19,7 +19,7 @@ public class SceneBuff(int buffId, int buffLevel, int owner, int duration = -1) { if (Duration < 0) return false; // Permanent buff - return Extensions.GetUnixMs() - CreatedTime >= Duration; + return Extensions.GetUnixMs() - CreatedTime >= Duration * 1000; } public BuffInfo ToProto() diff --git a/GameServer/Game/Scene/SceneInstance.cs b/GameServer/Game/Scene/SceneInstance.cs index ba13b3e7..2bb28178 100644 --- a/GameServer/Game/Scene/SceneInstance.cs +++ b/GameServer/Game/Scene/SceneInstance.cs @@ -456,6 +456,21 @@ public class SceneInstance public async ValueTask OnHeartBeat() { + foreach (var gameEntity in Entities.Values.Clone().Where(x => x is EntityMonster).OfType()) + { + foreach (var sceneBuff in gameEntity.BuffList.Clone().Where(sceneBuff => sceneBuff.IsExpired())) + { + await gameEntity.RemoveBuff(sceneBuff.BuffId); + } + } + + foreach (var gameEntity in AvatarInfo.Values.Clone()) + { + foreach (var sceneBuff in gameEntity.BuffList.Clone().Where(sceneBuff => sceneBuff.IsExpired())) + { + await gameEntity.RemoveBuff(sceneBuff.BuffId); + } + } if (SummonUnit == null) return; var endTime = SummonUnit.CreateTimeMs + SummonUnit.LifeTimeMs; @@ -507,6 +522,15 @@ public class AvatarSceneInfo(AvatarInfo avatarInfo, AvatarType avatarType, Playe await player.SendPacket(new PacketSyncEntityBuffChangeListScNotify(this, buff)); } + public async ValueTask RemoveBuff(int buffId) + { + var buff = BuffList.Find(x => x.BuffId == buffId); + if (buff == null) return; + + BuffList.Remove(buff); + await player.SendPacket(new PacketSyncEntityBuffChangeListScNotify(this, [buff])); + } + public async ValueTask ApplyBuff(BattleInstance instance) { if (BuffList.Count == 0) return; diff --git a/GameServer/Game/Task/AvatarTask/AvatarLevelTask.cs b/GameServer/Game/Task/AvatarTask/AvatarLevelTask.cs index a6598f98..9107186c 100644 --- a/GameServer/Game/Task/AvatarTask/AvatarLevelTask.cs +++ b/GameServer/Game/Task/AvatarTask/AvatarLevelTask.cs @@ -1,4 +1,6 @@ -using EggLink.DanhengServer.Data.Config.Task; +using EggLink.DanhengServer.Data.Config.Scene; +using EggLink.DanhengServer.Data.Config.Task; +using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.GameServer.Game.Scene; using EggLink.DanhengServer.GameServer.Game.Scene.Entity; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Lineup; @@ -36,6 +38,29 @@ public class AvatarLevelTask #region Task + public async ValueTask PredicateTaskList(TaskConfigInfo act, List targetEntities, EntitySummonUnit? summonUnit) + { + if (act is PredicateTaskList predicateTaskList) + { + // handle predicateCondition + var methodName = predicateTaskList.Predicate.Type.Replace("RPG.GameCore.", ""); + + var method = GetType().GetMethod(methodName); + if (method != null) + { + var resp = method.Invoke(this, [predicateTaskList.Predicate, targetEntities, summonUnit]); + if (resp is bool res && res) + foreach (var task in predicateTaskList.SuccessTaskList) + TriggerTask(task, targetEntities, summonUnit); + else + foreach (var task in predicateTaskList.FailedTaskList) + TriggerTask(task, targetEntities, summonUnit); + } + } + + await ValueTask.CompletedTask; + } + public async ValueTask AddMazeBuff(TaskConfigInfo act, List targetEntities, EntitySummonUnit? summonUnit) { if (act is not AddMazeBuff addMazeBuff) return; @@ -112,4 +137,13 @@ public class AvatarLevelTask } #endregion + + #region Task Condition + + public bool ByIsContainAdventureModifier(TaskConfigInfo act, List targetEntities, EntitySummonUnit? summonUnit) + { + return true; + } + + #endregion } \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Challenge/PacketGetCurChallengeScRsp.cs b/GameServer/Server/Packet/Send/Challenge/PacketGetCurChallengeScRsp.cs index 96d1f6d9..b6dda577 100644 --- a/GameServer/Server/Packet/Send/Challenge/PacketGetCurChallengeScRsp.cs +++ b/GameServer/Server/Packet/Send/Challenge/PacketGetCurChallengeScRsp.cs @@ -18,6 +18,13 @@ public class PacketGetCurChallengeScRsp : BasePacket await player.LineupManager!.SetCurLineup(player.ChallengeManager.ChallengeInstance .CurrentExtraLineup + 10); }).Wait(); + var proto1 = player.LineupManager?.GetExtraLineup(ExtraLineupType.LineupChallenge)?.ToProto(); + if (proto1 != null) + proto.LineupList.Add(proto1); + + var proto2 = player.LineupManager?.GetExtraLineup(ExtraLineupType.LineupChallenge2)?.ToProto(); + if (proto2 != null) + proto.LineupList.Add(proto2); } else { diff --git a/GameServer/Server/Packet/Send/Player/PacketGetVideoVersionKeyScRsp.cs b/GameServer/Server/Packet/Send/Player/PacketGetVideoVersionKeyScRsp.cs index 4597d67a..f9b36b88 100644 --- a/GameServer/Server/Packet/Send/Player/PacketGetVideoVersionKeyScRsp.cs +++ b/GameServer/Server/Packet/Send/Player/PacketGetVideoVersionKeyScRsp.cs @@ -8,6 +8,6 @@ public class PacketGetVideoVersionKeyScRsp : BasePacket { // FIND A BETTER WAY SetData(Convert.FromBase64String( - "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")); + "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")); } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs b/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs index b330df2f..ab1b1ded 100644 --- a/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs +++ b/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs @@ -17,7 +17,7 @@ public class PacketSceneGroupRefreshScNotify : BasePacket var group = new GroupRefreshInfo { GroupId = (uint)e.GroupID, - RefreshType = SceneGroupRefreshType.Loaded + RefreshType = SceneGroupRefreshType.Unload }; group.RefreshEntity.Add(new SceneEntityRefreshInfo {