Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
Potential Bug: I think this started with the latest release, but EDDI now tells me that every planet I scan is unsuitable for landing, even if it has planetary bases on it, let alone others that clearly show as landable in the game. Kind of miss getting all the extra info it gives with landable planets.

Odd. Can you give a few examples so that we can try and replicate your results?
 
Minor annoying bug(?) I'm running into. About 75% of the time when I dock, EDDI tells me I can "sell my telemetry suites here", even though I have none. Is there a way to fix this?
 
Here is an example of an occasionally script that works:

{Occasionally(4, "You now have {Humanise(cmdr.credits + (event.amount * event.price))} credits.")}

From the Help Button:
Occasionally()
This function will take its argument 1/nth of the time, the rest of time discarding it.

Occasionally() takes two arguments: n, and the text argument.

Common usage of this is to provide additional text that is said now and again but would become irritating if said all the time, for example:

Boost engaged. {Occasionally(7, "Hold on to something.")}

Note that Occasionally() works on random numbers rather than counters, so in the above example the additional text will not show up every 7th time you boost but will show up on average 1/7 of the times that you boost.


Hi thanks for the quick reply. I am trying to occasionalise the whole response so put my occasional command just after the set states. I think I'm getting my curlys and parenthesis correct but I keep getting "expected end of block". I'll post my script when I get to my PC.
 
Hi there, I start to try to look inside the EDDI scripts and I have some little questions

I have also problems with the Occasionally, for exemple when I put
{Occasionally(2, "test occasionally.")}
I have never the speech "test occasionally."
when i put
{OneOf("","test occasionally.")}
I have the speech test around 50% of the time

I don't understand my mistake with the Occasionnaly


