xmoonproductions.org https://www.xmoonproductions.org/ |
|
Clothing References https://www.xmoonproductions.org/viewtopic.php?f=28&t=5476 |
Page 2 of 2 |
Author: | CruzCoda [ Sun Jul 01, 2018 2:11 pm ] |
Post subject: | Re: Clothing References |
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? |
Author: | Eskarn [ Mon Jul 02, 2018 12:58 am ] |
Post subject: | Re: Clothing References |
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 } |
Author: | CruzCoda [ Mon Jul 02, 2018 2:58 pm ] |
Post subject: | Re: Clothing References |
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! =) |
Author: | CruzCoda [ Mon Jul 02, 2018 8:25 pm ] |
Post subject: | Re: Clothing References |
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. |
Author: | Eskarn [ Tue Jul 03, 2018 12:50 am ] |
Post subject: | Re: Clothing References |
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 |
Author: | CruzCoda [ Tue Jul 03, 2018 1:26 am ] |
Post subject: | Re: Clothing References |
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. =) |
Author: | Eskarn [ Wed Jul 04, 2018 7:28 am ] |
Post subject: | Re: Clothing References |
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 |
Author: | CruzCoda [ Thu Jul 05, 2018 12:40 am ] |
Post subject: | Re: Clothing References |
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; } } |
Author: | Eskarn [ Thu Jul 05, 2018 7:30 am ] |
Post subject: | Re: Clothing References |
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 |
Author: | CruzCoda [ Thu Jul 05, 2018 7:39 am ] |
Post subject: | Re: Clothing References |
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. |
Page 2 of 2 | All times are UTC |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |