xmoonproductions.org
https://www.xmoonproductions.org/

Mod development sub-thread.
https://www.xmoonproductions.org/viewtopic.php?f=27&t=3416
Page 8 of 10

Author:  TheMohawkNinja [ Wed Dec 10, 2014 8:30 pm ]
Post subject:  Re: Mod development sub-thread.

riftporn wrote:
Ah ok, didn't know that. I suspect their fall pose has spring_x and spring_r set to something very low but spring_q still set to something higher.

The edit I posted does work for you now tho, right?


Yeah, Saiko's limbs don't resist my movements when she's laying on the bed.

I would assume that her unconscious state is the "FALL" pose, since you can only get her to enter this state by changing the line in one of the files (I've forgotten which one) that says "can_fall=false" to "can_fall=true";, and there is a "FALL" pose, but changing all the springs and the dampening to 0 doesn't seem to work.

Author:  riftporn [ Wed Dec 10, 2014 8:36 pm ]
Post subject:  Re: Mod development sub-thread.

TheMohawkNinja wrote:
Yeah, Saiko's limbs don't resist my movements when she's laying on the bed.

I would assume that her unconscious state is the "FALL" pose, since you can only get her to enter this state by changing the line in one of the files (I've forgotten which one) that says "can_fall=false" to "can_fall=true";, and there is a "FALL" pose, but changing all the springs and the dampening to 0 doesn't seem to work.


Yeah it's weird sometimes. I also tried to edit the STAND pose, no spring value really has effect there waist down (as the feet are nailed to the ground) Nothing in the .dat file reflects that so I suppose it's something set in the pose itself (which is in non readable format atm) or something that is in the IK libraries / code.

Author:  xpadmin [ Wed Dec 10, 2014 8:40 pm ]
Post subject:  Re: Mod development sub-thread.

The bottom part is animated directly by motion capture. The top by motion capture driving springs (muscles)

Also see in:

".\init\std\base\char\char_base.dat"

// These character elements are integrated using motion capture
int2_type = ROOT_LEGS;

If you change this to:
int2_type = ROOT;

Only the root is animated directly by motion capture.

If you change this to:
int2_type = NONE;

All the character is driven by springs.

You cannot do:
int2_type = LEGS;

When you go to sit pose or kneel pose this is automatically done by the engine.

Because the physics calculation do not allow it, they should always flow from the root

Author:  riftporn [ Wed Dec 10, 2014 8:52 pm ]
Post subject:  Re: Mod development sub-thread.

xpadmin wrote:
The bottom part is animated directly by motion capture. The top by motion capture driving springs (muscles)

Also see in:

".\init\std\base\char\char_base.dat"

// These character elements are integrated using motion capture
int2_type = ROOT_LEGS;

If you change this to:
int2_type = ROOT;

Only the root is animated directly by motion capture.

If you change this to:
int2_type = NONE;

All the character is driven by springs.

You cannot do:
int2_type = LEGS;

Because the physics calculation do not allow it, they should always flow from the root


I actually did/tried that, but doing it that way, you can't have ANY pose that requires IK / motion capture. Like no standing, no anal, no pole etc. It would be desirable to be able to set int2_type anywhere else in addition to the char_base main top block so we could change it with script (I tried, didn't work in poses and wasn't able to set by code, so I suspect it's set by non moddable files)
It would allow modders to do things like:
"the anal position is perfect but I want her laying on her back" -> edit/copy anal pose, set int2_type for it to NONE -> tell her to anal pose, turn her on her back.

It would also be great if there was some sort of "dampening" like in the 2.1 version. Like, you could put her arm up, and as long as she didn't need to much force to keep it up, she would keep holding it up even if it wasn't in perfect balance. I noticed there is a "damp" parameter but it doesn't seem to do that / I wasn't able to understand what it does. Maybe I'm doing it wrong :)

Author:  TheMohawkNinja [ Wed Dec 10, 2014 8:54 pm ]
Post subject:  Re: Mod development sub-thread.

Also, how do we declare global variables? I was under the impression that you simply don't include the "loc." part, but that doesn't seem to work. I'm trying to use one so that if a block of code in the "<task_blowjob_check_fluid>" function of the "task_blowjob.dat" file is executed, it won't be executed each and every time the function is executed (which tends to be a lot when there is a fluid on the girl's face).

Author:  xpadmin [ Wed Dec 10, 2014 9:08 pm ]
Post subject:  Re: Mod development sub-thread.

You can use

SetInt2Type(NONE);

But going back to:

SetInt2Type(ROOT_LEGS);

Can give a problem. We will improve this in next sub version.

Author:  riftporn [ Wed Dec 10, 2014 9:14 pm ]
Post subject:  Re: Mod development sub-thread.

@xpadmin: ah, thanks, I didn't try that obviously :)

Author:  xpadmin [ Wed Dec 10, 2014 9:45 pm ]
Post subject:  Re: Mod development sub-thread.

@TheMohawkNinja

Globals are indeed vars that have no 'loc.' prefix

So for example:

'state.dyn.me.do.state'

Is a global, but only within the "brain" of the character or player.

To "communicate" between players use SendBaseEvent.

Author:  TheMohawkNinja [ Wed Dec 10, 2014 10:02 pm ]
Post subject:  Re: Mod development sub-thread.

xpadmin wrote:
@TheMohawkNinja

Globals are indeed vars that have no 'loc.' prefix

So for example:

'state.dyn.me.do.state'

Is a global, but only within the "brain" of the character or player.

To "communicate" between players use SendBaseEvent.


Hmm...

Okay, so I have a line in the <start_task_blowjob> function that says:
Code:
state.dyn.me.state.didsay=false;


Then, down in the <task_blowjob_check_fluid> function and inside of the [state.dyn.me.coll.head_fluid1.obj != null] statement, I have code that looks like this:
Code:
[state.dyn.me.state.didsay==false]
   [state.dyn.me.coll.mouth_pen.obj_type == null]
   {
      case(state.dyn.me.task.blowjob.mood)
      {
         [NEUTRAL]
         [LIKE]
         [EAGER]
         []
         {
            talk.s="I love swallowing your cum.";
            SetBlush(0.15);
            //talk.delay = 10000;
         }
         [HESITANT]
         {
            talk.s="That tasted weird";
            //talk.delay = 10000;
         }
         [SCARED]
         {
            SetEyeCry(2.0);
            talk.s="EW... that was disgusting!";
            //talk.delay = 10000;
         }
         [DISGUSTED]
         {
            talk.s="I can't believe you did that!";
            //talk.delay = 10000;
         }
      }
      state.dyn.me.state.didsay=true;
   }


What this should do is only prompt the girl to comment on cumming in her mouth once every blowjob session, but it is looping the talk.s infintely. Am I not understanding how to use global variables, or is it something else?

Author:  xpadmin [ Wed Dec 10, 2014 10:08 pm ]
Post subject:  Re: Mod development sub-thread.

Ha I see,

[state.dyn.me.state.didsay==false]
[state.dyn.me.coll.mouth_pen.obj_type == null]

Means:

(state.dyn.me.state.didsay==false || state.dyn.me.coll.mouth_pen.obj_type == null)

This is to make or statements read more easily.

Same as:

Code:
case(loc.x)
{
  [Red]
  [Blue]
  [Green]
     loc.s = "Color";

  [Metal]
  [Wood]
     loc.s = "Material";
}


What you need to do is add {}

So:

Code:
[state.dyn.me.state.didsay==false]
{
   [state.dyn.me.coll.mouth_pen.obj_type == null]
  {
...
  }
}

Page 8 of 10 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/