Release EDDI 3.3 - Bring your cockpit to life

Hello @GJ51 , so that T'Kael doesn't get additional pressure (I think he still has some construction sites), you could exchange the variables for "event.stationtype".
Works pretty clean for me. It then looks like this:

Code:
{_ 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_station_model', event.stationtype)}
{SetState('eddi_context_landing_pad_pad', event.landingpad)}

{if event.stationtype = "Coriolis" ||
    event.stationtype = "Orbis" ||
    event.stationtype = "Bernal" ||
    event.stationtype = "Ocellus" ||
    event.stationtype = "AsteroidBase":
    {Pause(8000)}
    {F("Landing pad report")}
|else:
    {Pause(8000)}
    Landing pad {event.landingpad}
    {OneOf('ready', 'assigned', 'allocated')}
    {Occasionally(4, cat(', ', F('Honorific') ))}.
}

It's worth a try. ;)
Thanks for the suggestion. No change. Still fails.
 
:rolleyes: ... strange, with me it works ... ok, is the German version of ED ...

{ "timestamp":"2023-04-18T19:01:44Z", "event":"DockingGranted", "LandingPad":11, "MarketID":3227299328, "StationName":"Cassidy Gateway", "StationType":"Coriolis" }

You can check whether the journal contains the same information.

You can use {event.stationtype} to announce the station, i.e. the type. If you enter this at the very beginning or at the very end of the script "Docking granted" as written above, the station should always be announced. Then you would know if the if-query works (but I think it will, EDDisc. has read out the station type too.
Next step would be to examine the script "Landing pad report".

@Darkcyde had asked if you use a copy from the original character ? I think I remember, there was once a problem, if the original character is used. Just select "Copy character" below and choose a name. And then test again.
 
Last edited:
Thanks for the suggestion. No change. Still fails.
Just as a test, create a test copy of the default personality, and replace the docking granted script with a copy of my one. I doubt there will be any difference, but you never know.
Code:
{_ Context _}
{SetState('eddi_context_last_subject', 'landing pad')}
{SetState('eddi_context_landing_pad_system', system.systemname)}
{SetState('eddi_context_landing_pad_station', event.station)}
{SetState('eddi_context_landing_pad_station_model', event.stationtype)}
{SetState('eddi_context_landing_pad_pad', event.landingpad)}

{_ Check for a Docking Computer, and if it's enabled _}
{for compartment in ship.compartments:
    {if find(compartment.module.invariantName, "Docking") > -1:
        {set dockComp to true}
        {if compartment.module.enabled:
            {set dockCompOn to true}
        }
    }
}

{set station_type to event.stationDefinition.basename}
{set starports to ["AsteroidBase", "Bernal", "Coriolis", "CraterOutpost",
                   "CraterPort", "FleetCarrier", "Ocellus", "Orbis"]}
{set other_types to ["Mega-ship", "Megaship", "OnFootSettlement", "Outpost", "Settlement"]}

{if !dockComp || !dockCompOn:
    {if find(starports, station_type) > -1:
        {Pause(13000)}
        {F("Landing pad report")}
    |else:
        {if find(other_types, station_type) = -1: {Pause(9000)} }
        {Pause(2000)}
        {Occasionally(2,"Landing")} Pad
        {event.landingpad}
        {OneOf("{OneOf('has been made', 'is')} {OneOf('available', 'free', 'ready')}",
               "{Occasionally(2, 'has been')} {OneOf('assigned', 'allocated')}")}
        {OneOf("for {OneOf('landing', 'docking')}", "to {OneOf('use', 'dock at')}")}
        {Occasionally(4, ", {F('Honorific')}")}.
    }
    {if dockComp && !dockCompOn:
        Enable docking computer module to activate auto docking procedure.
    }
|else:
    {if find(starports, station_type) = -1 && find(other_types, station_type) = -1:
        {_ Report other station types not yet listed _}
        Station type: {station_type}.
    }
    
    {if find(other_types, station_type) = -1:
        {set volume to "medium"}
    |else:
        {set volume to "default"}
    }
    {Pause(2000)}
    {set notification to OneOf("Auto dock {OneOf('activated', 'engaged', 'in progress')}",
                               "Docking computer {OneOf('activated', 'engaged')}")}
    {SpeechVolume(notification, volume)}.
}
Note that I do have the volume set lower for large stations, so it doesn't talk over the in-game announcement.
 
Just as a test, create a test copy of the default personality, and replace the docking granted script with a copy of my one. I doubt there will be any difference, but you never know.
Code:
{_ Context _}
{SetState('eddi_context_last_subject', 'landing pad')}
{SetState('eddi_context_landing_pad_system', system.systemname)}
{SetState('eddi_context_landing_pad_station', event.station)}
{SetState('eddi_context_landing_pad_station_model', event.stationtype)}
{SetState('eddi_context_landing_pad_pad', event.landingpad)}

{_ Check for a Docking Computer, and if it's enabled _}
{for compartment in ship.compartments:
    {if find(compartment.module.invariantName, "Docking") > -1:
        {set dockComp to true}
        {if compartment.module.enabled:
            {set dockCompOn to true}
        }
    }
}

{set station_type to event.stationDefinition.basename}
{set starports to ["AsteroidBase", "Bernal", "Coriolis", "CraterOutpost",
                   "CraterPort", "FleetCarrier", "Ocellus", "Orbis"]}
{set other_types to ["Mega-ship", "Megaship", "OnFootSettlement", "Outpost", "Settlement"]}

{if !dockComp || !dockCompOn:
    {if find(starports, station_type) > -1:
        {Pause(13000)}
        {F("Landing pad report")}
    |else:
        {if find(other_types, station_type) = -1: {Pause(9000)} }
        {Pause(2000)}
        {Occasionally(2,"Landing")} Pad
        {event.landingpad}
        {OneOf("{OneOf('has been made', 'is')} {OneOf('available', 'free', 'ready')}",
               "{Occasionally(2, 'has been')} {OneOf('assigned', 'allocated')}")}
        {OneOf("for {OneOf('landing', 'docking')}", "to {OneOf('use', 'dock at')}")}
        {Occasionally(4, ", {F('Honorific')}")}.
    }
    {if dockComp && !dockCompOn:
        Enable docking computer module to activate auto docking procedure.
    }
|else:
    {if find(starports, station_type) = -1 && find(other_types, station_type) = -1:
        {_ Report other station types not yet listed _}
        Station type: {station_type}.
    }
 
    {if find(other_types, station_type) = -1:
        {set volume to "medium"}
    |else:
        {set volume to "default"}
    }
    {Pause(2000)}
    {set notification to OneOf("Auto dock {OneOf('activated', 'engaged', 'in progress')}",
                               "Docking computer {OneOf('activated', 'engaged')}")}
    {SpeechVolume(notification, volume)}.
}
Note that I do have the volume set lower for large stations, so it doesn't talk over the in-game announcement.
Same result. EDDI acknowledges "DC engaged" but then never gives the Landing pad report. Loading VA with EDDI.vap allows me to request the landing pad report ( I wrote a reques command in the vap) and it responds but doesn't know the pad # and just omits the number when it responds. Seems to me that the pad # is not being read after the docking granted executes so it never triggers the landing pad report.

No idea why that's the case. I did a complete wipe of EDDI using Revo uninstaller and started fresh with a clean install yesterday.

I've tested multiple times multiple ways with both the default and a Test personality and still get inconsistent results. Sometimes starting a new session of ED I'll get a system report/sometimes no. never get the landing pad report. Sometimes triggers respond instantly - other times there's significant delay.

It feels like EDDI is not reading the ED logfile consistently, but I have no idea wht the would be as my other apps have no problem. I akso use Status display and EDDiscovery and log events pop up instantly. During my attempts to isolate my EDDI issue I don't load the other apps so I can rule out conflicts.

Totally lost here... Why does EDDI respond to some event triggers and then die or get delayed by others ???

Baffled

EDIT: When I ask where the landing pad is I get a reply, "Not set." But the DC does put me down on the right pad.
 
Last edited:
Same result. EDDI acknowledges "DC engaged" but then never gives the Landing pad report. Loading VA with EDDI.vap allows me to request the landing pad report ( I wrote a reques command in the vap) and it responds but doesn't know the pad # and just omits the number when it responds. Seems to me that the pad # is not being read after the docking granted executes so it never triggers the landing pad report.

No idea why that's the case. I did a complete wipe of EDDI using Revo uninstaller and started fresh with a clean install yesterday.

I've tested multiple times multiple ways with both the default and a Test personality and still get inconsistent results. Sometimes starting a new session of ED I'll get a system report/sometimes no. never get the landing pad report. Sometimes triggers respond instantly - other times there's significant delay.

It feels like EDDI is not reading the ED logfile consistently, but I have no idea wht the would be as my other apps have no problem. I akso use Status display and EDDiscovery and log events pop up instantly. During my attempts to isolate my EDDI issue I don't load the other apps so I can rule out conflicts.

Totally lost here... Why does EDDI respond to some event triggers and then die or get delayed by others ???

Baffled

EDIT: When I ask where the landing pad is I get a reply, "Not set." But the DC does put me down on the right pad.
Oh, so EDDI does say that the docking computer is ready? You have a docking computer, and it is enabled? Then the landing pad report doesn't get spoken in that situation.

Looking at the default code, if you have a docking computer and it is active (in the right hand panel), EDDI will only say that it's ready, and will not give a pad report. The pad report is ONLY given when you DON'T have a docking computer, or it is deactivated in the right panel.
 
Oh, so EDDI does say that the docking computer is ready? You have a docking computer, and it is enabled? Then the landing pad report doesn't get spoken in that situation.

Looking at the default code, if you have a docking computer and it is active (in the right hand panel), EDDI will only say that it's ready, and will not give a pad report. The pad report is ONLY given when you DON'T have a docking computer, or it is deactivated in the right panel.
Solves that part of the equation...

THX
 
I dropped back to 4.01 and it has cleared up all the delay problems I was having when using VA/HCS voicepacks.

Thanks to all for your suggestions and input over the past few days.

I edited the Docking Granted code and dropped the skip of the landing pad report from the script.

Everything is responding instantly - no delays - and even though I don't really need it, I love having my landing pad reports back. :)

Big thanks again to all
 
You could put the line;
Code:
Execute external plugin, 'EDDI 4.0.1' using context 'shutup'
in the ((EDDI va inititalized)) event handler, should you have one, which will fire the line as soon as EDDI is initialised in VA
 
I'm back to using 4.01, but I had to clear things out to get a clean install. Having done so, I re-downloaded my EDSM log to that EDDI would know how many times I have been to each system.

In all honesty, this has never worked for me as each time I've done an EDDI re-installation the system visit counter goes back to zero. If there's a way to get this feature to work as claimed on the EDSM responder tab, I'd appreciate knowing how to do that.

Thanks again for any/all input.
 
API connection is important ☝️ ! But there are some problems with it at the moment ... (e.g. reading out the Launchbay ...) :rolleyes:

1682177384310.png

 
API connection is important ☝️ ! But there are some problems with it at the moment ... (e.g. reading out the Launchbay ...) :rolleyes:

View attachment 353579

The # times visited issue pre-dates the recent problems. It's been like this for as long as I've used EDDI.
 
Then there is probably another problem. For me it worked and works with my current 2nd account too, so at least last weekend.

There is a variable (system.visits) that counts the visits. But I think this number of visits is valid only for one session. The visits were once (and maybe still are) managed by a file called visitedstarscache.dat . If this is still the case, I don't know. By the way, the access to the file was changed by FD. Dr. Kai had written a program once, with which one could import this file. But that was a long time ago.
 
Last edited:
Back
Top Bottom