Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
Jgm,
Not getting the jump information anymore. Testing the script works fine, but it seems it is not getting the information when I jump...Any ideas?
 
I've taken a look at this but can't reproduce it on my side.

What this might be, is that Voice Attack state variables (along with all other Voice Attack variables) are only refreshed when an event occurs. Because the responders are run asynchronously it is possible that sometimes the speech responder updates state before the Voice Attack responder starts, so that the state updates pretty much immediately. Other times it might be that the speech responder hasn't finished before the Voice Attack responder starts, so that the state doesn't update until the next event.

To confirm if this is the case, could you run your Speech Responder script, make an event occur, then check the Voice Attack state variables? They should be populated after the event occurs.

As to the issue itself, I'm afraid that there is no simple solution. There are a few things that I could do to help the state information show up in VoiceAttack regardless of events, but nothing simple or immediate I'm afraid.

jgm, thanks for looking into this.

I can reproduce the behavior consistently, but now that you've reminded me that the Speech and Voice Attack responders operate asynchronously it makes all kinds of sense that the EDDI state variables aren't updated for VA until the Voice Attack responder is triggered. For example, I executed my 'state test' scripts before and after an 'Undocked' event... before, 'Not set'... after, set to proper values.

I think this is an important detail for EDDI/VA coders to be mindful of... VA EDDI state variables will not be valid until the Voice Attack repsonder has been trigger by an event.

That said, what about creating an EDDI plugin call for VA that forces a trigger of the Voice Attack responder?
 
Last edited:
I've taken a look at this but can't reproduce it on my side.

What this might be, is that Voice Attack state variables (along with all other Voice Attack variables) are only refreshed when an event occurs. Because the responders are run asynchronously it is possible that sometimes the speech responder updates state before the Voice Attack responder starts, so that the state updates pretty much immediately. Other times it might be that the speech responder hasn't finished before the Voice Attack responder starts, so that the state doesn't update until the next event.

To confirm if this is the case, could you run your Speech Responder script, make an event occur, then check the Voice Attack state variables? They should be populated after the event occurs.

As to the issue itself, I'm afraid that there is no simple solution. There are a few things that I could do to help the state information show up in VoiceAttack regardless of events, but nothing simple or immediate I'm afraid.


Does this mean , that at some point , Eddi will have to 'slave' to Voice attack rather than acting independently ?
 
Here is a little tool that let you share scripts, I hope it will be useful. Let me know if something is missing or can be improved (it's an early version so it will get a proper layout, maybe)

http://snafets.de/elite/eddi_scripts/eddi_scripts.php

And please don't break it ;)

Cool , can you have a BOX , with these..... Create new , Replace existing , Append to current , for the scripts

https://forums.frontier.co.uk/showt...mands-Thread?p=4978871&viewfull=1#post4978871
 
Ok, I whipped this up real quick and did some rudimentary testing.

I threw this into the speech responder 'Jumped' script for testing, but it could also go into the 'Jumping' (or any other) script...

Code:
{if state.destination:
    {set dest to SystemDetails(state.destination)}

    {set diff_x to sub(dest.x, system.x)}
    {set diff_y to sub(dest.y, system.y)}
    {set diff_z to sub(dest.z, system.z)}

    {set pow_x to pow(diff_x, 2)}
    {set pow_y to pow(diff_y, 2)}
    {set pow_z to pow(diff_z, 2)}

    {set distance to add(pow_x, pow_y)}
    {set distance to add(distance, pow_z)}
    {set distance to pow(distance, 0.5)}
    {set distance to round(distance, 1)}

    Distance to {state.destination} is {distance} light years.
}

It's written for readability over efficiency, so feel free to obfuscate to your heart's content!

One thing I wanted is to not have it speaking after every jump. I tried just removing the last line but then the varialbes are not set, even tried just removing the "Distance to....is... light years" and only leaving the {state.destination} {distance} but then it didn't work for me. Anyway to silence the say part in the script? I cant for the life of me see it :/

Other than that it works a treat >:D
 
Jgm,
Not getting the jump information anymore. Testing the script works fine, but it seems it is not getting the information when I jump...Any ideas?

The most common cause of this is that you haven't configured the netlog monitor. Details on how to do this are on the relevant tab in the EDDI UI.
 
jgm, thanks for looking into this.

I can reproduce the behavior consistently, but now that you've reminded me that the Speech and Voice Attack responders operate asynchronously it makes all kinds of sense that the EDDI state variables aren't updated for VA until the Voice Attack responder is triggered. For example, I executed my 'state test' scripts before and after an 'Undocked' event... before, 'Not set'... after, set to proper values.

I think this is an important detail for EDDI/VA coders to be mindful of... VA EDDI state variables will not be valid until the Voice Attack repsonder has been trigger by an event.

That said, what about creating an EDDI plugin call for VA that forces a trigger of the Voice Attack responder?

Having a context to update state variables is one option, but it's not a pretty one because it ends up being needed everywhere so becomes a pain to maintain in scripts. It also adds a fair amount of CPU load to every command when it's used. I'm looking to see if there is some way of triggering a notification whenever state is updated, so that this is automatic process that only happens when required.
 
Hi,

Found a small bug, although I'm not sure if its the script (which is the one that came with EDDI) or not.
Basically, the Commodity Sale Check Script returns a negative value when it reads the profit per tonne back.

Code:
{cargo.commodity.name} can be sold here for a profit of {marketcommodity.sellprice - cargo.price} credits per tonne.
    }
}

Thanks

El. :cool:

PS, love this tool, increases the immersion level greatly!
 
Thanks again for the reply. It was my own stupid mistake when I was setting up 2.1. I did in fact forget to update the netlog monitor location when I started ED up. Thanks for your help and patience.
 
One thing I wanted is to not have it speaking after every jump. I tried just removing the last line but then the varialbes are not set, even tried just removing the "Distance to....is... light years" and only leaving the {state.destination} {distance} but then it didn't work for me. Anyway to silence the say part in the script? I cant for the life of me see it :/

Other than that it works a treat >:D

Glad to hear it's working for you.
 
Glad to hear it's working for you.

link to my last broadcast with it working: https://www.twitch.tv/cmdr_bumble_b/v/113064816 (Note the video is 5hrs + long) but all the jump data and scan data is updated by EDDI plugin script in Voice attack automatically

I really need to finalist all my different twitch overlays and do short videos on them. As well as an overlay for Exploration I also have for Bounty Hunting, Combat Zones, Mission running and maybe a couple of others. These are only seen my people watching my stream NOT on my game screen I might add, but Iw ill do VA commands so I can ask what the stats are for certain things once I got it all finalized and running smoothly
 
Last edited:
Eddi doesn't find the Logs folder.

I'm 100% sure this is the correct path C:\Program Files (x86)\Steam\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\Logs
besides it's the only Logs directory that has multiple .log entries (Just in case I tried the other folders too under FORC-DEV-1010 and the ones in the appdata Frontier_Developments, no luck at all)

Eddi just says "Unable to detect the product folder" or something among those lines. Am I doing something wrong?
 
Publice Service Announcement!

One of the 'quirks' I've noted in my scripting experiences with the speech responder is that while VA can pass integers to the speech responder, the speech responder immediately converts them to decimals.


For example, if {INT:star_count} = 7 and you pass it to EDDI, any speech responder script will see state.star_count = 7.

Now if a script updates state.star_count to 8, using:

{set star_count to state.star_count+1)}
{SetState("star_count", star_count)}

Then non-intuitively, VA will report {INT:EDDI state star_count} = 7 and {DEC:EDDI state star_count} = 8.

For the record, this is not a bug, this is just how Cottle (and Voice Attack) works. To wrap your head around this, note that {INT:EDDI state star_count} was created by Voice Attack & the Voice Attack responder (and hasn't been modified), while {DEC:EDDI state star_count} was created by the Speech Responder.

Apparently, Voice Attack considers {INT:EDDI state star_count} and {DEC:EDDI state star_count} to be separate, distinct variables.

So, to keep it less confusing/frustrating & simple, reference all EDDI state number variables in Voice Attack as decimals ( {DEC:EDDI state variable} ).


FWIW, just wanted to pass some of my 'hard won' knowledge to short cut any of ya'lls paths to learning. :)

Cheers!
 
Last edited:
Eddi doesn't find the Logs folder.

I'm 100% sure this is the correct path C:\Program Files (x86)\Steam\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\Logs
besides it's the only Logs directory that has multiple .log entries (Just in case I tried the other folders too under FORC-DEV-1010 and the ones in the appdata Frontier_Developments, no luck at all)

Eddi just says "Unable to detect the product folder" or something among those lines. Am I doing something wrong?

If you've entered the path manually you don't need to hit the 'Obtain' button. You can test to see if you have the correct path by jumping to another system and seeing if EDDI tells you about your destination.

As it says in the text on the screen, you can use the 'Obtain' button to obtain the log path as long as you have Elite running and you are running EDDI from a local administrator account.
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom