Skip to content

Conversation

@kshman
Copy link
Owner

@kshman kshman commented Nov 14, 2025

No description provided.

…nal and Necron EX

- Added Korean translations for various zone names in zone_info.ts.
- Updated trigger settings in pilgrims_traverse_the_final_verse.ts to improve alert timings and added Japanese translations.
- Implemented Korean translations for Necron EX encounter abilities in necron-ex.ts.
- Enhanced coverage tracking by including DeepDungeonExtras in coverage.ts and encounter_tools.ts.
- Created new Meso Terminal encounter triggers and timeline in meso-terminal.ts and meso-terminal.txt.
…ungeon

- Implemented triggers for mobs and bosses in Pilgrim's Traverse Stones from levels 1 to 70, including mechanics for various encounters.
- Added translations for specific responses in Meso Terminal dungeon.
- Introduced new content type for Deep Dungeon Extras in coverage utility.
- Created initial trigger sets for Pilgrim's Traverse Stones 01-10, 11-20, 21-30, 31-40.
- Enhanced existing triggers with additional output strings and conditions for better player guidance.
…s in Meso Terminal, Underkeep, Occult Crescent South Horn, R5S, R8N, R8S, Necron EX, Queen Eternal, Seiryu UN, and Pilgrim's Traverse Stones 91-100
Copilot AI review requested due to automatic review settings November 14, 2025 09:55
@kshman kshman merged commit a8912b8 into master Nov 14, 2025
3 checks passed
@kshman kshman deleted the 735 branch November 14, 2025 09:55
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR (titled "735") adds support for Deep Dungeon Extra Content, implements new dungeon and raid content, adds German translations, and updates version numbers to 99.170.0.

Key changes:

  • Adds new ContentType.DeepDungeonExtras category for special Deep Dungeon encounters
  • Implements comprehensive triggers for The Meso Terminal dungeon
  • Adds extensive Pilgrim's Traverse Deep Dungeon content (Stones 1-100 + The Final Verse boss)
  • Adds German and other language translations across multiple files
  • Updates Korean game process offsets for FFXIV 7.3

Reviewed Changes

Copilot reviewed 36 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
util/logtools/encounter_tools.ts Adds DeepDungeonExtras to keepTypes list for encounter detection
util/coverage/coverage.ts Defines DeepDungeonExtras content type with localized labels
ui/raidboss/data/07-dt/dungeon/meso-terminal.ts New comprehensive trigger file for The Meso Terminal dungeon
ui/raidboss/data/07-dt/deepdungeon/pilgrims_traverse_*.ts New trigger files for all Pilgrim's Traverse floors (1-100)
ui/raidboss/data/07-dt/deepdungeon/pilgrims_traverse_the_final_verse.ts Extensive updates for The Final Verse boss fight
ui/raidboss/data/07-dt/trial/seiryu-un.ts Adds German translations and removes missingTranslations flag
ui/raidboss/data/07-dt/trial/queen-eternal.ts Adds French translations and removes missingTranslations flag
ui/raidboss/data/07-dt/trial/necron-ex.ts Adds Korean timeline translations and removes missingTranslations flag
ui/raidboss/data/07-dt/raid/r8s.ts Adds German/French translations and removes missingTranslations flags
resources/zone_info.ts Adds missing Korean and Chinese zone name translations
resources/netlog_defs.ts Updates StartsUsingExtra with playerIds field 10 and analysis options
plugin/CactbotEventSource/FFXIVProcessKo.cs Updates Korean client memory offsets for FFXIV 7.3
package.json Version bump to 99.170.0
Comments suppressed due to low confidence (18)

plugin/CactbotEventSource/FFXIVProcessKo.cs:657

          foreach (var flag in new List<Stance> { Stance.Ruby, Stance.Topaz, Stance.Emerald }) {
            if (stance.HasFlag(flag))
              arcanums.Add(flag.ToString());
          }

plugin/CactbotEventSource/FFXIVProcessKo.cs:668

          foreach (var flag in new List<Stance> { Stance.SolarBahamut, Stance.Phoenix }) {
            if (stance.HasFlag(flag))
              return flag.ToString();
          }

plugin/CactbotEventSource/FFXIVProcessKo.cs:143

        foreach (IntPtr ptr in p) {
          IntPtr addr = IntPtr.Add(ptr, kCharmapStructOffsetPlayer);
          IntPtr value = ReadIntPtr(addr);
          if (player_ptr_value == IntPtr.Zero || player_ptr_value == value) {
            player_ptr_value = value;
            player_ptr_addr_ = addr;
          } else {
            logger_.Log(LogLevel.Error, Strings.CharmapSignatureConflictingMatchErrorMessage);
          }
        }

plugin/CactbotEventSource/FFXIVProcessKo.cs:204

  • String concatenation in loop: use 'StringBuilder'.
                entity.debug_job += " ";

plugin/CactbotEventSource/FFXIVProcessKo.cs:205

  • String concatenation in loop: use 'StringBuilder'.
              entity.debug_job += string.Format("{0:x2}", job_bytes[i]);

plugin/CactbotEventSource/FFXIVProcessKo.cs:95

  • Field 'kCharmapSignatureOffset' can be 'readonly'.
    private static int kCharmapSignatureOffset = 0;

plugin/CactbotEventSource/FFXIVProcessKo.cs:104

  • Field 'kCharmapStructOffsetPlayer' can be 'readonly'.
    private static int kCharmapStructOffsetPlayer = 0;

plugin/CactbotEventSource/FFXIVProcessKo.cs:114

  • Field 'kInCombatRipOffset' can be 'readonly'.
    private static int kInCombatRipOffset = 1;

plugin/CactbotEventSource/FFXIVProcessKo.cs:118

  • Field 'kJobDataSignature' can be 'readonly'.
    private static String kJobDataSignature = "488B3D????????33ED";

plugin/CactbotEventSource/FFXIVProcessKo.cs:119

  • Field 'kJobDataSignatureOffset' can be 'readonly'.
    private static int kJobDataSignatureOffset = -6;

plugin/CactbotEventSource/FFXIVProcessKo.cs:121

  • Field 'kJobDataSignatureRIP' can be 'readonly'.
    private static bool kJobDataSignatureRIP = true;

plugin/CactbotEventSource/FFXIVProcessKo.cs:94

  • Field 'kCharmapSignature' can be 'readonly'.
    private static String kCharmapSignature = "488b5720b8000000e0483Bd00f84????????488d0d";

plugin/CactbotEventSource/FFXIVProcessKo.cs:97

  • Field 'kCharmapSignatureRIP' can be 'readonly'.
    private static bool kCharmapSignatureRIP = true;

plugin/CactbotEventSource/FFXIVProcessKo.cs:487

  • Both branches of this 'if' statement return - consider using '?' to express intent better.
          if (stance == 1)
            return blood_or_life_ms;
          else
            return 0;

plugin/CactbotEventSource/FFXIVProcessKo.cs:495

  • Both branches of this 'if' statement return - consider using '?' to express intent better.
          if (stance == 2)
            return blood_or_life_ms;
          else
            return 0;

plugin/CactbotEventSource/FFXIVProcessKo.cs:746

  • Both branches of this 'if' statement return - consider using '?' to express intent better.
          if ((Nadi & 0x2) == 0x2)
            return true;
          else
            return false;

plugin/CactbotEventSource/FFXIVProcessKo.cs:755

  • Both branches of this 'if' statement return - consider using '?' to express intent better.
          if ((Nadi & 0x1) == 0x1)
            return true;
          else
            return false;

plugin/CactbotEventSource/FFXIVProcessKo.cs:866

  • Both branches of this 'if' statement return - consider using '?' to express intent better.
          if (_nextdraw == 0)
          {
            return "Astral";
          } else
          {
            return "Umbral";
          }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

// This reader is "cmp byte ptr [ffxiv_dx11.exe+????????],00 { (0),0 }"
private static String kInCombatSignature = "803D??????????74??488B03488BCBFF50";
// Updated in 7.3, signature was no longer unique, include the preceeding "jz LAB_?????????"
private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50";
Copy link

Copilot AI Nov 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Field 'kInCombatSignature' can be 'readonly'.

Suggested change
private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50";
private static readonly String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50";

Copilot uses AI. Check for mistakes.
private static String kInCombatSignature = "803D??????????74??488B03488BCBFF50";
// Updated in 7.3, signature was no longer unique, include the preceeding "jz LAB_?????????"
private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50";
private static int kInCombatSignatureOffset = -15;
Copy link

Copilot AI Nov 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Field 'kInCombatSignatureOffset' can be 'readonly'.

Suggested change
private static int kInCombatSignatureOffset = -15;
private static readonly int kInCombatSignatureOffset = -15;

Copilot uses AI. Check for mistakes.
// Updated in 7.3, signature was no longer unique, include the preceeding "jz LAB_?????????"
private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50";
private static int kInCombatSignatureOffset = -15;
private static bool kInCombatSignatureRIP = true;
Copy link

Copilot AI Nov 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Field 'kInCombatSignatureRIP' can be 'readonly'.

Suggested change
private static bool kInCombatSignatureRIP = true;
private static readonly bool kInCombatSignatureRIP = true;

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants