MOAR DOCS (we’re getting there :D)
This commit is contained in:
parent
53d6472e01
commit
ddc5bd9bcb
12 changed files with 239 additions and 1081 deletions
|
@ -24,7 +24,7 @@ able to invoke that plugin. [You can safely ignore that](https://github.com/alte
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* `alterNERDtive-base` plugin. FIXXME
|
* `alterNERDtive-base` plugin. Provides functionality common to all profiles.
|
||||||
* Proper logging to the VoiceAttack log. You will notice a lot of useful
|
* Proper logging to the VoiceAttack log. You will notice a lot of useful
|
||||||
information, more is available if you change the log level configuration
|
information, more is available if you change the log level configuration
|
||||||
option. Logging to a file for troubleshooting will be added at a later date.
|
option. Logging to a file for troubleshooting will be added at a later date.
|
||||||
|
@ -64,7 +64,7 @@ profile will keep the old name. Feel free to manually rename it.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* `EliteAttack` plugin. FIXXME
|
* `EliteAttack` plugin. Doesn’t do a lot yet.
|
||||||
* `where is my landing pad` command: Will use EDDI to tell you about the landing
|
* `where is my landing pad` command: Will use EDDI to tell you about the landing
|
||||||
pad location on star ports in relation to the mail slot.
|
pad location on star ports in relation to the mail slot.
|
||||||
|
|
||||||
|
@ -82,7 +82,10 @@ profile will keep the old name. Feel free to manually rename it.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* `RatAttack` plugin. FIXXME
|
* `RatAttack` plugin. Responsible for handling case data instead of having a way
|
||||||
|
too long and convoluted list of VoiceAttack variables. Also provides a way to
|
||||||
|
send RATSIGNALs to VoiceAttack via IPC.
|
||||||
|
* `RatAttack-cli.exe` helper tool. Used to send RATSIGNALs to the plugin via IPC.
|
||||||
* Will now announce permit locks, including the name of the permit if available.
|
* Will now announce permit locks, including the name of the permit if available.
|
||||||
* Now supports manually injected cases that might not provide a system. You will
|
* Now supports manually injected cases that might not provide a system. You will
|
||||||
still have to manually copy the system from \#fuelrats or the dispatch board
|
still have to manually copy the system from \#fuelrats or the dispatch board
|
||||||
|
|
|
@ -1,465 +1,34 @@
|
||||||
# EliteAttack #
|
# EliteAttack
|
||||||
|
|
||||||
This is my personal VoiceAttack profile for Elite: Dangerous. It started out
|
## Settings
|
||||||
ages ago as a modification of [MalicVR’s public
|
|
||||||
profile](https://forums.frontier.co.uk/threads/malics-voice-attack-profile-for-vr.351050/),
|
Toggles:
|
||||||
then looked less and less and less like that and I added and cleaned up a lot of
|
|
||||||
things while removing the stuff I didn’t use anyway. By now it would have
|
* `auto honk all systems`: Automatically honk upon entering a system, each jump
|
||||||
probably been simpler to start from scratch.
|
without constraints. Default: false.
|
||||||
|
* `auto honk new systems`: Automatically honk upon entering as system if it is
|
||||||
Some of it has grown to a state that it might be useful to others in its own
|
your first visit. Default: true.
|
||||||
package, so I’ve separated the neutron jumping and Seals stuff into their own
|
* `auto restock`: Automatically restock after docking at a station. You will
|
||||||
profiles.
|
always refuel, repair and enter the Station Services menu. Default: true.
|
||||||
|
* `edsm system status`: Pull system data from EDSM and compare it
|
||||||
The rest is a random conglomerate of all things VA and E:D; from various voice
|
against your discovery scan. Default: true.
|
||||||
commands to lots of EDDI event handlers.
|
* `discovery scan on primary fire`: Use primary fire for honking instead of
|
||||||
|
secondary. Default: false.
|
||||||
Speaking of EDDI; it has become in integral part of my Elite experience,
|
* `flight assist off`: Permanent Flight Assist off mode. You should really do
|
||||||
especially the plethora of information it extracts from the game’s journal and
|
that, it’s great. Default: false.
|
||||||
presents to you via lots and lots of status variables and by firing various
|
* `hyper space dethrottle`: Throttle down after a jump and when dropping from
|
||||||
events that can then be handled through VA commands. It’s great. Check it out.
|
SC. Like the SC Assist module does. Default: true.
|
||||||
(You might want to make it talk a lot less in it’s personality options, or
|
* `mapping candidates`: Announce bodies worth mapping when you’ve finished
|
||||||
disable the speech responder entirely like I have.)
|
scanning a system. (Terraformables, Water Worlds, Earth-Like Worlds and
|
||||||
|
Ammonia Worlds that have not been mapped yet.) Default: true.
|
||||||
## Requirements ##
|
* `outdated stations`: Announce stations with outdated data in the online
|
||||||
|
databases. Default: true.
|
||||||
In addition to the bindED and EDDI VoiceAttack plugins, this profiles needs my
|
* `road to riches`: Announce bodies worth scanning if you are looking for some
|
||||||
[Python elite-scripts](https://github.com/alterNERDtive/elite-scripts) to do
|
starting cash on the Road to Riches. Default: false.
|
||||||
everything properly. The release page here includes a compiled version for
|
|
||||||
Windows that does not need Python installed. If you use the profile package from
|
Other settings:
|
||||||
the release page, they will be installed automatically.
|
|
||||||
|
* `outdated station threshold`: The threshold for station data to count as
|
||||||
## Settings ##
|
“outdated”, an days. Default: 365.
|
||||||
|
* `scanner fire group`: The fire group your discovery scanner is assigned to.
|
||||||
Because Elite’s keyboard handling is … weird you’ll have to set the key to use
|
Default: 0 (the first one).
|
||||||
for pasting text into Elite:Dangerous. If you are not using a “standard”
|
|
||||||
QWERT[YZ] layout, you will have to change it back to the key that is physically
|
|
||||||
in the place where `v` would be on QWERTY.
|
|
||||||
|
|
||||||
For other settings, see the [Configuration Variables](#Configuration-Variables)
|
|
||||||
section.
|
|
||||||
|
|
||||||
## Including the Profile In Another Profile ##
|
|
||||||
|
|
||||||
This is meant to be a standalone profile, including the others in this repo (and
|
|
||||||
a couple more). It was never designed to be included into your existing profile.
|
|
||||||
Nevertheless, it _should_ work properly if you follow some guide lines:
|
|
||||||
|
|
||||||
* Run the startup command. You will need to have a startup command in your
|
|
||||||
profile (= one that is run on profile loading) and call
|
|
||||||
`EliteDangerous.startup` by name from that one.
|
|
||||||
* Make sure all EDDI events that EliteDangerous needs are correctly handled. For
|
|
||||||
all events used in EliteDangerous that you already have handlers for in your
|
|
||||||
profile, you’ll have to include a call to `EliteDangerous.<event name>`. E.g.
|
|
||||||
for “EDDI Jumped”, call `EliteDangerous.EDDI Jumped` by name from your `((EDDI
|
|
||||||
Jumped))` command.
|
|
||||||
|
|
||||||
## Usage ##
|
|
||||||
|
|
||||||
### Chat Commands ###
|
|
||||||
|
|
||||||
There’s a bunch of commands in here to send certain things to chat. Unless
|
|
||||||
stated otherwise, they will only work with the comms panel active, and you
|
|
||||||
should be in the edit window ready to send. They will _not_ hit Enter on their
|
|
||||||
own.
|
|
||||||
|
|
||||||
* `clear [chat;text]`: Clears the chat window. Use from outside the comms panel.
|
|
||||||
* `[local;squad;system;wing] chat`: Puts you into the chosen chat channel.
|
|
||||||
* `paste text`: Pastes your clipboard into Elite. Works outside the comms panel
|
|
||||||
too, e.g. on the galaxy map inside the search field.
|
|
||||||
* `salute; oh seven`: Will put “o7” into the chat.
|
|
||||||
|
|
||||||
### Engineering/Materials ###
|
|
||||||
|
|
||||||
* `how many [<g5 manufactured materials list>] do i have`: Tells you how many of
|
|
||||||
the given g5 manufactured material you currently have on board. I’ve
|
|
||||||
restricted it to just those to not spam speech recognition with too many
|
|
||||||
phrases, and because those are the ones I usually want to know while jumping
|
|
||||||
around the bubble and having an eye on any HGE that might be around.
|
|
||||||
* `open e d engineer`: Opens the ED Engineer tool.
|
|
||||||
* `what [mats;materials] do i need?`: Runs the EDDI responder that tells you
|
|
||||||
which materials are below wanted threshold. Needs setting those first. Gets
|
|
||||||
very spammy if you do it for all of them; personally I only set them for g5
|
|
||||||
manufactured, so I can quickly check if it’s worth looking for HGE in a system
|
|
||||||
I’m in.
|
|
||||||
|
|
||||||
### Events ###
|
|
||||||
|
|
||||||
The main point of this profile is to react to Elite’s journal events (powered by
|
|
||||||
EDDI). Each of the events listed here will trigger a `((EDDI <event>))` command
|
|
||||||
in VoiceAttack which in turn triggers `EliteDangerous.EDDI <event>` and all
|
|
||||||
included profiles’ similar commands, e.g. `SpanshAttack.EDDI <event>`.
|
|
||||||
|
|
||||||
The actual `((EDDI <event>))` command will only be executed once by VoiceAttack,
|
|
||||||
the first one it can find. Keeping it separate from the actual code to be run
|
|
||||||
makes it easier to handle (multiple) included profiles.
|
|
||||||
|
|
||||||
If the command for an event will send key presses to Elite, it focuses the
|
|
||||||
client window first to make sure they get registered properly. If it is not in
|
|
||||||
focus, the first key press might be swallowed otherwise.
|
|
||||||
|
|
||||||
For other commands, the profile just assumes that you are actively doing
|
|
||||||
something in game and it is already focused :)
|
|
||||||
|
|
||||||
#### Body Mapped ####
|
|
||||||
|
|
||||||
Announces an estimate for high-value bodies’ payouts and the remaining mapping
|
|
||||||
candidates in the system as given by EDDI.
|
|
||||||
|
|
||||||
#### Body scanned ####
|
|
||||||
|
|
||||||
Announces any interesting body traits found when scanning:
|
|
||||||
|
|
||||||
* terraformable
|
|
||||||
* Earth-like World, Ammonia World or Water World
|
|
||||||
* landable and >5 g
|
|
||||||
* semimajor axis <1.5 ls (only really interesting for planets, but there’s no
|
|
||||||
proper way to separate them from moons, sadly)
|
|
||||||
* radius <300 km
|
|
||||||
|
|
||||||
Feel free to suggest more!
|
|
||||||
|
|
||||||
#### Carrier Cooldown ####
|
|
||||||
|
|
||||||
Tells you when your carrier is able to do its next jump. Technically only works
|
|
||||||
if you were docked at it when it performed the jump, but I’m doing some
|
|
||||||
behind-the-scenes magic if you weren’t :)
|
|
||||||
|
|
||||||
Might be slightly off (too early) in the latter case.
|
|
||||||
|
|
||||||
#### Carrier Jumped ####
|
|
||||||
|
|
||||||
Announces system and body your carrier has just jumped to.
|
|
||||||
|
|
||||||
#### Carrier Jump Engaged ####
|
|
||||||
|
|
||||||
This event fires when your carrier jumps but you are _not_ docked at it. It
|
|
||||||
provides way less information than the `Carrier Jumped` event, but hey, I don’t
|
|
||||||
use most of it anyway.
|
|
||||||
|
|
||||||
Basically just calls `Carrier Jumped` (and makes sure that a `Carrier cooldown`
|
|
||||||
event is triggered manually at approximately the right time).
|
|
||||||
|
|
||||||
#### Carrier Jump Request ####
|
|
||||||
|
|
||||||
Announces the system and body your carrier has just been scheduled to jump to.
|
|
||||||
Use this to double check ingame information; I’ve had my carrier accept a body
|
|
||||||
as jump target, but then end up around the star. This _might_ give you a heads
|
|
||||||
up on that.
|
|
||||||
|
|
||||||
#### Carrier Pads Locked ####
|
|
||||||
|
|
||||||
Announces your carriers lockdown procedures. This _might_ only work when you are
|
|
||||||
docked (which would make it pretty useless). Feel free to open in issue if
|
|
||||||
that’s the case.
|
|
||||||
|
|
||||||
#### Discovery Scan ####
|
|
||||||
|
|
||||||
Announces the number of bodies (and non-body signals) found in the system. Also
|
|
||||||
compares the number of bodies to the amount reported by EDSM (requires Python
|
|
||||||
scripts).
|
|
||||||
|
|
||||||
#### Docked ####
|
|
||||||
|
|
||||||
Automatically gets your ship into the hangar and opens station services.
|
|
||||||
|
|
||||||
#### Docking Denied ####
|
|
||||||
|
|
||||||
Tells you the reason for docking denial.
|
|
||||||
|
|
||||||
#### Entered Normal Space ####
|
|
||||||
|
|
||||||
Throttles to 0 upon dropping from SC, if `EliteDangerous.hyperSpaceDethrottle` is set.
|
|
||||||
|
|
||||||
#### Fighter Launched ####
|
|
||||||
|
|
||||||
Orders your ship to hold position so it doesn’t chase after you immediately.
|
|
||||||
|
|
||||||
#### Jet Cone Boost ####
|
|
||||||
|
|
||||||
Sets your ship to full throttle immediately after you have supercharged.
|
|
||||||
|
|
||||||
#### Jumped ####
|
|
||||||
|
|
||||||
* zeroes throttle
|
|
||||||
* gets the system’s body count from EDSM (requires Python scripts)
|
|
||||||
* gets stations with outdated data (older than 1 year) from Spansh’s API
|
|
||||||
* if you haven’t visited the systems, starts a discovery scan (see the discovery
|
|
||||||
scan command)
|
|
||||||
* last but not least tells you about planets worth scanning if you are on the
|
|
||||||
R2R
|
|
||||||
|
|
||||||
#### Liftoff ####
|
|
||||||
|
|
||||||
Retracts landing gear for you. Seriously, is there any occasion in which you
|
|
||||||
_don’t_ immediately want to retract it after takeoff?
|
|
||||||
|
|
||||||
#### Low Fuel ####
|
|
||||||
|
|
||||||
Warns you when you reach 25% fuel. Also reports number of jumps you have left or
|
|
||||||
the (rough) range you still have on the fumes left in your tank.
|
|
||||||
|
|
||||||
#### Material Threshold ####
|
|
||||||
|
|
||||||
Warns you when a monitored material falls below it’s minimum stock level. You
|
|
||||||
will have to set a minimum desired amount in EDDI’s material monitor options
|
|
||||||
first for all materials you wish to be monitored.
|
|
||||||
|
|
||||||
#### Message Sent ####
|
|
||||||
|
|
||||||
Checks any message you send for a chat prefix and sends it to the proper chat
|
|
||||||
window. Probably largely useless to you without modification.
|
|
||||||
|
|
||||||
* `.nc`: Actually doesn’t send anything, but runs the
|
|
||||||
`RatAttack.announceNearestCMDR` command with the system given in the rest of
|
|
||||||
the message.
|
|
||||||
* `.dc`: Sends the message to the Discord window.
|
|
||||||
* `.tc`: Sends the message to my twitch channel window (IRC #alternerdtive).
|
|
||||||
|
|
||||||
There are similar event commands in RatAttack and SealAttack handling other chat
|
|
||||||
windows.
|
|
||||||
|
|
||||||
#### Ship FSD ####
|
|
||||||
|
|
||||||
This event actually is several different events in one. Currently the following
|
|
||||||
are handled:
|
|
||||||
|
|
||||||
* charging: Warns you if your target system’s main star is not scoopable,
|
|
||||||
including an extra warning at low fuel levels. (__Note__: This only works if
|
|
||||||
the target system is in EDSM. So it’s kind of useless for its intended use
|
|
||||||
(exploration) and probably going to be removed at some point.)
|
|
||||||
* cooldown complete: Announces FSD cooldown if you are currently in normal
|
|
||||||
space.
|
|
||||||
|
|
||||||
#### Ship interdicted ####
|
|
||||||
|
|
||||||
Tells you when you have been interdicted by a player. Is also supposed to target
|
|
||||||
the interdictor automatically, but randomly sometimes just doesn’t work. Yay!
|
|
||||||
|
|
||||||
#### Ship targeted ####
|
|
||||||
|
|
||||||
This currently doesn’t do anything. I was fiddling around with automatically
|
|
||||||
targeting a certain module on ship targeting, but it was more hassle than I had
|
|
||||||
thought.
|
|
||||||
|
|
||||||
#### SRV Launched ####
|
|
||||||
|
|
||||||
Toggles SRV lights off after launching. Might not work if you drop particularly
|
|
||||||
far after deployment because it works off a timer. Conversely might take
|
|
||||||
a second to turn your lights off on a short drop and/or in high gravity.
|
|
||||||
|
|
||||||
#### System Scan Complete ####
|
|
||||||
|
|
||||||
Lists you all bodies EDDI considers worth mapping in the current system.
|
|
||||||
|
|
||||||
#### Undocked ####
|
|
||||||
|
|
||||||
Retracts landing gear for you. Seriously, is there any occasion in which you
|
|
||||||
_don’t_ immediately want to retract it after takeoff?
|
|
||||||
|
|
||||||
#### VA initialized ####
|
|
||||||
|
|
||||||
Fires when the EDDI VoiceAttack plugin is loaded. Makes sure that EDDI is set to
|
|
||||||
quite mode even if the profile was loaded before plugin initialization had
|
|
||||||
completed.
|
|
||||||
|
|
||||||
### Misc ###
|
|
||||||
|
|
||||||
The commands in here do random more or less useful things.
|
|
||||||
|
|
||||||
* `bind keys;reset key binds`: Reloads your key binds through the bindED plugin.
|
|
||||||
You should do that after changing anything in the controls options.
|
|
||||||
* `copy current system`: Copies the current system name into the clipboard.
|
|
||||||
* `distance [from;to] […]`: Tells you the distance from your current position to
|
|
||||||
the other thing you mentioned and is supported in the command. (requires
|
|
||||||
Python scripts)
|
|
||||||
* `do a barrow roll`: WHOOOOOOO!
|
|
||||||
* `fix window dimensions`: When you start the game in VR, it forces into
|
|
||||||
windowed mode with weird resolution. This changes it back. Hover the “PLAY”
|
|
||||||
entry in the main menu, then run this. Will need adjustment for different
|
|
||||||
graphics cards/drivers and the resolution you want.
|
|
||||||
* `neutron [jump;trip] time`: Shorter version of the same thing in SpanshAttack.
|
|
||||||
* `neutron jumps left`: Shorter version of the same thing in SpanshAttack.
|
|
||||||
* `open copied system on EDSM`: Opens the system in your clipboard on EDSM in
|
|
||||||
your default browser.
|
|
||||||
* `open coriolis`: Opens Coriolis in your default browser.
|
|
||||||
* `open [current;] system on EDSM`: Opens your current system on EDSM in your
|
|
||||||
default browser.
|
|
||||||
* `open EDDI options; configure EDDI`: Opens the EDDI configuration window.
|
|
||||||
* `open e d d b [station;system;faction;] [search;]`: Opens EDDB in your default
|
|
||||||
browser.
|
|
||||||
* `open e d s m`: Opens EDSM in your default browser.
|
|
||||||
* `open inara`: Opens Inara in your default browser.
|
|
||||||
* `open materials finder`: Opens EDTutorials’ materials finder in your default
|
|
||||||
browser.
|
|
||||||
* `open miner’s tool`: Opens https://edtools.ddns.net/miner in your default
|
|
||||||
browser.
|
|
||||||
* `reload bindings`: Reloads your bindings for bindED.
|
|
||||||
* `shut up EDDI`: Immediately stops any ongoing (and queued) EDDI speech.
|
|
||||||
* `[start;stop] [EDISON;navigation]`: Hits `CTRL+ALT+E` which just so happens to
|
|
||||||
be the start/stop hotkey I have set in E.D.I.S.O.N.
|
|
||||||
* `[bodies;what’s;what is] left to [map;be mapped;scan]`: Tells you which bodies
|
|
||||||
EDDI thinks are worth mapping in the system that you haven’t mapped yet.
|
|
||||||
|
|
||||||
### Navigation ###
|
|
||||||
|
|
||||||
There are so many navigation-focused commands now, they deserve there own
|
|
||||||
category. Basically anything that helps you plot anywhere. A lot of those are
|
|
||||||
powered by awesome EDDI so I don’t have to do the work myself!
|
|
||||||
|
|
||||||
* `plot course;[target;] next [waypoint;way point]`: Plots a course to the
|
|
||||||
system set in `~~system` or the one in your clipboard. The former way is
|
|
||||||
usually used by other commands to not interfere with your clipboard.
|
|
||||||
* `[find;target] nearest [encoded;manufactured;raw] material trader`: Targets
|
|
||||||
the nearest respective material trader.
|
|
||||||
* `[find;target] nearest [guardian;human] tech broker`: Targets the nearest respective
|
|
||||||
tech broker.
|
|
||||||
* `[find;target] nearest [interstellar factor;mission system;scoopable star]`: Well,
|
|
||||||
you know the drill by now.
|
|
||||||
* `[find;target] nearest mission system`: Targets the nearest system that has a mission
|
|
||||||
target.
|
|
||||||
* `[find;target] [<system>]`: Targets the given system on the galaxy map. There’s
|
|
||||||
a bunch in there, the list is easily extensible. Drop me a note if you want
|
|
||||||
something included.
|
|
||||||
|
|
||||||
### Ship Controls ###
|
|
||||||
|
|
||||||
Basically anything that is related to directly doing something with your ship.
|
|
||||||
|
|
||||||
* `[abort;cancel;stop] jumping`: Stops a currently charging FSD jump.
|
|
||||||
* `[buggy;exploration] power`: Sets your PD to 0/4/2 or 2/4/0 respectively.
|
|
||||||
Works in SRV too.
|
|
||||||
* `[close;deploy;extend;open;retract;] […] [up;down;]`: Overly complicated
|
|
||||||
command to handle everything related to Cargo Scoop, Hard Points, Landing
|
|
||||||
Gear. You get the gist, I guess. Works in SRV too.
|
|
||||||
* `[disco;discovery scan]`: Executes a discovery scan. To work properly, you’ll
|
|
||||||
have to set the Discovery Scanner to your first fire group, secondary fire.
|
|
||||||
* `[dis;]engage silent running`: Turns silent running on and off.
|
|
||||||
* `[head;spot;] lights [on;off]`: Turns your lights on and off. Works in SRV
|
|
||||||
too, kinda; turning lights off there relies on the state updating fast enough,
|
|
||||||
which sometimes leads to weird results.
|
|
||||||
* `[jump;engage;get me out;punch it chewie] [and scan;] [when ready;]`: Retracts
|
|
||||||
everything that might be protruding from your ship, then jumps to the next
|
|
||||||
system. If the FSD isn’t charging within 1s, it gets you into SC instead (e.g.
|
|
||||||
if your target is obstructed). If given “and scan” runs a discovery scan. If
|
|
||||||
given “when ready” waits for mass lock to clear, your FSD to cool down and you
|
|
||||||
to leave scoop range before jumping.
|
|
||||||
* `night vision [on;off]`: Toggles your night vision on/off. Works in SRV too.
|
|
||||||
* `power to [engines;shields;systems;weapons`: Sets 4 pips to the thing you told
|
|
||||||
it, 1 to the others.
|
|
||||||
* `rapid fire lights`: Flashes your lights 5 times in a row.
|
|
||||||
* `retract [all;everything]`: Retracts, well, everything.
|
|
||||||
* `[start;stop] [firing;mining]`: Starts/stops holding down primary fire. Mostly
|
|
||||||
useful when mining. When triggered with “mining”, also deploys the cargo
|
|
||||||
scoop.
|
|
||||||
* `[super;] cruise [when ready;]`: Retracts everything, then jumps to SC. If
|
|
||||||
given “when ready” will wait for mass lock to clear and your FSD to cool down
|
|
||||||
first.
|
|
||||||
|
|
||||||
### SRV controls ###
|
|
||||||
|
|
||||||
Things relevant to your SRV, but not your ship.
|
|
||||||
|
|
||||||
* `[recall;dismiss] ship`: Recalls or dismisses ship. Currently does the same
|
|
||||||
thing regardless of the state of your ship. I wish it would be possible to
|
|
||||||
restrict it to doing one thing each, but that’s currently not possible sadly.
|
|
||||||
* `[toggle;enable;disable] drive assist`: Handles all your drive assist needs!
|
|
||||||
|
|
||||||
### Targeting ###
|
|
||||||
|
|
||||||
Well … targeting stuff, I guess. Not really sure why I made that it’s own
|
|
||||||
category, but oh well :)
|
|
||||||
|
|
||||||
* `target next system`: Selects the next system on your route.
|
|
||||||
* `target wing man [1;2;3]`: Targets your wing men.
|
|
||||||
* `target’s target`: Targets your target’s target.
|
|
||||||
* `wing man [1;2;3] target`: Targets your wing men’s target.
|
|
||||||
* `wing man nav lock`: Toggles wing man nav lock on the selected wing member.
|
|
||||||
|
|
||||||
### UI Commands ###
|
|
||||||
|
|
||||||
Everything handling stuff that’s not related to controlling your ship, but
|
|
||||||
manipulating some UI element(s).
|
|
||||||
|
|
||||||
* `controls options`: Opens the controls options menu.
|
|
||||||
* `docking request;request dock[ing;]`: Sends a docking request.
|
|
||||||
* `[enter;leave] F S S`: Opens/closes FSS.
|
|
||||||
* `galaxy map`: Opens the galaxy map.
|
|
||||||
* `[main;game] menu`: Opens the ESC menu.
|
|
||||||
* `[relog;reset] to [open;solo]`: Relogs to Open or Solo mode, respectively.
|
|
||||||
* `restart from Desktop`: Quits the game and restarts from an open launcher by
|
|
||||||
clicking the play button.
|
|
||||||
* `set […] filter`: Sets a nav panel filter setting. See the command or just try
|
|
||||||
different things for what is possible. You need to clear filters and hover
|
|
||||||
over the filter button, then run this.
|
|
||||||
* `system map`: Opens the system map.
|
|
||||||
* `take [high res;] screenshot`: Takes a (high res) screenshot.
|
|
||||||
* `toggle orbit lines`: Toggles the visibility of orbit lines.
|
|
||||||
* `[toggle;show;hide] interface`: Toggles the cockpit interface (CTRL+ALT+G).
|
|
||||||
Probably needs to be adjusted if you are not playing with Neo2 keyboard layout
|
|
||||||
:)
|
|
||||||
|
|
||||||
### Update Commands ###
|
|
||||||
|
|
||||||
* `check for profiles update`: Does just that. Is also automatically run each
|
|
||||||
time the profile is started.
|
|
||||||
* `download profiles update`: Downloads a profiles update if applicable. Will
|
|
||||||
prompt you to restart VoiceAttack when the download has finished to import the
|
|
||||||
updated profiles.
|
|
||||||
* `open profiles change log`: Opens `CHANGELOG.md` on Github.
|
|
||||||
|
|
||||||
## Logging ##
|
|
||||||
|
|
||||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
|
||||||
default, logging is concise and constrained to basically error messages.
|
|
||||||
|
|
||||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
|
||||||
If you want to enable verbose logging _by default_, call the
|
|
||||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
|
||||||
|
|
||||||
## Configuration Variables ##
|
|
||||||
|
|
||||||
There are a bunch of configuration variables. You should not overwrite those
|
|
||||||
manually, instead use the provided commands in the `_configuration` section!
|
|
||||||
|
|
||||||
Basically all the settings are available using the `customize settings` prefix,
|
|
||||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
|
||||||
for text variables.
|
|
||||||
|
|
||||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
|
||||||
true.
|
|
||||||
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
|
|
||||||
is `v`. Default: `p`.
|
|
||||||
* `EliteDangerous.announceEdsmSystemStatus` (boolean): whether to announce the
|
|
||||||
system or some of its bodies missing on EDSM. Default: true.
|
|
||||||
* `EliteDangerous.announceMappingCandidates` (boolean): whether to announce
|
|
||||||
mapping candidates when they are scanned. Default: true.
|
|
||||||
* `EliteDangerous.announceOutdatedStationData` (boolean): whether to announce
|
|
||||||
stations with outdated data in systems you jump to. Default: true.
|
|
||||||
* `EliteDangerous.announceR2RMappingCandidates` (boolean): whether to announce
|
|
||||||
planets worth mapping when jumping into a known system. This is useful for
|
|
||||||
doing some R2R on the side. Default: false.
|
|
||||||
* `EliteDangerous.enableCarrierAnnouncements` (boolean): whether or not to
|
|
||||||
process fleet carrier events. Default: true.
|
|
||||||
* `EliteDangerous.enableAutoUpdateCheck` (boolean): whether or not to
|
|
||||||
automatically check for updates on profile startup. Default: true.
|
|
||||||
* `EliteDangerous.flightAssistOff` (boolean): whether to automatically toggle
|
|
||||||
FlightAssist off on liftoff. Default: true.
|
|
||||||
* `EliteDangerous.hyperspaceDethrottle` (boolean): same thing as the SC assist
|
|
||||||
setting; if on, will throttle to 0 automatically after jumping. Default: true.
|
|
||||||
* `EliteDangerous.oldStationThreshold` (int): Age in days that will cause
|
|
||||||
station data to be considered outdated. Default: 365 (1 year).
|
|
||||||
* `python.ScriptPath` (string): the path you have placed the compiled python
|
|
||||||
scripts in. Default: “{VA_DIR}\Sounds\scripts” (the “\Sounds\scripts” folder
|
|
||||||
in your VoiceAttack installation directory).
|
|
||||||
|
|
||||||
#### Delays / Pauses ####
|
|
||||||
|
|
||||||
Delays needed e.g. between key presses in UI navigation can vary wildly
|
|
||||||
depending on your PC’s specs and configuration. Therefore they should be
|
|
||||||
configurable, shouldn’t they?
|
|
||||||
|
|
||||||
So far those actually are:
|
|
||||||
|
|
||||||
* `EliteDangerous.delays.quitToDesktop`: Delay between quitting to desktop and hitting the
|
|
||||||
play button in the launcher.
|
|
|
@ -1,283 +1,92 @@
|
||||||
# RatAttack #
|
# RatAttack
|
||||||
|
|
||||||
This profile facilitates [Fuel Ratting](https://www.fuelrats.com). It aims to
|
## Getting Case Data From IRC
|
||||||
eliminate as much of the required manual task and attention switching as
|
|
||||||
possible via automation and voice commands.
|
|
||||||
|
|
||||||
If you don’t know what the Fuel Rats are, come hang out and ask :)
|
You can setup your IRC client to pass incoming RATSIGNALS to VoiceAttack by calling the
|
||||||
|
`RatAttack-cli.exe` helper tool with the RATSIGNAL as first argument and an
|
||||||
## Requirements ##
|
optional boolean that triggers a TTS case announcement. You can find it under
|
||||||
|
your VoiceAttack “Apps” folder, `\alterNERDtive\RatAttack-cli.exe`.
|
||||||
Only vanilla VoiceAttack is absolutely required to use this profile. Optionally
|
|
||||||
you can install EDDI and my elite scripts for advanced features.
|
|
||||||
|
|
||||||
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin: This
|
|
||||||
will give you a better (IMO) way of using TTS. Be sure to set
|
|
||||||
`RatAttack.useEddiForVoice`. It will also enable you to have ingame chat be
|
|
||||||
transferred to IRC; see below.
|
|
||||||
* [elite-scripts](https://github.com/alterNERDtive/elite-scripts): Using the
|
|
||||||
Python scripts will give RatAttack a way to be aware of where your CMDRs are
|
|
||||||
and give you the nearest one to a rat case. That’s only really needed if you
|
|
||||||
actually _have_ multiple CMDRs, obviously. If you are using the profile
|
|
||||||
package from the release page, they will be installed automatically.
|
|
||||||
|
|
||||||
### EDDI speech responder ###
|
|
||||||
|
|
||||||
For the convenience of people that have not been using EDDI in the past,
|
|
||||||
RatAttack will deactivate the speech responder automatically to not clutter them
|
|
||||||
with unwanted TTS.
|
|
||||||
|
|
||||||
If you are already an EDDI user and want to keep the default speech responder
|
|
||||||
functionality, you will have to disable the `EDDI.quietMode` setting by running
|
|
||||||
the `customize settings disable eddi quiet mode` command.
|
|
||||||
|
|
||||||
## Settings ##
|
|
||||||
|
|
||||||
There are a lot of preferences you can set, including some you really want to
|
|
||||||
concern yourself with before you start using the profile. Some of the more
|
|
||||||
advanced features heavily rely on you giving it the correct things to work with.
|
|
||||||
|
|
||||||
See the [Configuration Variables](#Configuration-Variables) section.
|
|
||||||
|
|
||||||
## Including the Profile ##
|
|
||||||
|
|
||||||
When including the profile, be sure to
|
|
||||||
|
|
||||||
* Run the startup command. You will need to have a startup command in your
|
|
||||||
profile (= one that is run on profile loading) and call `RatAttack.startup`
|
|
||||||
from that one.
|
|
||||||
* Make sure all EDDI events that RatAttack needs are correctly handled. For all
|
|
||||||
events used in RatAttack that you already have handlers for in your profile,
|
|
||||||
you’ll have to include a call to `RatAttack.<event name>`. E.g. for “EDDI
|
|
||||||
Message sent”, call `RatAttack.EDDI Message sent` by name from your `((EDDI
|
|
||||||
Message sent))` command.
|
|
||||||
|
|
||||||
## Usage ##
|
|
||||||
|
|
||||||
### Going On/Off Duty ###
|
|
||||||
|
|
||||||
When you are on duty, RatAttack will automatically announce cases coming in
|
|
||||||
through IRC. When off duty, it won’t.
|
|
||||||
|
|
||||||
* `[enable;disable] rat duty`: puts you on/off duty.
|
|
||||||
* `open [rat;] dispatch board`: opens the web dispatch board.
|
|
||||||
|
|
||||||
### Handling a Case ###
|
|
||||||
|
|
||||||
#### Getting Case Data From IRC ####
|
|
||||||
|
|
||||||
You can setup your IRC client to pass incoming RATSIGNALS to VoiceAttack by
|
|
||||||
writing them to a file (`%appdata%\Ratattack\ratsignal.pipe`), then calling the
|
|
||||||
appropriate command (`RatAttack.announceCaseFromRatsignal` for notification,
|
|
||||||
`RatAttack.getInfoFromRatsignal` for silently putting it into the case list).
|
|
||||||
|
|
||||||
This has two purposes:
|
This has two purposes:
|
||||||
|
|
||||||
1. announcing a new incoming case
|
1. Announcing a new incoming case (if passing `true` as second argument).
|
||||||
1. storing case data and making it available to VoiceAttack, e.g. for copying
|
1. Storing case data and making it available to VoiceAttack, e.g. for copying
|
||||||
the case’s system into the clipboard
|
the case’s system into the clipboard.
|
||||||
|
|
||||||
You need to make your IRC client
|
For my AdiIRC, it looks like this (obviously change the path, please):
|
||||||
|
|
||||||
1. wait until the file disappears (for several cases coming in at once)
|
```adiirc
|
||||||
1. write the RATSIGNAL to the file
|
|
||||||
1. run the VoiceAttack command
|
|
||||||
|
|
||||||
In my case I am running AdiIRC and have the following script setup for handling
|
|
||||||
this:
|
|
||||||
|
|
||||||
```
|
|
||||||
on *:TEXT:RATSIGNAL - CMDR*(??_SIGNAL):#fuelrats:{
|
on *:TEXT:RATSIGNAL - CMDR*(??_SIGNAL):#fuelrats:{
|
||||||
/mkdir C:\users\<user>\appdata\roaming\RatAttack\
|
if ( $away ) {
|
||||||
/handleratsignal $1-
|
/run -h "X:\path\to\VoiceAttack\Apps\alterNERDtive\RatAttack-cli.exe" " $+ $replace($1-,","") $+ " false
|
||||||
}
|
}
|
||||||
alias handleratsignal {
|
else {
|
||||||
if ( $exists(C:\users\<user>\appdata\roaming\RatAttack\ratsignal.pipe) ) {
|
/run -h "X:\path\to\VoiceAttack\Apps\alterNERDtive\RatAttack-cli.exe" " $+ $replace($1-,","") $+ " true
|
||||||
/sleep 1 /handleratsignal $1-
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
/write C:\users\<user>\appdata\roaming\RatAttack\ratsignal.pipe $1-
|
|
||||||
if ( $away ) {
|
|
||||||
/run -h "X:\path\to\VoiceAttack\VoiceAttack.exe" -nofocus -command "RatAttack.getInfoFromRatSignal"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
/run -h "X:\path\to\VoiceAttack\VoiceAttack.exe" -nofocus -command "RatAttack.announceCaseFromRatSignal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
You get the gist; if not and you don’t know how to do the same thing for your
|
If I am away it will just add the new case to the list. If I am not away, it
|
||||||
IRC client or it doesn’t support copying the control characters in the ratsignal
|
will announce it using TTS.
|
||||||
that the profile uses to split the information, either switch to AdiIRC or bribe
|
|
||||||
me to include some other way to get case data into VoiceAttack.
|
|
||||||
|
|
||||||
**Note**: If you are running VoiceAttack as admin you need to run your IRC
|
The “replace” part handles the fact that announcements now put the system in
|
||||||
client as admin, too! Otherwise it can’t talk to VoiceAttack for security
|
quotes. They have to be escaped as double quotes (`""`) to create a correct
|
||||||
reasons. You really should _not_ run VoiceAttack with elevated privileges
|
command invocation.
|
||||||
though. Or anything.
|
|
||||||
|
|
||||||
#### Internal Case List ####
|
You get the gist; if not and you don’t know how to do the same thing for your
|
||||||
|
IRC client, either switch to AdiIRC or bribe me to make an example for yours.
|
||||||
|
|
||||||
If you have your IRC client setup properly, VoiceAttack will hold a list with
|
Note: If you are not on duty (see below) you will _not_ get case announcements.
|
||||||
all rat cases that have come in while you had it running. It will save the case
|
|
||||||
number, CMDR name, system, O₂ status and platform. There are several commands
|
|
||||||
you can run on this list, giving it a case number:
|
|
||||||
|
|
||||||
* `rat case number [0..19] details`: Will give you all stored info on a case.
|
## Announcing Your Nearest CMDR
|
||||||
* `[current;] rat case details`: Will give you all stored info on the currently
|
|
||||||
open case.
|
|
||||||
* `distance to current rat case`: Will give you the distance from your current
|
|
||||||
location to the currently opened rat case. Requires the use of my
|
|
||||||
`elite-scripts` Python scripts.
|
|
||||||
* `distance to rat case number [0..19]`: Will give you the distance from your
|
|
||||||
current system to a case’s system. Requires the use of my `elite-scripts`
|
|
||||||
Python scripts.
|
|
||||||
* `nearest commander to rat case number [0..19]`: Will give you the nearest of
|
|
||||||
your CMDRs with their distance to a case’s system. Requires some setup and the
|
|
||||||
use of my `elite-scripts` Python scripts.
|
|
||||||
* `nearest commander to [the;] rat case`: Will give you the nearest of your
|
|
||||||
CMDRs with their distance to the current case’s system. Requires some setup
|
|
||||||
and the use of my `elite-scripts` Python scripts.
|
|
||||||
|
|
||||||
#### Opening a Case ####
|
In case you have more than one CMDR registered as a Fuel Rat, you can have
|
||||||
|
VoiceAttack announce the nearest one to a case and the distance. You will have
|
||||||
|
to go through a couple steps to set that up:
|
||||||
|
|
||||||
* `open rat case number [0..19]`: Opens rat case with the given number. If there
|
1. Have all CMDRs on EDSM.
|
||||||
is no case data for that case (e.g. because you don’t have your IRC client set
|
1. Have all profiles on EDSM set to _public_ including your flight log (which
|
||||||
up properly), it will still open it, just not have any data on it.
|
includes the current location).
|
||||||
* `open [latest;] rat case`: Opens the latest rat case that has come in through
|
1. Set the CMDR names you want to use (“customize setting set fuel rat
|
||||||
IRC. Will probably error out in creative ways if you don’t have your IRC
|
commanders”).
|
||||||
client set up properly. Too tired right now to have proper error handling so
|
1. Enable the nearest CMDR announcements (“customize setting enable nearest
|
||||||
just open an issue if you run into problems (it’s 7am, I haven’t slept and
|
commander to fuel rat case”).
|
||||||
want to finish this doc to get the release out (yes, you are allowed to laugh
|
|
||||||
at this section)).
|
|
||||||
|
|
||||||
#### Closing a Case ####
|
You can use this for a single CMDR, too. A less convoluted setup for announcing
|
||||||
|
the distance to your location in that case is on the list™ but does not have an
|
||||||
|
ETA yet.
|
||||||
|
|
||||||
* `[close;clear] rat case`: Closes the currently open rat case.
|
Currently there is no way to specify a platform for each CMDR.
|
||||||
|
|
||||||
### Making Calls ###
|
## Ingame chat → FuelRats IRC
|
||||||
|
|
||||||
There are a bunch of calls you can make for a case, the most common are modelled
|
You can send messages from ingame chat directly to the “\#fuelrats” and
|
||||||
through VoiceAttack commands. The descriptive commands (e.g. “system confirmed”)
|
“\#ratchat” channels on FuelRats IRC. (See [[#FIXXME]])
|
||||||
will be shortened to the usual IRC short hands (e.g. “sysconf”). If you need
|
|
||||||
something more unusual you can either still manually type it into your IRC
|
|
||||||
client or use the “General IRC Integration”, see below.
|
|
||||||
|
|
||||||
* `call [1..20] jumps [and login;and takeoff;left;]`: Calls jump for the
|
That will send text to windows with “#fuelrats” and “#ratchat” in
|
||||||
currently open case. You can optionally include that you will still have to
|
|
||||||
login to the game or have to take off from your current
|
|
||||||
station/port/outpost/planet.
|
|
||||||
* `call friend [positive;negative] [in pg;in private group;in solo;in main
|
|
||||||
meu;sysconf;system confirmed]`: Friend request confirmations, with all the
|
|
||||||
things you might want to / should call with it.
|
|
||||||
* `call [beacon;fuel;instance;pos;position;prep;sys;system;wing]
|
|
||||||
[positive;negative]`: All the stuff you usually need for ratting after you
|
|
||||||
have received the friend request.
|
|
||||||
* `call wing pending`: Calls “wr pending” for when it takes 30s again to
|
|
||||||
actually show up.
|
|
||||||
* `call client in [exclusion zone;main menu;open;open sysconf;pg;private
|
|
||||||
group;solo;super cruise]`: Callouts for all the various things a client could
|
|
||||||
get themselves into.
|
|
||||||
* `call [client destroyed;client offline;sysconf;system confirmed]`: This is the
|
|
||||||
command you don’t want to use. Include sysconf in your “friend+” or “in open”
|
|
||||||
calls, and make sure you will never have to call “client destroyed”, would
|
|
||||||
you?
|
|
||||||
|
|
||||||
### General IRC Interaction ###
|
|
||||||
|
|
||||||
(requires EDDI)
|
|
||||||
|
|
||||||
Using EDDI to read the game’s journal, you can send messages to IRC from Elite’s
|
|
||||||
ingame chat.
|
|
||||||
|
|
||||||
**Be aware that the chat message will still appear in the ingame chat channel
|
|
||||||
you send it to!**
|
|
||||||
|
|
||||||
I recommend using local chat and limiting the use to instances that will
|
|
||||||
probably not have other players in it (e.g. instanced in normal space with the
|
|
||||||
client or in SC in some remote system out in the black on a long range rescue).
|
|
||||||
|
|
||||||
* #fuelrats: Use “.fr \<message\>” to have VoiceAttack send “#\<caseNumber\>
|
|
||||||
\<message\>” to the #fuelrats channel – or yell at you when you are not on
|
|
||||||
a case.
|
|
||||||
* #ratchat: Use “.rc \<message\>” to have VoiceAttack send “\<message\>” to
|
|
||||||
#ratchat.
|
|
||||||
|
|
||||||
These commands send their text to windows with “#fuelrats” and “#ratchat” in
|
|
||||||
their title, respectively. If your IRC client does not do that, you will have to
|
their title, respectively. If your IRC client does not do that, you will have to
|
||||||
change the “target” window of the `RatAttack.sendToFuelrats` and
|
change the “target” window of the `RatAttack.sendToFuelrats` and
|
||||||
`RatAttack.sendToRatchat` commands to reflect the actual window titles on your
|
`RatAttack.sendToRatchat` commands to reflect the actual window titles on your
|
||||||
system. I will look into making this more elegant to change in the future.
|
system. I will look into making this more elegant to change in the future.
|
||||||
|
|
||||||
## Logging ##
|
## Settings
|
||||||
|
|
||||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
Toggles:
|
||||||
default, logging is concise and constrained to basically error messages.
|
|
||||||
|
|
||||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
* `auto close fuel rat case`: Automatically close a rat case when sending
|
||||||
If you want to enable verbose logging _by default_, call the
|
“fuel+” via voice command or ingame chat. Default: false.
|
||||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
* `fuel rat call confirmation`: Only make calls in #fuelrats after vocal
|
||||||
|
confirmation to prevent mistakes. Default: true.
|
||||||
## Exposed Variables ##
|
* `fuel rat duty`: Set FuelRats duty to active when the profile is loaded.
|
||||||
|
|
||||||
The following Variables are _global_ and thus readable (and writeable! Please
|
|
||||||
don’t unless it’s a config variable …) from other profiles.
|
|
||||||
|
|
||||||
### Configuration Variables ###
|
|
||||||
|
|
||||||
There are a bunch of configuration variables. You should not overwrite those
|
|
||||||
manually, instead use the provided commands in the `_configuration` section!
|
|
||||||
|
|
||||||
Basically all the settings are available using the `customize settings` prefix,
|
|
||||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
|
||||||
for text variables.
|
|
||||||
|
|
||||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
|
||||||
true.
|
|
||||||
* `EDDI.useEddiForVoice` (boolean): whether to use the EDDI plugin to handle
|
|
||||||
text-to-speech over VoiceAttacks built-in speech function. Default: false.
|
|
||||||
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
|
|
||||||
is `v`. Default: `v`.
|
|
||||||
* `RatAttack.announceNearestCMDR` (boolean): whether or not to automatically
|
|
||||||
announce your nearest CMDR to a case. Requires the `elite-scripts` Python
|
|
||||||
scripts. Will probably break in creative ways if you don’t have them and turn
|
|
||||||
it on anyway. Default: false.
|
|
||||||
* `RatAttack.announcePlatform` (boolean): whether or not to announce the case’s
|
|
||||||
platform by default. Useful to set if you are active on more than one
|
|
||||||
platform. Even with this off, you will still be warned when you open a case
|
|
||||||
that is _not_ on one of your platforms. Default: false.
|
|
||||||
* `RatAttack.CMDRs` (string): list of your CMDR names, delimited by spaces. If
|
|
||||||
your names include spaces, you will have to put them in quotes. Default: “"J
|
|
||||||
Jora Jameson" NameWithNoSpace”.
|
|
||||||
* `RatAttack.confirmCalls` (boolean): whether VoiceAttack should ask you before
|
|
||||||
posting to #fuelrats to make sure there hasn’t been an error in voice
|
|
||||||
recognition and you accidentally post the wrong thing. Default: true.
|
|
||||||
* `RatAttack.autoCloseCase` (boolean): whether or not to automatically close an
|
|
||||||
open rat case on calling “fuel+”. Default: false.
|
|
||||||
* `RatAttack.onDuty` (boolean): whether or not you are currently on rat duty.
|
|
||||||
Default: true.
|
Default: true.
|
||||||
* `RatAttack.platforms` (string): the platforms you want to be informed of
|
* `nearest commander to fuel rat case`: Announce the nearest commander to
|
||||||
incoming cases for. If you are on console, you can still have VoiceAttack
|
incoming rat cases. Default: false.
|
||||||
running on the PC that you are using for IRC and handle calls and stuff using
|
* `platform for fuel rat case`: Announce the platform for incoming rat cases.
|
||||||
voice! Delimited by whatever you want. Can include “PC”, “XB”, “PS4”.
|
Default: false.
|
||||||
Default: “PC”.
|
|
||||||
* `python.scriptPath` (string): the path you put the Python scripts in. Default:
|
|
||||||
“{VA_DIR}\Sounds\scripts”.
|
|
||||||
|
|
||||||
### Other Variables ###
|
Other Settings:
|
||||||
|
|
||||||
Current case data:
|
* `fuel rat commanders`: All your CMDRs that are ready to take rat cases. Use
|
||||||
|
‘;’ as separator, e.g. “Bud Spencer;Terrence Hill”. Default: "".
|
||||||
* `RatAttack.caseNumber` (int): the number of the case you are currently on.
|
* `fuel rat platforms`: The platform(s) you want to get case announcements for
|
||||||
Will be `Not Set` if you are not on a case.
|
(PC, Xbox, Playstation). Use ‘;’ as separator, e.g. “PC;Xbox”. Default: "PC".
|
||||||
* `RatAttack.onCase` (boolean): whether or not you are currently on a case.
|
|
||||||
|
|
||||||
Case list:
|
|
||||||
|
|
||||||
* `RatAttack.caseList.<case#>.cmdr` (string)
|
|
||||||
* `RatAttack.caseList.<case#>.system` (string)
|
|
||||||
* `RatAttack.caseList.<case#>.platform` (string)
|
|
||||||
* `RatAttack.caseList.<case#>.codeRed` (boolean)
|
|
||||||
|
|
||||||
… with `<case#>` being a number between 0 and 19.
|
|
|
@ -1,241 +1,50 @@
|
||||||
# SpanshAttack #
|
# SpanshAttack
|
||||||
|
|
||||||
This profile uses the
|
## Supplying Your Ship’s Range
|
||||||
[ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter) plugin to plot
|
|
||||||
neutron jumps using [spansh](https://spansh.co.uk/plotter). It fully does
|
|
||||||
everything you need from within the game and VoiceAttack, you won’t have to
|
|
||||||
visit the site at any point.
|
|
||||||
|
|
||||||
## Requirements ##
|
The ED-NeutronRouter plugin is technically supposed to read the current jump
|
||||||
|
range from EDDI; sadly a) it’s
|
||||||
|
[bugged](https://github.com/sc-pulgan/ED-NeutronRouter/issues/3) right now, and
|
||||||
|
b) EDDI is storing the _maximum_ distance for your ship instead of the current /
|
||||||
|
full on fuel one.
|
||||||
|
|
||||||
In addition to VoiceAttack, you will need the following plugins to use this
|
The “default to laden range” option works reasonably well, but it has a few
|
||||||
profile:
|
quirks. It always assumes full cargo, and it will take your _current_ fuel
|
||||||
|
levels for range calculations, disregrading the range loss if you fill your tank.
|
||||||
|
|
||||||
* [bindED](https://forum.voiceattack.com/smf/index.php?topic=564.0)
|
For any ships that you regularly use for neutron jumping, e.g. long range Fuel
|
||||||
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin
|
Rat ships, I recommend telling SpanshAttack about the range they are supposed to
|
||||||
* [ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter): required
|
have with full fuel and your preferred amount of cargo/limpets.
|
||||||
for SpanshAttack. **Make sure to [grab the pre-release
|
|
||||||
1.02](https://github.com/sc-pulgan/ED-NeutronRouter/releases/tag/1.02)** since
|
|
||||||
1.01 has a bug with a hardcoded 50 ly jump range.
|
|
||||||
|
|
||||||
### EDDI speech responder ###
|
In oder to do that, copy the `SpanshAttack.getShipRange` command from
|
||||||
|
SpanshAttack or the example profile to your custom profile and add your ships.
|
||||||
|
Any ship listed in there will automatically have its jump range used instead of
|
||||||
|
EDDI’s reported laden range or VoiceAttack prompting you to manually supply it.
|
||||||
|
|
||||||
For the convenience of people that have not been using EDDI in the past,
|
![[SpanshAttack-getshiprange.png]]
|
||||||
SpanshAttack will deactivate the speech responder automatically to not clutter
|
|
||||||
them with unwanted TTS.
|
|
||||||
|
|
||||||
If you are already an EDDI user and want to keep the default speech responder
|
You can override a saved range for your ship by using the
|
||||||
functionality, you will have to disable the `EDDI.quietMode` setting by running
|
`plot neutron [course;route;trip] with custom range` command.
|
||||||
the `customize settings disable eddi quiet mode` command.
|
|
||||||
|
|
||||||
## Settings ##
|
## Settings
|
||||||
|
|
||||||
Because Elite’s keyboard handling is … weird you’ll have to set the key to use
|
Toggles:
|
||||||
for pasting text into Elite:Dangerous. If you are not using a “standard”
|
|
||||||
QWERT[YZ] layout, you will have to change it back to the key that is physically
|
|
||||||
in the place where `v` would be on QWERTY.
|
|
||||||
|
|
||||||
For other settings, see the [Configuration Variables](#Configuration-Variables)
|
* `auto jump after scooping`: Automatically accelerate and jump out when fuel
|
||||||
section.
|
scooping is complete. Default: true.
|
||||||
|
* `auto plot`: Automatically plot to the next waypoint after supercharging.
|
||||||
|
Default: true.
|
||||||
|
* `clear neutron route on shutdown`: Clear an active neutron route when the game
|
||||||
|
is shut down. Default: true.
|
||||||
|
* `copy neutron waypoints to clipboard`: Copy each neutron waypoint into the
|
||||||
|
Windows clipboard. Default: false.
|
||||||
|
* `default to laden range`: Default to the current ship’s laden range as
|
||||||
|
reported by EDDI instead of prompting for input. Default: false.
|
||||||
|
* `time neutron route`: Keep track of how long a neutron route takes you to
|
||||||
|
complete. Default: false.
|
||||||
|
* `waypoint announcements`: Announce each waypoint by name. Default: true.
|
||||||
|
|
||||||
The last “setting” in the not-so-strict sense of the word is the
|
Other Settings:
|
||||||
`SpanshAttack.getShipRange` command. Any ship listed in there will automatically
|
|
||||||
have its jump range used instead of VA prompting you for it. Since, again, VA
|
|
||||||
will execute the first matching command found, you can create this command in
|
|
||||||
your own profile when you are using SpanshAttack by including it. You can
|
|
||||||
override a saved range for your ship by using the `plot neutron
|
|
||||||
[course;route;trip] with custom range` command.
|
|
||||||
|
|
||||||
The ED-NeutronRouter plugin is technically supposed to read the current jump
|
* `announce jumps left`: Estimated jumps left to announce when reached. NEEDS to
|
||||||
range from EDDI; sadly a) it’s
|
have leading and trailing “;”. Default: ";1;3;5;10;15;20;30;50;75;100;"
|
||||||
[bugged](https://github.com/sc-pulgan/ED-NeutronRouter/issues/3) right now, and
|
|
||||||
b) EDDI is storing the _maximum_ distance for your ship instead of the current
|
|
||||||
/ full on fuel one.
|
|
||||||
|
|
||||||
## Including the Profile ##
|
|
||||||
|
|
||||||
When including the profile, be sure to
|
|
||||||
|
|
||||||
* Run the startup command. You will need to have a startup command in your
|
|
||||||
profile (= one that is run on profile loading) and call `SpanshAttack.startup`
|
|
||||||
from that one.
|
|
||||||
* Make sure all EDDI events that SpanshAttack needs are correctly handled. For
|
|
||||||
all events used in SpanshAttack that you already have handlers for in your
|
|
||||||
profile, you’ll have to include a call to `SpanshAttack.<event name>`. E.g.
|
|
||||||
for “EDDI Jumped”, call `SpanshAttack.EDDI Jumped` by name from your `((EDDI
|
|
||||||
Jumped))` command.
|
|
||||||
* (Optional) Have a `SpanshAttack.getShipRange` command in your profile to
|
|
||||||
overwrite the default one with your ship’s ranges. See the default command for
|
|
||||||
pointers.
|
|
||||||
|
|
||||||
## Usage ##
|
|
||||||
|
|
||||||
### Plotting a Route ###
|
|
||||||
|
|
||||||
1. _Target_ the system you want to be routed to (target, do not plot to it).
|
|
||||||
1. Either exit the galaxy map or make sure you are on its first tab (or
|
|
||||||
auto-plotting will break).
|
|
||||||
1. Trigger the `SpanshAttack.plotRoute` command either by voice (`plot neutron
|
|
||||||
[course;route;trip] [with custom range;]`) or calling it from another
|
|
||||||
command.
|
|
||||||
1. Enter your ship’s jump range if prompted.
|
|
||||||
1. Wait for the route to be calculated. The command will automatically open the
|
|
||||||
galaxy map and jump to the first waypoint on your route. If you run into
|
|
||||||
weird behaviour, it’s probably because your target system is not in EDDB.
|
|
||||||
1. Either target the first waypoint or plot to it.
|
|
||||||
1. Start jumping!
|
|
||||||
|
|
||||||
#### Plotting to a System Unknown to the Neutron Router ####
|
|
||||||
|
|
||||||
The router can only plot a route to a system that is in its data base (obviously
|
|
||||||
can also only give you way points that are). If your target system is not, there
|
|
||||||
are several levels of fallback handling to find a system that is.
|
|
||||||
|
|
||||||
1. Check `Next system` coordinates provided by EDDI. If the system is in EDSM,
|
|
||||||
but has for some reason not been sent over EDDN to other sites including
|
|
||||||
Spansh we can get coordinates here.
|
|
||||||
1. If the system is not in EDSM check EDTS. It can calculate approximate
|
|
||||||
coordinates for a given procedurally generated system name.
|
|
||||||
1. If that fails prompt the user for input.
|
|
||||||
1. Query Spansh’ API for the closest system to these coordinates.
|
|
||||||
1. Plot a route to the closest system.
|
|
||||||
|
|
||||||
Generally you should almost never be asked to input coordinates manually. If
|
|
||||||
EDTS provides coordinates with an accuracy that is worse than ±100 ly per axis,
|
|
||||||
you will be prompted to make sure you are going roughly to the right
|
|
||||||
coordinates. You will find the system that is used for plotting, its
|
|
||||||
coordinates and the accuracy in VoiceAttack’s log window.
|
|
||||||
|
|
||||||
### Neutron Jumping ###
|
|
||||||
|
|
||||||
With standard settings, just supercharge off a neutron cone. You should
|
|
||||||
automatically be taken to the galaxy map with the next waypoint selected.
|
|
||||||
|
|
||||||
In case you have disabled auto-plotting to the next waypoint, manually invoke
|
|
||||||
the `SpanshAttack.targetNextNeutronWaypoint` command by voice (`[target;] next
|
|
||||||
neutron [waypoint; way point]`) or calling it from another command.
|
|
||||||
|
|
||||||
Additionally, you can use the `SpanshAttack.copyNextNeutronWaypoint`
|
|
||||||
/ `[get;copy] next neutron [waypoint;way point]` command to copy the next
|
|
||||||
neutron waypoint to the clipboard.
|
|
||||||
|
|
||||||
#### Manual Re-Plot ####
|
|
||||||
|
|
||||||
Trigger the `SpanshAttack.replotRoute` command either by voice (`replot neutron
|
|
||||||
[course;route;trip]`) or calling it from another command. This will start
|
|
||||||
a re-plot of the current route with the same target system and jump range.
|
|
||||||
|
|
||||||
### Refueling ###
|
|
||||||
|
|
||||||
Whenever you refuel off a scoopable star, the profile will automatically
|
|
||||||
throttle back up to 100% speed. Unless you have disabled it in your
|
|
||||||
configuration, you will also automatically target the next system on your route
|
|
||||||
and jump to it once you leave fuel scoop range.
|
|
||||||
|
|
||||||
### Clearing a Route ###
|
|
||||||
|
|
||||||
When you reach your target system, the neutron route will automatically be
|
|
||||||
cleared. If you want to prematurely end your trip, call the
|
|
||||||
`SpanshAttack.clearRoute` / `clear neutron [course;route;trip]` command.
|
|
||||||
|
|
||||||
## Other Commands ##
|
|
||||||
|
|
||||||
### Announcing Jumps Left ###
|
|
||||||
|
|
||||||
You can have VoiceAttack tell you the amount of jumps left on the current route
|
|
||||||
by invoking `SpanshAttack.announceJumpsLeft` or saying
|
|
||||||
`how many [neutron;] jumps [are;] left?`.
|
|
||||||
|
|
||||||
**Note**: Because it’s pretty much impossible to calculate a 100% accurate value
|
|
||||||
for the total jumps left, it will just tell you the jump count _from the current
|
|
||||||
neutron waypoint_.
|
|
||||||
|
|
||||||
### Announce elapsed time on the trip ###
|
|
||||||
|
|
||||||
SpanshAttack keeps track of your start time, even if you have the option to time
|
|
||||||
your trip turned off. This way you can get the time you’ve been jumping with the
|
|
||||||
`SpanshAttack.announceTripTime` or
|
|
||||||
`how long have i been [jumping;on this trip;on this neutron trip]?` commands.
|
|
||||||
|
|
||||||
### Reload bindings ###
|
|
||||||
|
|
||||||
If you change any relevant bindings (e.g. the galaxy map key), you should run
|
|
||||||
the `reload bindings` command to make sure that SpanshAttack presses the right
|
|
||||||
thing for you.
|
|
||||||
|
|
||||||
Eh, just do it every time you edit your controls without re-starting
|
|
||||||
VoiceAttack, just to be sure.
|
|
||||||
|
|
||||||
### Helper Functions ###
|
|
||||||
|
|
||||||
The profile contains a lot of helper functions that get called by the
|
|
||||||
aforementioned commands. Have a look around, maybe learn something about
|
|
||||||
VoiceAttack :)
|
|
||||||
|
|
||||||
## Logging ##
|
|
||||||
|
|
||||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
|
||||||
default, logging is concise and constrained to basically error messages.
|
|
||||||
|
|
||||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
|
||||||
If you want to enable verbose logging _by default_, call the
|
|
||||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
|
||||||
|
|
||||||
## Exposed Variables ##
|
|
||||||
|
|
||||||
The following Variables are _global_ and thus readable (and writeable! Please
|
|
||||||
don’t unless it’s a config variable …) from other profiles:
|
|
||||||
|
|
||||||
### Configuration Variables ###
|
|
||||||
|
|
||||||
There are a bunch of configuration variables. You should not overwrite those
|
|
||||||
manually, instead use the provided commands in the `_configuration` section!
|
|
||||||
|
|
||||||
Basically all the settings are available using the `customize settings` prefix,
|
|
||||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
|
||||||
for text variables.
|
|
||||||
|
|
||||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
|
||||||
true.
|
|
||||||
* `EDDI.useEddiForVoice` (boolean): whether to use EDDI over VA’s builtin `say`
|
|
||||||
command. Default: false.
|
|
||||||
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
|
|
||||||
is `v`. Default: `v`.
|
|
||||||
* `SpanshAttack.timeTrip` (boolean): whether to automatically tell you at the
|
|
||||||
end of a trip how long it took you to get there. Default: false.
|
|
||||||
* `SpanshAttack.announceWaypoints` (boolean): whether to announce each waypoint
|
|
||||||
of the neutron route. Default: true.
|
|
||||||
* `SpanshAttack.announceJumpsLeft` (string): `;`-separated list of remaining
|
|
||||||
jumps to announce when said amounts are reached. Right now only works if they
|
|
||||||
are _exactly_ reached when supercharging off a neutron. Note the extra `;` at
|
|
||||||
the beginning and end of the string. Default: `;1;3;5;10;15;20;30;50;75;100;`
|
|
||||||
* `SpanshAttack.autoJumpAfterScooping` (boolean): whether to automatically jump
|
|
||||||
after fuel scooping (and moving out of scoop range). Default: true.
|
|
||||||
* `SpanshAttack.autoPlot` (boolean): whether to automatically plot to the next
|
|
||||||
waypoint on supercharging. Default: true.
|
|
||||||
* `SpanshAttack.clearOnShutdown` (boolean): whether or not to automatically
|
|
||||||
clear an active neutron route on Elite client shutdown. Default: true.
|
|
||||||
* `SpanshAttack.defaultToLadenRange` (boolean): whether or not to default to
|
|
||||||
your ship’s laden range (as reported by EDDI) instead of asking for user
|
|
||||||
input. Sadly it’s with _current_ fuel, not full. Setting a ship’s jump range
|
|
||||||
in the `SpanshAttack.getShipRange` command will still overrule this. Default:
|
|
||||||
false.
|
|
||||||
* `SpanshAttack.copyWaypointToClipboard` (boolean): whether to copy the next
|
|
||||||
waypoint into the Windows clipboard for use in other programs. Default: false.
|
|
||||||
* `python.scriptPath` (string): the path you put the Python scripts in.
|
|
||||||
Default: “{VA_DIR}\Sounds\scripts”.
|
|
||||||
|
|
||||||
### Other Variables ###
|
|
||||||
|
|
||||||
These variables can be used to get information about the current neutron route.
|
|
||||||
Please do not set them manually and / or from outside the SpanshAttack profile.
|
|
||||||
|
|
||||||
* `SpanshAttack.plotSystem` (string): the system actually plotted towards using
|
|
||||||
the neutron router (onley used/set if the target system is not in the data
|
|
||||||
base)
|
|
||||||
* `SpanshAttack.targetSystem` (string): the target system for the current
|
|
||||||
neutron route
|
|
||||||
* `SpanshAttack.nextNeutronWaypoint` (string): the next waypoint on the current
|
|
||||||
neutron route
|
|
||||||
* `SpanshAttack.neutronJumpMode` (boolean): neutron jump mode active/inactive
|
|
||||||
* `SpanshAttack.jumpRange` (decimal): the current ship’s jump range
|
|
|
@ -1,120 +1,6 @@
|
||||||
# StreamAttack #
|
# StreamAttack
|
||||||
|
|
||||||
This profile uses the [EDDI](https://github.com/EDCD/EDDI) plugin to write
|
## Settings
|
||||||
a bunch of information about your commander, your current location and your ship
|
|
||||||
to files that can be accessed e.g. by your streaming software to be displayed on
|
|
||||||
stream.
|
|
||||||
|
|
||||||
Default folder is `%appdata%\StreamAttack\`.
|
* `StreamAttack output directory`: The directory the status files are written
|
||||||
|
to. Default: "%appdata%\StreamAttack\"
|
||||||
## Requirements ##
|
|
||||||
|
|
||||||
In addition to VoiceAttack, you will need the following plugins to use this
|
|
||||||
profile:
|
|
||||||
|
|
||||||
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin
|
|
||||||
|
|
||||||
### EDDI speech responder ###
|
|
||||||
|
|
||||||
For the convenience of people that have not been using EDDI in the past,
|
|
||||||
StreamAttack will deactivate the speech responder automatically to not clutter
|
|
||||||
them with unwanted TTS.
|
|
||||||
|
|
||||||
If you are already an EDDI user and want to keep the default speech responder
|
|
||||||
functionality, you will have to disable the `EDDI.quietMode` setting by running
|
|
||||||
the `customize settings disable eddi quiet mode` command.
|
|
||||||
|
|
||||||
## Settings ##
|
|
||||||
|
|
||||||
See the [Configuration Variables](#Configuration-Variables) section.
|
|
||||||
|
|
||||||
## Including the Profile ##
|
|
||||||
|
|
||||||
When including the profile, be sure to
|
|
||||||
|
|
||||||
* Run the startup command. You will need to have a startup command in your
|
|
||||||
profile (= one that is run on profile loading) and call `StreamAttack.startup`
|
|
||||||
from that one.
|
|
||||||
* Make sure all EDDI events that StreamAttack needs are correctly handled. For
|
|
||||||
all events used in StreamAttack that you already have handlers for in your
|
|
||||||
profile, you’ll have to include a call to `StreamAttack.<event name>`. E.g.
|
|
||||||
for “EDDI Jumped”, call `StreamAttack.EDDI Jumped` by name from your `((EDDI
|
|
||||||
Jumped))` command.
|
|
||||||
|
|
||||||
## Commands ##
|
|
||||||
|
|
||||||
* `clear jump target`: clears the current jump target.
|
|
||||||
* `set jump target`: sets the jump target to the currently targeted system.
|
|
||||||
Distance will be written to the configured file.
|
|
||||||
|
|
||||||
* `[copy;open] ship build`: copies the current ship build (coriolis) or opens it
|
|
||||||
in your default browser.
|
|
||||||
* `open StreamAttack folder`: opens the configured folder in Explorer.
|
|
||||||
|
|
||||||
## Files the Profile Provides ##
|
|
||||||
|
|
||||||
### Elite ###
|
|
||||||
|
|
||||||
#### Commander ####
|
|
||||||
|
|
||||||
* `Elite\cmdr\name`: the current commander’s name.
|
|
||||||
|
|
||||||
#### Jump Target ####
|
|
||||||
|
|
||||||
* `Elite\jumpTarget\distance`: distance to current jump target in light years.
|
|
||||||
* `Elite\jumpTarget\full`: pretty-printed `<distance> ly to <name>`.
|
|
||||||
* `Elite\jumpTarget\name`: the current jump target’s system name.
|
|
||||||
|
|
||||||
#### Location ####
|
|
||||||
|
|
||||||
* `Elite\location\full`: depending on your status, either the station you are
|
|
||||||
currently docked at (+ system), the body you are currently near, or the system
|
|
||||||
you are currently in.
|
|
||||||
* `Elite\location\system`: the system you are currently in.
|
|
||||||
|
|
||||||
#### Ship ####
|
|
||||||
|
|
||||||
* `Elite\ship\build`: your current ship’s loadout (link to coriolis).
|
|
||||||
* `Elite\ship\full`: `“<name>” | <model> | <build>`.
|
|
||||||
* `Elite\ship\model`: your current ship’s model.
|
|
||||||
* `Elite\ship\name`: your current ship’s name.
|
|
||||||
|
|
||||||
## Logging ##
|
|
||||||
|
|
||||||
The profile supports logging a bunch of stuff to the VoiceAttack event log. By
|
|
||||||
default, logging is concise and constrained to basically error messages.
|
|
||||||
|
|
||||||
If you need more logging (usually for debugging purposes), say `enable logging`.
|
|
||||||
If you want to enable verbose logging _by default_, call the
|
|
||||||
`Logging.enableLogging` command from your custom profile’s `startup` command.
|
|
||||||
|
|
||||||
## Exposed Variables ##
|
|
||||||
|
|
||||||
The following Variables are _global_ and thus readable (and writeable! Please
|
|
||||||
don’t unless it’s a config variable …) from other profiles:
|
|
||||||
|
|
||||||
### Configuration Variables ###
|
|
||||||
|
|
||||||
There are a bunch of configuration variables. You should not overwrite those
|
|
||||||
manually, instead use the provided commands in the `_configuration` section!
|
|
||||||
|
|
||||||
Basically all the settings are available using the `customize settings` prefix,
|
|
||||||
then saying `[enable;disable] <setting>` for on/off switches and `set <setting>`
|
|
||||||
for text variables.
|
|
||||||
|
|
||||||
* `EDDI.quietMode` (boolean): whether or not to set EDDI to quite mode. Default:
|
|
||||||
true.
|
|
||||||
* `EDDI.useEddiForVoice` (boolean): whether to use EDDI over VA’s builtin `say`
|
|
||||||
command. Default: false.
|
|
||||||
* `StreamAttack.outputDir` (string): the directory StreamAttack will save its
|
|
||||||
information to. Default: `%appdata%\StreamAttack\`.
|
|
||||||
* `python.ScriptPath` (string): the path you have placed the compiled Python
|
|
||||||
scripts in. Default: “{VA_DIR}\Sounds\scripts” (the “\Sounds\scripts” folder
|
|
||||||
in your VoiceAttack installation directory).
|
|
||||||
|
|
||||||
### Other Variables ###
|
|
||||||
|
|
||||||
These variables can be used to get information about the current neutron route.
|
|
||||||
Please do not set them manually and / or from outside the StreamAttack profile.
|
|
||||||
|
|
||||||
* `StreamAttack.Elite.jumpTarget` (string): the current jump target.
|
|
|
@ -33,14 +33,28 @@ selected, but be preserved if you switch around.
|
||||||
|
|
||||||
Toggles:
|
Toggles:
|
||||||
|
|
||||||
|
* `auto update check`: Automatically check Github for profiles updates.
|
||||||
* `eddi quiet mode`: Make EDDI shut up. Disables all built-in speech responders.
|
* `eddi quiet mode`: Make EDDI shut up. Disables all built-in speech responders.
|
||||||
|
|
||||||
Other settings:
|
Other settings:
|
||||||
|
|
||||||
* `elite paste key`: The key used to paste in conjunction with CTRL. The
|
* `elite paste key`: The key used to paste in conjunction with CTRL. The
|
||||||
physical key in your layout that would be 'V' on QWERTY.
|
physical key in your layout that would be 'V' on QWERTY. Default: 'v'.
|
||||||
* `log level`: The level of detail for logging to the VoiceAttack log. Valid
|
* `log level`: The level of detail for logging to the VoiceAttack log. Valid
|
||||||
levels are "ERROR", "WARN", "NOTICE", "INFO" and "DEBUG". Default: "NOTICE".
|
levels are "ERROR", "WARN", "NOTICE", "INFO" and "DEBUG". Default: "NOTICE".
|
||||||
|
Default: "NOTICE".
|
||||||
|
* `quit to desktop delay`: The delay before restarting the game after hitting
|
||||||
|
“Exit to Desktop”. Default: 10.0 seconds. (Used by the `restart from desktop`
|
||||||
|
command)
|
||||||
|
|
||||||
|
## Note on Non-Standard Keyboard Layouts
|
||||||
|
|
||||||
|
Because Elite’s keyboard handling is … weird you’ll have to set the key to use
|
||||||
|
for pasting text into Elite:Dangerous. If you are not using a “standard”
|
||||||
|
QWERT[YZ] layout, you will have to change it back to the key that is physically
|
||||||
|
in the place where `v` would be on QWERTY.
|
||||||
|
|
||||||
|
To set the key, say “customize setting set elite paste key”.
|
||||||
|
|
||||||
## Adding Commands
|
## Adding Commands
|
||||||
|
|
||||||
|
|
|
@ -1 +1,40 @@
|
||||||
# General Commands
|
# General Commands
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The base profile provides voice commands for changing the profiles settings.
|
||||||
|
See [the configuration section](/configuration/general#settings).
|
||||||
|
|
||||||
|
## Chat
|
||||||
|
|
||||||
|
* `paste text`: Pastes the contents of your current clipboard. Note that this
|
||||||
|
command is supposed to be used for pasting _into Elite_ and hence uses the
|
||||||
|
configured paste key. If you’re using a non-standard layout that means that
|
||||||
|
you can _not_ use this command to paste text into other applications.
|
||||||
|
|
||||||
|
## Updating
|
||||||
|
|
||||||
|
* `check for profiles update`: Checks Github for a new version, and alerts you
|
||||||
|
if there is one.
|
||||||
|
* `download profiles update`: Opens the latest release on Github and the
|
||||||
|
VoiceAttack import folder where you can drop it.
|
||||||
|
* `open profiles [docs;documentation;help] [file;site;]`: Opens this
|
||||||
|
documentation, either on the web or the PDF file supplied with the installed
|
||||||
|
release.
|
||||||
|
* `open profiles change log`: Opens the CHANGELOG on Github.
|
||||||
|
* `open voiceattack [apps;import;sounds] [folder;directory]`: Opens the
|
||||||
|
respective VoiceAttack-related folder.
|
||||||
|
|
||||||
|
## Miscellaneous
|
||||||
|
|
||||||
|
* `generate missing key binds report`: Generates a report of missing key binds
|
||||||
|
and places it on your Desktop. Note that this currently uses bindED’s built-in
|
||||||
|
report which will output _any_ bind that does not have a keyboard key set,
|
||||||
|
including axis binds and binds that are not actually used by the profiles.
|
||||||
|
* `open EDDI options;configure EDDI`: Displays EDDI’s configuration window.
|
||||||
|
* `open elite bindings folder`: Opens Elite’s bindings folder
|
||||||
|
(`%localappdata%\Frontier Developments\Elite Dangerous\Options\Bindings`)
|
||||||
|
* `reload elite key binds`: Forces a reload of your Elite binds. Should not be
|
||||||
|
necessary.
|
||||||
|
* `shut up EDDI`: Immediately interrupts any current and pending speech on
|
||||||
|
EDDI’s end.
|
BIN
docs/images/SpanshAttack-getshiprange.png
Normal file
BIN
docs/images/SpanshAttack-getshiprange.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
|
@ -10,6 +10,10 @@ to enhance my Elite experience. They give me important info, facilitate
|
||||||
day-to-day gaming and do some special things for [Fuel
|
day-to-day gaming and do some special things for [Fuel
|
||||||
Rats](https://fuelrats.com) and [Hull Seals](https://hullseals.space) work.
|
Rats](https://fuelrats.com) and [Hull Seals](https://hullseals.space) work.
|
||||||
|
|
||||||
|
You can find the full
|
||||||
|
[Changelog](https://github.com/alterNERDtive/VoiceAttack-profiles/blob/release/CHANGELOG.md)
|
||||||
|
on Github.
|
||||||
|
|
||||||
## Available Profiles
|
## Available Profiles
|
||||||
|
|
||||||
* [EliteAttack](EliteAttack): The main Elite VA profile. Anything related to
|
* [EliteAttack](EliteAttack): The main Elite VA profile. Anything related to
|
||||||
|
|
|
@ -8,7 +8,7 @@ To upgrade to the latest version, follow these steps:
|
||||||
1. Restart VoiceAttack.
|
1. Restart VoiceAttack.
|
||||||
|
|
||||||
In general, migration from old versions will be handled automatically. If there
|
In general, migration from old versions will be handled automatically. If there
|
||||||
is something you have to do manually, you will find the information below.
|
is something you have to do manually you will find the necessary steps below.
|
||||||
|
|
||||||
## 3.x.x to 4.0
|
## 3.x.x to 4.0
|
||||||
|
|
||||||
|
@ -20,11 +20,33 @@ If you have not … well, you will unfortunately have to take note of your
|
||||||
settings, and recreate them after creating a custom profile and including
|
settings, and recreate them after creating a custom profile and including
|
||||||
everything.
|
everything.
|
||||||
|
|
||||||
|
Please do not fiddle with the configuration variables from your startup command
|
||||||
|
(or any other, really). It _should_ not break anything, but it might. And it is
|
||||||
|
entirely unnecessary since configuration will be saved to and loaded from the
|
||||||
|
profile anyway.
|
||||||
|
|
||||||
### bindED
|
### bindED
|
||||||
|
|
||||||
If you have done anything non-standard with bindED before, it might break. The
|
If you have done anything non-standard with bindED before, it might break. The
|
||||||
profiles now include my fork of bindED which has a lot more features, but
|
profiles now include my fork of bindED which has a lot more features, but
|
||||||
doesn’t support a bunch of plugin invocations that have become obsolete.
|
does no longer support a bunch of plugin invocations that have become obsolete.
|
||||||
|
|
||||||
|
Please [file an issue with
|
||||||
|
bindED](https://github.com/alterNERDtive/bindED/issues/new/choose) on Github if
|
||||||
|
your use case does not work anymore.
|
||||||
|
|
||||||
|
### EliteDangerous
|
||||||
|
|
||||||
|
The “EliteDangerous” profile is no longer the main profile. Instead you will
|
||||||
|
_have_ to create a custom profile, and the new “base” profile that the others
|
||||||
|
require to be included in your custom profile is “alterNERDtive-base”. That way
|
||||||
|
you can use e.g. RatAttack without having to also use the general Elite profile.
|
||||||
|
|
||||||
|
It has also been renamed to “EliteAttack” to be consistent with the others. If
|
||||||
|
you are upgrading from an older version the name will not change for you in the
|
||||||
|
profiles list. I recommend renaming your “EliteDangerous” profile to
|
||||||
|
“EliteAttack” to prevent confusion in the future, but it is not strictly
|
||||||
|
necessary to do so.
|
||||||
|
|
||||||
### RatAttack
|
### RatAttack
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
site_name: "alterNERDtive VA profiles"
|
site_name: "alterNERDtive VA profiles"
|
||||||
site_url: https://alterNERDtive.github.io/VoiceAttack-profiles
|
site_url: https://alterNERDtive.github.io/VoiceAttack-profiles
|
||||||
repo_url: https://github.com/alterNERDtive/VoiceAttack-profiles
|
repo_url: https://github.com/alterNERDtive/VoiceAttack-profiles
|
||||||
edit_uri: "edit/release/docs/"
|
edit_uri: "edit/devel/docs/"
|
||||||
site_description: "alterNERDtive VoiceAttack profiles for Elite: Dangerous"
|
site_description: "alterNERDtive VoiceAttack profiles for Elite: Dangerous"
|
||||||
site_author: "alterNERDtive"
|
site_author: "alterNERDtive"
|
||||||
remote_name: "ssh-origin"
|
remote_name: "ssh-origin"
|
||||||
|
|
|
@ -20,10 +20,13 @@ namespace alterNERDtive.util
|
||||||
{
|
{
|
||||||
"alterNERDtive-base",
|
"alterNERDtive-base",
|
||||||
new OptDict<string, Option>{
|
new OptDict<string, Option>{
|
||||||
|
{ new Option<decimal>("delays.keyPressDuration", (decimal)0.01, voiceTrigger: "key press duration", description: "The time keys will be held down for.") },
|
||||||
|
{ new Option<decimal>("delays.quitToDesktop", (decimal)10.0, voiceTrigger: "quit to desktop delay",
|
||||||
|
description: "The delay before restarting the game after hitting “Exit to Desktop”.\nDefault: 10.0 seconds. (Used by the `restart from desktop` command)") },
|
||||||
{ new Option<bool>("eddi.quietMode", true, voiceTrigger: "eddi quiet mode", description: "Make EDDI shut up. Disables all built-in speech responders.") },
|
{ new Option<bool>("eddi.quietMode", true, voiceTrigger: "eddi quiet mode", description: "Make EDDI shut up. Disables all built-in speech responders.") },
|
||||||
{ new Option<decimal>("keyPressDuration", (decimal)0.01, voiceTrigger: "key press duration", description: "The time keys will be held down for.") },
|
|
||||||
{ new Option<string>("elite.pasteKey", "v", voiceTrigger: "elite paste key",
|
{ new Option<string>("elite.pasteKey", "v", voiceTrigger: "elite paste key",
|
||||||
description: "The key used to paste in conjunction with CTRL. The physical key in your layout that would be 'V' on QWERTY.") },
|
description: "The key used to paste in conjunction with CTRL. The physical key in your layout that would be 'V' on QWERTY.") },
|
||||||
|
{ new Option<bool>("enableAutoUpdateCheck", true, voiceTrigger: "auto update check", description: "Automatically check Github for profiles updates.") },
|
||||||
{ new Option<string>("log.logLevel", "NOTICE", voiceTrigger: "log level", validValues: new List<string>{ "ERROR", "WARN", "NOTICE", "INFO", "DEBUG" },
|
{ new Option<string>("log.logLevel", "NOTICE", voiceTrigger: "log level", validValues: new List<string>{ "ERROR", "WARN", "NOTICE", "INFO", "DEBUG" },
|
||||||
description: @"The level of detail for logging to the VoiceAttack log.\nValid levels are ""ERROR"", ""WARN"", ""NOTICE"", ""INFO"" and ""DEBUG"".\nDefault: ""NOTICE"".") },
|
description: @"The level of detail for logging to the VoiceAttack log.\nValid levels are ""ERROR"", ""WARN"", ""NOTICE"", ""INFO"" and ""DEBUG"".\nDefault: ""NOTICE"".") },
|
||||||
}
|
}
|
||||||
|
@ -36,18 +39,17 @@ namespace alterNERDtive.util
|
||||||
{ new Option<bool>("announceMappingCandidates", true, voiceTrigger: "mapping candidates",
|
{ new Option<bool>("announceMappingCandidates", true, voiceTrigger: "mapping candidates",
|
||||||
description: "Announce bodies worth mapping when you’ve finished scanning a system.\n(Terraformables, Water Worlds, Earth-Like Worlds and Ammonia Worlds that have not been mapped yet.)") },
|
description: "Announce bodies worth mapping when you’ve finished scanning a system.\n(Terraformables, Water Worlds, Earth-Like Worlds and Ammonia Worlds that have not been mapped yet.)") },
|
||||||
{ new Option<bool>("announceOutdatedStationData", true, voiceTrigger: "outdated stations", description: "Announce stations with outdated data in the online databases.") },
|
{ new Option<bool>("announceOutdatedStationData", true, voiceTrigger: "outdated stations", description: "Announce stations with outdated data in the online databases.") },
|
||||||
{ new Option<bool>("announceR2RMappingCandidates", true, voiceTrigger: "road to riches",
|
{ new Option<bool>("announceR2RMappingCandidates", false, voiceTrigger: "road to riches",
|
||||||
description: "Announce bodies worth scanning if you are looking for some starting cash on the Road to Riches.") },
|
description: "Announce bodies worth scanning if you are looking for some starting cash on the Road to Riches.") },
|
||||||
{ new Option<bool>("autoHonkAllSystems", false, voiceTrigger: "auto honk all systems", description: "Automatically honk upon entering a system, each jump without constraints.") },
|
{ new Option<bool>("autoHonkAllSystems", false, voiceTrigger: "auto honk all systems", description: "Automatically honk upon entering a system, each jump without constraints.") },
|
||||||
{ new Option<bool>("autoHonkNewSystems", true, voiceTrigger: "auto honk new systems", description: "Automatically honk upon entering as system if it is your first visit.") },
|
{ new Option<bool>("autoHonkNewSystems", true, voiceTrigger: "auto honk new systems", description: "Automatically honk upon entering as system if it is your first visit.") },
|
||||||
{ new Option<bool>("autoRestock", true, voiceTrigger: "auto restock", description:
|
{ new Option<bool>("autoRestock", true, voiceTrigger: "auto restock", description:
|
||||||
"Automatically restock after docking at a station.\nYou will alywas refuel, repair and enter the Station Services menu.") },
|
"Automatically restock after docking at a station.\nYou will always refuel, repair and enter the Station Services menu.") },
|
||||||
{ new Option<decimal>("delays.quitToDesktop", (decimal)10.0, voiceTrigger: "quit to desktop delay",
|
|
||||||
description: "The delay before restarting the game after hitting “Exit to Desktop”.\nDefault: 10.0 seconds.") },
|
|
||||||
{ new Option<bool>("enableAutoUpdateCheck", true, voiceTrigger: "auto update check", description: "Automatically check Github for profiles updates.") },
|
|
||||||
{ new Option<bool>("flightAssistOff", false, voiceTrigger: "flight assist off", description: "Permanent Flight Assist off mode. You should really do that, it’s great.") },
|
{ new Option<bool>("flightAssistOff", false, voiceTrigger: "flight assist off", description: "Permanent Flight Assist off mode. You should really do that, it’s great.") },
|
||||||
{ new Option<bool>("hyperspaceDethrottle", true, voiceTrigger: "hyper space dethrottle", description: "Throttle down after a jump and when dropping from SC. Like the SC Assist module does.") },
|
{ new Option<bool>("hyperspaceDethrottle", true, voiceTrigger: "hyper space dethrottle",
|
||||||
{ new Option<int>("outdatedStationThreshold", 365, voiceTrigger: "outdated station threshold", description: "The threshold for station data to count as “outdated”.\nDefault: 365 days.") },
|
description: "Throttle down after a jump and when dropping from SC. Like the SC Assist module does.") },
|
||||||
|
{ new Option<int>("outdatedStationThreshold", 365, voiceTrigger: "outdated station threshold",
|
||||||
|
description: "The threshold for station data to count as “outdated”, in days.\nDefault: 365.") },
|
||||||
{ new Option<int>("scannerFireGroup", 0, voiceTrigger: "scanner fire group", description: "The fire group your discovery scanner is assigned to.\nDefault: 0 (the first one).") },
|
{ new Option<int>("scannerFireGroup", 0, voiceTrigger: "scanner fire group", description: "The fire group your discovery scanner is assigned to.\nDefault: 0 (the first one).") },
|
||||||
{ new Option<bool>("usePrimaryFireForDiscoveryScan", false, voiceTrigger: "discovery scan on primary fire", description: "Use primary fire for honking instead of secondary.") },
|
{ new Option<bool>("usePrimaryFireForDiscoveryScan", false, voiceTrigger: "discovery scan on primary fire", description: "Use primary fire for honking instead of secondary.") },
|
||||||
}
|
}
|
||||||
|
@ -69,10 +71,11 @@ namespace alterNERDtive.util
|
||||||
{
|
{
|
||||||
"SpanshAttack",
|
"SpanshAttack",
|
||||||
new OptDict<string, Option>{
|
new OptDict<string, Option>{
|
||||||
{ new Option<string>("announceJumpsLeft", ";1;3;5;10;15;20;30;50;75;100;", voiceTrigger: "announce jumps left") },
|
{ new Option<string>("announceJumpsLeft", ";1;3;5;10;15;20;30;50;75;100;", voiceTrigger: "announce jumps left",
|
||||||
|
description: "Estimated jumps left to announce when reached.\nNEEDS to have leading and trailing “;”.") },
|
||||||
{ new Option<bool>("announceWaypoints", true, voiceTrigger: "waypoint announcements", description: "Announce each waypoint by name.") },
|
{ new Option<bool>("announceWaypoints", true, voiceTrigger: "waypoint announcements", description: "Announce each waypoint by name.") },
|
||||||
{ new Option<bool>("autoJumpAfterScooping", true, voiceTrigger: "auto jump after scooping", description: "Automatically accelerate and jump out when fuel scooping is complete.") },
|
{ new Option<bool>("autoJumpAfterScooping", true, voiceTrigger: "auto jump after scooping", description: "Automatically accelerate and jump out when fuel scooping is complete.") },
|
||||||
{ new Option<bool>("autoPlot", true, voiceTrigger: "auto plot", description: "Automatically plot to the next waypoint after super charging.") },
|
{ new Option<bool>("autoPlot", true, voiceTrigger: "auto plot", description: "Automatically plot to the next waypoint after supercharging.") },
|
||||||
{ new Option<bool>("clearOnShutdown", true, voiceTrigger: "clear neutron route on shutdown", description: "Clear an active neutron route when the game is shut down.") },
|
{ new Option<bool>("clearOnShutdown", true, voiceTrigger: "clear neutron route on shutdown", description: "Clear an active neutron route when the game is shut down.") },
|
||||||
{ new Option<bool>("copyWaypointToClipboard", false, voiceTrigger: "copy neutron waypoints to clipboard", description: "Copy each neutron waypoint into the Windows clipboard.") },
|
{ new Option<bool>("copyWaypointToClipboard", false, voiceTrigger: "copy neutron waypoints to clipboard", description: "Copy each neutron waypoint into the Windows clipboard.") },
|
||||||
{ new Option<bool>("defaultToLadenRange", false, voiceTrigger: "default to laden range",
|
{ new Option<bool>("defaultToLadenRange", false, voiceTrigger: "default to laden range",
|
||||||
|
|
Loading…
Reference in a new issue