Another problem is with the script FSD engaged. With the problem i have with the Occasionally, i replace the lines
Code:
{if system.distancefromhome:
            {Occasionally(7, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
        }
By
Code:
{if system.distancefromhome:
            {OneOf("","","","","","","","","","","","","","", "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
        }

but the distance never come, so, I replace by just (remove the if)
Code:
 {Occasionally(7, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}

The {P(homesystem.name)} return correctly the Sol name i put on Commander Details, but the {Humanise(system.distancefromhome)} return always 0

Any clues about that?
 
I managed to sort my cottle issues out. Thanks to jgm on git hub from another similar post. Making use of text variable in cottle script works a treat.

Many thanks to all... It's been a bit bit quiet on here recently?
 
Hi there, I start to try to look inside the EDDI scripts and I have some little questions

I have also problems with the Occasionally, for exemple when I put
{Occasionally(2, "test occasionally.")}
I have never the speech "test occasionally."
when i put
{OneOf("","test occasionally.")}
I have the speech test around 50% of the time

I don't understand my mistake with the Occasionnaly


Another problem is with the script FSD engaged. With the problem i have with the Occasionally, i replace the lines
Code:
{if system.distancefromhome:
            {Occasionally(7, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
        }
By
Code:
{if system.distancefromhome:
            {OneOf("","","","","","","","","","","","","","", "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
        }

but the distance never come, so, I replace by just (remove the if)
Code:
 {Occasionally(7, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}

The {P(homesystem.name)} return correctly the Sol name i put on Commander Details, but the {Humanise(system.distancefromhome)} return always 0

Any clues about that?

1. Your script '{Occasionally(2, "test occasionally.")}' works fine for me. I don't think there's a mistake there. To prove it, you can temporarily switch it to '{Occasionally(1, "test occasionally.")}' and you'll see that it works 100% of the time under that condition.

2. Are you trying to test this in EDDI? The variable 'system.distancefromhome' is not set in the test data EDDI references when you hit the 'Test' button, but it should be set when you are in-game (provided that you've set your home system correctly). The 'if' statement ensures that you'll only hear this when 'system.distancefromhome' has been correctly set & is greater than zero, so I don't think there's any need to remove the 'if' statement that is present on the default script. If you do decide to remove it, you may sometimes hear 'You are now 0 lightyears from home.' as you jump into your home system.
 
Last edited:
The landable status in the body report script is using the reportbody function. This function relies on the data that is on EDDB. I've found reportbody to not be reliable. I've switched to using the body scanned script and a combination of using event and reportbody to get the details I want.

Here is my body scanned script:
https://forums.frontier.co.uk/showt...mands-Thread?p=5714701&viewfull=1#post5714701

Your script seems to be working fine for the most part, as I'm getting a lot more information about planets, but still getting "the landable status of this planet is unable to be detected" on landable planets (and all other planets), instead of just "Unsuitable for landing". Any ideas how to get that info pulled in?
 
Your script seems to be working fine for the most part, as I'm getting a lot more information about planets, but still getting "the landable status of this planet is unable to be detected" on landable planets (and all other planets), instead of just "Unsuitable for landing". Any ideas how to get that info pulled in?

The landable status journal event is only generated if you have a surface scanner. If you are scanning with just a normal discovery scanner, then the landable status is relying on the reportbody function to get the landable information. Unfortunately in my experience, the reportbody function is not very reliable on providing information. Reportbody retrieves data from elite dangerous data network (EDDN). If the data is not in EDDN then the reportbody function will not give correct information. A lot of the planetary data in EDDN is missing. I've tried in my body scanned script to work around using reportbody as much as I can. I'd rather it tell me the landable status is unknown then report false data.
 
I restart with the original FSD engaged and the Occasionaly work fine, so, it's sure, I make a mistake somewhere.

For the distance from home, the error is always here with original sript
I make a try whith adding a test line just before the if test like this
Code:
test value is  {Humanise(system.distancefromhome)}
        {if system.distancefromhome:
            {Occasionally(2, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
        }
it return always : test value is zero


If i make like this :
Code:
{_ Context }
{SetState('eddi_context_last_subject', 'fsd')}
{SetState('eddi_context_last_action', 'engage')}
{SetState('eddi_context_system_name', event.system)}
{SetState('eddi_context_system_system', event.system)}

{if event.target = 'Hyperspace':
    {_ Rewrite context to represent a jump }

    {set MyDistance to system.distancefromhome)}

    {SetState('eddi_context_last_subject', 'jump')}
    {SetState('eddi_context_last_action', 'start')}

    {set system to SystemDetails(event.system)}

    {_ Wait for the FSD countdown and initial jump}
    {Pause(6000)}

    {OneOf("Destination confirmed","Jump in progress","Telemetry obtained")}.
    {ShipName()} is {OneOf("heading to", "on route to", "travelling to", "in transit to")} the {P(system.name)} system.
    {if system.name = homesystem.name:
        Welcome home, {F("Honorific")}
    |else:
        {if event.stellarclass = "D":
            Caution: white dwarf detected.
        |elif event.stellarclass = "N":
            Caution: neutron star detected.
        |elif event.stellarclass = "H":
            Caution: black hole detected.
        |elif event.stellarclass != 'F' && event.stellarclass != 'O' && event.stellarclass != 'G' && event.stellarclass != 'K' && event.stellarclass != 'B' && event.stellarclass != 'A' && event.stellarclass != 'M':
            Information: arrival star is not scoopable.
        }

        {if lastsystem.allegiance && lastsystem.allegiance != "None" && lastsystem.allegiance != "Independent" && (!system.allegiance || system.allegiance = "None" || system.allegiance = "Independent"):
            You {OneOf("are leaving", "have left", "are no longer in")} {lastsystem.allegiance} space.
        |elif lastsystem.allegiance && lastsystem.allegiance != system.allegiance && system.allegiance && system.allegiance != "None":
            You {OneOf("are now in", "have entered", "are entering")} {system.allegiance} space.
            {if cmdr.title != "Commander":
                Welcome back {F("Honorific")}.
            }
        }

        {if system.visits = 0:
            This is your first visit to this system
        |elif system.visits = 1:
            This is your second visit to this system
        |elif system.visits = 2:
            This is your third visit to this system
        |elif system.visits = 3:
            This is your fourth visit to this system
        |else:
            You have visited this system {system.visits} times
        }.

        {if !system.population:
            {OneOf("This system is unpopulated","There is no human presence here", "Humans have yet to colonise this system")}.
        |else:
            {F("System report")}
        }
test value is  {Humanise(MyDistance)}
        {if MyDistance :
            {Occasionally(7, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise (MyDistance)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
        }

        {if system.comment:
            You made a {OneOf("note", "comment", "remark")} {OneOf("about", "for", "on")} this system.  It {OneOf("is as follows", "says", "reads", "is")} {system.comment}.
        }
    }
}

I receive always a test value, and sometimes the distance

What i don't know i swich distance, at the start of the jump, or where i go?

Sorry, it's all my fault, i used an script from the 2.2 and merge stupidly with actual without think more than 2 second
 
Last edited:
Hello cmdrs and scripters! Any fix possible for this?

https://github.com/cmdrmcdonald/EliteDangerousDataProvider/issues/253#issuecomment-319975418

It's rly annoying and saddens me mucho... :(

It looks like the 'Ship Loadout' event gives the necessary data for the speech responder, but it would end up being a complete workaround of the EDDI Ship Monitor code, and a band-aid at best.

As much as it saddens me to say so, jgm made it pretty clear in his last post that he's moving on from EDDI to other things. Given that was his last post on the ED forum and his next to last posts were a final update to edcd.coriolis.io and him saying that he was no longer maintaining the Keyboard/HOTAS reference generator, I'd say what he's moving on to has nothing to do with Elite Dangerous.

I'm reluctant to speculate the reasons but if I was to hazard a guess, it's more than just burn-out. Given that he participated in the 3rd party dev strike and FDEV's commitment to changing that relationship has proven to be empty promises, plus the 2.3 update severely borking the API, without so much as a word from FDEV, adding insult to injury... yep, my bet is that he's done.

Long story, short... Unless someone with the requisite expirtise in C# and .NET picks up maintaining EDDI (as jgm suggested in his final post), this is as good as it gets.

Maybe hard to hear (read), but it's the reality we're faced with.
 
Last edited:
FWIW I am picking up the Keyboard/HOTAS reference generator. It's Python/web stuff, which I'm very comfortable with.

Now I have done my share of Win32 API dev, but I have only a passing acquaintance with the C# and .NET side of things. Still, if no one else is stepping up then I can at least pick up the torch and learn on the job.

https://github.com/cmdrmcdonald/EliteDangerousDataProvider

That said, I figure jgm may have some stuff going on IRL. We have been in touch about the Keyboard/HOTAS reference generator but my last PM has gone unanswered for a couple of weeks.
 
I have only a passing acquaintance with the C# and .NET side of things.

Ditto, I'm mainly a C++ and Java guy, with some minor experience in Win32 API & sockets. I'm teaching myself .NET right now... slow going though. Maybe between the two (or more?!?) of us, we can pick up the slack.

I downloaded the source from Github awhile back and have been familiarizing myself with the code base... where things are located and such. One of the issues that I'm investigating is the 'mission accepted' event doesn't seem to be populating the 'expiry' variable in the event object although the data is in the Journal event.. I haven't written up an issue yet due to jgm taking a (permanent?) sabbatical, but I will do so asap if we we have folks willing/able to start tackling the list.

That said, I figure jgm may have some stuff going on IRL.

True. RL has a way of smacking you up-side the head from time to time and demanding your attention... I will keep my future 'projecting' to a minimum. ;)
 
Last edited:
How do I change the Humanise variables? I have no problem changing the others but I would like to add and change some of the Humanise events.
 
I've noticed a discrepancy in the data returned when doing a StarSystem request / SystemDetails.
Testsystem : "Col 285 Sector GM-V d2-83"
Request to : http://api.eddp.co/systems/Col 285 Sector GM-V d2-83
Result = 3 bodies returned

Request to EDSM and EDDB both seems to be accurate, having 29 bodies.

https://github.com/cmdrmcdonald/EliteDangerousDataProvider/issues/266

The background for this is that I've updated my "Star system" report to include the count of bodies found - but it's been way off the correct count many times.
Hence I had to start checking which backend API the data was coming from.

I also noticed that the URI is hardcoded within .\DataProviderService\DataProviderService.cs which made me thinking that the API URI perhaps should have been a configuration setting in case we need to use a different DB and model at some stage. However the implication of opening up for other API & schemas may need some work to support those models.
 
Last edited:
I've noticed that if I do a Wake Scan , and find something I can't say TARGET to Voice attack and have it respond to the next wake , if EDDI is telling me about the last Wake Scan I just found

( also posted in the other thread as not sure where the issue is)
 
I've noticed that if I do a Wake Scan , and find something I can't say TARGET to Voice attack and have it respond to the next wake , if EDDI is telling me about the last Wake Scan I just found

( also posted in the other thread as not sure where the issue is)

I just double checked the player journal to be sure. There is no 'wake scanned' event in the player journal or accessible by EDDI. Do you mean a body scan?
 
I just double checked the player journal to be sure. There is no 'wake scanned' event in the player journal or accessible by EDDI. Do you mean a body scan?

No .... why would I mean body scan , LOL ,when I said I'm scanning wakes ? unless body scan whatever, is the code used for Wake scanning
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom