Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
I was getting it. I checked the EDDI log and it said EDDI access to EDSM is disabled

I checked and it seems my API key for EDSM is missing. But Thanks jgm for the explanation. Your hard work is appreciated.

I'm getting this in VA .. is it a EDDI , error message Failed to invoke action profile
 
Is there any way to change EDDIs voice inside of a script?

Currently I have EDDI triggering VA to change voice for messages, one voice for commanders, another for NPCs, and EDDI's default for EDDI. I'd like to skip this step in VA as it seems like something I could do inside the personality itself, but I can't find what variable/state controls EDDIs voice.
 
I'm getting this in VA .. is it a EDDI , error message Failed to invoke action profile

This isn't an EDDI error, it's either VoiceAttack or a Windows issue. I can only think that EDDI is corrupted, and suggest you do the following:

  • Uninstall EDDI using Windows' add/remove program
  • Remove the C:\Program Files(x86)\VoiceAttach\Apps\EDDI directory (note that if you installed EDDI in a different location then remove that instead. Also note that this might be empty, in which case EDDI already removed everything)
  • Reinstall EDDI from https://www.mcdee.net/elite/EDDI-beta.exe

You'll need to re-authenticate with the Frontier API but your existing configuration should remain.
 
Is there any way to change EDDIs voice inside of a script?

Currently I have EDDI triggering VA to change voice for messages, one voice for commanders, another for NPCs, and EDDI's default for EDDI. I'd like to skip this step in VA as it seems like something I could do inside the personality itself, but I can't find what variable/state controls EDDIs voice.

There isn't a way to do this inside a template. If you add it as a github issue I'll see if I can take a look at it after 2.3 has been released.
 
You could write your own 'German()' script that translates the simple items such as commodities yourself.

{german()} {english()}? can i get an examble for {event.items[item].content}, {ShipName(event.shipid, event.ship)} and {event.commodity} maybee? Thanks in advance!

Have a look at http://snafets.de/elite/eddi_scripts/index.php?list=stubtest&tags= !
I've made a germanized profile for EDDI 2.2 and working on 2.3 right now. Feel free to take what you need for your profile.

It contains a script that translates all mostly common commodities. Also for ships names and human rounded numerical values.

Grüße

Thanks i will have a look at it. i've already made some adjustments in tab "Speech responder" myself and had really enjoyed it. im still looking for solutions for above made exambles. i hope to find a hint in your work!
 
Last edited:
Updeated to Beta 5 and now it is reading the number of stations in a system as X + 10 where X is the number of systems. It told me one system had 18 stations I looked and there were 8. Another system, it told me there were 16 stations. I looked and there were 6. It also seems not to be reading the number of planetary stations. In the one that told me there were 8 it said there were 3 planetary stations, but only 1 is listed in the system map. And I have an Advanced Discovery Scanner so I'm able to see all bodies and stations in a system.
 
Last edited:
{german()} {english()}? can i get an examble for {event.items[item].title}, {ShipName(event.shipid, event.ship)} and {event.commodity} maybee? Thanks in advance!

You can place a function at the top of the relevant template, for example if you have commodities in the template you need to translate you can do:

Code:
{set _german(commodity) to:
  {if commodity = 'Hydrogen Fuel':
    {return 'x'}
  |elif commodity = 'Painite':
    {return 'y'}
  }
}

where you replace 'x' with the German translation of 'Hydrogen Fuel', 'y' with the Germain translation of 'Painite' etc.

Then you can call {_german(event.commodity)} to obtain your translation.
 
Updeated to Beta 5 and now it is reading the number of stations in a system as X + 10 where X is the number of systems. It told me one system had 18 stations I looked and there were 8. Another system, it told me there were 16 stations. I looked and there were 6. It also seems not to be reading the number of planetary stations. In the one that told me there were 8 it said there were 3 planetary stations, but only 1 is listed in the system map. And I have an Advanced Discovery Scanner so I'm able to see all bodies and stations in a system.

Some stations were duplicated in the backend database. Should be behaving itself again now.
 
I just installed Voice Attack and EDDI and have it working pretty well so far.

Just a few questions.

First, I've seen videos where after being granted docking permission, VA reports the location of the pad. I haven't found out how that's done yet.

Second, If I enable the EDDI Speech Responder in the EDDI interface there are times when EDDI and VA are talking over each other. Is there a way to manage that better? Also, when I open the Speech Responder, some entries are grayed out and I haven't yet seen how to address that.

Third, and may solve the first two, I assume the location of the landing pad announcement would be tied to the "Docking Granted" event listed on the Speech Responder tab list:

{_ Context }
{SetState('eddi_context_last_subject', 'landing pad')}
{SetState('eddi_context_landing_pad_system', system.name)}
{SetState('eddi_context_landing_pad_station', event.station)}
{SetState('eddi_context_landing_pad_pad', event.landingpad)}

{set station to StationDetails(event.station)}
{if station.model = "Coriolis Starport" || station.model = "Orbis Starport" || station.model = "Ocellus Starport" || station.model = "Unknown Starport":
{Pause(8000)}
{F("Landing pad report")}
}

When I select the test button, I'm not getting any output. Can the code above just be added to my docking request command in my profile successfully?


Finally, Where can I make a donation to CMDR McDonald for all his amazing contributions?

EDIT: I'm using Astra, Full House profile. "Companion App" and "Netlog monitor" have been configured.

Plugin 'EDDI 2.2.3' initialized.

12:01:27 - Plugin 'EDDI 2.2.3' initialized.

VA v1.6.2


Thanks
 
Last edited:
I just installed Voice Attack and EDDI and have it working pretty well so far.

Just a few questions.

First, I've seen videos where after being granted docking permission, VA reports the location of the pad. I haven't found out how that's done yet.

Second, If I enable the EDDI Speech Responder in the EDDI interface there are times when EDDI and VA are talking over each other. Is there a way to manage that better? Also, when I open the Speech Responder, some entries are grayed out and I haven't yet seen how to address that.

Third, and may solve the first two, I assume the location of the landing pad announcement would be tied to the "Docking Granted" event listed on the Speech Responder tab list:

{_ Context }
{SetState('eddi_context_last_subject', 'landing pad')}
{SetState('eddi_context_landing_pad_system', system.name)}
{SetState('eddi_context_landing_pad_station', event.station)}
{SetState('eddi_context_landing_pad_pad', event.landingpad)}

{set station to StationDetails(event.station)}
{if station.model = "Coriolis Starport" || station.model = "Orbis Starport" || station.model = "Ocellus Starport" || station.model = "Unknown Starport":
{Pause(8000)}
{F("Landing pad report")}
}

When I select the test button, I'm not getting any output. Can the code above just be added to my docking request command in my profile successfully?


Finally, Where can I make a donation to CMDR McDonald for all his amazing contributions?

EDIT: I'm using Astra, Full House profile. "Companion App" and "Netlog monitor" have been configured.

Plugin 'EDDI 2.2.3' initialized.

12:01:27 - Plugin 'EDDI 2.2.3' initialized.

VA v1.6.2


Thanks

First off, please do not run EDDI standalone if you are running VoiceAttack as well. VoiceAttack starts EDDI itself, and running two instances can cause corruption of EDDI's databases.

If you haven't changed any of the default scripts then EDDI should pick up when you receive docking permission for the relevant starport and state what the location of the pad is. The station needs to be a "standard" station: Coriolis, Ocellus or Orbis. If you aren't hearing the report please let me know which station you're attempting to dock at and I'll take a look to see where the problem might be.
 
Confirmed crash when "Compare to default"

Ditto... have been getting a hard crash (asks if I want to use a debugger) repeatedly since beta 3, whenever I do a 'compare' following an edit to a script. Works fine until I make an edit (at least that's the pattern I'm noticing now), then crashes immediately upon pressing the 'compare' button.
 
First off, please do not run EDDI standalone if you are running VoiceAttack as well. VoiceAttack starts EDDI itself, and running two instances can cause corruption of EDDI's databases.

If you haven't changed any of the default scripts then EDDI should pick up when you receive docking permission for the relevant starport and state what the location of the pad is. The station needs to be a "standard" station: Coriolis, Ocellus or Orbis. If you aren't hearing the report please let me know which station you're attempting to dock at and I'll take a look to see where the problem might be.

I do not run both the standalone and VA at the same time. I shut down VA before I open the EDDI standalone and vice versa to troubleshoot.

I am not getting the landing pad location msg at any starport. I am currently testing at CD-33 8748, Vitorenko Holdings. I have not edited any scripts. When I Open the Speech Responder tab in the EDDI interface to see if I can figure out the problem, there are scripts listed for Docking - timed out, denied, granted, cancelled, and requested.

Docking Requested is grayed out, all other Docking scripts respond to the Test Button with the exception of "Docking Granted."

Here is the script, copied directly from the View:

{_ Context }
{SetState('eddi_context_last_subject', 'landing pad')}
{SetState('eddi_context_landing_pad_system', system.name)}
{SetState('eddi_context_landing_pad_station', event.station)}
{SetState('eddi_context_landing_pad_pad', event.landingpad)}

{set station to StationDetails(event.station)}
{if station.model = "Coriolis Starport" || station.model = "Orbis Starport" || station.model = "Ocellus Starport" || station.model = "Unknown Starport":
{Pause(8000)}
{F("Landing pad report")}
}

I am surmising that the reason I am not getting this output in the game when I successfully request docking and get permission to dock is related to the fact that when I test the "Docking Granted" script I get no output.

Any advice greatly appreciated.

EDIT: The "Landing pad report" tests properly on the Speech responder tab.
 
Last edited:
I do not run both the standalone and VA at the same time. I shut down VA before I open the EDDI standalone and vice versa to troubleshoot.

If you install EDDI's VoiceAttack profile you can just say "configure EDDI" and it will bring up EDDI's UI. No need to start up/shut down.

You mentioned that you turned off the speech responder at some stage. Please could you do the following:

  • Shut down VoiceAttack and/or EDDI
  • Start up EDDI
  • Ensure that the 'Speech Responder' plugin is enabled
  • Shut down EDDI
  • Remove the %APDPATA%\EDDI\eddi.sqlite file (this is a local cache of starsystems and it's possible that it has incorrect data in it due to the database moving around earlier today)
  • Start up EDDI
  • Try docking

(The issue with testing the docking granted request is that it doesn't have full system information in the event, so unless you happen to be in Shinrarta Dezhra when testing it EDDI will decide that the system/station combination provided isn't valid and ignore it).
 
EDDIs behavior once again stumped me today...

Since I was really unhappy with the string EDDI reads out from event.atmosphere in the Body Scanned event (things like "hot thick carbon dioxide atmosphere" instead of just "carbon dioxide" which would make much more sense in my opinion), I decided to take things into my own hand. So I'm now in the process of creating a script that will allow for more customization in that regard by using the slice and find functions to extract the atmospheres main element from the event.atmosphere string. However, either I'm not understanding the Cottle documentation correctly or EDDI is ignoring some of the rules defined in it.

Specifically, the code
Code:
{SetState("eddi_atmosphere_element", slice(event.atmosphere, 6, find(event.atmosphere, " rich", 0)))}
used on a planet with a "thick methane rich atmosphere" SHOULD return "methane", right? However, EDDI stubbornly reads out "methane rich" in this situation... Am I doing something wrong here?
 
EDDIs behavior once again stumped me today...

Since I was really unhappy with the string EDDI reads out from event.atmosphere in the Body Scanned event (things like "hot thick carbon dioxide atmosphere" instead of just "carbon dioxide" which would make much more sense in my opinion), I decided to take things into my own hand. So I'm now in the process of creating a script that will allow for more customization in that regard by using the slice and find functions to extract the atmospheres main element from the event.atmosphere string. However, either I'm not understanding the Cottle documentation correctly or EDDI is ignoring some of the rules defined in it.

Specifically, the code
Code:
{SetState("eddi_atmosphere_element", slice(event.atmosphere, 6, find(event.atmosphere, " rich", 0)))}
used on a planet with a "thick methane rich atmosphere" SHOULD return "methane", right? However, EDDI stubbornly reads out "methane rich" in this situation... Am I doing something wrong here?

The last parameter of slice() is a count not an index, so in this case you need to take 6 away from it.
 
I've been having a problem for a while. I have a customized Enter Normal space script. It tells you what the gravity of the world is (or it is supposed to). Below is the code of the relevant section.

Code:
{if event.bodytype = 'Planet':
    {OneOf("near", "close to", "in the vicinity of")} planet {P(event.body)}
    {set body to BodyDetails(event.body)}
    {if body.gravity:
    {if body.landable && body.gravity > 1:
        Caution: {P(event.body)} is a high gravity world, at {Round(event.body.gravity,2)} G.
    }
    |else:
    Gravity is {Round(event.body.gravity,2)} G.
    }

It always says "Gravity is G". Any ideas why this is happening?
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom