Skip to content

Commit 1c29db1

Browse files
committed
2 parents 3fb0059 + 260a320 commit 1c29db1

File tree

7 files changed

+172
-89
lines changed

7 files changed

+172
-89
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,9 @@ MigrationBackup/
359359
# Ionide (cross platform F# VS Code tools) working folder
360360
.ionide/
361361

362+
# JetBrains Rider
363+
.idea/
364+
362365
# Fody - auto-generated XML schema
363366
FodyWeavers.xsd
364367
/SplatoonScripts/Duties/Endwalker/The Omega Protocol/Dancer Auto Step.cs

Presets/Dawntrail/Raids/The Arcadion 12 Savage Phase 2.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,32 @@ Netherworld-far and Netherworld-near
4848
4949
Green Tower Knockback Position
5050
```
51-
~Lv2~{"Name":"风塔击飞站位","Group":"M12S P2","ZoneLockH":[1327],"ElementsL":[{"Name":"FAR TOWER","type":1,"offX":2.5,"refActorDataID":2015013,"refActorComparisonType":3,"LimitDistance":true,"DistanceSourceX":100.0,"DistanceSourceY":100.0,"DistanceMin":15.0,"DistanceMax":25.0},{"Name":"CLOSE TOWER","type":1,"offX":-2.5,"refActorDataID":2015013,"refActorComparisonType":3,"LimitDistance":true,"DistanceSourceX":100.0,"DistanceSourceY":100.0,"DistanceMax":15.0}]}
51+
~Lv2~{"Name":"风塔击飞站位","Group":"M12S P2","ZoneLockH":[1327],"DCond":5,"UseTriggers":true,"Triggers":[{"TimeBegin":395.0,"Duration":20.0}],"ElementsL":[{"Name":"FAR TOWER","type":1,"offX":2.5,"refActorDataID":2015013,"refActorComparisonType":3,"LimitDistance":true,"DistanceSourceX":100.0,"DistanceSourceY":100.0,"DistanceMin":15.0,"DistanceMax":25.0},{"Name":"CLOSE TOWER","type":1,"offX":-2.5,"refActorDataID":2015013,"refActorComparisonType":3,"LimitDistance":true,"DistanceSourceX":100.0,"DistanceSourceY":100.0,"DistanceMax":15.0}]}
52+
```
53+
54+
Green Knockback tower tether
55+
```
56+
~Lv2~{"Name":"风塔击飞预测","Group":"M12S P2","ZoneLockH":[1327],"MaxDistance":3.0,"UseDistanceLimit":true,"DistanceLimitType":1,"ElementsL":[{"Name":"击飞预测","type":1,"radius":0.0,"color":4288413440,"Filled":false,"fillIntensity":0.0,"overlayBGColor":4294914815,"overlayTextColor":4294967295,"overlayVOffset":2.0,"overlayFScale":1.4,"thicc":3.0,"refActorDataID":2015013,"refActorComparisonType":3,"tether":true,"ExtraTetherLength":25.0,"LineEndB":1,"DistanceSourceX":83.93563,"DistanceSourceY":96.76696,"DistanceSourceZ":-7.1526574E-07,"DistanceMax":10.0,"UseDistanceSourcePlaceholder":true,"mechanicType":5}]}
57+
```
58+
59+
Brown Tower Reminder
60+
```
61+
~Lv2~{"Name":"土塔注意","Group":"M12S P2","ZoneLockH":[1327],"DCond":5,"UseTriggers":true,"Freezing":true,"FreezeFor":5.0,"IntervalBetweenFreezes":9999.0,"Triggers":[{"TimeBegin":400.0,"Duration":20.0}],"ElementsL":[{"Name":"土塔","type":1,"radius":3.0,"refActorDataID":2015015,"refActorComparisonType":3}]}
5262
```
5363

5464
Heat buff notify
5565
```
5666
~Lv2~{"Name":"热病","Group":"M12S P2","ZoneLockH":[1327],"ElementsL":[{"Name":"热病点名","type":1,"radius":1.0,"overlayVOffset":1.0,"overlayFScale":2.0,"overlayText":"Don't MOVE","overlayTextIntl":{"En":"Don't MOVE","Jp":"Don't MOVE","De":"Don't MOVE","Fr":"Don't MOVE","Other":"热病别动"},"refActorRequireBuff":true,"refActorBuffId":[4768],"refActorType":1}]}
5767
```
5868

69+
Idyllic Dream Tower Guider MMW
70+
> See the strat [Here](https://github.com/user-attachments/assets/b98cb467-78ef-4563-bd21-f8dd9f47df04)
71+
```
72+
~Lv2~{"Name":"Buffed Far Close Guide MMW","InternationalName":{"Other":"引导远近点名站位 MMW"},"Group":"M12S P2","ZoneLockH":[1327],"ConditionalAnd":true,"ElementsL":[{"Name":"左近点名检查","type":1,"refActorRequireBuff":true,"refActorBuffId":[4767],"refActorType":1,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceMax":1.0,"Conditional":true,"ConditionalReset":true,"Nodraw":true},{"Name":"左近点名距离检查","type":1,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"左近点名","refX":94.74917,"refY":99.63798,"fillIntensity":0.5,"tether":true},{"Name":"左远点名检查","type":1,"radius":0.0,"refActorRequireBuff":true,"refActorBuffId":[4766],"refActorType":1,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceSourceZ":-7.152657E-07,"DistanceMax":10.0,"Conditional":true,"ConditionalReset":true,"Nodraw":true},{"Name":"左远点名距离检查","type":1,"radius":0.0,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"左远点名","refX":91.38865,"refY":107.42661,"fillIntensity":0.5,"tether":true},{"Name":"右近点名检查","type":1,"refActorRequireBuff":true,"refActorBuffId":[4767],"refActorType":1,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"ConditionalReset":true,"Nodraw":true},{"Name":"右近点名距离检查","type":1,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":114.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"右近点名","refX":105.03054,"refY":99.80684,"refZ":-3.8146973E-06,"tether":true},{"Name":"右远点名检查","type":1,"refActorRequireBuff":true,"refActorBuffId":[4766],"refActorType":1,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"ConditionalReset":true,"Nodraw":true},{"Name":"右远点名距离检查","type":1,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":114.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"右远点名","refX":108.805916,"refY":92.572624,"tether":true}]}
73+
~Lv2~{"Name":"Non buffed Ranged MMW","InternationalName":{"Other":"引导远近非点名远程站位 MMW"},"Group":"M12S P2","ZoneLockH":[1327],"ConditionalAnd":true,"DCond":5,"JobLockH":[24,28,33,40,5,7,23,25,26,27,31,35,36,38,42,6],"UseTriggers":true,"Triggers":[{"TimeBegin":403.0,"Duration":5.0}],"ElementsL":[{"Name":"非点名检查","type":1,"refActorRequireBuff":true,"refActorBuffId":[4766,4767],"refActorType":1,"Conditional":true,"ConditionalInvert":true,"ConditionalReset":true,"Nodraw":true},{"Name":"左半场检查","type":1,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"Left Ranged Pos 左远程位置","refX":86.06062,"refY":90.88095,"refZ":-3.8146973E-06,"fillIntensity":0.5,"tether":true},{"Name":"非点名检查","type":1,"refActorRequireBuff":true,"refActorBuffId":[4766,4767],"refActorType":1,"Conditional":true,"ConditionalInvert":true,"ConditionalReset":true,"Nodraw":true},{"Name":"右半场检查","type":1,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":114.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"Right Ranged Pos 右远程位置","refX":114.308,"refY":108.91028,"refZ":-3.8146973E-06,"fillIntensity":0.5,"tether":true}]}
74+
~Lv2~{"Name":"No buff Melee MMW","InternationalName":{"Other":"引导远近非点名近战站位 MMW"},"Group":"M12S P2","ZoneLockH":[1327],"ConditionalAnd":true,"DCond":5,"JobLockH":[37,29,39,34,20,21,3,41,30,22,4,2,32,19,1],"UseTriggers":true,"Triggers":[{"TimeBegin":403.0,"Duration":5.0}],"ElementsL":[{"Name":"非点名检查","type":1,"refActorRequireBuff":true,"refActorBuffId":[4766,4767],"refActorType":1,"Conditional":true,"ConditionalInvert":true,"ConditionalReset":true,"Nodraw":true},{"Name":"左半场检查","type":1,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":86.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"Left Mele Pos 左近战位置","refX":90.62298,"refY":100.51265,"refZ":7.6293945E-06,"tether":true},{"Name":"非点名检查","type":1,"refActorRequireBuff":true,"refActorBuffId":[4766,4767],"refActorType":1,"Conditional":true,"ConditionalInvert":true,"ConditionalReset":true,"Nodraw":true},{"Name":"右半场检查","type":1,"refActorPlaceholder":["<me>"],"refActorComparisonType":5,"LimitDistance":true,"DistanceSourceX":114.0,"DistanceSourceY":100.0,"DistanceMax":10.0,"Conditional":true,"Nodraw":true},{"Name":"Right Mele Pos 右近战位置","refX":108.81294,"refY":100.22826,"fillIntensity":0.5,"tether":true}]}
75+
```
76+
5977
### [Script] M12S Idyllic Dream CN
6078
> [!IMPORTANT]
6179
>

SplatoonScripts/Duties/Dawntrail/M12S Idyllic Dream.cs

Lines changed: 57 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class M12S_Idyllic_Dream : SplatoonScript
2323
{
2424
public override HashSet<uint>? ValidTerritories => [1327];
2525

26-
public override Metadata? Metadata => new(1, "Errer");
26+
public override Metadata? Metadata => new(3, "Errer");
2727

2828
#region 常量 (Constants)
2929

@@ -135,6 +135,18 @@ private record struct PlayerTetherInfo(string PlayerName, string Role, string Te
135135
private static readonly Vector3 WaymarkD = new(89.11f, 0f, 99.93f); // 西 (West)
136136
private static readonly Vector3 Waymark1 = new(108.28f, 0f, 91.70f); // 东北 (Northeast)
137137
private static readonly Vector3 Waymark2 = new(108.43f, 0f, 108.10f); // 东南 (Southeast)
138+
private static readonly Vector3 Waymark3 = new(91.80f, 0f, 108.17f); // 西南 (Southwest)
139+
private static readonly Vector3 Waymark4 = new(91.62f, 0f, 91.75f); // 西北 (Northwest)
140+
141+
// 19210 固定坐标 (19210 Fixed Positions)
142+
private static readonly Vector3 Spawn19210_A = new(100.00f, 0f, 86.00f); // A点 (北)
143+
private static readonly Vector3 Spawn19210_B = new(114.00f, 0f, 100.00f); // B点 (东)
144+
private static readonly Vector3 Spawn19210_C = new(100.00f, 0f, 114.00f); // C点 (南)
145+
private static readonly Vector3 Spawn19210_D = new(86.00f, 0f, 100.00f); // D点 (西)
146+
private static readonly Vector3 Spawn19210_1 = new(109.90f, 0f, 90.10f); // 1点 (东北)
147+
private static readonly Vector3 Spawn19210_2 = new(109.90f, 0f, 109.90f); // 2点 (东南)
148+
private static readonly Vector3 Spawn19210_3 = new(90.10f, 0f, 109.90f); // 3点 (西南)
149+
private static readonly Vector3 Spawn19210_4 = new(90.10f, 0f, 90.10f); // 4点 (西北)
138150

139151
#endregion
140152

@@ -398,26 +410,29 @@ public override void OnStartingCast(uint source, uint castId)
398410
}
399411

400412
// 时空重现 - 触发第6次大圈绘制 (Time Warp - Triggers 6th circle drawing)
413+
// 正点先刷影子:第一次大圈 C/D,斜点先刷影子:第一次大圈 1/2
401414
if(baseId == BossDataId && castId == TimeWarpCastId && _waitingForTimeWarp)
402415
{
403416
_waitingForTimeWarp = false;
404417
_sixthRoundCirclePositions.Clear();
405-
Vector3[] targetWaymarks = _firstSpawnType == "正点"
406-
? new[] { WaymarkC, WaymarkD }
407-
: new[] { Waymark1, Waymark2 };
408418

409-
foreach(var waymark in targetWaymarks)
419+
// 使用固定坐标
420+
if(_firstSpawnType == "正点")
410421
{
411-
var nearby = Svc.Objects.OfType<IBattleNpc>()
412-
.FirstOrDefault(x => x.BaseId == FirstSpawnId && x.IsCharacterVisible()
413-
&& Vector3.Distance(x.Position, waymark) < 6f);
414-
if(nearby != null)
415-
_sixthRoundCirclePositions.Add(nearby.Position);
422+
// 正点先: 第一次大圈是C/D
423+
_sixthRoundCirclePositions.Add(Spawn19210_C);
424+
_sixthRoundCirclePositions.Add(Spawn19210_D);
425+
}
426+
else
427+
{
428+
// 斜点先: 第一次大圈是1/2
429+
_sixthRoundCirclePositions.Add(Spawn19210_1);
430+
_sixthRoundCirclePositions.Add(Spawn19210_2);
416431
}
417432

418433
_sixthRoundDrawTime = Environment.TickCount64;
419434
var waymarkNames = _firstSpawnType == "正点" ? "C/D" : "1/2";
420-
AddLog($" -> 时空重现 (Time Warp)! 立即绘制第6次大圈 (Immediately draw 6th circles) {waymarkNames}附近 (nearby) (找到 (found){_sixthRoundCirclePositions.Count})");
435+
AddLog($" -> 时空重现 (Time Warp)! 立即绘制第6次大圈 (Immediately draw 6th circles) {waymarkNames} (使用固定坐标)");
421436
}
422437

423438
// Boss心象投影读条 - 第4次触发引导,第5次开始记录第二轮,第7次绘制 (Boss Mental Projection cast - 4th triggers guidance, 5th starts recording second round, 7th draws)
@@ -475,24 +490,28 @@ public override void OnStartingCast(uint source, uint castId)
475490
_thirdRoundDrawTime = Environment.TickCount64 + C.MissingBladeDelayMs;
476491
AddLog($" -> 第8次心象投影 (8th Mental Projection)! {C.MissingBladeDelayMs / 1000f}秒后绘制缺少的刀 (sec until missing cleave drawing)");
477492

478-
// 第8次:根据正点先/斜点先绘制19210大圈 (8th: Draw 19210 circles based on cardinal first/intercardinal first)
493+
// 第8次:根据正点先/斜点先绘制19210大圈 (使用固定坐标)
494+
// 正点先刷影子:第二次大圈 1/2
495+
// 斜点先刷影子:第二次大圈 C/D
479496
_eighthRoundCirclePositions.Clear();
480-
Vector3[] targetWaymarks = _firstSpawnType == "正点"
481-
? new[] { Waymark1, Waymark2 } // 正点先 (Cardinal first): 1/2
482-
: new[] { WaymarkA, WaymarkB }; // 斜点先 (Intercardinal first): A/B
483497

484-
foreach(var waymark in targetWaymarks)
498+
// 使用固定坐标,不再搜索
499+
if(_firstSpawnType == "正点")
500+
{
501+
// 正点先: 第二次大圈是1/2
502+
_eighthRoundCirclePositions.Add(Spawn19210_1);
503+
_eighthRoundCirclePositions.Add(Spawn19210_2);
504+
}
505+
else
485506
{
486-
var nearby = Svc.Objects.OfType<IBattleNpc>()
487-
.FirstOrDefault(x => x.BaseId == FirstSpawnId && x.IsCharacterVisible()
488-
&& Vector3.Distance(x.Position, waymark) < 6f);
489-
if(nearby != null)
490-
_eighthRoundCirclePositions.Add(nearby.Position);
507+
// 斜点先: 第二次大圈是C/D
508+
_eighthRoundCirclePositions.Add(Spawn19210_C);
509+
_eighthRoundCirclePositions.Add(Spawn19210_D);
491510
}
492511

493512
_eighthRoundDrawTime = Environment.TickCount64 + C.EighthCircleDelayMs;
494-
var waymarkNames = _firstSpawnType == "正点" ? "1/2" : "A/B";
495-
AddLog($" -> 第8次心象投影 (8th Mental Projection)! {C.EighthCircleDelayMs / 1000f}秒后绘制 (sec until drawing) {waymarkNames}附近 (nearby) 19210大圈 (large circles) (找到 (found){_eighthRoundCirclePositions.Count})");
513+
var waymarkNames = _firstSpawnType == "正点" ? "1/2" : "C/D";
514+
AddLog($" -> 第8次心象投影 (8th Mental Projection)! {C.EighthCircleDelayMs / 1000f}秒后绘制 (sec until drawing) {waymarkNames} 19210大圈 (使用固定坐标)");
496515
}
497516
}
498517
}
@@ -1690,6 +1709,21 @@ public override void OnSettingsDraw()
16901709
ImGui.SameLine();
16911710
if(ImGui.Button("重置状态 (Reset State)"))
16921711
OnReset();
1712+
ImGui.SameLine();
1713+
if(ImGui.Button("打印19210位置 (Print 19210 Positions)"))
1714+
{
1715+
var spawns = Svc.Objects.OfType<IBattleNpc>()
1716+
.Where(x => x.BaseId == FirstSpawnId && x.IsCharacterVisible())
1717+
.ToList();
1718+
AddLog($"[Debug] === 当前可见19210列表 (Current Visible 19210 List) ({spawns.Count}个) ===");
1719+
foreach(var spawn in spawns)
1720+
{
1721+
var pointName = GetPointName(spawn.Position);
1722+
AddLog($" [{pointName}] Pos:({spawn.Position.X:F2}, {spawn.Position.Z:F2}) EntityId:{spawn.EntityId}");
1723+
}
1724+
if(spawns.Count == 0)
1725+
AddLog(" (未找到任何可见的19210)");
1726+
}
16931727

16941728
ImGui.Separator();
16951729
ImGui.Text("测试功能 (Test Functions):");

0 commit comments

Comments
 (0)