Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
The only changes are for new scripts, so using your existing modified personality will be fine.

Thank you, thats nice.

I changed nearly all spoken responses to be more rude.
I found it to be incredibly entertaining to hear EDDI swearing if something happens. ;)

Thinking about making different moods for EDDI so i can choose.
If that could be randomized then it would greatly increase the immersion i think.
Think about it ;)

Enjoying this so much.
THX again for this great great Software!!! [up]
 
Yes you need to use "{if event.iscommander" rather than "{if event.iscommander = true}



It would take a fair bit of time for me to build out a full event input, I'm afraid. I'll have a think if there is a simple way of doing this.

In the short term, is it possible to set/test an event key/value in the script edit block itself?

For example something like this:

Code:
[B]event.rating.name = master;[/B]


Interdicted by 
{if event.iscommander:
   commander
|else:
   npc
}

   {P(event.interdictor)} whos combat rank is {P(event.rating.name)}.

{P(event.interdictor)} is aligned to Faction {P(event.faction)} within the {P(event.power)}
 
Last edited:
It's in as part of the Ship Refuelled event. There's now a 'source', which can be 'Market' (for purchased fuel) or 'Scoop' (for scooped fuel).

Be aware that for some reason this event takes a while to show up in the journal, usually 5-10 seconds after scooping has completed.

so does that mean 5 to 10 secs after you've refuelled you trigger the ship refuelled event? and if it does, will it trigger if you do not fully refuel from a scoop?
 
Last edited:
so does that mean 5 to 10 secs after you've refuelled you trigger the ship refuelled event? and if it does, will it trigger if you do not fully refuel from a scoop?

EDDI passes the event as soon as it sees it. The event is triggered whenever fuel scooping finishes.
 
In the short term, is it possible to set/test an event key/value in the script edit block itself?

You can set variables with commands like "{set myvar to 2}", but there is a fair danger that by doing this you could mask issues in your script because of assumptions you make about the variables in the script. For example, in your suggestion above you tried setting the rating name to "master" but in fact rating is a simple string in this event. Also, the correct string would be "Master" not "master".

So yes, it is possible but I wouldn't advise it.
 
Below are my updated Fuel scripts for anyone interested:

Jumped Event
Code:
{set currentfuel to (event.fuelremaining / ship.fueltanktotalcapacity)}

{Pause(2000)}

{if icurrentfuel < 0.08:
   Warning! Ships Fueltank depleted! Running on reserves. Shutdown of non-essential Systems and sending out a Distress-call is recommended for survival, if no scoopable Star or refuelling Station in reach.
|elif currentfuel < 0.16:
  Warning: Ships Fueltank almost depleted. Immediate course correction to a System with scoopable Stars or Refueling Stations is required. {Humanise(event.fuelremaining)} Tons of Fuel remaining.
|elif currentfuel <= 0.25:
  Attention, Ships Fueltank more than 75% depleted. Fuelscooping the next viable Star is Advised. {Humanise(event.fuelremaining)} Tons of Fuel remaining.
|elif currentfuel <= 0.5:
  Attention, Ships Fueltank more than 50% depleted. {Humanise(event.fuelremaining)} Tons of Fuel remaining.
|elif currentfuel > 0.5:
  Postjump Fuel reserves within specified safety parameters.}

Ship refuelled event
Code:
{set currentfuel to (event.total / ship.fueltanktotalcapacity)}

{if event.source = "Scoop":
   {ShipName()} refueled with {event.amount} Tons,
|else
   {set currentfuel to ship.fueltanktotalcapacity}
        {ShipName()} refuelled with {event.amount} Tons for {event.price} Credits.}

{if currentfuel < 0.08:
   Warning! Ship running on Fueltank-external reserves. Fuelscooping is required for further Ship operations. Shutdown of non-essential Systems is advised until Fuel is replenished.
|elif currentfuel < 0.16:
  Warning: Fuel reserves still at minimum. Leaving without Fuelscooping is not advised! Current amount: {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel <= 0.25:
  Attention, Fuel reserves still below 75%. Additional Fuelscooping is Advised. Current amount: {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel <= 0.5:
  Attention, Fuel reserves still below 50%. Current amount: {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel < ship.fueltanktotalcapacity:
   and within specified safety parameters. Current amount: {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel = ship.fueltanktotalcapacity:
   Fueltank at maximum capacity.}

If there are any errors or other improvements i couldn't think of, pm me. Albeit scripting being alot of fun it is totally new to me and most of the time i trial-and-error my way through until it works :D

Thanks a lot!
If you dont mind.
I did shorten the whole thing a little bit as i felt it took to long when traveling fast from system to system.

Jumped event:

Code:
{set currentfuel to (event.fuelremaining / ship.fueltanktotalcapacity)}

{Pause(2000)}

{if icurrentfuel < 0.08:
  Danger! {P(ShipName())}s Fueltanks depleted! Running on reserves. Shutdown of non-essential Systems is adviced!. Emergency call transmitter standing by.  
|elif currentfuel < 0.16:
  Warning! {P(ShipName())}s Fueltanks almost depleted. Refueling is strongly recommended. {Humanise(event.fuelremaining)} Tons of Fuel remaining.
|elif currentfuel <= 0.25:
  Attention! Fuel reserves below 25%. {Humanise(event.fuelremaining)} Tons remaining.
|elif currentfuel <= 0.5:
  Attention! Fuel reserves below 50%. {Humanise(event.fuelremaining)} Tons remaining.
|elif currentfuel > 0.5:
  Fuel reserves within safety parameters.}


Ship refuelled event:

Code:
{set currentfuel to (event.total / ship.fueltanktotalcapacity)}

{if event.source = "Scoop":
   {ShipName()} refueled with {event.amount} Tons,
|else
   {set currentfuel to ship.fueltanktotalcapacity}
        {ShipName()} refuelled with {event.amount} Tons for {event.price} Credits.}

{if currentfuel < 0.08:
   Danger! {P(ShipName())} running on Fueltank external reserves. Shutdown of all non-essential Systems is advised!. Look for refueling possibilities immediately!
|elif currentfuel < 0.16:
  Warning: Fuel reserves at minimum! Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons. Refueling is adviced.
|elif currentfuel <= 0.25:
  Attention, Fuel reserves below 25%. Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel <= 0.5:
  Attention, Fuel reserves below 50%. Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel < ship.fueltanktotalcapacity:
   and within safety parameters. Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel = ship.fueltanktotalcapacity:
   Fueltanks at maximum capacity.}


Hope you like it.
 
Last edited:
I'll see what I can do to add this.



This is already available as the MaterialDonated event.



There is a MaterialDetails() function which allows you to obtain more information about a material, including rarity and category.



This is one event I haven't seen a lot of in terms of examples. I'll try to track some down and see what they say.


Is the MaterialDetails() function also accessible via VoiceAttack? Can you give an example of how it'd be used?
 
'Docked' event appears to be broken in 2.0.10.

I've tested it thoroughly at multiple stations. I'm consistently receiving a 'Docked' timestamp in my Journal log, but not hearing the 'Docked' speech responder script nor is ((EDDI docked)) being called.

That nuisance event fixed a bit too well, maybe? ;-)
 
Last edited:
Great tool, by far my favorite 3rd party one. It makes space a heck of a lot less lonely, especially when exploring.

One thing I've noticed is that EDDI's voice gets a lot louder once I'm docked in a station. I apologize if this has been brought up already, I didn't look through all 52 pages of this thread. Anyway, keep up the great work!
 
Thanks a lot!
If you dont mind.
I did shorten the whole thing a little bit as i felt it took to long when traveling fast from system to system.

Jumped event:

Code:
{set currentfuel to (event.fuelremaining / ship.fueltanktotalcapacity)}

{Pause(2000)}

{if icurrentfuel < 0.08:
  Danger! {P(ShipName())}s Fueltanks depleted! Running on reserves. Shutdown of non-essential Systems is adviced!. Emergency call transmitter standing by.  
|elif currentfuel < 0.16:
  Warning! {P(ShipName())}s Fueltanks almost depleted. Refueling is strongly recommended. {Humanise(event.fuelremaining)} Tons of Fuel remaining.
|elif currentfuel <= 0.25:
  Attention! Fuel reserves below 25%. {Humanise(event.fuelremaining)} Tons remaining.
|elif currentfuel <= 0.5:
  Attention! Fuel reserves below 50%. {Humanise(event.fuelremaining)} Tons remaining.
|elif currentfuel > 0.5:
  Fuel reserves within safety parameters.}


Ship refuelled event:

Code:
{set currentfuel to (event.total / ship.fueltanktotalcapacity)}

{if event.source = "Scoop":
   {ShipName()} refueled with {event.amount} Tons,
|else
   {set currentfuel to ship.fueltanktotalcapacity}
        {ShipName()} refuelled with {event.amount} Tons for {event.price} Credits.}

{if currentfuel < 0.08:
   Danger! {P(ShipName())} running on Fueltank external reserves. Shutdown of all non-essential Systems is advised!. Look for refueling possibilities immediately!
|elif currentfuel < 0.16:
  Warning: Fuel reserves at minimum! Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons. Refueling is adviced.
|elif currentfuel <= 0.25:
  Attention, Fuel reserves below 25%. Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel <= 0.5:
  Attention, Fuel reserves below 50%. Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel < ship.fueltanktotalcapacity:
   and within safety parameters. Currently {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel = ship.fueltanktotalcapacity:
   Fueltanks at maximum capacity.}


Hope you like it.

I don't mind at all. Feel free to change whatever you like as long as it works for you :)

I use the TTS at speed 1 so it reads faster.. maybe that'a why all that blabber is so long ;)
 
Last edited:
'Docked' event appears to be broken in 2.0.10.

I've tested it thoroughly at multiple stations. I'm consistently receiving a 'Docked' timestamp in my Journal log, but not hearing the 'Docked' speech responder script nor is ((EDDI docked)) being called.

That nuisance event fixed a bit too well, maybe? ;-)

FD removed some values from the Docked event without telling anyone, causing that event to be flagged as invalid. I'll put together a patch for this in the next few hours.
 
I tried a different approach for the responses one gets with the ship refuelled script so it is not as chatty if you are above 50% fuel. Turned out more and more complex.

What it now does:
- tells you amount scooped in a more human way "less than 1 ton, "approximately X Tons" instead of long decimals
- still gives you feedback if you are below 50% in several increments, tells you amount scooped and "current of max" capacity after.
- it tells you if your last scoop brought you above 50% and tells you amount scooped and "current of max" capacity after.
-if you are above 50% and scoop, it will stay quiet .. so in conjunction with my jumped script for fuel (with the last 2 lines removed) here somewhere in the thread.. if you are above 50% Fuel, which i consider totally safe, both scripts will stay quiet.
-if you reached maximum fuel capacity from scooping IF you were below 50% fuel when you began scooping it will tell you.. otherwise it will stay quiet.
-added a neutral response for refuelling on stations, using a Full Tank as "currentfuel" baseline since there is no variable for station refuel, telling your current fuel level (other than for scooping). So refuelling in 10% increments does not trigger the various fuel level responses.

Basically this changes the scripts from "all out information" to "relevant information only if needed"

Updated ship refuelled script

Code:
{set currentfuel to (event.total / ship.fueltanktotalcapacity)}

{if ((event.total - event.amount) / ship.fueltanktotalcapacity) < 0.5:
   {set safetycheck to 0}
|elif ((event.total - event.amount) / ship.fueltanktotalcapacity) >= 0.5:
   {set safetycheck to 1}}

{if event.source = "Scoop":
   {if safetycheck = 0:   
      {ShipName()} refuelled with
         {if round(event.amount) < 1:
             less than 1 Ton,
                 |else approximately {round(event.amount)} Tons.}}

|else {set safetycheck to 1}
           {set currentfuel to ship.fueltanktotalcapacity}
              {ShipName()} is being refuelled with 
                  {if round(event.amount) < 1:
                     less than 1 Ton
                        |else approximately {round(event.amount)} Tons for {event.price} Credits.}
}


{if currentfuel < 0.08:
   Warning! Ship running on Fueltank-external reserves. Fuelscooping is required for further Ship operations. Shutdown of non-essential Systems is advised until Fuel is replenished.
|elif currentfuel < 0.16:
  Warning: Fuel reserves still at minimum. Leaving without Fuelscooping is not advised! Current amount: {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel <= 0.25:
  Attention, Fuel reserves still below 75%. Additional Fuelscooping is Advised. Current amount: {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif currentfuel < 0.5:
  Attention, Fuel reserves still below 50%. Current amount: {Humanise(event.total)} of {ship.fueltanktotalcapacity} Tons.
|elif safetycheck = 0:
   Fuel reserves now within specified safety parameters.}

{if event.total = ship.fueltanktotalcapacity:
   {if event.source = "Scoop":
        {if safetycheck = 0:
            Scoop reports Tank at maximum capacity.}}
|elif event.source = "Market":
     Station reports refuelling complete.
}

As always feel free to change anything you like and give me feedback (best per pm to keep the thread clean) if something does not work as it should.
 
Last edited:
jgm, as not everybody has access to fdev's api, would it be possible for you to update the docs to indicate where you get the details from for the non journal variables?

I'm specifically wanting to know right now where {DEC:Ship total fuel tank capacity} gets it's info from?
 
Great tool, by far my favorite 3rd party one. It makes space a heck of a lot less lonely, especially when exploring.

One thing I've noticed is that EDDI's voice gets a lot louder once I'm docked in a station. I apologize if this has been brought up already, I didn't look through all 52 pages of this thread. Anyway, keep up the great work!

This is probably due to the 'distort voice on damage' option in the text-to-speech tab. I'd recommend turning this off if it is causing weirdness on your system.
 
jgm, as not everybody has access to fdev's api, would it be possible for you to update the docs to indicate where you get the details from for the non journal variables?

I'm specifically wanting to know right now where {DEC:Ship total fuel tank capacity} gets it's info from?

Funnily enough I was just updating the docs to give a bit more of an overview of how EDDI works. It'll be merged soon, but in the meantime you can see it athttps://github.com/cmdrmcdonald/EliteDangerousDataProvider/tree/feature/docs
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom