View unanswered posts | View active topics It is currently Thu Oct 31, 2024 11:53 pm



Reply to topic  [ 20 posts ]  Go to page Previous  1, 2
 Clothing References 
Author Message
Rank 9
Rank 9

Joined: Tue May 15, 2018 10:44 am
Posts: 50
Gave that a shot, and unfortunately it didn't work.

I went back to my old method, though, and just added a simple line of talk code for when it reached the unzipped state.

Code:
   [ZIP_OPEN]
   {
      loc.oz.item = 0;//The clothing item, the number is found in their init file under cloth items
      loc.oz.open = true; // if the zipper is open or closed and can be manipulated
      loc.oz.d    = 0.05;// how much to open the zipper by
      OpenClothZipper(loc.oz);//execute the above
      
      loc.closed = GetClothZipperIsClosed(loc.oz);
      [loc.closed < 11] return;

      talk.s = "Zipper is open";
      state.dyn.me.do.state2 = ZIP_TALK0;
   }


So then it supposed to go to this next state.

Code:
   [ZIP_TALK0]
   {
      // loc.ts = GetTs(); 
      // [loc.ts < state.dyn.me.do.ts] return;

      talk.s = "Oh shoot, this damn zipper never stays closed.";
      do_set_timer(2);
      
      state.dyn.me.do.state2 = ZIP_TALK1;      
   }


And absolutely refuses to run it. If I go straight to the one after it...

Code:
   [ZIP_TALK1]
   {
      //loc.ts = GetTs(); 
      //[loc.ts < state.dyn.me.do.ts] return;
      
      talk.s = "I'm sorry you have to see this, {^gname}. It's very unprofessional of me.";
      do_set_timer(2);
      
      state.dyn.me.do.state2 = ZIP_TALK2;   
   }


... zero problems. It just continues on as if life is peachy.

So, now the zipper works as it's supposed to, but something about ZIP_TALK0 is broken. I don't get why, though.

Also, what exactly is the Ts in GetTs();? I see it pop up alot, but near as I can figure out, it's either for timers, or tasks. If it's for tasks, is there a specific call just for timers?


Sun Jul 01, 2018 2:11 pm
Profile
Rank 17
Rank 17
User avatar

Joined: Fri Feb 27, 2015 2:06 pm
Posts: 687
Location: Australia
Code:
do_set_timer(2);//current time + X

loc.ts = GetTs(); // get the current time
[loc.ts < state.dyn.me.do.ts] return;//is the set time greater then the current time if not return if so continue


AHHHHH took me way to long to figure out why it was not working

you had a error that does not error

Code:
talk.s.dur = "1000";

is ment to be
Code:
talk.dur = 1000;


Code:
 [ZIPPER_OPEN]
    {
      
   loc.ts = GetTs(); 
        [loc.ts < state.dyn.me.do.ts] return;
      
        loc.oz.item = 0;
        loc.oz.open = true;
        loc.oz.d    = 0.05;
        OpenClothZipper(loc.oz);
       
        loc.closed = GetClothZipperIsClosed(loc.oz);
        [loc.closed < 11] return;

   do_set_timer(2);
        state.dyn.me.do.state2 = ZIPPER_TALK;
    }

    [ZIPPER_TALK]
    {
      
   loc.ts = GetTs(); 
        [loc.ts < state.dyn.me.do.ts] return;

        talk.s = "Oh shoot, this damn zipper never stays closed.";

        do_set_timer(5);
       
        state.dyn.me.do.state2 = ZIPPER_TALK0;       
    }
   
    [ZIPPER_TALK0]
    {
        loc.ts = GetTs(); 
        [loc.ts < state.dyn.me.do.ts] return;

        talk.s = "I'm sorry you have to see this, {^gname}. It's very unprofessional of me.";

        do_set_timer(5);
       
        state.dyn.me.do.state2 = ZIPPERTALK1;   
    }

    [ZIPPERTALK1]
    {
        loc.ts = GetTs(); 
        [loc.ts < state.dyn.me.do.ts] return;
        talk.s = "Try and get back to work. I'm going to do some yoga stretching.";

        do_set_timer(5);
       
        state.dyn.me.do.state2 = FLOOR_FUCK;   
    }
   
   
      [FLOOR_FUCK]
    {
   loc.ts = GetTs(); 
        [loc.ts < state.dyn.me.do.ts] return;
      
        [state.dyn.me.pose.result == READY]
        {
            //Use Machine pose for sex
            start_task_machine(EAGER);

            do_set_timer(2);           
        }
        else
        {
            return;
        }
    }

    [FLOOR_FUCK1]
    {
        //During sex
    }

_________________
To install a mod

ESKARN'S TUTORIALS

Eskarn's Dungeon Mod(BETA)

Eskarn's puzzle map (story)


Mon Jul 02, 2018 12:58 am
Profile
Rank 9
Rank 9

Joined: Tue May 15, 2018 10:44 am
Posts: 50
LoL Yeah, I wound up catching that as well.

Even after I fixed it, it was still giving me issues. I noticed that when I have a talk routine after the zipper check, it all seems to work.

Code:
   [ZIP_OPEN]
   {
      loc.oz.item = 0;//The clothing item, the number is found in their init file under cloth items
      loc.oz.open = true; // if the zipper is open or closed and can be manipulated
      loc.oz.d    = 0.05;// how much to open the zipper by
      OpenClothZipper(loc.oz);//execute the above
      
      loc.closed = GetClothZipperIsClosed(loc.oz);
      [loc.closed < 11] return;

      talk.s = "Oh shoot, this damn zipper never stays closed.";
      state.dyn.me.do.state2 = ZIP_TALK1;
   }


But when I take that talk.s out of the state, it just sits there and spins its wheels doing nothing. In either event, it's finally working, for the most part.

Thanks for all the help. Second set of eyes has definitely been a godsend! =)


Mon Jul 02, 2018 2:58 pm
Profile
Rank 9
Rank 9

Joined: Tue May 15, 2018 10:44 am
Posts: 50
Next question... I know, I have a billion of them. =)

I want to create a variable for this particular scene that I'll use as a counter. When looking at some of the tasks, they use

Code:
state.dyn.me.task.taskname.variablename = value;


When it comes to these sorts of things, how flexible is the scripting language?

Example 1:
Code:
loc.variablename = value;


Exmaple 2:
Code:
state.dyn.me.scenefile.variablename = value;


Also from what I've seen, I'm assuming I can just drop it in at the top of the state definition, before any of the state methods are called, then recall it at any point from within the methods themselves.


Mon Jul 02, 2018 8:25 pm
Profile
Rank 17
Rank 17
User avatar

Joined: Fri Feb 27, 2015 2:06 pm
Posts: 687
Location: Australia
If you need the variable to exist through the entire file then you would use
Code:
state.dyn.me.do.X = X;

If you only need it to exist with in a single function?
Code:
[APPLES]
{
   loc.apples = 25
   talk.s = "i have {loc.apples} apples"
}

You can do randoms
Code:
[TYPESFOAPPLES]
{
   loc.rnd = Rnd(3);      
   case (loc.rnd)
   {
      [0] loc.apples = "green";
      [1] loc.apples = "red";
      [2] loc.apples = "purple";
   }

    talk.s = "My apple is {loc.apples}";
}

[TALKING]
{
   loc.rnd = Rnd(3);      
   case (loc.rnd)
   {
      [0] talk.s = "Get out of here {^gname}";
      [1] talk.s = "Would you piss off already";
      [2] talk.s = "go away, i dont want to see you";
   }
}

You have touch locations
and one of the things you can do is have multiple cases running at the same time
i added custom timers for that one so i could stop them from spaming when they were touched
Code:

case (state.dyn.me.do.monicawait)
{
   [WAIT]
   {

      [ts > state.dyn.me.do.stt]
      {
         monicacoolofftimer(20);
         state.dyn.me.do.monicawait = NOTHING;
      }
         
   }
}

case (state.dyn.me.do.monicatouchtalkwait)
{
   [WAIT]
   {
      [ts > state.dyn.me.do.stwt]
      {
         monicacoolofftimer(20);
         state.dyn.me.do.monicatouchtalkwait = NOTHING;
      }         
   }
}


You can wait for the player to touch or you can just do a whenever touch
the touch locations are
Code:

case (state.dyn.me.do.state2)
{
   [WAITFORTOUCH]
   {
      [state.dyn.me.coll.MONICA_CLOTH_ITEM0_touch.obj != null ]
      {
         talk.s = "dont touch my dress";

      }
   }

   [TOUCHED]
   {
      talk.s = "dont touch my dress";
   }
}


[state.dyn.me.coll.MONICA_CLOTH_ITEM0_touch.obj != null & state.dyn.me.do.state2 != TOUCHED ]
state.dyn.me.do.state2 = TOUCHED;

Code:
state.dyn.me.coll.MONICA_CLOTH_ITEM0_touch.obj
state.dyn.me.coll.MONICA_CLOTH_ITEM0_button0.obj > state.dyn.me.coll.MONICA_CLOTH_ITEM0_button7.obj
state.dyn.me.coll.MONICA_CLOTH_ITEM1_touch
state.dyn.me.coll.MONICA_CLOTH_ITEM1_zip0
state.dyn.me.coll.MONICA_CLOTH_ITEM1_button0
state.dyn.me.coll.MONICA_CLOTH_ITEM1_button1
state.dyn.me.coll.MONICA_CLOTH_ITEM2_touch
talk.s = "Hell fucking no you {state.dyn.me.do.monicainsults} you are not taking my panties off, {state.dyn.me.do.monicainsults}";

state.dyn.me.coll.head_touch.obj
state.dyn.me.coll.neck_touch.obj
state.dyn.me.coll.bodytop_touch.obj
state.dyn.me.coll.bodymid_touch.obj
state.dyn.me.coll.bodybot_touch.obj
state.dyn.me.coll.armsup_touch.obj
state.dyn.me.coll.armslow_touch.obj
state.dyn.me.coll.hands_touch.obj
state.dyn.me.coll.legsup_touch.obj
state.dyn.me.coll.legslow_touch.obj
state.dyn.me.coll.feet_touch.obj
state.dyn.me.coll.skin0_touch.obj_par == 1 //boobs
state.dyn.me.coll.skin0_touch.obj_par == 2 //left nipple
state.dyn.me.coll.skin0_touch.obj_par == 3 //right nipple
state.dyn.me.coll.root_touch.obj
state.dyn.me.coll.butt_touch.obj
state.dyn.me.coll.pussy_touch.obj_par == 1 //pussy
state.dyn.me.coll.pussy_touch.obj_par == 4 //clit
state.dyn.me.coll.anus_touch.obj //was broken last time i checked and some of the back area returned asshole....

SPANKING
state.dyn.me.coll.root_hit.obj //ass
state.dyn.me.coll.skin0_hit.obj //tits
state.dyn.me.coll.head_hit.obj
state.dyn.me.coll.body_hit.obj

PENETRATION

[state.dyn.me.coll.vag_pen.obj == PLAYER]
[state.dyn.me.coll.vag_pen.obj == MONICA]
[state.dyn.me.coll.vag_pen.obj == VIBRATOR1 | state.dyn.me.coll.vag_pen.obj == PINK_DILDO1 | state.dyn.me.coll.vag_pen.obj == BLACK_DILDO1]
[state.dyn.me.coll.vag_pen.obj == PDILDO1]//pole

state.dyn.me.coll.vag_deep.obj_par //how deep
state.dyn.me.coll.vag_speed.obj_par // how fast

state.dyn.me.coll.anus_pen.obj
state.dyn.me.coll.mouth_pen.obj

FLUIDS
//fluid1 //cum
//fluid2 //piss
//whatever's set in the players ini
//THE EVENT FIRES EVEN IF A SINGLE BIT OF FLUID IS TOUCHING AND KEEPS FIRING UNTIL ITS GONE


[state.dyn.me.coll.mouth_pen.obj == null & state.dyn.me.coll.head_fluid1.obj != null]//on head face etc
[state.dyn.me.coll.mouth_pen.obj != null & state.dyn.me.coll.head_fluid1.obj != null ]//in mouth
state.dyn.me.coll.neck_fluid1.obj
state.dyn.me.coll.bodytop_fluid1.obj
state.dyn.me.coll.bodymid_fluid1.obj
state.dyn.me.coll.bodybot_fluid1.obj
state.dyn.me.coll.armsup_fluid1.obj
state.dyn.me.coll.armslow_fluid1.obj
state.dyn.me.coll.hands_fluid1.obj
state.dyn.me.coll.legsup_fluid1.obj
state.dyn.me.coll.legslow_fluid1.obj
state.dyn.me.coll.feet_fluid1.obj
state.dyn.me.coll.skin0_fluid1.obj //boobs
state.dyn.me.coll.root_fluid1.obj
state.dyn.me.coll.butt_fluid1.obj

state.dyn.me.coll.vag_pen.obj  != null & state.dyn.me.coll.pussy_fluid1.obj != null]//in pussy
[state.dyn.me.coll.vag_pen.obj  == null & state.dyn.me.coll.pussy_fluid1.obj != null ] //on pussy
[state.dyn.me.coll.anus_pen.obj  == null & state.dyn.me.coll.anus_fluid1.obj != null]//on ass
[state.dyn.me.coll.anus_pen.obj  != null & state.dyn.me.coll.anus_fluid1.obj != null ]//in ass


The code is very flexable and can do just about anything you need
i even got a full blackjack and poker game
Code:
   loc.pw.s  = "You busted with {state.dyn.me.do.cards.bustvalue} \n YOUR HAND {state.dyn.me.do.cards.basecardvalue} {state.dyn.me.do.cards.gotace} {state.dyn.me.do.cards.cardvalueace} {state.dyn.me.do.cards.nextcardsee}  \n THEIR HAND  {state.dyn.me.do.cards.theirbasecardvalue} {state.dyn.me.do.cards.theirgotace} {state.dyn.me.do.cards.theircardvalueace} {state.dyn.me.do.cards.theirnextcardsee} \n their wins {state.dyn.me.do.cards.theirwintimes} your wins {state.dyn.me.do.cards.wintimes}";
loc.pw.id = 0;
ShowPopupWnd(loc.pw);


If you want to redesign the story there is a lot of things you can mess with

_________________
To install a mod

ESKARN'S TUTORIALS

Eskarn's Dungeon Mod(BETA)

Eskarn's puzzle map (story)


Tue Jul 03, 2018 12:50 am
Profile
Rank 9
Rank 9

Joined: Tue May 15, 2018 10:44 am
Posts: 50
Christ almighty, Eskarn, do you ever deliver the goods.

That alone is going to take me awhile to pick apart, but definitely a great resource, as always.

And I'm definitely seeing just how flexible the scripting engine is. You have been a magnificent fount of knowledge and help. I don't think I can offer enough thanks. =)


Tue Jul 03, 2018 1:26 am
Profile
Rank 17
Rank 17
User avatar

Joined: Fri Feb 27, 2015 2:06 pm
Posts: 687
Location: Australia
how to add custom waypoints
add them to the scene.ini

Code:
    waypoint_objecti TABLEBEND
{
pos = (-2,0.0,0.0);
rot = (0.0,90.0,0.0);
}


Code:
loc.sp.pose_type = STAND;
loc.sp.pose_id   = 0;
loc.sp.waypoint  = "DUNGEON1:TABLEBEND";


i had to go and find it so i thought id add it here

_________________
To install a mod

ESKARN'S TUTORIALS

Eskarn's Dungeon Mod(BETA)

Eskarn's puzzle map (story)


Wed Jul 04, 2018 7:28 am
Profile
Rank 9
Rank 9

Joined: Tue May 15, 2018 10:44 am
Posts: 50
I noticed that not only do the waypoints use coordinates, but the city map locations do as well. I was wondering if there's a tool ingame to get the coords of either where you're standing, or where your mouse is pointing?

Also, is it possible to use operands in cases?

Example:

Code:

case(state.dyn.me.task.sitass.speed_count)
{
[<=4]
    Do stuff for slow speed;
[>4]
    Do stuff for faster speed;
}


Or would I have to stack cases?

Code:
case(state.dyn.me.task.sitass.speed_count)
{
[0]
[1]
[2]
[3]
[4]
{
    Do stuff for slow speed;
}
[5]
[6]
{
    Do stuff for faster speed;
}
}


Thu Jul 05, 2018 12:40 am
Profile
Rank 17
Rank 17
User avatar

Joined: Fri Feb 27, 2015 2:06 pm
Posts: 687
Location: Australia
Code:
case(state.dyn.me.task.sitass.speed_count)
{
loc.speed = state.dyn.me.task.sitass.speed_count
[loc.speed <= 4]
    Do stuff for slow speed;
[loc.speed > 4]
    Do stuff for faster speed;
}


ill see if theres a way to get back the x,y,z

also in the waypoint
Y is up and a value of 5 is around 2.5m

_________________
To install a mod

ESKARN'S TUTORIALS

Eskarn's Dungeon Mod(BETA)

Eskarn's puzzle map (story)


Thu Jul 05, 2018 7:30 am
Profile
Rank 9
Rank 9

Joined: Tue May 15, 2018 10:44 am
Posts: 50
That would be awesome. There've been a few situations where being able to check coords would make life easier.

Also... I just saw the code example and smacked myself in the forehead. Complete "duh" moment. LoL Thanks as always.


Thu Jul 05, 2018 7:39 am
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 20 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group.
Designed by X-Moon Productions.