p1s callouts
This commit is contained in:
parent
0a4cc53349
commit
6965d334c7
8
README.txt
Normal file
8
README.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
This directory holds user-defined configuration for UI modules.
|
||||||
|
|
||||||
|
Each file should be named <module>.js for variables and <module>.css for
|
||||||
|
layout/style settings where <module> is the name of the module that will
|
||||||
|
load the config.
|
||||||
|
|
||||||
|
Copy and rename the <module>-example.js file to <module>.js for an easy
|
||||||
|
starting point.
|
70
jobs-example.js
Normal file
70
jobs-example.js
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
// Rename this file to `jobs.js` and edit it to change the jobs ui.
|
||||||
|
|
||||||
|
// Zones to show food buff warning, when at max level.
|
||||||
|
Options.WellFedZoneRegex =
|
||||||
|
/^(Unknown Zone \([0-9A-Fa-f]+\)|Deltascape.*(Ultimate|Savage).*|.* Coil Of Bahamut.*(Ultimate|Savage).*)|Alexander.*(Ultimate|Savage).*$/;
|
||||||
|
|
||||||
|
// The food buff warning is shown when you're below this level.
|
||||||
|
// Update this when new expansion happens.
|
||||||
|
Options.MaxLevel = 80;
|
||||||
|
|
||||||
|
// List of jobs to show an hp value for (defaults to tanks).
|
||||||
|
Options.ShowHPNumber = ['PLD', 'WAR', 'DRK', 'GNB'];
|
||||||
|
|
||||||
|
// List of jobs to show an mp value for.
|
||||||
|
Options.ShowMPNumber = ['BLM', 'DRK'];
|
||||||
|
|
||||||
|
// The recast time for Aetherflow.
|
||||||
|
Options.SmnAetherflowRecast = 60;
|
||||||
|
|
||||||
|
// The distance that offensive spells such as Verareo, Bio, etc are castable.
|
||||||
|
Options.FarThresholdOffence = 24;
|
||||||
|
// When MP falls below this, the MP bar is highlighted with the .low CSS class
|
||||||
|
// on dark knight.
|
||||||
|
Options.DrkLowMPThreshold = 4800;
|
||||||
|
// When MP falls below this, the MP bar is highlighted with the .low CSS class
|
||||||
|
// on paladin.
|
||||||
|
Options.PldLowMPThreshold = 2880;
|
||||||
|
// When MP falls below this, the MP bar is highlighted with the .low CSS class
|
||||||
|
// on black mage.
|
||||||
|
Options.BlmLowMPThreshold = 2400;
|
||||||
|
|
||||||
|
const kRed =
|
||||||
|
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAySURBVEhL7c0xEQAgDAAxhHSsf2d4QMJPbLnLnnNnvxIkQRIkQRIkQRIkQRIkQfoczD4cGLQ9QOmZGwAAAABJRU5ErkJggg==';
|
||||||
|
|
||||||
|
// Remove these /* and */ comment lines to enable the example code below.
|
||||||
|
/*
|
||||||
|
|
||||||
|
// Overrides for all of the "big buffs" that appear to the left or right
|
||||||
|
// of the hp/mp bars. This is stuff like trick/embolden/devotion/etc.
|
||||||
|
Options.PerBuffOptions = {
|
||||||
|
// The name of the buff to override. These available buffs are:
|
||||||
|
// trick, litany, embolden, balance, chain, hyper, sight, brotherhood,
|
||||||
|
// devotion, requiem
|
||||||
|
trick: {
|
||||||
|
// By default everything is on the right. This puts the icon on the
|
||||||
|
// left for better visibility.
|
||||||
|
side: 'left',
|
||||||
|
|
||||||
|
// The border color. See: https://www.google.com/search?q=color+picker
|
||||||
|
// This example sets trick to use a white border.
|
||||||
|
borderColor: '#FFFFFF',
|
||||||
|
|
||||||
|
// The icon to use. This is a url or a data url like this. This
|
||||||
|
// example sets trick to use a bright red icon instead.
|
||||||
|
icon: kRed,
|
||||||
|
|
||||||
|
// If true (instead of false here), this will hide the buff and
|
||||||
|
// prevent it from being shown.
|
||||||
|
hide: false,
|
||||||
|
|
||||||
|
// sortKey controls the order of the buffs when multiple buffs are shown.
|
||||||
|
// Smaller numbers are higher priority and will be shown closer to
|
||||||
|
// the middle. The existing buffs are ordered 0-10, but you can use any
|
||||||
|
// numerical value you want here, including negatives.
|
||||||
|
// This example sets trick to be a very high priority.
|
||||||
|
sortKey: 1000,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
*/
|
53
oopsyraidsy-example.js
Normal file
53
oopsyraidsy-example.js
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// Rename this file to `oopsyraidsy.js` then edit to change the oopsyraidsy ui.
|
||||||
|
|
||||||
|
// A set of triggers to be ignored. The key is the 'id' of the trigger, and
|
||||||
|
// the value should be true if the trigger is to be ignored, whereas false
|
||||||
|
// will have no effect. The trigger ids can be found in the trigger files for
|
||||||
|
// each fight in the files inside of this directory:
|
||||||
|
// https://github.com/quisquous/cactbot/tree/main/ui/oopsyraidsy/data/
|
||||||
|
Options.DisabledTriggers = {
|
||||||
|
'General Rabbit Medium': true,
|
||||||
|
'General Early Pull': true,
|
||||||
|
'Test Bootshine': true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// A set of nicknames to use for players. By default, first names are used to
|
||||||
|
// make the mistake lines shorter. If a player's name appears in this map,
|
||||||
|
// their nickname will be used instead of their first name.
|
||||||
|
Options.PlayerNicks = {
|
||||||
|
'Darkest Edgelord': 'Mary',
|
||||||
|
'Captain Jimmy': 'Jimmy',
|
||||||
|
'Pipira Pira': '🐟',
|
||||||
|
};
|
||||||
|
|
||||||
|
// A set of ability ids (in hex) to other ability names. This is primarily
|
||||||
|
// used for abillity names that ACT doesn't know yet (e.g. Unknown_26B4).
|
||||||
|
//
|
||||||
|
// For example: Rename wings of salvation to White Swirly because that's what
|
||||||
|
// everybody in your raid group calls it.
|
||||||
|
Options.AbilityIdNameMap['26CA'] = 'White Swirly';
|
||||||
|
|
||||||
|
// An array of user-defined triggers, in the format defined in the readme:
|
||||||
|
// https://github.com/quisquous/cactbot/tree/main/docs/OopsyraidsyGuide.md
|
||||||
|
//
|
||||||
|
// Here's an example trigger to show a line in the mistake log when
|
||||||
|
// you crit adlo yourself in Summerford Farms.
|
||||||
|
Options.Triggers = [
|
||||||
|
{
|
||||||
|
zoneId: ZoneId.MiddleLaNoscea,
|
||||||
|
triggers: [
|
||||||
|
{
|
||||||
|
id: 'Test Self Crit Adlo',
|
||||||
|
healRegex: 'B9', // Adloquium ability id
|
||||||
|
condition: function(e, data, matches) {
|
||||||
|
return e.targetName === data.me && matches.flags === '10004';
|
||||||
|
},
|
||||||
|
mistake: function(e, data) {
|
||||||
|
const text = e.abilityName + ': ' + e.damageStr;
|
||||||
|
return { type: 'good', blame: e.targetName, text: text };
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
// ...more triggers here...
|
||||||
|
];
|
208
p1s-override.txt
Normal file
208
p1s-override.txt
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
### P1S: Asphodelos: The First Circle (Savage)
|
||||||
|
#
|
||||||
|
# -it 'Erichthonios' -oc 'Erichthonios' -p "6629:14.1"
|
||||||
|
|
||||||
|
hideall "--Reset--"
|
||||||
|
hideall "--sync--"
|
||||||
|
# choose what you want to hide! (add # at the beginning to "hideall" / remove # to hide)
|
||||||
|
|
||||||
|
# SAGE
|
||||||
|
# hideall "Physis"
|
||||||
|
# hideall "Kera"
|
||||||
|
# hideall "Ixo"
|
||||||
|
# hideall "Holos"
|
||||||
|
# hideall "Pan"
|
||||||
|
# hideall "Pneuma"
|
||||||
|
|
||||||
|
# ASTRO
|
||||||
|
hideall "Macro"
|
||||||
|
hideall "Neutral"
|
||||||
|
hideall "Star"
|
||||||
|
hideall "StarPop"
|
||||||
|
hideall "Collective"
|
||||||
|
hideall "Opposition"
|
||||||
|
hideall "HoroscopeNoGcd"
|
||||||
|
hideall "HoroscopeWith"
|
||||||
|
hideall "Strassenkreuzung"
|
||||||
|
hideall "Exaltation"
|
||||||
|
hideall "Synastry"
|
||||||
|
|
||||||
|
0.0 "--Reset--" sync / 21:........:40000010:/ window 100000 jump 0
|
||||||
|
|
||||||
|
# First flail set
|
||||||
|
0.0 "--sync--" sync /Engage!/ window 0,1
|
||||||
|
9.4 "--middle--" sync / 14:[^:]*:Erichthonios:6629:/ window 11,9
|
||||||
|
14.1 "Heavy Hand" sync / 1[56]:[^:]*:Erichthonios:6629:/
|
||||||
|
18.2 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
22.8 "Aetherial Shackles" sync / 1[56]:[^:]*:Erichthonios:6625:/
|
||||||
|
31.6 "sge_Kera_Physis"
|
||||||
|
31.9 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
36.0 "ast_Opposition"
|
||||||
|
36.2 "sge_Ixo"
|
||||||
|
41.7 "Chain Pain" sync / 1[56]:[^:]*:Erichthonios:662[78]:/
|
||||||
|
49.0 "ast_Star"
|
||||||
|
57.7 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6(5F[6-F]|60[01]):/
|
||||||
|
60.8 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
|
||||||
|
# First tank mechanic
|
||||||
|
72.1 "Pitiless Flail of Grace/Pitiless Flail of Purgation" sync / 1[56]:[^:]*:Erichthonios:660[EF]:/
|
||||||
|
74.8 "ast_Collective"
|
||||||
|
74.8 "sge_Kera"
|
||||||
|
75.5 "True Flare/True Holy" sync / 1[56]:[^:]*:Erichthonios:661[01]:/
|
||||||
|
80.0 "sge_Ixo"
|
||||||
|
|
||||||
|
# Second flail set
|
||||||
|
91.1 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6(5F[6-F]|60[01]):/
|
||||||
|
94.2 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
105.0 "sge_Kera"
|
||||||
|
105.3 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
109.0 "ast_Star"
|
||||||
|
109.1 "sge_Ixo"
|
||||||
|
|
||||||
|
# Tiles 1
|
||||||
|
118.5 "Intemperance" sync / 1[56]:[^:]*:Erichthonios:661E:/
|
||||||
|
122.6 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
135.3 "First Element" sync / 1[56]:[^:]*:Erichthonios:662[12]:/
|
||||||
|
140.5 "ast_Opposition_Macro"
|
||||||
|
141.0 "sge_Kera_Pan"
|
||||||
|
141.4 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
145.5 "sge_Physis__Ixo"
|
||||||
|
146.4 "Second Element" sync / 1[56]:[^:]*:Erichthonios:662[123]:/
|
||||||
|
151.5 "sge_Holos"
|
||||||
|
151.6 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
157.3 "Third Element" sync / 1[56]:[^:]*:Erichthonios:662[12]:/
|
||||||
|
161.0 "sge_Pneuma"
|
||||||
|
|
||||||
|
# Second tank mechanic
|
||||||
|
167.9 "Pitiless Flail of Grace/Pitiless Flail of Purgation" sync / 1[56]:[^:]*:Erichthonios:660[EF]:/
|
||||||
|
169.0 "ast_Star"
|
||||||
|
171.1 "True Flare/True Holy" sync / 1[56]:[^:]*:Erichthonios:661[01]:/
|
||||||
|
|
||||||
|
# Cells 1
|
||||||
|
188.0 "sge_Kera"
|
||||||
|
188.0 "ast_Collective"
|
||||||
|
188.2 "Shining Cells" sync / 1[56]:[^:]*:Erichthonios:6616:/
|
||||||
|
194.0 "sge_Ixo"
|
||||||
|
194.5 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
208.6 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
208.6 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
211.4 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
211.4 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
224.2 "Pitiless Flail of Grace/Pitiless Flail of Purgation" sync / 1[56]:[^:]*:Erichthonios:660[EF]:/
|
||||||
|
227.6 "True Flare/True Holy" sync / 1[56]:[^:]*:Erichthonios:661[01]:/
|
||||||
|
229.0 "ast_Star"
|
||||||
|
229.7 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
243.7 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
243.7 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
246.5 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
246.5 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
255.1 "Shackles of Time" sync / 1[56]:[^:]*:Erichthonios:661C:/
|
||||||
|
265.3 "Heavy Hand" sync / 1[56]:[^:]*:Erichthonios:6629:/
|
||||||
|
270.0 "Inevitable Flame/Inevitable Light" sync / 1[56]:[^:]*:Erichthonios:6EC[12]:/
|
||||||
|
278.2 "sge_Kera"
|
||||||
|
278.2 "ast_Collective"
|
||||||
|
278.4 "Slam Shut" sync / 1[56]:[^:]*:Erichthonios:6617:/
|
||||||
|
281.0 "sge_Pneuma"
|
||||||
|
289.0 "ast_Star"
|
||||||
|
289.6 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
|
||||||
|
# Fourfold Shackles
|
||||||
|
294.0 "sge_Pan"
|
||||||
|
294.0 "ast_Opposition"
|
||||||
|
294.2 "Fourfold Shackles" sync / 1[56]:[^:]*:Erichthonios:6626:/
|
||||||
|
303.2 "Chain Pain #1" sync / 1[56]:[^:]*:Erichthonios:662[78]:/
|
||||||
|
308.2 "Chain Pain #2" sync / 1[56]:[^:]*:Erichthonios:662[78]:/
|
||||||
|
313.2 "Chain Pain #3" sync / 1[56]:[^:]*:Erichthonios:662[78]:/
|
||||||
|
318.2 "Chain Pain #4" sync / 1[56]:[^:]*:Erichthonios:662[78]:/
|
||||||
|
326.0 "sge_Pneuma"
|
||||||
|
328.0 "ast_HoroscopeNoGcd"
|
||||||
|
328.0 "sge_Kera_Physis"
|
||||||
|
328.4 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
334.0 "sge_Ixo"
|
||||||
|
|
||||||
|
# Tiles 2
|
||||||
|
341.6 "Intemperance" sync / 1[56]:[^:]*:Erichthonios:661E:/
|
||||||
|
345.7 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
349.0 "ast_Star"
|
||||||
|
358.6 "First Element" sync / 1[56]:[^:]*:Erichthonios:662[12]:/
|
||||||
|
369.6 "Second Element" sync / 1[56]:[^:]*:Erichthonios:662[12]:/
|
||||||
|
373.2 "Gaoler's Flail In/Out" sync / 1[56]:[^:]*:Erichthonios:6(5F[6-F]|60[01]):/
|
||||||
|
376.3 "Gaoler's Flail Out/In" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
380.6 "Third Element" sync / 1[56]:[^:]*:Erichthonios:662[12]:/
|
||||||
|
389.2 "sge_Kera_Holos"
|
||||||
|
389.4 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
393.5 "ast_Opposition"
|
||||||
|
|
||||||
|
# Cells 2, Shackles of Time first
|
||||||
|
|
||||||
|
407.4 "ast_Collective"
|
||||||
|
407.6 "Shining Cells" sync / 1[56]:[^:]*:Erichthonios:6616:/
|
||||||
|
408.0 "sge_Ixo"
|
||||||
|
409.0 "ast_Star"
|
||||||
|
417.8 "Shackles of Time/Aetherial Shackles" sync / 1[56]:[^:]*:Erichthonios:661C:/
|
||||||
|
417.8 "--sync--" sync / 1[56]:[^:]*:Erichthonios:6625:/ jump 1010.8
|
||||||
|
419.2 "ast_Pop_Star"
|
||||||
|
425.1 "Pitiless Flail of Grace/Pitiless Flail of Purgation" sync / 1[56]:[^:]*:Erichthonios:660[EF]:/
|
||||||
|
428.4 "True Flare/True Holy" sync / 1[56]:[^:]*:Erichthonios:661[01]:/
|
||||||
|
432.8 "Inevitable Flame/Inevitable Light" sync / 1[56]:[^:]*:Erichthonios:6EC[12]:/
|
||||||
|
441.8 "sge_Kera"
|
||||||
|
441.8 "ast_Neutral"
|
||||||
|
441.9 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
448.8 "sge_Physis_Ixo"
|
||||||
|
|
||||||
|
449.1 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
453.8 "sge_Holos"
|
||||||
|
453.9 "Aetherial Shackles" sync / 1[56]:[^:]*:Erichthonios:6625:/
|
||||||
|
465.1 "Aetherchain" sync / 1[56]:[^:]*:Erichthonios:6619:/
|
||||||
|
466.0 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
472.9 "Chain Pain" sync / 1[56]:[^:]*:Erichthonios:662[78]:/
|
||||||
|
474.2 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
485.3 "sge_Kera"
|
||||||
|
485.3 "ast_Collective"
|
||||||
|
485.5 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/ jump 1077.3
|
||||||
|
506.6 "Powerful Fire/Powerful Light + Gaoler's Flail"
|
||||||
|
509.4 "Powerful Fire/Powerful Light + Gaoler's Flail"
|
||||||
|
|
||||||
|
# Cells 2, Aetherial Shackles first
|
||||||
|
1010.8 "Aetherial Shackles" sync / 1[56]:[^:]*:Erichthonios:6625:/
|
||||||
|
1012.2 "ast_Pop_Star"
|
||||||
|
1021.9 "Aetherchain" sync / 1[56]:[^:]*:Erichthonios:6619:/
|
||||||
|
1022.8 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1029.7 "Chain Pain" sync / 1[56]:[^:]*:Erichthonios:662[78]:/
|
||||||
|
1031.0 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1040.1 "sge_Kera"
|
||||||
|
1040.1 "ast_Neutral"
|
||||||
|
1040.3 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
1044.3 "sge_Physis_Ixo"
|
||||||
|
1051.5 "Shackles of Time" sync / 1[56]:[^:]*:Erichthonios:661C:/
|
||||||
|
1058.9 "Pitiless Flail of Grace" sync / 1[56]:[^:]*:Erichthonios:660E:/
|
||||||
|
1062.1 "True Flare/True Holy" sync / 1[56]:[^:]*:Erichthonios:661[01]:/
|
||||||
|
1066.4 "Inevitable Flame/Inevitable Light" sync / 1[56]:[^:]*:Erichthonios:6EC[12]:/
|
||||||
|
1077.1 "sge_Kera"
|
||||||
|
1077.1 "ast_Collective"
|
||||||
|
1077.3 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
1084.5 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
|
||||||
|
# Seems to be E/W+In/Out for first two, and last one swaps between In/Out
|
||||||
|
1098.6 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1098.6 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
1101.4 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1101.4 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
|
||||||
|
1115.7 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1115.7 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
1119.5 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1119.5 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
|
||||||
|
1134.2 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1134.2 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
1137.3 "Powerful Fire/Powerful Light" sync / 1[56]:[^:]*:Erichthonios:661[AB]:/
|
||||||
|
1137.3 "Gaoler's Flail" sync / 1[56]:[^:]*:Erichthonios:6DA[2-9A-D]:/
|
||||||
|
|
||||||
|
# Soft enrage
|
||||||
|
1152.7 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
1161.9 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
1171.1 "Warder's Wrath" sync / 1[56]:[^:]*:Erichthonios:662A:/
|
||||||
|
|
||||||
|
1177.0 "--sync--" sync / 1[56]:[^:]*:Erichthonios:65F5:/
|
||||||
|
1190.6 "Lethe (enrage)" sync / 1[56]:[^:]*:Erichthonios:6618:/
|
36
radar-example.js
Normal file
36
radar-example.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// Rename this file to `radar.js` and edit it to change the radar ui.
|
||||||
|
// This file is Javascript. Anything after "//" on a line is a comment.
|
||||||
|
// If you edit this file, remember to reload ACT or click the "Reload overlay"
|
||||||
|
// button on the raidboss CactbotOverlay.
|
||||||
|
// If there are errors in this file, they will appear in the OverlayPlugin.dll
|
||||||
|
// log window in ACT.
|
||||||
|
|
||||||
|
// You can add your own monster list here.
|
||||||
|
Options.CustomMonsters = {
|
||||||
|
// 'Any': {
|
||||||
|
// 'name': { // monster names
|
||||||
|
// 'en': 'ya-te-veo',
|
||||||
|
// 'cn': '食人花',
|
||||||
|
// 'ja': 'ヤテベオ',
|
||||||
|
// },
|
||||||
|
// 'hp': 1000, // minimum hp of the monster
|
||||||
|
// 'rank': 'Custom', // rank
|
||||||
|
// },
|
||||||
|
};
|
||||||
|
|
||||||
|
// You can also add different options to different ranks.
|
||||||
|
Options.RankOptions = {
|
||||||
|
// 'S': {
|
||||||
|
// DetectionRange: 100,
|
||||||
|
// TTS: true,
|
||||||
|
// Type: 'mob', // can be 'mob' or 'any'
|
||||||
|
// Enabled: true,
|
||||||
|
// },
|
||||||
|
// 'Custom': {
|
||||||
|
// DetectionRange: 500,
|
||||||
|
// TTS: false,
|
||||||
|
// PopSoundAlert: true,
|
||||||
|
// Type: 'any',
|
||||||
|
// Enabled: true,
|
||||||
|
// },
|
||||||
|
};
|
106
raidboss-example.js
Normal file
106
raidboss-example.js
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
// Rename this file to `raidboss.js` and edit it to change the raidboss ui.
|
||||||
|
// This file is Javascript. Anything after "//" on a line is a comment.
|
||||||
|
// If you edit this file, remember to reload ACT or click the "Reload overlay"
|
||||||
|
// button on the raidboss overlay.
|
||||||
|
// If there are errors in this file, they will appear in the OverlayPlugin.dll
|
||||||
|
// log window in ACT.
|
||||||
|
// See: http://github.com/quisquous/cactbot/blob/main/docs/CactbotCustomization.md#check-the-overlayplugin-log-for-errors
|
||||||
|
|
||||||
|
// Path to sound played for info-priority text popups, or when "Info" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.InfoSound = '../../resources/sounds/freesound/percussion_hit.webm';
|
||||||
|
|
||||||
|
// Path to sound played for alert-priority text popups, or when "Alert" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.AlertSound = '../../resources/sounds/BigWigs/Alert.webm';
|
||||||
|
|
||||||
|
// Path to sound played for alarm-priority text popups, or when "Alarm" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.AlarmSound = '../../resources/sounds/BigWigs/Alarm.webm';
|
||||||
|
|
||||||
|
// Path to sound played when "Long" is specified as the sound name.
|
||||||
|
Options.LongSound = '../../resources/sounds/BigWigs/Long.webm';
|
||||||
|
|
||||||
|
// Path to sound played when the fight starts, or when "Pull" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.PullSound = '../../resources/sounds/freesound/sonar.webm';
|
||||||
|
|
||||||
|
// A set of nicknames to use for players, when trying to shorten names.
|
||||||
|
// See: https://github.com/quisquous/cactbot/blob/main/docs/CactbotCustomization.md#customizing-behavior
|
||||||
|
Options.PlayerNicks = {
|
||||||
|
'Captain Jimmy': 'Jimmy',
|
||||||
|
'Pipira Pira': 'Fish',
|
||||||
|
};
|
||||||
|
|
||||||
|
// An array of user-defined triggers, in the format defined in the trigger guide:
|
||||||
|
// See: https://github.com/quisquous/cactbot/blob/main/docs/CactbotCustomization.md#overriding-raidboss-triggers
|
||||||
|
// See also: https://github.com/quisquous/cactbot/tree/main/docs/RaidbossGuide.md
|
||||||
|
|
||||||
|
// Here's an example of overriding a trigger.
|
||||||
|
// This overrides the "Test Poke" trigger from:
|
||||||
|
// https://github.com/quisquous/cactbot/blob/main/ui/raidboss/data/00-misc/test.js
|
||||||
|
|
||||||
|
Options.Triggers.push({
|
||||||
|
zoneId: ZoneId.MiddleLaNoscea,
|
||||||
|
triggers: [
|
||||||
|
{
|
||||||
|
id: 'Test Poke',
|
||||||
|
netRegex: NetRegexes.gameNameLog({ line: 'You poke the striking dummy.*?', capture: false }),
|
||||||
|
netRegexDe: NetRegexes.gameNameLog(
|
||||||
|
{ line: 'Du stupst die Trainingspuppe an.*?', capture: false },
|
||||||
|
),
|
||||||
|
netRegexFr: NetRegexes.gameNameLog(
|
||||||
|
{
|
||||||
|
line: 'Vous touchez légèrement le mannequin d\'entraînement du doigt.*?',
|
||||||
|
capture: false,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
netRegexJa: NetRegexes.gameNameLog({ line: '.*は木人をつついた.*?', capture: false }),
|
||||||
|
netRegexCn: NetRegexes.gameNameLog({ line: '.*用手指戳向木人.*?', capture: false }),
|
||||||
|
netRegexKo: NetRegexes.gameNameLog({ line: '.*나무인형을 쿡쿡 찌릅니다.*?', capture: false }),
|
||||||
|
preRun: function(data) {
|
||||||
|
data.pokes = (data.pokes || 0) + 1;
|
||||||
|
},
|
||||||
|
// Instead of printing the number of pokes with infoText like the original trigger,
|
||||||
|
// This overrides the type and text of the output.
|
||||||
|
alarmText: 'POKE (user file override)',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
// Here's an example of overriding a timeline.
|
||||||
|
// This overrides the test timeline that you normally play with a `/countdown 5` in Middle La Noscea
|
||||||
|
// with an updated one from `user/test-override.txt`.
|
||||||
|
Options.Triggers.push({
|
||||||
|
zoneId: ZoneId.MiddleLaNoscea,
|
||||||
|
// This flag is required to clear any previously specified timelines.
|
||||||
|
overrideTimelineFile: true,
|
||||||
|
// This file is in the same directory as this JavaScript file.
|
||||||
|
timelineFile: 'test-override.txt',
|
||||||
|
});
|
||||||
|
|
||||||
|
// Here's an example of a adding a custom regen trigger.
|
||||||
|
// It reminds you to use regen again when you are in Sastasha (unsynced).
|
||||||
|
Options.Triggers.push({
|
||||||
|
// The zone this should apply to.
|
||||||
|
// This should match the zoneId in the triggers file.
|
||||||
|
zoneId: ZoneId.Sastasha,
|
||||||
|
triggers: [
|
||||||
|
// A more complicated regen trigger.
|
||||||
|
{
|
||||||
|
// This is a made up id that does not exist in cactbot.
|
||||||
|
id: 'User Example Regen',
|
||||||
|
// This will match log lines from ACT that look like this:
|
||||||
|
// "Nacho Queen gains the effect of Regen from Taco Cat for 21.00 Seconds."
|
||||||
|
regex: Regexes.gainsEffect({ effect: 'Regen' }),
|
||||||
|
delaySeconds: function(data, matches) {
|
||||||
|
// Wait the amount of seconds regen lasts before reminding you to
|
||||||
|
// reapply it. This is not smart enough to figure out if you
|
||||||
|
// cast it twice, and is left as an exercise for the reader to
|
||||||
|
// figure out how to do so via storing variables on `data`.
|
||||||
|
return data.ParseLocaleFloat(matches.duration);
|
||||||
|
},
|
||||||
|
alertText: 'Regen',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
165
raidboss.js
Normal file
165
raidboss.js
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
// Rename this file to `raidboss.js` and edit it to change the raidboss ui.
|
||||||
|
// This file is Javascript. Anything after "//" on a line is a comment.
|
||||||
|
// If you edit this file, remember to reload ACT or click the "Reload overlay"
|
||||||
|
// button on the raidboss overlay.
|
||||||
|
// If there are errors in this file, they will appear in the OverlayPlugin.dll
|
||||||
|
// log window in ACT.
|
||||||
|
// See: http://github.com/quisquous/cactbot/blob/main/docs/CactbotCustomization.md#check-the-overlayplugin-log-for-errors
|
||||||
|
|
||||||
|
// Path to sound played for info-priority text popups, or when "Info" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.InfoSound = '../../resources/sounds/freesound/percussion_hit.webm';
|
||||||
|
|
||||||
|
// Path to sound played for alert-priority text popups, or when "Alert" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.AlertSound = '../../resources/sounds/BigWigs/Alert.webm';
|
||||||
|
|
||||||
|
// Path to sound played for alarm-priority text popups, or when "Alarm" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.AlarmSound = '../../resources/sounds/BigWigs/Alarm.webm';
|
||||||
|
|
||||||
|
// Path to sound played when "Long" is specified as the sound name.
|
||||||
|
Options.LongSound = '../../resources/sounds/BigWigs/Long.webm';
|
||||||
|
|
||||||
|
// Path to sound played when the fight starts, or when "Pull" is
|
||||||
|
// specified as the sound name.
|
||||||
|
Options.PullSound = '../../resources/sounds/freesound/sonar.webm';
|
||||||
|
|
||||||
|
// A set of nicknames to use for players, when trying to shorten names.
|
||||||
|
// See: https://github.com/quisquous/cactbot/blob/main/docs/CactbotCustomization.md#customizing-behavior
|
||||||
|
Options.PlayerNicks = {
|
||||||
|
'Captain Jimmy': 'Jimmy',
|
||||||
|
'Pipira Pira': 'Fish',
|
||||||
|
};
|
||||||
|
|
||||||
|
// An array of user-defined triggers, in the format defined in the trigger guide:
|
||||||
|
// See: https://github.com/quisquous/cactbot/blob/main/docs/CactbotCustomization.md#overriding-raidboss-triggers
|
||||||
|
// See also: https://github.com/quisquous/cactbot/tree/main/docs/RaidbossGuide.md
|
||||||
|
|
||||||
|
// Here's an example of overriding a trigger.
|
||||||
|
// This overrides the "Test Poke" trigger from:
|
||||||
|
// https://github.com/quisquous/cactbot/blob/main/ui/raidboss/data/00-misc/test.js
|
||||||
|
|
||||||
|
Options.Triggers.push({
|
||||||
|
zoneId: ZoneId.MiddleLaNoscea,
|
||||||
|
triggers: [
|
||||||
|
{
|
||||||
|
id: 'Test Poke',
|
||||||
|
netRegex: NetRegexes.gameNameLog({ line: 'You poke the striking dummy.*?', capture: false }),
|
||||||
|
netRegexDe: NetRegexes.gameNameLog(
|
||||||
|
{ line: 'Du stupst die Trainingspuppe an.*?', capture: false },
|
||||||
|
),
|
||||||
|
netRegexFr: NetRegexes.gameNameLog(
|
||||||
|
{
|
||||||
|
line: 'Vous touchez légèrement le mannequin d\'entraînement du doigt.*?',
|
||||||
|
capture: false,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
netRegexJa: NetRegexes.gameNameLog({ line: '.*は木人をつついた.*?', capture: false }),
|
||||||
|
netRegexCn: NetRegexes.gameNameLog({ line: '.*用手指戳向木人.*?', capture: false }),
|
||||||
|
netRegexKo: NetRegexes.gameNameLog({ line: '.*나무인형을 쿡쿡 찌릅니다.*?', capture: false }),
|
||||||
|
preRun: function(data) {
|
||||||
|
data.pokes = (data.pokes || 0) + 1;
|
||||||
|
},
|
||||||
|
// Instead of printing the number of pokes with infoText like the original trigger,
|
||||||
|
// This overrides the type and text of the output.
|
||||||
|
alarmText: 'POKE (user file override)',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
const healCallout = (data, matches, _output) => {
|
||||||
|
console.log(data, matches);
|
||||||
|
const spells = matches[0].split('_');
|
||||||
|
let res = 'USE ';
|
||||||
|
for (let i = 1; i < spells.length; ++i)
|
||||||
|
res += ' ' + spells[i];
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Astro
|
||||||
|
Options.Triggers.push({
|
||||||
|
zoneId: ZoneId.MatchAll,
|
||||||
|
timelineTriggers: [
|
||||||
|
{
|
||||||
|
id: 'AST Healer Callouts',
|
||||||
|
regex: /ast_.*/,
|
||||||
|
condition: function(data) {
|
||||||
|
return data.job === 'AST';
|
||||||
|
},
|
||||||
|
beforeSeconds: 4,
|
||||||
|
alarmText: healCallout,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'SCH Healer Callouts',
|
||||||
|
regex: /sch_.*/,
|
||||||
|
condition: function(data) {
|
||||||
|
return data.job === 'SCH';
|
||||||
|
},
|
||||||
|
beforeSeconds: 4,
|
||||||
|
alarmText: healCallout,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'SGE Healer Callouts',
|
||||||
|
regex: /sge_.*/,
|
||||||
|
condition: function(data) {
|
||||||
|
return data.job === 'SGE';
|
||||||
|
},
|
||||||
|
beforeSeconds: 4,
|
||||||
|
alarmText: healCallout,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'WHM Healer Callouts',
|
||||||
|
regex: /whm_.*/,
|
||||||
|
condition: function(data) {
|
||||||
|
return data.job === 'WHM';
|
||||||
|
},
|
||||||
|
beforeSeconds: 4,
|
||||||
|
alarmText: healCallout,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
// Here's an example of overriding a timeline.
|
||||||
|
// This overrides the test timeline that you normally play with a `/countdown 5` in Middle La Noscea
|
||||||
|
// with an updated one from `user/test-override.txt`.
|
||||||
|
Options.Triggers.push({
|
||||||
|
zoneId: ZoneId.MiddleLaNoscea,
|
||||||
|
// This flag is required to clear any previously specified timelines.
|
||||||
|
overrideTimelineFile: true,
|
||||||
|
// This file is in the same directory as this JavaScript file.
|
||||||
|
timelineFile: 'test-override.txt',
|
||||||
|
});
|
||||||
|
Options.Triggers.push({
|
||||||
|
zoneId: ZoneId.AsphodelosTheFirstCircleSavage,
|
||||||
|
// This flag is required to clear any previously specified timelines.
|
||||||
|
overrideTimelineFile: true,
|
||||||
|
// This file is in the same directory as this JavaScript file.
|
||||||
|
timelineFile: 'p1s-override.txt',
|
||||||
|
});
|
||||||
|
|
||||||
|
// Here's an example of a adding a custom regen trigger.
|
||||||
|
// It reminds you to use regen again when you are in Sastasha (unsynced).
|
||||||
|
Options.Triggers.push({
|
||||||
|
// The zone this should apply to.
|
||||||
|
// This should match the zoneId in the triggers file.
|
||||||
|
zoneId: ZoneId.Sastasha,
|
||||||
|
triggers: [
|
||||||
|
// A more complicated regen trigger.
|
||||||
|
{
|
||||||
|
// This is a made up id that does not exist in cactbot.
|
||||||
|
id: 'User Example Regen',
|
||||||
|
// This will match log lines from ACT that look like this:
|
||||||
|
// "Nacho Queen gains the effect of Regen from Taco Cat for 21.00 Seconds."
|
||||||
|
regex: Regexes.gainsEffect({ effect: 'Regen' }),
|
||||||
|
delaySeconds: function(data, matches) {
|
||||||
|
// Wait the amount of seconds regen lasts before reminding you to
|
||||||
|
// reapply it. This is not smart enough to figure out if you
|
||||||
|
// cast it twice, and is left as an exercise for the reader to
|
||||||
|
// figure out how to do so via storing variables on `data`.
|
||||||
|
return data.ParseLocaleFloat(matches.duration);
|
||||||
|
},
|
||||||
|
alertText: 'Regen',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
19
test-override.txt
Normal file
19
test-override.txt
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# I am but a wee little test timeline override
|
||||||
|
#
|
||||||
|
# This is an example of how to override your timeline.
|
||||||
|
#
|
||||||
|
# The original file is in:
|
||||||
|
# https://github.com/quisquous/cactbot/blob/main/ui/raidboss/data/00-misc/test.txt
|
||||||
|
|
||||||
|
0 "--Reset--" sync /You bid farewell to the striking dummy/ window 10000 jump 0
|
||||||
|
|
||||||
|
0 "Engage" sync /:Engage!/ window 100000,100000
|
||||||
|
0 "Start" sync /:You bow courteously to the striking dummy/ window 0,1
|
||||||
|
6 "Angry Dummy II"
|
||||||
|
10 "Long Castbar IV" duration 10
|
||||||
|
12 "If you see this"
|
||||||
|
13 "you have overridden"
|
||||||
|
14 "the test timeline"
|
||||||
|
15 "with user/raidboss.js"
|
||||||
|
25 "Final Sting X"
|
||||||
|
40 "Death"
|
Loading…
x
Reference in New Issue
Block a user