cmdrmcdonald / EliteDangerousDataProvider

Apache License 2.0
133 stars 31 forks source link

Beta 2.3 FSD engaged command in VoiceAttack #196

Closed JCalvertJoshua closed 7 years ago

JCalvertJoshua commented 7 years ago

Hi, I'm using the EDDI 2.3 beta and have a problem with the new FSD engaged command when using VA. In the non-beta version I had the "Jumping" script unchecked and I made two new scripts "Jumping Full" and "Jumping Minimal". The first was a copy of the "Jumping" script and the second one was also a copy but with some elements deleted. In VA I had a ((EDDI jumping)) command in which, depending on a variable, the "Jumping Full" or "Jumping Minimal" script was called. In the beta version I did the same but only now with the "FSD engaged" script so I unchecked this script, made the "FSD engaged Full" and "FSD engaged Minimal script" (didn't delete the elements I don't want to hear in the minimal mode yet). In VA I renamed the command to ((EDDI FSD engaged)), renamed the scripts to call from that as well and started Elite to try it out but it didn't work. I then tried with a simpler version of the ((EDDI FSD engaged command)) which had no content but that also didn't work. So, to make a long story short, in the none beta version when I made a VA command like ((EDDI event)) which was empty and I unchecked the "Event" script in the speechresponder the script would run if I was using VA and would not run if I didn't use VA but EDDI standalone instead. Now it seems the unchecked script will not run when called from VA. Am I doing something wrong ?

cmdrmcdonald commented 7 years ago

Your VA script needs to be called ((EDDI fsd engaged)) (note the lower-case FSD).

JCalvertJoshua commented 7 years ago

I changed it to lower case but that didn't make it work. I looked at the eddi.log and noticed this just below the line which said it executed the command ((EDDI fsd engaged) 2017-04-20T06:24:00 ScriptResolver:resolve [D] Resolving script fsd engaged full 2017-04-20T06:24:00 ScriptResolver:resolve [D] No script

I then checked in the speechresponder if the script name "fsd engaged full" was correct and it was but just to make sure I changed it to "full" and tried again. Now the log says: 2017-04-20T06:49:25 ScriptResolver:resolve [D] Resolving script full 2017-04-20T06:49:25 ScriptResolver:resolve [D] Found script 2017-04-20T06:49:25 ScriptResolver:resolveScript [D] Turned script {_ Context }......

So it looks like it's found the script and is executing it but eddi doesn't say anything.

I've attached the log file so maybe you can take a look at it.

eddi.log.txt

JCalvertJoshua commented 7 years ago

closed by accident so re-opend

cmdrmcdonald commented 7 years ago

The problem here is that you are calling a template in the speech responder that expects to be run by an event. The first active line of the template is:

{if event.target = 'Hyperspace':

but event.target will be blank.

I'm not sure why you are going in to VoiceAttack and back out, but a better solution would e to use state variables in a custom "FSD engaged" template. Something like:

{if state.verbose = 0:
  Say little
|else
  Say lots
}

And then in VoiceAttack you can use the setstate plugin context to change the value of verbose. Details of how to do this are at https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/VoiceAttack.md#setstate

JCalvertJoshua commented 7 years ago

Thanks for the reply. When I'm playing I'm using VoiceAttack all the time. Only when I'm changing or testing VA command's or Eddi scripts I restart VA after an edit in VA or Eddi (if that's what you mean by going in and out to VA). I've been using this method of calling a different "Jumping" script depending on a VA-variable for a long time without problems but that was before the change from "Jumping" to "FSD engaged". From your reply I understand it wasn't only a name change but the way the script works is also changed. I'm gonna try your solution with the state variables.