Tease AI General Discussion

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
1885
Explorer At Heart
Explorer At Heart
Posts: 648
Joined: Fri Jul 08, 2011 4:27 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Tease AI Open Beta

Post by 1885 »

Hello peoples

I've kinda been keeping a low profile on the forum so I wanted to take the time and make a report on how things are going. Despite not being very active in the threads, I have been following them and keeping track of the bugs that have been reported. Some of them are already fixed for the next patch, but the more I work the more it becomes clear to me that I've reached a point I haven't exactly been looking forward to but knew would be necessary sooner or later :closedeyes:

To paint a picture for those not coding-inclined, right now the guts of Tease AI is a haphazard mess of wires and bullshit that I lovingly consider a beautiful disaster. It's like an Indiana Jones boulder-sized mass of tangled Christmas lights that bowls over anyone who dares investigate the source code. That ball of Christmas lights needs to be untangled, and those frayed old strands from 1987 really need to fucking go. Basically I need to rip the guts out of Tease AI and replace them with cleaner and more streamlined wires.

There's far too much bloat in the code and in the UI that needs to be addressed. While I'm capable of tracking down and fixing most bugs that get reported, I've discovered that some things are slipping through the cracks in the nature of the code itself. So you would have instances such as Variable-related Commands not getting processed in Multiple Choice branches and stuff like that I never even realized was happening.

So I've already begun the process of streamlining everything, and I mean everything. The UI is getting streamlined, code is getting optimized and I've started going through each Command one by one in order to insure that they work properly, function to their complete potential and have a consistent usage. So far, every single Command I've gone through has been improved in some way. Which does bring me to a potential issue:

While I've been doing my best to improve Commands without affecting any current scripts, there's instances where Commands could be greatly improved if I did. I've only done this in one case so far, and that's with the @CheckFlag() Command. With the current build Patch 47 and below, you can only use one @CheckFlag() per line, but you can check for multiple flags by using commas - @CheckFlag(Flag1, Flag2, etc)

This has been changed in Patch 48. You can now use multiple @CheckFlag() Commands per line (a standard I'm trying to apply to all commands where applicable), but most importantly commas are no longer used to check for multiple Flags. Commas are now used to specify a specific line to go to. It now works like this (These examples assume that all flags being checked exist)

blah blah blah @CheckFlag(Flag1) This would go to (Flag1)
blah blah blah @CheckFlag(Flag1) @CheckFlag(Flag2) This would go to (Flag2)
blah blah blah @CheckFlag(Flag2) @CheckFlag(Flag1) This would go to (Flag1)
blah blah blah @CheckFlag(Flag1) @CheckFlag(Flag2, Domme Ruin Instructions) This would go to (Domme Ruin Instructions)

I made this change because there were too many instances where I wanted to check the same Flag in the same script, but it was useless being forced to go to (FlagName) in every case. Now you can specify a Flag, and then use a comma to specify an entirely different goto line. This change makes Flags much more versatile, but it comes at the cost of any scripts that use the multiple flag check from previous builds. I don't even know if any scripts do, I don't even know if mine do, but this will effectively break those scripts. They can be edited of course, but I'm not gonna start changing things around to a point where everything has to be edited constantly, only in cases like this where I feel the ends are definitely worth it to do so.

As I said, I don't plan on having to do this too much, I'm just curious of everyone's opinion about it.

But other than that, I'll be pretty busy for a while streamlining the code and the interface. I'm documenting everything's function and format as I go, so when I'm finished I'll be able to easily copy that over and provide somewhat of a guide for all Commands. It won't be as pretty as the last one, but it will be informative and up to date. My main concern is that the Commands start working for the scripters as much as possible, rather than the scripters having to get clever to do some basic things.

There won't be any patches while I'm getting all this stuff sorted. I'm not sure when exactly it will be before patches resume, just depends on how long it takes me to strip things down and piece them back together. My guess is probably not before October but easily before November. In any case, the bitbucket build will remain updated every step of the way, and at no point will the program be stripped out or unusable should anything happen and the bitbucket code need to be disseminated.

Please keep making suggestions, providing feedback and reporting bugs. Even if I don't answer for a while I'm still putting suggestions in place and getting bugs fixed. I'm just trying to manage my time with the program while not getting too overloaded, and I don't get a chance to respond to the forum as much as I'd like.
CBT wrote:As to the percentages/chance thing. I assumed that there would be a 25% chance of one, and if not then a 25% chance of the next, and so on. Thats why I put the part about going throug the 4 video types again (domme couldnt decide thing), in case they all failed to be selected. I really need to get better with this code...lol. I think I will start with something a bit smaller/easier first.
In one of the previous builds, the @Goto() Command was improved so you can now use it like this:

@Goto(Femdom, General, JOI, Femsub)

In which case each of them would have an even 25% chance of getting called
Mat wrote:Is there a way to run both versions of ATE? It'd be nice if I didn't have to overwrite some of 1885's files, I made a backup just in case though.
If PtheV made an AI box with the Avoid The Edge scripts, when you opened them the program would let you save them as Filename_2.txt since they already exist
PtheV wrote:This being my first post on here I'd like to start by adding to the choir of praise for 1885. You've really done a great job with Tease AI so far and it's getting better all the time! I used to visit Milovana only sporadically, now I find myself checking the forum regularly for updates. :wave:
Thank you, I really appreciate it :-)
PtheV wrote:I've been trying to do some scripting and I have a couple of questions/requests. Will the Domme at some point: 1) be able to remember what happened last session (i.e. that she could start a session by saying something like: Hey #SubName, last time we made a deal...etc.) Maybe with a kind of pre-session routine so that Tease AI can check if a particular start script should be called? And 2) be able to know how much time has passed since the last session (i.e. Domme: It's been X days since we made a deal...etc.)? One of my scripts has the Domme deny the user for a week with a guaranteed orgasm on day 7, if he does one session every day. With a combination of flags and variables I got it to work, but it's not very practical or elegant...
You can do this with Flags to a certain extent already, but I'm working on things to make a lot of this easier and more powerful. Stayed tuned and there will be a lot of new stuff with documentation once Patch 48 does make it out
avatarbr wrote: Azureballs wrote:
I found the secret feature! I think!

Spoiler:

Yes,

Spoiler:
Patch 48 will have the option to disable them and change their rate, no worries. I just wanted to sneak it in there on everybody :smile:
avatarbr wrote:Let me see if I understand the AI Box.

In this file, I put:
1 Module
1 Custom Task (2 files)
1 Vocabulary

Let me know if it works.
It definitely works. And don't forget, you can also copy paste your AI Boxes as text (in a spoiler tag preferably), and people can open the boxes that way as well using Open From Text after copying the text into the text field in the AI Box app, so ity would be like this:
Spoiler: show
[aiBox File Begin] ModulesAV_Are You Man Enough.txt
#StopStroking @StopStroking
I need a man who knows how to control his #Cock
If you're #Submissive enough...I'll do my best to reward you as we go along.
@NullResponse @CustomTask(AV_StrokeNumber)
There you go...
I want you to stroke it like you're balls deep inside my pussy.
@NullResponse @CustomTask(AV_StrokeNumber)
Oooh, that got you a little harder didn't it?
@NullResponse @CustomTask(AV_StrokeNumber)
That's it. Are you starting to feel yourself getting to the edge?
[yes] Good..
[no] Too bad
@DifferentAnswer Yes or no #PetName?
#Edge @Edge
Not...bad.
You might impress me after all.
You know...since you did such a good job for round one here?
Wouldn't it be more fun to go to your knees while you jack it hard for me the second time?
I'm going to tell you to stroke again in a second...
Ready?
@NullResponse @CustomTask(AV_StrokeNumber)
Imagine me right there in front of you in your knees looking up into my eyes while you #Stroke
Almost makes you wish you could explode all over me right now doesn't it?
@NullResponse @CustomTask(AV_StrokeNumber)
Only you should that know if you tried to do that, I'd punch you in the balls with all my strength and you'd never see me again so...
@NullResponse @CustomTask(AV_StrokeNumber)
I'd show a little restraint if I were you.
#EmoteLaugh Oh my God...you look like you're literally in pain...
That felt good for you didn't it?
Even if you do pass this test...how the hell will you even sleep tonight?
Hm...guess that's your problem to solve.
You've done well so far...
@End
[aiBox File End] ModulesAV_Are You Man Enough.txt
[aiBox File Begin] CustomTasksAV_StrokeNumber.txt
Give me 10 #Crazy fast strokes
Give me 20 #Crazy fast strokes
Give me 30 #Crazy fast strokes
Give me 40 #Crazy fast strokes
Give me 50 #Crazy fast strokes
Give me 60 #Crazy fast strokes
@ApathyLevel4 Give me 70 #Crazy fast strokes
@ApathyLevel5 Give me 90 #Crazy fast strokes
@ApathyLevel4 Give me 80 #Crazy fast strokes
@ApathyLevel5 Give me 100 #Crazy fast strokes
@DommeLevel4 Give me 80 #Crazy fast strokes
@DommeLevel5 Give me 100 #Crazy fast strokes
Give me 10 strokes
Give me 20 strokes
Give me 30 strokes
Give me 40 strokes
Give me 50 strokes
Give me 60 strokes
@ApathyLevel4 Give me 70 strokes
@ApathyLevel5 Give me 90 strokes
@ApathyLevel4 Give me 80 strokes
@ApathyLevel5 Give me 100 strokes
@DommeLevel4 Give me 80 strokes
@DommeLevel5 Give me 100 strokes
I want 10 strokes
I want 20 strokes
I want 30 strokes
I want 40 strokes
I want 50 strokes
I want 60 strokes
@ApathyLevel4 I want 70 strokes
@ApathyLevel5 I want 90 strokes
@ApathyLevel4 I want 80 strokes
@ApathyLevel5 I want 100 strokes
@DommeLevel4 I want 80 strokes
@DommeLevel5 I want 100 strokes
[aiBox File End] CustomTasksAV_StrokeNumber.txt
[aiBox File Begin] CustomTasksAV_StrokeNumber_First.txt
Give me 10 #Crazy fast strokes
Give me 20 #Crazy fast strokes
Give me 30 #Crazy fast strokes
Give me 40 #Crazy fast strokes
Give me 50 #Crazy fast strokes
Give me 60 #Crazy fast strokes
@ApathyLevel4 Give me 70 #Crazy fast strokes
@ApathyLevel5 Give me 90 #Crazy fast strokes
@ApathyLevel4 Give me 80 #Crazy fast strokes
@ApathyLevel5 Give me 100 #Crazy fast strokes
@DommeLevel4 Give me 80 #Crazy fast strokes
@DommeLevel5 Give me 100 #Crazy fast strokes
Give me 10 strokes
Give me 20 strokes
Give me 30 strokes
Give me 40 strokes
Give me 50 strokes
Give me 60 strokes
@ApathyLevel4 Give me 70 strokes
@ApathyLevel5 Give me 90 strokes
@ApathyLevel4 Give me 80 strokes
@ApathyLevel5 Give me 100 strokes
@DommeLevel4 Give me 80 strokes
@DommeLevel5 Give me 100 strokes
I want 10 strokes
I want 20 strokes
I want 30 strokes
I want 40 strokes
I want 50 strokes
I want 60 strokes
@ApathyLevel4 I want 70 strokes
@ApathyLevel5 I want 90 strokes
@ApathyLevel4 I want 80 strokes
@ApathyLevel5 I want 100 strokes
@DommeLevel4 I want 80 strokes
@DommeLevel5 I want 100 strokes
[aiBox File End] CustomTasksAV_StrokeNumber_First.txt
[aiBox File Begin] Vocabulary#Submissive.txt
obedient
obedient
obedient
obedient
compliant
respectful
submissive
submissive
[aiBox File End] Vocabulary#Submissive.txt
[aiBox Empty]
This way people can share smaller things without having to worry about zipping and hosting things :-)
djord wrote:04:55 PM Bryci: 3
04:55 PM djord: please punish me
04:55 PM Bryci: If you want to be punished so bad I'm not gonna stop you djord . Get to the edge Try not to think about how close you just were
04:56 PM Bryci: Get that horny cock on the edge
Thanks for catching it, I've made a note of it

[quote"CXZman"]Have a question, not just for 1885, but also to the community around Tease AI. Since now the software actually handles content packages (AI Boxes), is there any initiative or forum thread that tries to centralize and map the Box world so that we could share and exchange tipsand tricks about scripting ?[/quote]

Not at the moment, but I imagine once Patch 48 gets released with the up to date documentation there's gonna be more a need for one. I'm still holding out hope for Tease AI to get its own forum, but I don't know how long any final word on that will be.
Image
Tepi
Explorer
Explorer
Posts: 32
Joined: Sat Jun 07, 2014 12:14 am

Re: Tease AI Open Beta

Post by Tepi »

Now that you are revisiting the code have you had any thoughts on having a better multi-core support? I have no idea how easy it would be to implement but I've noticed that often when TeaseAI does something, whatever that may be, cpu usage tops at around ~17%. And that would be 100% for one core in my case as I have a 6-core cpu.

Not really important as the program ain't that heavy but it might smoothen the overall experience a lot, especially for ppl with low-end laptops and such.

My apologies if this has been brought up already in the past, too many pages! :rolleyes:

Oh, and thank you for an awesome program!
User avatar
dukiesnud
Explorer At Heart
Explorer At Heart
Posts: 168
Joined: Fri Jul 11, 2008 3:56 am

Re: Tease AI Open Beta

Post by dukiesnud »

Just wanted to put in a request for a way to keep track of time/date. I think it was requested earlier. It would add a lot of possibilities if the current time and date could be accessed. This would be a bit better than asking the user.
Mat
Explorer At Heart
Explorer At Heart
Posts: 429
Joined: Sun Feb 26, 2012 8:34 pm
Gender: Male
Sexual Orientation: Straight
Location: UK

Re: Tease AI Open Beta

Post by Mat »

Tepi wrote:Now that you are revisiting the code have you had any thoughts on having a better multi-core support?
In my experience multi-threading can be a pain, and in order to use multiple threads you need at least 2 things that can be run at the same time, so you couldn't have one core load an image while the other thread is talking about it.. well you could, but there wouldn't be a point as the second thread would need to wait for the first to finish anyway, so it wouldn't really benefit.. I hope that made 'some' sense.. it's hard to explain.

1885, I might have mentioned it earlier but have you looked into object oriented coding, for a lot of projects it can help with organisation and performance. I can't remember how you have your code set up but for organisation try grouping similar functions in different classes, so for example you could have a class for all functions related to images, another for settings etc.

If you want help with understanding OO programming and how classes work, I can upload a blackjack game I made as an example a while ago, it's in java but you can still see how everything interacts, and it's fully commented.
CXZman
Explorer At Heart
Explorer At Heart
Posts: 114
Joined: Sun Sep 13, 2015 11:30 pm

Re: Tease AI Open Beta

Post by CXZman »

:soldiers:
Best of luck and many heaps of courage to you, brave coder!
You're making the right decision at the right time.
May you never face again the mindless doom of the unspeakable syntax.


I mean, really, this is always the right thing to do, but bear in mind that if you need to do it all over again in the future because you had to keep retro-compatibility in place right now, something went wrong.

My advice would be to fork, as this kind of structural updates rarely preserves the core and most likely destroy the upper levels. From what you're saying, this is pretty much another software you're working on, in and out. This is 1.5 at the very least :-)

I have no idea of the actual complexity of the internals right now, but what could solve the scripters friendly commands dilemma might be to build a "find and replace" function, an additional parser that would audit and detect old script usage, and try to rewrite it with the right (new) syntax.

For example...

Code: Select all

Bla bla blab bla bla stroker ^^ @CheckFlag(Flag1, Flag2, Flag3)
... would turn into

Code: Select all

Bla bla blab bla bla stroker ^^ @CheckFlag(Flag1) @CheckFlag(Flag2) @CheckFlag(Flag3)
I mean... obviously this is a very simple case where regular expressions save your day. Might not always be the case, but each time you can do that, you're good to go. This is a tool that could also only detect old scripting usage and actually warn the scripter that he/she has to check out the new doc and the new commands' syntax.

And if you already thought of developing that... then don't hesitate much more :-) just go for it

My takeaway is that code stability and durability should always be your main concerns now. It might not have been the case at start, because you were rushing towards a stable functional build and hope for meeting success, but now that both of these are behind you, it's certainly time to talk seriously about moving everything around. I may be wrong, but I think there's not enough scripting going on right now (and not so much actual commands/scripts inside the script files) to actually bother about breaking some of it.

So go for it! :yes:
User avatar
avatarbr
Experimentor
Experimentor
Posts: 1239
Joined: Fri Aug 18, 2006 3:33 am
Gender: Male
Sexual Orientation: Straight

Re: Tease AI Open Beta

Post by avatarbr »

CXZman wrote: My takeaway is that code stability and durability should always be your main concerns now. It might not have been the case at start, because you were rushing towards a stable functional build and hope for meeting success, but now that both of these are behind you, it's certainly time to talk seriously about moving everything around. I may be wrong, but I think there's not enough scripting going on right now (and not so much actual commands/scripts inside the script files) to actually bother about breaking some of it.

So go for it! :yes:
Agreed.

And will be 1 or 2 lines to correct this scripts (I have 2 in that case). Not a big deal, really.
Xirodorin
Explorer
Explorer
Posts: 21
Joined: Wed Aug 03, 2011 7:56 pm

Re: Tease AI Open Beta

Post by Xirodorin »

Hey, loving the program.
Now I tried my best search-fu to see if someone's asked this before, but I might be rusty: Do you plan on adding a way to give tags to URL files? Most of the stuff I've put in there are centered around very specific things, moreso than my own galleries. This would give me the ability to properly use some modules I'm missing a specific gallery of my own for.
Mat
Explorer At Heart
Explorer At Heart
Posts: 429
Joined: Sun Feb 26, 2012 8:34 pm
Gender: Male
Sexual Orientation: Straight
Location: UK

Re: Tease AI Open Beta

Post by Mat »

Xirodorin wrote:Hey, loving the program.
Now I tried my best search-fu to see if someone's asked this before, but I might be rusty: Do you plan on adding a way to give tags to URL files? Most of the stuff I've put in there are centered around very specific things, moreso than my own galleries. This would give me the ability to properly use some modules I'm missing a specific gallery of my own for.
You could select the checkbox to save images, download the galleries and put them in a folder.. If there's a lot of images you can always cancel it half way through.
Doomtrack
Explorer
Explorer
Posts: 92
Joined: Thu Aug 29, 2013 1:56 am

Re: Tease AI Open Beta

Post by Doomtrack »

I just want to say thanks for making this and say how much i love this program, it has essentially replaced cock hero videos for me.
Sisyphuster
Explorer At Heart
Explorer At Heart
Posts: 204
Joined: Sat Mar 10, 2012 9:55 am

Re: Tease AI Open Beta

Post by Sisyphuster »

Not sure this is the right thread for this, but if anyone is a big fan of Emily Addison, holy moly is this a great pic set for TAI: http://imgur.com/a/Cs1l3
tBone
Explorer At Heart
Explorer At Heart
Posts: 316
Joined: Thu Oct 29, 2009 1:40 am

Re: Tease AI Open Beta

Post by tBone »

Sisyphuster wrote:Not sure this is the right thread for this, but if anyone is a big fan of Emily Addison, holy moly is this a great pic set for TAI: http://imgur.com/a/Cs1l3
<3
MyFreeCams: Great free cam site! Lot of girls who love teasing!

Protip: Use https://mega.co.nz/ for uploads.
Won't need to upload it anywhere else because it doesn't have the shitty restrictions all the others have. Besides emp, some people like seeding there, so keep that.
bbman
Explorer
Explorer
Posts: 47
Joined: Fri Aug 16, 2013 6:38 pm
Gender: Male
Sexual Orientation: Straight

Re: Tease AI Open Beta

Post by bbman »

Sisyphuster wrote:Not sure this is the right thread for this, but if anyone is a big fan of Emily Addison, holy moly is this a great pic set for TAI: http://imgur.com/a/Cs1l3
That indeed is one amazing image set for Tease AI!
Would be greate if more people could share the image sets they use for their mistresses :-D
Be it in the right thread of course (also not sure which one)...
User avatar
avatarbr
Experimentor
Experimentor
Posts: 1239
Joined: Fri Aug 18, 2006 3:33 am
Gender: Male
Sexual Orientation: Straight

Re: Tease AI Open Beta

Post by avatarbr »

Some suggestions, dont know how hard or possible are to implement, but just ideas I have while try creating some scripts:

- Some option to prevent Modules and Links to run twice in the same session
- Some option to prevent Modules and Links to run twice before all other Modules/Links run at least once (yes, I have problems with ramdom options....always got repeated scripts :-( )
- Option to remove Modules/Scripts from above conditions.
- possibility to use tagged Domme images, like the others images. I thought the actual option works like that, but just can trigger taunts if some tagged image is displayed.

- That is a long shot:
Now, we have this layout:
Start-Stroke-Module-Link-Module-Link-(...)-End.
With the use of flags and others resources, we dont have a guaranteed way/place to check some conditions. Would be great if we have a new target in the layout, where we could put conditions and checks, like that:
Start-Stroke-Module-Link-CHECK-Module-Link-(...)-End. (not necessary in every cicle)

One example, in the Risky Pick game, you can own 50 edges after the game and have 2 options, can either do them on your own or the Domme can guide you through them all at once. With the CHECK option, we could distribute along the session in 5/10 edges parts.

Anyway, just ideas....no priority over the bugfixes and other things.

PS: English is hard :blush:
CBT
Explorer
Explorer
Posts: 52
Joined: Sat Sep 19, 2015 4:39 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Sub/Slave(s): Elly
Location: North West UK

Re: Tease AI Open Beta

Post by CBT »

- possibility to use tagged Domme images, like the others images. I thought the actual option works like that, but just can trigger taunts if some tagged image is displayed.
I was thinking the exact same thing the other day. I have about 6-7 image sets for my chosen domme, averaging about 100-110 pics each. I have spend quite a bit of time tagging all but one of the sets, thinking it would be important to the best running of the program, but so far I havnt seen a single clear instance of the tags being used. I assume that it would be for something down the line :whistle:

Can someone tell me the command to call a domme tagged image? I tried @DommeTag... and several similar variations but no luck.
pepsifreak
Explorer At Heart
Explorer At Heart
Posts: 145
Joined: Fri May 08, 2009 8:50 pm
Gender: Male
Sexual Orientation: Straight

Re: Tease AI Open Beta

Post by pepsifreak »

Mosbles wrote:Is it normal that my glitter contacts say the lines of other glitter contacts? For example the "bratty" one saying the lines of the "caring" one.
It's a bug of sorts from the glitter revamp and only affects those two.
The fix is to update every relevant glitter file to use the @Contact# scheme instead of @Bratty or whatever. Which in the base WT personality is only used in the 3 "tease" files.

Alternatively just copy these in since I already did it;

BegToCum:
Spoiler: show

Code: Select all

You haven't lived until you've heard a guy begging you to let him cum
@Contact1 YOLOD - you only live orgasm denied
@Contact1 I think that would just make me giggle uncontrollably
@Contact1 But what if he's gagged though?
@Contact2 Wow #ShortName, I can't believe you tease them so bad they actually beg!
@Contact2 If it were me, I would let #SubName cum any time he begged me to
@Contact2 I would never let a guy get that desperate
@Contact3 I think you mean you haven't lived until you've told him "no"
@Contact3 And then never, ever let him
@Contact3 I definitely need to get busy living
BlueBalls:
Spoiler: show

Code: Select all

I'm going to give #SubName some wicked blue balls #GeneralTime #EmoteRandom
@Contact1 Let me know if you want some help #Grin
@Contact1 You should let me play with him a little bit #ShortName
@Contact1 Good, I don't think his balls should be any other color #Grin
@Contact2 You'll let him cum eventually though right?
@Contact2 Don't be too hard on him #ShortName, he's a total sweetie
@Contact2 I hope you let him have an orgasm before you scar him for life!
@Contact3 Why stop at blue? Purple is so much prettier #Lol
@Contact3 That takes a lot of effort #ShortName, make sure you don't waste it by letting him cum #EmoteHappy
@Contact3 I think once you turn his balls blue you should leave them like that #Lol
IWonderHowLong:
Spoiler: show

Code: Select all

I wonder how long a guy can go without orgasm before he absolutely HAS to cum?
@Contact1 That sounds like a fun experiment!
@Contact1 One way to find out!
@Contact1 If you want any help finding out... I volunteer
@Contact2 Surely not more than a day or two?
@Contact2 A better question would be how long could I go before I absolutely have to MAKE him cum?
@Contact2 I still it's a waste to play with a nice cock and not let it cum when you're finished
@Contact3 I still wouldn't let him
@Contact3 Why not just keep him denied permanently and be done with it?
@Contact3 Does any guy truly HAVE to cum? I don't think so
Last edited by pepsifreak on Sat Sep 26, 2015 2:09 am, edited 1 time in total.
Post Reply