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