Hi again!
Sorry for the late answer, too busy.
wojtusiak wrote: Sat Nov 16, 2024 10:45 am
So, I have few ideas for chastity modules and am interested in scripting, but cannot promise anything right now - I am still in the stage of exploring TAI and script's commands, layout and workflow.
I'm always glad to see people interested in scripting!
It surley is fun to create scripts, and with the TAI-script language you can go from quite simpel scripts which already can have a huge impact on a session to very complex stuff.
One of the ideas is to add interrupt for edging and stroking commands during chastity - I've encountered few times that I am supposed to edge when locked, which was kinda frustrating (maybe that was inteded?

). Anyway, there was no possibility to stop it without saying edge, so adding simple interrupt like 'Can't, I am locked' is in the reach of my skills (I hope so

).
One thing I want to mention, ... please don't get me wrong and please don't get discouraged when I 'correct' you here, I just try to give give hints!
So, one of the basics in scripting, in coding, ... in so many other things:
Eliminate a problem by it's source.
It's like you have a knife stuck in your hand, ... you could take painkillers/pills against the pain, but on the long run it's better to remove the knife, and not to remove the symptoms.
To bring this to the edge-while-locked example, it's better to avoid getting told to edge beforehand.
It may look like more work at first, ... why searching for the source of the problem when the solution is so close (the interrupt idea)?
I have more than 10 years experience in coding/scripting/game modding and such, ... and whenever I did such 'shortcuts', such 'quick and easy (dirty)' solutions (and yes, of course I did, everyone does sometimes), ... maybe not always, but in so many cases there comes the day to regret it, when I think: 'Why the fuck I didn't took the time to do it right from the start', ... and in the end it cost more time since you have to do it twice, first the quick and dirty solution, then the 'correct' solution one day, plus the time to figure out why and what you did in the past.
Like with the knife, maybe it hurts more to pull it out, ... but on the long run, it's the better way.
Rar1197 wrote: Sat Nov 16, 2024 12:51 pm
It would then just be a case of whether those scripts actually work 'as is' , or whether they need some changes to be properly integrated into the rest of the Alice scripts.
Alice has a 'base-system', like HoT and Miss Blue have their own, that's the main differnce between these 3 personalities, ... these systems are basically defined in the start-/link- and the endfile(s), that is where decisions are made (like do we call a link file (such from the custom-folder), which sub folder there to choose, do we jump right into a module and such things), how high is the chance that a locked user get's unlocked, etc...
The 'rest', the content, ... that is in the modules, ... so what I try to say here, the chastity modules should work just fine since they are made with that construct in mind (base-system/'controller' + content).
I'm less familar with the standard Tease AI flow with going between the different modules, and so I'm not entirely sure about the significance of the large number of files that appear to be duplicated between those two folders.
In HoT and Miss Blue the _CHASTITY scripts where mixed into the modules folder, I just moved them into a seperate folder for the sake of a better overview, ... if the cycle jumps automatically into the module cycle (that is when a link-script reaches @End) or if you explicitly jump into the module cycle (@RandomModule), and the state is set to chastity (@ChastityOn), it automatically picks a _CHASTITY script, if chastity is off, those _CHASTITY scripts gets ignored.
wojtusiak wrote: Sat Nov 16, 2024 1:57 pm
(RunRandomModule)
@NullResponse @ChastityOn @Goto(RunRandomModuleWithChastity)
@NullResponse @CallRandom(HubModules)
@End
(RunRandomModuleWithChastity)
@NullResponse @CallRandom(Modules)
@End
One of the not-so-well-designed things about the TAI-script language is that it's sometimes hard to tell what is a command and what is a filter, ... don't worry, I felt for it quite often as well, ... practice helps.
So, @ChastityOn is the command, ... that tells TAI that the user is now locked up, this is the 'SET'
Here you would need the filter that checks 'IF' the used is locked up or not, that filter is '@InChastity'
So this line:
@NullResponse @ChastityOn @Goto(RunRandomModuleWithChastity)
Would have to be:
@NullResponse @InChastity @Goto(RunRandomModuleWithChastity)
Other than that, your solution looks good, ... and it shows that you already got how this works, ... ya on the right track, so to speak!
And don't hesitate if you need some infos or have questions about scripting, to get started can be quite hard since all the informations are scattered all over the forum, ... just ask!
Best greetings and happy scripting,
Markus