GuideMe (TeaseMe v2.0) - Current Build 0.4.4

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

lawman5297
Explorer At Heart
Explorer At Heart
Posts: 156
Joined: Tue May 30, 2017 1:18 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by lawman5297 »

I have a feature request. This would be a function for the "debug" mode. First I think the "Delay" button should be renamed to "Next." This is more descriptive of what it does. I think also a "Pause" button would be helpfull. As I test or find issues I write them down and then go back and fix them. It would be helpfull to just pause that page then go to the XML and correct or even look at the appropiate log, make the correction and go on.
User avatar
bobhill
Explorer At Heart
Explorer At Heart
Posts: 164
Joined: Tue Mar 15, 2016 8:49 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by bobhill »

lawman5297 wrote: Sat Nov 28, 2020 11:55 am I have a feature request. This would be a function for the "debug" mode.
Wow, great suggestion. Also, this made me think of the Debug Pop Up Window, accessed via "Option + D".

On the "Variables" tab, having a horizontal scroll bar would be helpful, as some values are not visible. Also, having the capability to see array variable values would be very helpful - not sure how feasible that would be to implement.
EroticDevelopment
Explorer
Explorer
Posts: 36
Joined: Thu Oct 15, 2020 3:32 am
Gender: Male
Sexual Orientation: Straight
Location: USA

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by EroticDevelopment »

v0.4.2 is officially released!

I'll be adding to the documentation page shortly to list the available overRide functions, but in the meantime you can see all of the available functions and their parameters here on GitHub. It's not as clean as proper documentation, but it does show all the options.

As mentioned in the summary, the Linux build is still very much an Alpha build and may not be stable. I've tested it a bit, but I can only test in a Virtual Machine at the moment which is less than ideal. MacOS builds will hopefully be coming, but the Java interface framework GuideMe uses isn't playing nice with Mac so I have some work to do there.

Lastly, I went ahead and did some work to provide a better guarantee of Audio/Video synchronization if you have a page with both Audio and Video components. I highly encourage you to make sure video files are optimized for streaming if you plan to have them synchronized with audio. Some video tools call this "fast start" or "optimize for web/streaming". The technical requirement is that an MP4 have the MOOV before the MDAT section. This allows VLC to start playing the file quicker, and is somewhat critical to having them synchronized. MP4Box is one of the best tools for this. Running the following command will produce a file that will begin playing as well as seek to a specific time significantly faster. The installer from GPAC has an option to just install MP4Box if you uncheck everything else.

Code: Select all

MP4Box -inter 500 VideoFile.mp4
bobhill wrote: On the "Variables" tab, having a horizontal scroll bar would be helpful, as some values are not visible.
This was a quick fix and made it into the 0.4.2 release.
bobhill wrote: Also, having the capability to see array variable values would be very helpful - not sure how feasible that would be to implement.
Can you provide a scriptVars.put example that demonstrates this? I tried some array variables and they all seemed to show for me. It's possible one of the 3rd parts dependencies I updated resolved this as well.
lawman5297 wrote: I have a feature request. This would be a function for the "debug" mode. First I think the "Delay" button should be renamed to "Next." This is more descriptive of what it does. I think also a "Pause" button would be helpfull. As I test or find issues I write them down and then go back and fix them. It would be helpfull to just pause that page then go to the XML and correct or even look at the appropiate log, make the correction and go on.
I agree, these would be nice features. The button name is easy, although I may look at having an option for this in case others like the "Delay" label. The "Pause" feature may be a bit more complicated, and I haven't had much time to look at this yet.
philo
Explorer At Heart
Explorer At Heart
Posts: 831
Joined: Sun Jan 08, 2012 3:10 pm
Gender: Male
Sexual Orientation: Straight
Location: UK

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by philo »

lawman5297 wrote: Sat Nov 28, 2020 11:55 am I have a feature request. This would be a function for the "debug" mode. First I think the "Delay" button should be renamed to "Next." This is more descriptive of what it does. I think also a "Pause" button would be helpfull. As I test or find issues I write them down and then go back and fix them. It would be helpfull to just pause that page then go to the XML and correct or even look at the appropiate log, make the correction and go on.
The reason it is labeled Delay is, it acts as if the delay on the page has reached the time it would be triggered.
I am not saying it shouldn't be changed, but Delay is probably more descriptive of what it actually does than Next.
tr0gd0r
Explorer
Explorer
Posts: 18
Joined: Fri Jan 03, 2020 3:08 am

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by tr0gd0r »

Hey, so I found an issue with saving/restoring the tease state which used to work. I have an array of objects, and those objects have arrays along with some other values. When reloading the tease it seems the arrays within the objects are not restored, leading to a javascript error like "JavaScriptError line 12 column 0 Source null error Java class "java.util.ArrayList" has no public instance field or method named "0"."

I created a repro and tried it on 0.3.8 and it works, but seems broken in 0.4.1 & 0.4.2. Just load the xml and it will create an array of objects each of which has an array of numbers, then it goes to a second page and prints them out. If you then reload the xml it will generate an error, whereas in 0.3.8 it works.

Thanks for all your efforts!
Attachments
Test.zip
Repro test case
(637 Bytes) Downloaded 128 times
User avatar
PlayfulGuy
Experimentor
Experimentor
Posts: 1068
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by PlayfulGuy »

tr0gd0r wrote: Sun Dec 20, 2020 4:14 am Hey, so I found an issue with saving/restoring the tease state which used to work. I have an array of objects, and those objects have arrays along with some other values. When reloading the tease it seems the arrays within the objects are not restored, leading to a javascript error like "JavaScriptError line 12 column 0 Source null error Java class "java.util.ArrayList" has no public instance field or method named "0"."

I created a repro and tried it on 0.3.8 and it works, but seems broken in 0.4.1 & 0.4.2. Just load the xml and it will create an array of objects each of which has an array of numbers, then it goes to a second page and prints them out. If you then reload the xml it will generate an error, whereas in 0.3.8 it works.

Thanks for all your efforts!
That's interesting. As far as I know saving and restoring of arrays was broken in all of the 3.x versions. It was apparently fixed in an early test release of 4.0 that I tested for Philo. I haven't tried it yet in 4.1 or 4.2.

PG
EroticDevelopment
Explorer
Explorer
Posts: 36
Joined: Thu Oct 15, 2020 3:32 am
Gender: Male
Sexual Orientation: Straight
Location: USA

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by EroticDevelopment »

tr0gd0r wrote: Hey, so I found an issue with saving/restoring the tease state which used to work. I have an array of objects, and those objects have arrays along with some other values. When reloading the tease it seems the arrays within the objects are not restored, leading to a javascript error like "JavaScriptError line 12 column 0 Source null error Java class "java.util.ArrayList" has no public instance field or method named "0"."
I've released version 0.4.3 to resolve this issue.

To get into the technical details a bit, JavaScript is handled by a library called Rhino from Mozilla. The issue appeared to be in the library, so I've updated it to the latest version. In general this is a good thing, but it's also a touch scary. The JavaScript processing is complex and difficult to test, so while it fixed this issue it's definitely possible a different issue was created from this update. Because this library is partially responsible for saving and restoring state, any existing .state files will not be able to be copied over to this version.

If you notice any issues, please let me know and include a test XML script if at all possible.

philo wrote: The reason it is labeled Delay is, it acts as if the delay on the page has reached the time it would be triggered.
I am not saying it shouldn't be changed, but Delay is probably more descriptive of what it actually does than Next.
This is a good point, and was my line of thinking as well. In many ways, this feature just turns Debug tags into buttons so having it labeled Delay is somewhat meaningful. Along those lines, several teases have a "Next" button already so renaming this could cause confusion. I think the best approach would be to make this an app setting and everyone can set the button how they like. That way it can be changed for a specific tease as well if there's a name conflict.
User avatar
Trusfrated
Explorer At Heart
Explorer At Heart
Posts: 465
Joined: Mon Nov 08, 2010 8:41 am
Gender: Male

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by Trusfrated »

ZeeWW wrote: Sun Dec 27, 2020 1:06 pm I hope I'm posting in the correct thread..? I have moved to a new laptop and all works well apart from the images on the GuideMe teases are too large. Can someone describe how I rescale the images so they fit on my screen?
The are a couple settings in Application Preferences that you could check. One is called "Maximum Image Scaling % (0 Unlimited)" and the other is "Image Scale Factor". Mine are set at 0 and .8, respectively. You might try playing with either or both of those and see what kind of results that gives you.

Hope that helps! :wave:
ImageImage
tr0gd0r
Explorer
Explorer
Posts: 18
Joined: Fri Jan 03, 2020 3:08 am

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by tr0gd0r »

EroticDevelopment wrote: Thu Dec 24, 2020 3:50 am
tr0gd0r wrote: Hey, so I found an issue with saving/restoring the tease state which used to work. I have an array of objects, and those objects have arrays along with some other values. When reloading the tease it seems the arrays within the objects are not restored, leading to a javascript error like "JavaScriptError line 12 column 0 Source null error Java class "java.util.ArrayList" has no public instance field or method named "0"."
I've released version 0.4.3 to resolve this issue.

To get into the technical details a bit, JavaScript is handled by a library called Rhino from Mozilla. The issue appeared to be in the library, so I've updated it to the latest version. In general this is a good thing, but it's also a touch scary. The JavaScript processing is complex and difficult to test, so while it fixed this issue it's definitely possible a different issue was created from this update. Because this library is partially responsible for saving and restoring state, any existing .state files will not be able to be copied over to this version.

If you notice any issues, please let me know and include a test XML script if at all possible.
That seems to fix it thanks!

I do have one more request to make (hopefully the last one): can we get a setImage method on Guide, so I can change images from a button callback? I have tried to get my image centered using setLeftHtml/setLeftBody, and can't get it to work for the life of me!

I did find another minor bug here as well: after calling setLeftBody, resizing the image pane results in the last image set by setImage() being displayed instead of the html. Not a major bug but thought you might want to know. I've attached a repo for that.

Again, thanks for all your work here!
Attachments
Test2.zip
Repo for pane resize bug
(5.12 KiB) Downloaded 142 times
lawman5297
Explorer At Heart
Explorer At Heart
Posts: 156
Joined: Tue May 30, 2017 1:18 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by lawman5297 »

To EroticDevelopment:

With respect to the "if-set" and "if-not-set" attritubes to the text node that you so kindly added: can you use multiple values?
Example:
<Text if-set="1+2+3">
<Text if-set="1,2,3">

Or are single values all that are allowed?

Thanks!
User avatar
PlayfulGuy
Experimentor
Experimentor
Posts: 1068
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by PlayfulGuy »

lawman5297 wrote: Wed Jan 06, 2021 7:16 pm To EroticDevelopment:

With respect to the "if-set" and "if-not-set" attritubes to the text node that you so kindly added: can you use multiple values?
Example:
<Text if-set="1+2+3">
<Text if-set="1,2,3">

Or are single values all that are allowed?

Thanks!
Have you tried this? I posted some sample code here that might help you test it.

The syntax would be

Code: Select all

<Text if-set="1+2+3">
for If 1 AND 2 AND 3 are all set
or

Code: Select all

<Text if-set="1|2">
for if either 1 OR 2 is set (or both)

PG
lawman5297
Explorer At Heart
Explorer At Heart
Posts: 156
Joined: Tue May 30, 2017 1:18 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by lawman5297 »

PlayfulGuy wrote: Thu Jan 07, 2021 8:22 pm


Have you tried this? I posted some sample code here that might help you test it.

The syntax would be

Code: Select all

<Text if-set="1+2+3">
for If 1 AND 2 AND 3 are all set
or

Code: Select all

<Text if-set="1|2">
for if either 1 OR 2 is set (or both)

PG
When I try this;

<Page id="test" unset="1,2,3">
<Button target="test1" set="1">this sets 1</Button>
<Button target="test1" set="1+2">this sets 1 and 2</Button>
<Button target="test1" set="2">this sets 2</Button>
<Button target="test1" set="3">this sets 3</Button>
<Button target="test1" set="2+3">this sets 2 and 3</Button>
</Page>
<Page id="test1">
<Button target="test">return to test</Button>
<Text if-set="1">1 is set</Text>
<Text if-set="2">2 is set</Text>
<Text if-set="3">3 is set</Text>
<Text if-set="1,2">1 or 2 is set</Text>
<Text if-set="1+2"> 1 and 2 are set</Text>
<Text if-set="2+3"> 2 and 3 are set</Text>
</Page>

The text for the single number sets will show but not the multi so I guess that function is not valiable.
User avatar
PlayfulGuy
Experimentor
Experimentor
Posts: 1068
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by PlayfulGuy »

lawman5297 wrote: Thu Jan 07, 2021 10:10 pm
When I try this;

<Page id="test" unset="1,2,3">
<Button target="test1" set="1">this sets 1</Button>
<Button target="test1" set="1+2">this sets 1 and 2</Button>
<Button target="test1" set="2">this sets 2</Button>
<Button target="test1" set="3">this sets 3</Button>
<Button target="test1" set="2+3">this sets 2 and 3</Button>
</Page>
<Page id="test1">
<Button target="test">return to test</Button>
<Text if-set="1">1 is set</Text>
<Text if-set="2">2 is set</Text>
<Text if-set="3">3 is set</Text>
<Text if-set="1,2">1 or 2 is set</Text>
<Text if-set="1+2"> 1 and 2 are set</Text>
<Text if-set="2+3"> 2 and 3 are set</Text>
</Page>

The text for the single number sets will show but not the multi so I guess that function is not valiable.
The syntax to set or unset multiple flags is set="1,2", not set="1+2". If you change the two lines I highlighted in red it should work.
This has caught me before too. The phrase set="1+2" actually sets a single flag named "1+2" rather than setting the two flags 1 and 2. Unfortunately if you try to test that using if-set="1+2" Guideme reads it as 1 And 2, so it doesn't work properly.

When you set or unset flags you provide a comma separated list.
To test them (if-set/if-not-set) you use the + and | to specify And and Or combinations like 1+2 or 1|2.
You can also combine if-set and if-not-set in statements like

Code: Select all

      <Text if-set="1|2" if-not-set="3"> 1 or 2 or both is set, 3 is not set</Text>    
Complex combinations are not possible directly and may need multiple sections to detect all your conditions.
For example, you can't combine And and Or like

Code: Select all

      <Text if-set="1|2+3" > Doesn't work</Text>    
So you need to do

Code: Select all

      <Text if-set="1+3" > If 1 and 3 are set</Text>    
      <Text if-set="2+3" > If 2 and 3 are set</Text>    
Also I believe the nodes are processed in the order listed, but I'm not sure what happens if more than one matches. It could be the first match is used, or all matches are merged.

If you work that out let us know the results.

To get really complex you have to figure out all the possibilities like

Code: Select all

      <Text if-set="3" if-not-set="1+2" > 3 is set but 1 and 2 are not</Text>    
      <Text if-set="2" if-not-set="1" > 2 is set but 1 is not</Text>    
      <Text if-set="3" > If 3 is set</Text>    
      <Text if-set="1+3" > If 1 and 3 are set</Text>    
      <Text if-set="2+3" > If 2 and 3 are set</Text>    
Also keep in mind that once a flag gets set, it stays set until you clear it somewhere. So depending on the result you want you may need to do something like

Code: Select all

      <Text if-set="3" > 3 is set so we always get this now</Text>    
      <Text if-set="2" set="3" unset="2"> 
      	  The second time we get this because 2 is set but 3 is not. 
       	  2 is cleared to set up for next time
      </Text>    
      <Text set="2"> The first time we get this.</Text>    
Another technique that can be useful is to use a dispatch page with a bunch of delays that select the proper page.

Code: Select all

<Page id="ChoosePhase">
	<Delay seconds="0" target="Phase3" if-set="3" />
	<Delay seconds="0" target="Phase2" if-set="2" unset="2" set="3" />
	<Delay seconds="0" target="Phase1" set="2" />
</Page>	
Have fun!
EroticDevelopment
Explorer
Explorer
Posts: 36
Joined: Thu Oct 15, 2020 3:32 am
Gender: Male
Sexual Orientation: Straight
Location: USA

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by EroticDevelopment »

tr0gd0r wrote: Fri Jan 01, 2021 3:46 am I do have one more request to make (hopefully the last one): can we get a setImage method on Guide, so I can change images from a button callback? I have tried to get my image centered using setLeftHtml/setLeftBody, and can't get it to work for the life of me!

I did find another minor bug here as well: after calling setLeftBody, resizing the image pane results in the last image set by setImage() being displayed instead of the html. Not a major bug but thought you might want to know. I've attached a repo for that.
I'll look at adding a setImage function, I agree it can be hard to do that in HTML. Internally the app uses a combination of HTML and CSS to set those images.

The setLeftBody thing is weird, and I'll have to dig into that a bit more. I think I've found the code responsible, but I need to test a bit more before I change it and break something else.
ZeeWW wrote: I must have done or are doing something totally wrong as I have no images at all - any suggestions please?
Were you able to get this working? My initial thoughts are this still has something to do with image scaling. It might be worth downloading a fresh copy of the latest version and opening the file in that version and see what happens. If it works there, you can compare settings and see what's different.


PlayfulGuy, thanks for those examples. The set/unset and if-set/if-not-set properties can be a bit confusing sometimes. It's worth noting that I've provided a decent bit of detail in the new documentation site as well, and some of this syntax is shown on the Button node: https://eroticdevelopment.github.io/Gui ... xml#Button

I don't have this in the documentation, but this is a good reminder to add it. Text nodes will be concatenated in the order that they appear if more than one Text node matches the if conditions. I did note that from v0.4.0 you can have more than one, but didn't really define the behavior.
lawman5297
Explorer At Heart
Explorer At Heart
Posts: 156
Joined: Tue May 30, 2017 1:18 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe (TeaseMe v2.0) - Current Build 0.3.4

Post by lawman5297 »

PlayfulGuy wrote: Fri Jan 08, 2021 5:04 pm

To get really complex you have to figure out all the possibilities like

Code: Select all

      <Text if-set="3" if-not-set="1+2" > 3 is set but 1 and 2 are not</Text>    
      <Text if-set="2" if-not-set="1" > 2 is set but 1 is not</Text>    
      <Text if-set="3" > If 3 is set</Text>    
      <Text if-set="1+3" > If 1 and 3 are set</Text>    
      <Text if-set="2+3" > If 2 and 3 are set</Text>    
Also keep in mind that once a flag gets set, it stays set until you clear it somewhere. So depending on the result you want you may need to do something like

Code: Select all

      <Text if-set="3" > 3 is set so we always get this now</Text>    
      <Text if-set="2" set="3" unset="2"> 
      	  The second time we get this because 2 is set but 3 is not. 
       	  2 is cleared to set up for next time
      </Text>    
      <Text set="2"> The first time we get this.</Text>    
Another technique that can be useful is to use a dispatch page with a bunch of delays that select the proper page.

Code: Select all

<Page id="ChoosePhase">
	<Delay seconds="0" target="Phase3" if-set="3" />
	<Delay seconds="0" target="Phase2" if-set="2" unset="2" set="3" />
	<Delay seconds="0" target="Phase1" set="2" />
</Page>	
Have fun!
Thanks PlayfulGuy
Post Reply