No, I'm afraid that information is not available via the journal and status API.Was there ever an event in EDDI that let you know if the destination for an FSD jump was obscured?
Or am I just going more nuts than I thought?
No, I'm afraid that information is not available via the journal and status API.Was there ever an event in EDDI that let you know if the destination for an FSD jump was obscured?
Or am I just going more nuts than I thought?
I know, I'm after a way of programmatically checking to see if the plugin is either installed and or available. So if it's not installed then the profile won't work as the profile relies on EDDI being there ... if EDDI is not installed/working then the profile is just not going to be much use.It should show in the loading information when you start VA
Dock at a stationI know, I'm after a way of programmatically checking to see if the plugin is either installed and or available. So if it's not installed then the profile won't work as the profile relies on EDDI being there ... if EDDI is not installed/working then the profile is just not going to be much use.
Wonder if I could test to see if EDDI is in the Apps dir? That would get around the installed part, next the working part.
OK lets do this this way instead ....Dock at a station
In your profile that relies upon EDDI, just run a check for a known variable set by EDDI. If this variable is null or 'not set', then EDDI is not loaded. I do this for my AVCS4 Falcon BMS profile - I need to check if the end user is also using a plugin for Falcon BMS by another developer.OK lets do this this way instead ....
When VA starts I have the profile I use for Elite auto loaded. I then would like it to detect if EDDI is installed and if it is is it working? If it's not installed or not working (enabled as a plugin) then the profile won't work and the user will be given a log and audio message to let them know something is missing.
In order to use the profile they MUST install and enable EDDI.
So the methods you've suggested are fine however I want to test to see if EDDI is enabled/installed as soon as the profile is loaded or VA is started as I auto load the profile. Which is generally before I even start Elite.
I was checking forIn your profile that relies upon EDDI, just run a check for a known variable set by EDDI.
EDDI status
being equal to Operational
but it no longer seems to work, and I cannot find it in the Wiki docs anymore so it may have been removed in a recent edit/update ... so I may have to go down the olde inline function route.It's absolutely possible - EDDI does not need the game to run in order for you to check a few things, and get a return -- or a 'not set'.I was checking forEDDI status
being equal toOperational
but it no longer seems to work, and I cannot find it in the Wiki docs anymore so it may have been removed in a recent edit/update ... so I may have to go down the olde inline function route.
But the other thing is I was hoping to perform the check without Elite Dangerous running ... but not sure if that's possible.
variables.md
file in the EDDI dir there's a section that contains## EDDI states
- `capi_active` true when the companion API is active
- `icao_active` true if ICAO is currently enabled
- `ipa_active` true if phonetic speech ssml tags are currently enabled
- `va_active` true when the Voice Attack plug-in is active
va_active
being true?Begin Boolean Compare : [va_active] Equals True
Begin Boolean Compare : [va active] Equals True
Begin Boolean Compare : [EDDI va_active] Equals True
Begin Boolean Compare : [EDDI va active] Equals True
EDDI state
and EDDI states
and they don't work either.Try checking ifWell I have the test to see if EDDI is installed working it's just the test to see if the plugin is enabled that's now causing an issue.
In thevariables.md
file in the EDDI dir there's a section that contains
how would I go about testing forCode:## EDDI states - `capi_active` true when the companion API is active - `icao_active` true if ICAO is currently enabled - `ipa_active` true if phonetic speech ssml tags are currently enabled - `va_active` true when the Voice Attack plug-in is active
va_active
being true?
I've already tried various things and ways to write the variable and none seem to work. Examples of what I've tried;
Even triedCode:Begin Boolean Compare : [va_active] Equals True Begin Boolean Compare : [va active] Equals True Begin Boolean Compare : [EDDI va_active] Equals True Begin Boolean Compare : [EDDI va active] Equals True
EDDI state
andEDDI states
and they don't work either.
{TXT:EDDI status}
is set (rather than checking if it's equal to "Operational")? It hasn't been removed but it may show text other than "Operational".{TXT:EDDI version}
?{if find(scoopables, event.stellarclass) > -1 && reportmainsequence:
Arrival star is
{OneOf(
"a {OneOf(\"class\", \"type\")} {ucase(event.stellarclass)} {OneOf(\"scoopable\", \"main sequence\")}",
"{if StartsWithVowel(event.stellarclass): an |else: a} {ucase(event.stellarclass)} {OneOf(\"type\", \"class\")} {OneOf(\"scoopable\", \"main sequence\")}"
)}
star.
}
Maybe something along the lines of this?A minor annoyance here, I am setting up my personality and I have it set that during FSD Engaged it will give a callout for the star type in the arrival system.
I know I can use StartsWithVowel() to see if the event.stellarclass is a vowel or not, but I am wondering if it's possible to detect a phonetic vowel?
EG: "a F class main sequence star", I would like to be pronounced as "AN F class main sequence star".
Here is the snippet of code in question:
C#:{if find(scoopables, event.stellarclass) > -1 && reportmainsequence: Arrival star is {OneOf( "a {OneOf(\"class\", \"type\")} {ucase(event.stellarclass)} {OneOf(\"scoopable\", \"main sequence\")}", "{if StartsWithVowel(event.stellarclass): an |else: a} {ucase(event.stellarclass)} {OneOf(\"type\", \"class\")} {OneOf(\"scoopable\", \"main sequence\")}" )} star. }
bool hasPhoneticVowel = false;
string[] PhoneticVowels = {"f", "m", "n", "s", "x"};
foreach (string v in PhoneticVowels) {
if event.stellarclass.StartsWith(v) {
hasPhoneticVowel = true;
}
}
// ---Not at all sure on syntax here - consider as pseudo---
{if StartsWithVowel(event.stellarclass) OR (hasPhoneticVowel): an |else: a}
To expand on SemlerPDX's reply, if you wish to just use the EDDI script, rather than C# (I'm guessing that was an accident that you posted your code in that?), you can use this:A minor annoyance here, I am setting up my personality and I have it set that during FSD Engaged it will give a callout for the star type in the arrival system.
I know I can use StartsWithVowel() to see if the event.stellarclass is a vowel or not, but I am wondering if it's possible to detect a phonetic vowel?
EG: "a F class main sequence star", I would like to be pronounced as "AN F class main sequence star".
Here is the snippet of code in question:
C#:{if find(scoopables, event.stellarclass) > -1 && reportmainsequence: Arrival star is {OneOf( "a {OneOf(\"class\", \"type\")} {ucase(event.stellarclass)} {OneOf(\"scoopable\", \"main sequence\")}", "{if StartsWithVowel(event.stellarclass): an |else: a} {ucase(event.stellarclass)} {OneOf(\"type\", \"class\")} {OneOf(\"scoopable\", \"main sequence\")}" )} star. }
{if find(scoopables, event.stellarclass) > -1 && reportmainsequence:
{set phonetic_vowels to ["F", "M"]}
Arrival star is
{OneOf("a {OneOf(\"class\", \"type\")} {ucase(event.stellarclass)}",
"{if StartsWithVowel(event.stellarclass) || find(phoenetic_vowels, slice(event.stellaclass, 0, 1)) > -1: an |else: a} {ucase(event.stellarclass)} {OneOf(\"type\", \"class\")}"
)}
{OneOf("scoopable", "main sequence")} star.
}
This is perfect, thanks, and thanks to SemlerPDX as well.To expand on SemlerPDX's reply, if you wish to just use the EDDI script, rather than C# (I'm guessing that was an accident that you posted your code in that?), you can use this:
Code:{if find(scoopables, event.stellarclass) > -1 && reportmainsequence: {set phonetic_vowels to ["F", "M"]} Arrival star is {OneOf("a {OneOf(\"class\", \"type\")} {ucase(event.stellarclass)}", "{if StartsWithVowel(event.stellarclass) || find(phoenetic_vowels, slice(event.stellaclass, 0, 1)) > -1: an |else: a} {ucase(event.stellarclass)} {OneOf(\"type\", \"class\")}" )} {OneOf("scoopable", "main sequence")} star. }
I'm not sure if event.stellarclass is in uppercase by default or not. If it isn't, then just change the 'phonetic_vowels' array to all lowercase.
EDIT: Trimmed the phonetic array down to the only two letters that are scoopable stars.
P() is for correcting the pronunciation of certain proper names etc that the text to speech voices would otherwise mispronounce. It's a terrible name, I know, we inherited it.{P(event.body, "body")}
rather than just {event.body}
I see it often in the default scipts and not quite sure what it is or what it does.
((EDDI route details))
be triggered?Under what circumstances will((EDDI route details))
be triggered?
Plotted a route from 1 system to another 120+ jumps away and would like to have gotten the name of the destination system, but the event doesn't seem to fire.
Is it at all possible to get the name of the destination system of a route with EDDI?
((EDDI route details))
is triggered by the RouteDetails() function.