Bolt Event Example Issue with Type Conversion

Using Naninovel C# APIs: adding custom actor implementations or commands, overriding engine services, integrating with other systems, etc.
Post Reply
RodneyRindels
Posts: 1
Joined: 23 Apr 2021 20:49

Bolt Event Example Issue with Type Conversion

Post by RodneyRindels »

Image

The example in the Guide on Bolt (Visuall Script) integration shows a "Script Name" in the "Preload and Play Async", which obviously would take the String Parameter from Arg1 from the @bolt command and load that Script and Play it. Setting this Script Manually on the Bolt interface does indeed load the script and play it.

however as the example shows passing it in from the Event, I get a conversion error from System.String to Naninovel.Script conversion and ScriptName is not an option in Preload and Play Async, it only shows "Script" type now not ScriptName. I don't see any built in conversions to allow conversion from String to ScriptName that the Bolt action will allow. Is this a bug in the example or from an older version maybe and an additional bolt step is now required to convert? As mentioned, if i set the Script name manually it fires as expected, but I really want a generic Event I can reuse to dynamically load scripts at certain points.

This is what the newest version shows, it won't show the image if embedded, but the link shows the flow.
http://www.accuoss.com/wp-content/uploa ... 17_REC.png

Thanks In Advance for guidance
Rod

========= Error ======

UnobservedTaskException:Ludiq.InvalidConversionException: Cannot convert from 'System.String' to 'Naninovel.Script'.
at Ludiq.ConversionUtility.Convert (System.Object value, System.Type type, Ludiq.ConversionUtility+ConversionType conversionType) [0x00013] in Ludiq.Core.Runtime\Reflection\ConversionUtility.cs:472
at Ludiq.ConversionUtility.Convert (System.Object value, System.Type type) [0x00000] in Ludiq.Core.Runtime\Reflection\ConversionUtility.cs:215
at Bolt.Flow.GetValue (Bolt.ValueInput input, System.Type type) [0x00000] in Bolt.Flow.Runtime\Flow.cs:599
at Bolt.Flow.GetConvertedValue (Bolt.ValueInput input) [0x00000] in Bolt.Flow.Runtime\Flow.cs:609
at Bolt.InvokeMember.Invoke (System.Object target, Bolt.Flow flow) [0x000da] in Bolt.Flow.Runtime\Framework\Codebase\InvokeMember.cs:188
at Bolt.InvokeMember.Enter (Bolt.Flow flow) [0x00008] in Bolt.Flow.Runtime\Framework\Codebase\InvokeMember.cs:262
at Bolt.Flow.InvokeDelegate (Bolt.ControlInput input) [0x00046] in Bolt.Flow.Runtime\Flow.cs:456
at Bolt.Flow.Invoke (Bolt.ControlOutput output) [0x00039] in Bolt.Flow.Runtime\Flow.cs:350
at Bolt.Flow.Invoke (Bolt.ControlOutput output) [0x00044] in Bolt.Flow.Runtime\Flow.cs:354
at Bolt.Flow.Invoke (Bolt.ControlOutput output) [0x00044] in Bolt.Flow.Runtime\Flow.cs:354

Elringus
admin
Posts: 521
Joined: 11 May 2020 18:03

Re: Bolt Event Example Issue with Type Conversion

Post by Elringus »

Hi, The overload which takes string was moved to an extension method. I'm not very familiar with Bolt, but this topic seem to show how to make it work: https://support.ludiq.io/en/communities ... on-methods

Post Reply