Merge branch 'release-prep/0.5' into release

This commit is contained in:
alterNERDtive 2019-11-09 08:01:33 +01:00
commit 553ae0f735
8 changed files with 17453 additions and 2166 deletions

View file

@ -1,3 +1,36 @@
# v0.5 (2019-11-09)
## RatAttack v0.1
RatAttack is now a thing! :D
## SpanshAttack v2.0
* SpanshAttack will now disable EDDIs speech responder by default. To get it
back you will have to manually re-enable it after including
`SpanshAttack.startup`. See docs for more info.
* Fixed the target announcement when plotting. Will now properly use the plot
target instead of the system that you have targeted at the moment of the
announcement.
* Requirements are now listed in the documentation.
* Fixed auto jump on scooping. Now only queues a jump _once_ not once per
“refuelled” event (fires every 5s)
## EliteDangerous v2.0.2
* Scanning a body will now tell you if it is in a fast orbit (less than 6h).
* Fixed the `sentToX` commands to do a CTRL+A before pasting text. This will
prevent garbled things to be send when you have already typed some text into
the edit box.
* Now automatically toggles FlightAssist off on takeoff/undock. Set
`>FlightAssistOff` to false in `EliteDangerous.startup` to disable.
* Added `[start;stop] [firing;mining]`. This command will start/stop hold down
the primary fire button for you; in case of mining it will also deploy your
cargo scoop.
* Fixed the discovery scan event to only tell you about differences with EDSM
when EDSM knows _fewer_ bodies (there are some issues with duplicate entries
in EDSM, e.g. in Dromi)
# v0.4.1 (2019-10-14) # v0.4.1 (2019-10-14)
This is a bug fix release (as the version number indicates). Mainly for changes This is a bug fix release (as the version number indicates). Mainly for changes
@ -45,7 +78,7 @@ yet, so you do not have to download the new archive.
## SpanshAttack v1.2 ## SpanshAttack v1.2
* improved trip time announcements * improved trip time announcements
* trip time is now also wrote to the VoiceAttack log * trip time is now also written to the VoiceAttack log
## EliteDangerous v1.0 ## EliteDangerous v1.0

View file

@ -16,7 +16,7 @@ Each of the profiles is documented in `/docs/`.
* [SpanshAttack](docs/SpanshAttack.md): profile to plot and follow trips along * [SpanshAttack](docs/SpanshAttack.md): profile to plot and follow trips along
the neutron highway using [spansh](https://spansh.co.uk/plotter). the neutron highway using [spansh](https://spansh.co.uk/plotter).
* [RatAttack](docs/RatAttack.md): profile for interactions with the Fuel Rats * [RatAttack](docs/RatAttack.md): profile for interactions with the Fuel Rats
IRC server. (Not a thing yet.) IRC server.
* [SealAttack](docs/SealAttack.md): profile for interactions with the Hull * [SealAttack](docs/SealAttack.md): profile for interactions with the Hull
Seals IRC server. (Not a thing yet.) Seals IRC server. (Not a thing yet.)
@ -24,10 +24,13 @@ Each of the profiles is documented in `/docs/`.
* [VoiceAttack](https://voiceattack.com): absolutely required (duh). * [VoiceAttack](https://voiceattack.com): absolutely required (duh).
* [bindED](https://forum.voiceattack.com/smf/index.php?topic=564.0): required * [bindED](https://forum.voiceattack.com/smf/index.php?topic=564.0): required
for all profiles; makes anything involving hitting E:D key binds portable. for EliteDangerous and SpanshAttack; makes anything involving hitting E:D key
binds portable.
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin: * [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin:
required for my personal profile and for SpanshAttack, optional for RatAttack required for EliteDangerous and SpanshAttack, optional for RatAttack and
and SealAttack. SealAttack. If you are already running EDDI and want to keep the default
speech responder active, you will need to re-enable it in your profile _after_
running the `<profile>.startup` command.
* [ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter): required * [ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter): required
for SpanshAttack. for SpanshAttack.
* [elite-scripts](https://github.com/alterNERDtive/elite-scripts): required for * [elite-scripts](https://github.com/alterNERDtive/elite-scripts): required for

View file

@ -286,6 +286,9 @@ Basically anything that is related to directly doing something with your ship.
it, 1 to the others. it, 1 to the others.
* `rapid fire lights`: Flashes your lights 5 times in a row. * `rapid fire lights`: Flashes your lights 5 times in a row.
* `retract [all;everything]`: Retracts, well, everything. * `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 jupms to SC. If * `[super;] cruise [when ready;]`: Retracts everything, then jupms to SC. If
given “when ready” will wait for mass lock to clear and your FSD to cool down given “when ready” will wait for mass lock to clear and your FSD to cool down
first. first.
@ -353,6 +356,8 @@ if you have included EliteDangerous.
* `>enableR2Rannouncements` (boolean): whether to announce planets worth mapping * `>enableR2Rannouncements` (boolean): whether to announce planets worth mapping
when jumping into a known system. This is useful for doing some R2R on the when jumping into a known system. This is useful for doing some R2R on the
side. Default: false. side. Default: false.
* `>flightAssistOff` (boolean): whether to automatically toggle FlightAssist off
on liftoff. Default: true.
* `>targetSubsystem` (string): the default target subsystem. Unused. Default: * `>targetSubsystem` (string): the default target subsystem. Unused. Default:
“drive”. “drive”.
* `python.ScriptPath` (string): the path you have placed the compiled python * `python.ScriptPath` (string): the path you have placed the compiled python

View file

@ -0,0 +1,253 @@
# RatAttack #
This profile facilitates [Fuel Ratting](https://www.fuelrats.com). It aims to
eliminate as much of the required manual task and attention switching as
possible via automation and voice commands.
If you dont know what the Fuel Rats are, come hang out and ask :)
## Requirements ##
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. Thats only really needed if you
actually _have_ multiple CMDRs, obviously. Just download the zip file from the
release page and extract into your VoiceAttack directory.
### 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 run the `enablespeechresponder` plugin function
of the EDDI plugin from your profiles startup command _after_ the
`RatAttack.startup` command invocation.
In order to do that, choose “Other” → “Advanced” → “Execute an External Plugin
Function”, choose the EDDI plugin and set the “Plugin Context” to
“enablespeechresponder”.
## 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.
* Set configuration options. In the same startup command of yours, overwrite all
configuration variables you want changed; _after_ the `RatAttack.startup`
call. See [below](#Configuration-Variables).
* 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,
youll 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 wont.
* `[enable;disable] rat duty`: puts you on/off duty.
### Handling a Case ###
#### Getting Case Data From IRC ####
Currently there is one singular way of getting case info from IRC into
VoiceAttack: having your IRC client put the ratsignal into the clipboard, then
having it run the `RatAttack.getInfoFromRatsignal` command.
This has two purposes:
1. announcing a new incoming case
1. storing case data and making it available to VoiceAttack, e.g. for copying
the cases system into the clipboard
In my case I am running AdiIRC and have the following script setup for handling
this:
```
on *:TEXT:RATSIGNAL - CMDR*(??_SIGNAL):#fuelrats:{
var %clip = $cb(-1)
/clipboard $1-
/run -h "D:\tools\VoiceAttack\VoiceAttack.exe" -nofocus -command "RatAttack.getInfoFromRatSignal"
/sleep 2 /clipboard %clip
}
```
This does the following things:
1. listen for a line starting with “RATSIGNAL - CMDR” and ending with
“(??\_SIGNAL)” (`?` being any character); that will catch an incoming signal
with basically no false positives
1. temporarily save the current clipboard
1. copy the entire line to the clipboard
1. run VoiceAttack (should already be open) with the
`RatAttack.getInfoFromRatsignal` command that will parse the signal and store
case information
1. wait for 2s to make sure the command had time to grab the clipboard, then
restore the old clipboard
If you dont know how to do the same thing for your IRC client or it doesnt
support copying the control characters in the ratsignal 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.
#### Internal Case List ####
If you have your IRC client setup properly, VoiceAttack will hold a list with
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.
* `[current;rat] case details`: Will give you all stored info on the currently
open case.
* `nearest commander to rat case number [0..19]`: Will give you the nearest of
your CMDRs with their distance to a cases 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 cases system. Requires some setup
and the use of my `elite-scripts` Python scripts.
#### Opening a Case ####
* `open rat case number [0..19]`: Opens rat case with the given number. If there
is no case data for that case (e.g. because you dont have your IRC client set
up properly), it will still open it, just not have any data on it.
* `open [latest;] rat case`: Opens the latest rat case that has come in through
IRC. Will probably error out in creative ways if you dont have your IRC
client set up properly. Too tired right now to have proper error handling so
just open an issue if you run into problems (its 7am, I havent slept and
want to finish this doc to get the release out (yes, you are allowed to laugh
at this section)).
#### Closing a Case ####
* `[close;clear] rat case`: Closes the currently open rat case.
### Making Calls ###
There are a bunch of calls you can make for a case, the most common are modelled
through VoiceAttack commands. The descriptive commands (e.g. “system confirmed”)
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]`: Calls jump for the 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 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;sysconf;system confirmed]`: This is the command you
dont 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 games journal, you can send messages to IRC from Elites
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
change the “target” window of the `RatAttack.sendToFuelrats` and
`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.
## Exposed Variables ##
The following Variables are _global_ and thus readable (and writeable! Please
dont unless its a config variable …) from other profiles.
### Configuration Variables ###
These are set in `RatAttack.startup` and can be overridden from your profile if
you have included RatAttack.
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
is `v`. Default: `v`.
* `RatAttack.confirmCalls` (boolean): whether VoiceAttack should ask you before
posting to #fuelrats to make sure there hasnt been an error in voice
recognition and you accidentally post the wrong thing. Default: true.
* `RatAttack.onDuty` (boolean): whether or not you are currently on rat duty.
Default: true.
* `RatAttack.platforms` (string): the platforms you want to be informed of
incoming cases for. If you are on console, you can still have VoiceAttack
running on the PC that you are using for IRC and handle calls and stuff using
voice! Delimited by whatever you want. Can include “PC”, “XB”, “PS4”.
Default: “PC”.
* `RatAttack.platformAnnouncements` (boolean): whether or not to announce the
cases 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.useEddiForVoice` (boolean): whether to use the EDDI plugin to
handle text-to-speech over VoiceAttacks built-in speech function. Default:
false.
* `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 dont have them and turn
it on anyway. 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”.
* `python.scriptPath` (string): the path you put the Python scripts in. Default:
“{VA_DIR}\scripts”.
### Other Variables ###
Current case data:
* `RatAttack.caseNumber` (int): the number of the case you are currently on.
Will be `Not Set` if you are not on a case.
* `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.

View file

@ -6,6 +6,35 @@ neutron jumps using [spansh](https://spansh.co.uk/plotter). It fully does
everything you need from within the game and VoiceAttack, you wont have to everything you need from within the game and VoiceAttack, you wont have to
visit the site at any point. visit the site at any point.
## Requirements ##
In addition to VoiceAttack, you will need the following plugins to use this
profile:
* [bindED](https://forum.voiceattack.com/smf/index.php?topic=564.0): required
for EliteDangerous and SpanshAttack; makes anything involving hitting E:D key
binds portable.
* [EDDI](https://github.com/EDCD/EDDI) installed as a VoiceAttack plugin:
required for EliteDangerous and SpanshAttack, optional for RatAttack and
SealAttack.
* [ED-NeutronRouter](https://github.com/sc-pulgan/ED-NeutronRouter): required
for SpanshAttack.
### EDDI speech responder ###
For the convenience of people that have not been using EDDI in the past,
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
functionality, you will have to run the `enablespeechresponder` plugin function
of the EDDI plugin from your profiles startup command _after_ the
`SpanshAttack.startup` command invocation.
In order to do that, choose “Other” → “Advanced” → “Execute an External Plugin
Function”, choose the EDDI plugin and set the “Plugin Context” to
“enablespeechresponder”.
## Settings ## ## Settings ##
Because Elites keyboard handling is … weird youll have to set the key to use Because Elites keyboard handling is … weird youll have to set the key to use
@ -40,7 +69,7 @@ When including the profile, be sure to
configuration variables you want changed; _after_ the `SpanshAttack.startup` configuration variables you want changed; _after_ the `SpanshAttack.startup`
call. See [below](#Configuration-Variables). call. See [below](#Configuration-Variables).
* Make sure all EDDI events that SpanshAttack needs are correctly handled. For * 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 all events used in SpanshAttack that you already have handlers for in your
profile, youll have to include a call to `SpanshAttack.<event name>`. E.g. profile, youll have to include a call to `SpanshAttack.<event name>`. E.g.
for “EDDI Jumped”, call `SpanshAttack.EDDI Jumped` by name from your `((EDDI for “EDDI Jumped”, call `SpanshAttack.EDDI Jumped` by name from your `((EDDI
Jumped))` command. Jumped))` command.
@ -121,17 +150,17 @@ your trip turned off. This way you can get the time youve been jumping with t
### Helper Functions ### ### Helper Functions ###
The profile contains a lot of helper functions that get called by the The profile contains a lot of helper functions that get called by the
aforementionde commands. Have a look around, maybe learn something about aforementioned commands. Have a look around, maybe learn something about
VoiceAttack :) VoiceAttack :)
## Exposed Variables ## ## Exposed Variables ##
The following Variables are _global_ and thus readable (and writeable! please The following Variables are _global_ and thus readable (and writeable! Please
dont unless its a config variable …) from other profiles: dont unless its a config variable …) from other profiles:
### Configuration Variables ### ### Configuration Variables ###
These are set in `SpanshAttack.startup` and can be overriden from your profile These are set in `SpanshAttack.startup` and can be overridden from your profile
if you have included SpanshAttack. if you have included SpanshAttack.
* `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this * `Elite.pasteKey` (string): the key used for pasting into Elite. On QWERTY this
@ -148,8 +177,8 @@ if you have included SpanshAttack.
after fuel scooping (and moving out of scoop range). Default: true. after fuel scooping (and moving out of scoop range). Default: true.
* `SpanshAttack.autoPlot` (boolean): whether to automatically plot to the next * `SpanshAttack.autoPlot` (boolean): whether to automatically plot to the next
waypoint on supercharging. Default: true. waypoint on supercharging. Default: true.
* `SpanshAttack.clearOnShutdown` (boolean): whether or not to automtically clear * `SpanshAttack.clearOnShutdown` (boolean): whether or not to automatically
an active neutron route on Elite client shutdown. Default: true. clear an active neutron route on Elite client shutdown. Default: true.
* `SpanshAttack.copyWaypointToClipboard` (boolean): whether to copy the next * `SpanshAttack.copyWaypointToClipboard` (boolean): whether to copy the next
waypoint into the Windows clipboard for use in other programs. Default: false. waypoint into the Windows clipboard for use in other programs. Default: false.
* `SpanshAttack.useEddiForVoice` (boolean): whether to use EDDI over VAs * `SpanshAttack.useEddiForVoice` (boolean): whether to use EDDI over VAs

File diff suppressed because it is too large Load diff

13690
profiles/RatAttack-Profile.vap Executable file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff