Author Topic: How do i, (ED) set/save/retrieve multiple EDDI mission ID's and station names?  (Read 5151 times)

FireSammy

  • Newbie
  • *
  • Posts: 43
First try failed miserably. I'm stuck with these. I can't get this trough my thick head... Feeling like a total moron :/
Plz help

There is no problem, when have accepted just one mission. EDDI's last mission accepted ID can be easily matched "if equal to" mission completed ID. Same with the mission destination station name. Problem is, when one accepts more than one or more missions, and two or more different destination stations. I would love to have station checks for all commands after the ((EDDI docked)) but no joy.

Everything else works here, but not the 'destination station' and "mission ID match" checks.

Note: Nothing can be saved into the windows clipboard, because i have many commands that uses it and they have 'clear clipboard' at command ends. I really do not seem to understand how the (Save value to profile) and (Retrieve saved value) works? Yah i know i'm a moron... :(

Here goes:
Code: [Select]
((EDDI Mission accepted))
(comment line: Next variables are set for checking if there are any,- or exactly how many missions there are to be completed in the current stations mission board/passenger lounge)
Set decimal [Mission number set] value to the converted value of {SMALL:mission} (round to 0 decimal places)
Begin Text Compare : [{TXT:EDDI mission accepted destinationstation}] Does Not Contain 'Not set'
    Set Text [Destination station set] to '{TXT:EDDI mission accepted destinationstation}' (save value to profile)
    Write '[Black] The destination station set: {TXT:Destination station set}' to log
End Condition
(comment line: Next variables are set having automatic unique name(s) containing the accepted mission ID to be matched when completing the mission)
Begin Decimal Compare : [EDDI mission accepted missionid] Does Not Equal 0
    Set date [In-game time UTC] value to the current date/time (UTC)
    Set Text [Mission time set] to '{TIME:In-game time UTC}:{TIMESECOND:In-game time UTC} {TIMEAMPM:In-game time UTC}'
    Set decimal [Mission ID set] value to the converted value of {DEC:EDDI mission accepted missionid} (round to 0 decimal places) (save value to profile)
    Write '[Black] Mission number: {DEC:Mission number set}' to log
    Write '[Black] Mission time set: {TXT:Mission time set}' to log
    Write '[Black] Mission ID number set: {DEC:Mission ID set}' to log
End Condition

Then after landing:
Code: [Select]
((EDDI Docked))
gives all small init values + [Enter Hangar] waiting until completes

[Full station services] command:
Begin Small Integer Compare : [ship docked] Equals 1
    Begin Small Integer Compare : [ship in hangar] Equals 1
        Execute command, 'Starport services;Station services;Enter station services;Enter starport services' (and wait until it completes)
        Execute command, 'Station restock;Restock;Refuel;Repair;Rearm' (and wait until it completes)
        Execute command, 'Station fines;Pay fines;Check fines' (and wait until it completes)
        Execute command, 'Station legacy fines;Pay legacy fines;Check legacy fines' (and wait until it completes)
        Execute command, 'Station contacts;Claim bounty rewards;Check bounty rewards;Claim bounties;Local bounty vouchers;Station local targets;Check bounties' (and wait until it completes)
        Execute command, 'Station trade dividends;Station transactions;Claim trade dividends;Trade dividends;Check trade dividends' (and wait until it completes)
        Execute command, 'Station intel packages;Intel packages;Claim intel packages;Check intel packages' (and wait until it completes)
        Execute command, 'Station combat bonds;Combat bonds;Check combat bonds' (and wait until it completes)
        Set Text [{TXT:Last station name}] to 'Station destination check'
        Set Text [{TXT:Station destination check}] to [Saved Value]
        Begin Text Compare : [{TXT:Station destination check}] Equals '{TXT:Last station name}'
            Write '[Black] Destination station match found to: {TXT:Station destination check}' to log
        End Condition
        Begin Boolean Compare : [normal mission] Equals True
            Execute command, 'Station mission board;Go to mission board;Mission board;Missions board;Open mission board' (and wait until it completes)
        End Condition - Exit when condition met
        Begin Boolean Compare : [passenger mission] Equals True
            Execute command, 'Station passenger lounge;Go to passenger lounge;Passenger lounge;Passengers lounge;Open passenger lounge' (and wait until it completes)
        End Condition - Exit when condition met
    End Condition
End Condition

When completing a mission in the mission board:
Code: [Select]
((EDDI Mission completed))
Set decimal [Mission completed ID] value to the converted value of {DEC:EDDI mission completed missionid} (round to 0 decimal places)
Write '[Black] Mission ID completed: {DEC:Mission completed ID}' to log
Set Text [{DEC:Mission completed ID}] to [Saved Value]
Begin Text Compare : [{DEC:EDDI mission completed missionid}] Does Not Equal '{TXT:{DEC:Mission completed ID}}'
    Write '[Black] Mission ID has not been found: {TXT:{DEC:Mission completed ID}}' to log
    Set Text [Script] to 'Mission ID has not been found: {TXT:{DEC:Mission completed ID}}'
    Execute external plugin, 'EDDI 2.3.0' and wait for return
    Set Text [Script] to [Not Set]
End Condition
Begin Text Compare : [{DEC:EDDI mission completed missionid}] Equals '{TXT:{DEC:Mission completed ID}}'
    Write '[Black] Mission ID match: {TXT:{DEC:Mission completed ID}}' to log
    Set Text [Script] to 'Mission ID match'
    Execute external plugin, 'EDDI 2.3.0' and wait for return
    Set Text [Script] to [Not Set]
    Set Text [{DEC:Mission completed ID}] to [Not Set] (save value to profile)
    Set Text [{TXT:Station destination check}] to [Not Set] (save value to profile)
End Condition

 :o :-[


Edited: By the way, just came to me that i'm actually running a SnakeTail reader all the time -reading the EDDI json file close to real time. Any ideas how this could be used solving my problem, or any other past events that needs to be check'd and/or named to be retrieved/read?  :o


« Last Edit: August 14, 2017, 11:51:20 AM by FireSammy »

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4782
  • RTFM
I don't have any experience with EDDI or even Elite: Dangerous, so I can only comment on the VoiceAttack side of things, but
Code: [Select]
Begin Text Compare : [{DEC:EDDI mission completed missionid}] Does Not Equal '{TXT:{DEC:Mission completed ID}}'
    ...
End Condition
Begin Text Compare : [{DEC:EDDI mission completed missionid}] Equals '{TXT:{DEC:Mission completed ID}}'
    ...
End Condition
Seems like it's both redundantly checking the same thing twice, where
Code: [Select]
Begin Text Compare : [{DEC:EDDI mission completed missionid}] Does Not Equal '{TXT:{DEC:Mission completed ID}}'
    ...
Else'
    ...
End Condition
Would provide the same outcome, as the condition either returns true or false, so if it's not one value it must be the other.


But, more importantly, you're comparing a decimal value to a text value, E.G. if "EDDI mission completed missionid" is set to "1", you're comparing that value to the contents of a text value name "1".

There's an important distinction between a text compare using variable names, and a text compare using tokens. This is noted in the tooltip for the "Variable Name / Token" field: "If a token is used, the rendered value of the token is used instead of a variable", I.E. rather than comparing two variables, you're comparing the literal value of  "EDDI mission completed missionid" to the literal value of a text variable with the name of the value of "EDDI mission completed missionid", which will likely return "Not Set".

FireSammy

  • Newbie
  • *
  • Posts: 43
Thanks for the fast reply again. I understand this might look a bit odd with the EDDI variables, but both of these {DEC:EDDI mission accepted missionid} and {DEC:EDDI mission completed missionid} will give the same unique 7 figure DEC:number.

The {TXT:EDDI mission accepted destinationstation} will give the correct station name to go to after the mission objectives have been met, for completing the missions. Also i'm trying to check if this variable is matching it {TXT:Last station name} which also gives the correct station name if/when i have docked into a station.

The problem is, like i stated before. It can take hours, days, even a whole week (depending the gaming activity and the mission time window for objectives, etc.) -since the mission accepted variables have been given, and there can be over 20 missions taken + two or more stations to go to redeem/complete them.

Obviously I'm looking for automation here for future VR playing, and for example, if making a "pitstop" at some station, it would not open the mission board,-or the passenger lounge, if i don't have any mission destinations set there.

And that's not all. This is just for starters and testing. If this could be solved, there is great potential to make it more "AI -like" reminding the player to do stuff, depending what has been previously set, if only could save and retrieve/read EDDI's variables -which gives us a lot of variables to work with using VA. EDDI is simply a superfantastic thing to have, as is of course the VA too! :)

Anyways, I somewhat understand what you are trying to advise, but still i don't quite get it... Or in other words, i can't see it -where it is that i have it wrong. I guess i have 'a variable blindness' for this lol

Youtube, VA tooltips etc. trust me. hours spent looking for solution, and there are some stuff there that are close, but i find extremely hard to adjust and fit into this thing. Again i red the VA help list from top to bottom, i can't get it  :o

Maybe saving to VA profile is not the best way, but perhaps the 'Write text to a file' -function such as a named note pad would work better and more reliably, but again i don't know how to make VA to read/search certain variables, names or numbers from there + how to overwrite/delete just that one match from this file IF found?

I read somewhere that 'make own plugin'... eerh  ;D :o

I can barely manage the basics for these given app's so making my own app/plugin is quite far fetched at this point  :o :P
« Last Edit: August 15, 2017, 02:14:24 AM by FireSammy »

FireSammy

  • Newbie
  • *
  • Posts: 43
I think i actually managed to solve this. Works pretty much the same way when saving to a file (preferably a text file/notepad). Therefore, here is a short version. I hope this helps others.

E:D + Voiceattack w. EDDI plugin.

((EDDI mission accepted))
Code: [Select]
Begin Boolean Compare : [EDDI mission accepted communal] Equals True
    Write '[Blue] Mission accepted for community goal: {BOOL:EDDI mission accepted communal}' to log
    Set small int (condition) [community goal mission] value as incremented by 1 (save value to profile)
End Condition - Exit when condition met

((EDDI mission completed))
Code: [Select]
Set small int (condition) [community goal mission] value to [Saved Value]

[img]Retrieve a saved value from profile.JPG[/img]

Begin Small Integer Compare : [community goal mission] Is Greater Than 0
    Begin Boolean Compare : [EDDI mission completed communal] Equals True
        Write '[Blue] Community goal mission completed: {BOOL:EDDI mission completed communal}' to log
        Set small int (condition) [community goal mission] value as decremented by 1 (save value to profile)
        Set Text [Script] to 'Community goal mission completed. Remaining: {SMALL:community goal mission}'
        Execute external plugin, 'EDDI 2.3.0' and wait for return
        Set Text [Script] to [Not Set]
        Begin Small Integer Compare : [community goal mission] Equals 0
            Set small int (condition) [community goal mission] value to [Not Set] (save value to profile)
            Set Text [Script] to 'All community goal missions completed'
            Execute external plugin, 'EDDI 2.3.0' and wait for return
            Set Text [Script] to [Not Set]
        End Condition - Exit when condition met
    End Condition - Exit when condition met
End Condition

Note. The original topic mentioned "mission ID". The values saved, can have numeric values, or text values, or both. All you need to do is make absolutely sure, you have the correct names and/or values to retrieve and of course when make conditional compare blocks to match them. Lately my approach has been "better to check/match more than one value, than just one" -if possible. Cheers

PS:Edit: Obviously i dont know how to insert an image in there, but again i would hope this is clear enough  :)

kenjiro

  • Guest
Hello there!

I am new to voice attack and EDDI and I am having a hard time to work some things out.

How can I retrieve the name of the station I am approaching (which is selected when I drop out of supercruise and I want to ask dock permission)? When I issue my "request docking" command, I would like Voice Attack to say something like:

"Flight control of [STATION NAME], this is [SHIP ID] [SHIP NAME] asking permission to land/dock"

I believe it is possible, because when I drop near the station EDDI says something like "you dropped from supercruise near station BLABLABLA".

Any hints on that?

Thanks for your attention

FireSammy

  • Newbie
  • *
  • Posts: 43
Firstly, if/when you have a question that is not clearly related to the current topic/post, i would recommend making a separate post for it. Otherwise different issues will get mixed. EDDI is quite large and complex matter to discuss under this post. Please create a new topic for this, so i can then look into it, cheers :)