Tease Ai scripting: The HELP CORNER

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

User avatar
avatarbr
Experimentor
Experimentor
Posts: 1187
Joined: Fri Aug 18, 2006 3:33 am
Gender: Male
Sexual Orientation: Straight

Re: Tease Ai scripting: The HELP CORNER

Post by avatarbr »

cizeta wrote: Fri Apr 03, 2020 7:14 pm I'm wondering if it is at all possible to create a script based on a guessing game.
Something like this should work:
Spoiler: show
@NullResponse @SetVar[GuesstheNumber]=[#Random(1,10)]
text
text @EdgeMode(Goto, Continue)
#Edge
(waiting Edge)
@NullResponse @Goto(waiting Edge)

(Continue)
Hold the edge @Wait( #Random(10, 20))
(Question)
Try to guess the number @InputVar[UserGuess]
Let me see
@NullResponse @If[UserGuess]=[GuesstheNumber]Then(Correct)
Wrong number, keep edging @DeleteVar[UserGuess] @Wait( #Random(10, 20))
@NullResponse @Goto(Question)

(Correct)
Stop, you did it. @EdgeMode(Normal)
@End
porcellus
Explorer
Explorer
Posts: 14
Joined: Thu Apr 11, 2013 3:55 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive

Re: Tease Ai scripting: The HELP CORNER

Post by porcellus »

Hello, since I can't use Tease AI freely in my current situation I came up with an idea.
I have permission to do some edges from time to time and maybe I could adjust a personality to that restriction.

Would like to set a limit to playtime until reach a number of edges. To be done in one or many sessions.

Tease AI is counting edges in total but I can't figure out if I can use it. How do I get SYS_EdgeTotal value and somehow check for differences? Or can I bypass that?

Found a few module examples which do count edges, but that is for a single module. Goal is to play without restraint until limit is reached.

Got many ideas how to make a whole setup more interesting like teasing lines, interrupts, responses, maybe some small modules. If I can get edge limit right I would love to share those if anyone's interested in such play.

Please tell me what you think about the idea and if you have any advice for me I will be grateful. Please feel free to DM me too.

Best regards,
Porcellus
User avatar
cizeta
Explorer
Explorer
Posts: 15
Joined: Tue Nov 15, 2016 7:17 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Tease Ai scripting: The HELP CORNER

Post by cizeta »

avatarbr wrote: Tue Apr 07, 2020 3:25 am
cizeta wrote: Fri Apr 03, 2020 7:14 pm I'm wondering if it is at all possible to create a script based on a guessing game.
Something like this should work:
Spoiler: show
@NullResponse @SetVar[GuesstheNumber]=[#Random(1,10)]
text
text @EdgeMode(Goto, Continue)
#Edge
(waiting Edge)
@NullResponse @Goto(waiting Edge)

(Continue)
Hold the edge @Wait( #Random(10, 20))
(Question)
Try to guess the number @InputVar[UserGuess]
Let me see
@NullResponse @If[UserGuess]=[GuesstheNumber]Then(Correct)
Wrong number, keep edging @DeleteVar[UserGuess] @Wait( #Random(10, 20))
@NullResponse @Goto(Question)

(Correct)
Stop, you did it. @EdgeMode(Normal)
@End
That works amazing! Thank you for your help, greatly appreciated!
mslave1969
Explorer
Explorer
Posts: 24
Joined: Wed Nov 29, 2006 3:51 pm
Location: U.K
Contact:

Re: Tease Ai scripting: The HELP CORNER

Post by mslave1969 »

I was wondering if anyone has thought about converting or creating risky pick to days in Chastity instead of money. It's something I've thought about for a while, but have no idea how to do it!
User avatar
avatarbr
Experimentor
Experimentor
Posts: 1187
Joined: Fri Aug 18, 2006 3:33 am
Gender: Male
Sexual Orientation: Straight

Re: Tease Ai scripting: The HELP CORNER

Post by avatarbr »

mslave1969 wrote: Sat Apr 11, 2020 4:36 pm I was wondering if anyone has thought about converting or creating risky pick to days in Chastity instead of money. It's something I've thought about for a while, but have no idea how to do it!
Do you want to change the edges in the end or the tokens to play?

Edges should be simple to just change the text and create a variable to enable chastity for x days.

I will take a look at the script and see if it's simple to implement, and will update this post.

Edit: Maybe something like this:
Spoiler: show

**On risk_pick.txt file, line 180**
So here's the deal #SubName @SetDate(DaysOfChastity,1 second)
You owe me @ShowVar[RP_Edges] days in chastity
Starting now @ChastityOn
@NullResponse @SetVar[FixDaysChastity]=[RP_Edges]

**on the start script**
@NullResponse @If[#DateDifference(DaysOfChastity,days)]>=[FixDaysChastity]Then(OutofChastity)
Keep the chastity device @Goto(Start)
(OutofChastity)
You can remove the chastity device @ChastityOff
@NullResponse @Goto(Start)

(Start)
Start the session here

mslave1969
Explorer
Explorer
Posts: 24
Joined: Wed Nov 29, 2006 3:51 pm
Location: U.K
Contact:

Re: Tease Ai scripting: The HELP CORNER

Post by mslave1969 »

I was thinking about changing the boxes to days chastity instead of edges, will give your suggestion a try! Where do I find the place to say how many bronze tokens I have, so I can test?
Many thanks for your help :-D
fusiontermite
Explorer
Explorer
Posts: 84
Joined: Thu Feb 01, 2018 7:05 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive

Re: Tease Ai scripting: The HELP CORNER

Post by fusiontermite »

Hello everybody

I have a couple of questions regarding dates in Tease AI and thought it would make sense to have them answered all in one place (maybe others will find it useful too :-) ):
  • (How) can I set a random date?
  • (How) can I change a date?
  • (How) can I set a date that is e.g. 15 minutes before or after a certain date? (which is the same as changing, I know: @ChangeDate[date2]=[date1]-[15 minutes])
  • (How) can I print the system date? (e.g. so that the domme can say "Today is the 15th September")
  • (How) can I access the system date (e.g. so that the domme would know when it's the first of the month; ideally the values would be accessible as variables, so that you could use them, e.g. to calculate or print them ("It's the #DayOfMonth of the month, that means #DayOfMonth days of chastity" + @SetVar[days]=[#DayOfMonth]; I remember seeing "@DayOfMonth" and similar, but don't remember their exact function)
  • (How) can you use variables when setting a date? (e.g. so that you could have a mechanism that determines the number of days in chastity and then sets a date that is 5 days from then; maybe @SetDate(#var) works, I didn't check; this would of course allow random dates)
  • What commands are there in relation to dates?
    - @SetDate
    - @CheckDate
    - @DateDifference (command filter)
Thanks for your help!

:wave:
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 656
Joined: Tue Nov 18, 2008 11:09 pm

Re: Tease Ai scripting: The HELP CORNER

Post by markus »

OK, let's see...
fusiontermite wrote: Fri Aug 28, 2020 2:04 am
  • (How) can I set a random date?
@SetDate(YourDateVariableName, #Random(60, 85) seconds)
  • (How) can I change a date?
Simply set it anew:
@SetDate(YourDateVariableName, 10 minutes)
  • (How) can I set a date that is e.g. 15 minutes before or after a certain date? (which is the same as changing, I know: @ChangeDate[date2]=[date1]-[15 minutes])
I didn't even knew there is a @ChangeDate command, i guess it's not really needed.

Let's take a look at the @SetDate -command, if you use it, it will set a date which is the date right now plus the given time span,... so:
@SetDate(YourDateVariableName, 2 days)

Let's say right now is 28.08.2020 20:27:58 ... then that command would save the date 30.08.2020 20:27:58
You can give negative values to set the date before now, i.e.:
@SetDate(YourDateVariableName, -2 days)

Would save it as 26.08.2020 20:27:58
(When you create/set a date, it's saved in the system/variables folder of that personality, open it with a text editor to see how it looks)
  • (How) can I print the system date? (e.g. so that the domme can say "Today is the 15th September")
These commands I've found:
#CurrentTime
#CurrentDay
#CurrentMonth
#CurrentYear
#CurrentDate
#CurrentHour

Just give them a try.

  • (How) can I access the system date (e.g. so that the domme would know when it's the first of the month; ideally the values would be accessible as variables, so that you could use them, e.g. to calculate or print them ("It's the #DayOfMonth of the month, that means #DayOfMonth days of chastity" + @SetVar[days]=[#DayOfMonth]; I remember seeing "@DayOfMonth" and similar, but don't remember their exact function)
I think those commands above could simply used as variables
  • (How) can you use variables when setting a date? (e.g. so that you could have a mechanism that determines the number of days in chastity and then sets a date that is 5 days from then; maybe @SetDate(#var) works, I didn't check; this would of course allow random dates)
@SetDate(marCockcageHours,#Var[marCCHours] hours)

  • What commands are there in relation to dates?
    - @SetDate
    - @CheckDate
    - @DateDifference (command filter)
Well, the #DateDifference (not @DateDifference) could be used like this:
@Variable[#DateDifference(mar_LastOrg,hours)]<[28] @NullResponse @Goto(backNextDay)

So, let's say you want to lock up someone for 2 hours, you would use:
@SetDate(marCockcageHours, 2 hours)

Then you can check if right now has reached that set date
@CheckDate(marCockcageHours,PossibleToUnlock)
... If 2 hours are over, it would jump to (PossibleToUnlock)


Some answers are quite short, but maybe it's all you need to get into the right direction,
just experiment with that.
If you need some more help, just ask again! :-)

Btw.: If you not already use the text-editor 'Notepad++', then you should download and use it,... it has the function to find something inside files,... you can serach for i.e.: '@SetDate(' ... select 'find in files', ... select the script folder of your personality and hit 'find all',... that way you will find every '@SetDate(' commands in the whole persoanlity,... that way you can find quite quickly many examples of how a command is used.
(I use this function really often, it's super-useful).

Best greetings,
Markus
fusiontermite
Explorer
Explorer
Posts: 84
Joined: Thu Feb 01, 2018 7:05 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive

Re: Tease Ai scripting: The HELP CORNER

Post by fusiontermite »

Hey

Thanks a lot for this extensive reply! :-D
markus wrote: Fri Aug 28, 2020 7:09 pm fusiontermite wrote: ↑
Fri Aug 28, 2020 2:04 am

(How) can I set a random date?

@SetDate(YourDateVariableName, #Random(60, 85) seconds)
Thanks!
markus wrote: Fri Aug 28, 2020 7:09 pm (How) can I change a date?

Simply set it anew:
@SetDate(YourDateVariableName, 10 minutes)
What I mean is the ability to change the value of a date variable, so that the new value is based on the current value of the date variable (and not of the current date, which it would be when setting the date anew).

For example, the domme can put the sub in chastity for a certain period of time (random date). When the asks to be unlocked and the date variable is not reached (@CheckDate), the domme would add a couple of hours, i.e. change the value of the date variable. Setting the value anew, wouldn't help here. That's why I wrote, that what would be needed here is something like @ChangeDate[unlockdate]=[unlockdate]+[#Random(2,10) hours] (which to my knowledge doesn't exist). Btw, it's the time with variables: @SetVar for setting the value anew and @ChangeVar for setting the value of the variable based on the existing value of the same or other variable(s).
markus wrote: Fri Aug 28, 2020 7:09 pm (How) can you use variables when setting a date? (e.g. so that you could have a mechanism that determines the number of days in chastity and then sets a date that is 5 days from then; maybe @SetDate(#var) works, I didn't check; this would of course allow random dates)

@SetDate(marCockcageHours,#Var[marCCHours] hours)
Thanks! :-D
markus wrote: Fri Aug 28, 2020 7:09 pm Well, the #DateDifference (not @DateDifference) could be used like this:
@Variable[#DateDifference(mar_LastOrg,hours)]<[28] @NullResponse @Goto(backNextDay)

So, let's say you want to lock up someone for 2 hours, you would use:
@SetDate(marCockcageHours, 2 hours)

Then you can check if right now has reached that set date
@CheckDate(marCockcageHours,PossibleToUnlock)
... If 2 hours are over, it would jump to (PossibleToUnlock)
#DateDifference, right, sorry about that! :lol:

I knew these commands ( :innocent: ), but this is an excellent example of how they work together!
markus wrote: Fri Aug 28, 2020 7:09 pm Some answers are quite short, but maybe it's all you need to get into the right direction,
just experiment with that.
If you need some more help, just ask again!
Thank you!

:wave:
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 656
Joined: Tue Nov 18, 2008 11:09 pm

Re: Tease Ai scripting: The HELP CORNER

Post by markus »

Hi again!
fusiontermite wrote: Mon Sep 28, 2020 6:39 pm What I mean is the ability to change the value of a date variable, so that the new value is based on the current value of the date variable (and not of the current date, which it would be when setting the date anew).

For example, the domme can put the sub in chastity for a certain period of time (random date). When the asks to be unlocked and the date variable is not reached (@CheckDate), the domme would add a couple of hours, i.e. change the value of the date variable. Setting the value anew, wouldn't help here. That's why I wrote, that what would be needed here is something like @ChangeDate[unlockdate]=[unlockdate]+[#Random(2,10) hours] (which to my knowledge doesn't exist). Btw, it's the time with variables: @SetVar for setting the value anew and @ChangeVar for setting the value of the variable based on the existing value of the same or other variable(s).
Can be done already, all it takes is a little bit math:

Code: Select all


Testing dates...
@NullResponse @SetDate(fusionTest01, 6 hours)
#Var[fusionTest01]

Do you ask me to get unlocked?
[yes] Let's see ... @Goto(SubHasAsked)
[no] ok...
@DifferentAnswer Yes or no?
@End

(SubHasAsked)
@NullResponse @CheckDate(fusionTest01)
@NullResponse @SetVar[tempMinutes]=[#DateDifference(fusionTest01,minutes)]
#Var[tempMinutes] 
Now you have negative minutes, turn them to a possitive value:

@NullResponse @ChangeVar[posMinutes]=[tempMinutes]*[2]
@NullResponse @ChangeVar[tempMinutes]=[tempMinutes]-[posMinutes]

#Var[tempMinutes] And this is the positive value

@NullResponse @ChangeVar[tempMinutes]=[tempMinutes]+[#Random(60,240)]
#Var[tempMinutes]
@NullResponse @SetDate(fusionTest01, #Var[tempMinutes] minutes)
@NullResponse @DeleteVar[tempMinutes]
@NullResponse @DeleteVar[posMinutes]
#Var[fusionTest01]
@End

(fusionTest01)
Ok, unlock...
@End
Best greetings,
Markus
fusiontermite
Explorer
Explorer
Posts: 84
Joined: Thu Feb 01, 2018 7:05 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive

Re: Tease Ai scripting: The HELP CORNER

Post by fusiontermite »

markus wrote: Tue Sep 29, 2020 11:00 am Can be done already, all it takes is a little bit math:
You're right, it can be done. But the amount of work is immense. Just having @ChangeDate[unlockdate]=[unlockdate]+[#Random(2,10) hours] would make things a lot easier (and that is key, because when things are too complicated, people don't use it...).

One of the main restrictions of TAI (and one I really don't understand) is that the start script has to include @StartStroking and the link as well it seems (I tried it with an almost empty link file and it always kept calling the link file until I added the @StartStroking command). @StartStroking should just be a command that plays a metronome and displays taunt lines which CAN be used in EVERY TYPE OF SCRIPT (including modules, called scripts, etc.) but NEVER NEEDS to be used. I really don't see why TAI forces you to have a stroking part after each module. The script writer should be able to decide when and if the sub gets to stroke, so that there could also be a no-stroking session.

:wave:
User avatar
avatarbr
Experimentor
Experimentor
Posts: 1187
Joined: Fri Aug 18, 2006 3:33 am
Gender: Male
Sexual Orientation: Straight

Re: Tease Ai scripting: The HELP CORNER

Post by avatarbr »

fusiontermite wrote: Fri Jan 01, 2021 9:07 pm One of the main restrictions of TAI (and one I really don't understand) is that the start script has to include @StartStroking and the link as well it seems (I tried it with an almost empty link file and it always kept calling the link file until I added the @StartStroking command). @StartStroking should just be a command that plays a metronome and displays taunt lines which CAN be used in EVERY TYPE OF SCRIPT (including modules, called scripts, etc.) but NEVER NEEDS to be used. I really don't see why TAI forces you to have a stroking part after each module. The script writer should be able to decide when and if the sub gets to stroke, so that there could also be a no-stroking session.

:wave:
I think the idea was really to create that loop format. If you know some od the 1885's webtease, you will recognize the pattern.

But you can skip that, by calling a Module from the Link file. You can even put a @RamdomModule command in all Link files and should fully skip the stroke/taunt part. But I think, sometimes, TAI can be confused a little and do some strange things.

I think one of the alternative versions have a @MetronomeOn command, where you can do what you wanted.
fusiontermite
Explorer
Explorer
Posts: 84
Joined: Thu Feb 01, 2018 7:05 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive

Re: Tease Ai scripting: The HELP CORNER

Post by fusiontermite »

Thanks for your reply! :-)
avatarbr wrote: Fri Jan 01, 2021 11:52 pm I think the idea was really to create that loop format. If you know some od the 1885's webtease, you will recognize the pattern.
That could be an explanation. But having the mod-link-mod-link loop cycle wouldn't require to start stroking in between ;-)

The structure I want to have is a completely empty link file and one mod_main file that does everything and is run through again and again until time is up (or the domme decides to end the session, sets a flag and calls end_main). That means that the module file decides about and calls all activities (modules, talk, stroking, etc.).
avatarbr wrote: Fri Jan 01, 2021 11:52 pm But you can skip that, by calling a Module from the Link file. You can even put a @RamdomModule command in all Link files and should fully skip the stroke/taunt part.
If I understand correctly, that means that I can just have 1 link file with "@NullResponse @RapidCodeOn @RandomModule" (never seen this command, only @CallRandom (don't use that one either)), which would then call the 1 mod file, thus in effect skipping the link file? Would be great if that's possible, will try it.
avatarbr wrote: Fri Jan 01, 2021 11:52 pm I think one of the alternative versions have a @MetronomeOn command, where you can do what you wanted.
Yeah, I like that one :-D

Thx again

:wave:
User avatar
avatarbr
Experimentor
Experimentor
Posts: 1187
Joined: Fri Aug 18, 2006 3:33 am
Gender: Male
Sexual Orientation: Straight

Re: Tease Ai scripting: The HELP CORNER

Post by avatarbr »

fusiontermite wrote: Sat Jan 02, 2021 2:46 am
If I understand correctly, that means that I can just have 1 link file with "@NullResponse @RapidCodeOn @RandomModule" (never seen this command, only @CallRandom (don't use that one either)), which would then call the 1 mod file, thus in effect skipping the link file? Would be great if that's possible, will try it.
Yes, if you want to call the same file every time, you can just use the @Call() command, otherside you can use:

@NullResponse @RapidCodeOn
@NullResponse @RandomModule
#StartStroking @StartStroking
@End

I think you still need to put the @StartStroking to avoid errors. But would never run that part.
User avatar
rayray77
Explorer
Explorer
Posts: 68
Joined: Thu Nov 27, 2014 11:58 am

Re: Tease Ai scripting: The HELP CORNER

Post by rayray77 »

Hi,

quick question:

When I call a custom script with @Call(Custom/blablba.txt) in a module, what happens with Tease AI when blabla.txt reaches an @End? Does it go to a link, a module or someplace else?

Is it the same when I do the above action during a link?

:-)
Post Reply

Who is online

Users browsing this forum: No registered users and 66 guests