xmoonproductions.org
https://xmoonproductions.org/

Animation help
https://xmoonproductions.org/viewtopic.php?f=27&t=4330
Page 4 of 4

Author:  Eskarn [ Tue Jan 12, 2016 3:27 pm ]
Post subject:  Re: Animation help

for now just use this but its not the propper way to do it
jiggle0_state.dat or whatever its called now
Code:
  [FINISH]
  {
loc.sp.pose_type = STAND;
      loc.sp.pose_id   = 0;
    SetPose(loc.sp);
  }


jiggle0_ref.dat
Code:
stop.you.set =
{
  loc.ss.state  = MOVE0;
state.dyn.me.do.state2 = FINISH;
  loc.ss.state3 = STAND;
      
   set_state(loc.ss);
}
stop.you.if = stop.you.set;

Author:  pavar [ Tue Jan 12, 2016 3:36 pm ]
Post subject:  Re: Animation help

Eskarn wrote:
for now just use this but its not the propper way to do it
jiggle0_state.dat or whatever its called now
Code:
  [FINISH]
  {
loc.sp.pose_type = STAND;
      loc.sp.pose_id   = 0;
    SetPose(loc.sp);
  }


jiggle0_ref.dat
Code:
stop.you.set =
{
  loc.ss.state  = MOVE0;
state.dyn.me.do.state2 = FINISH;
  loc.ss.state3 = STAND;
      
   set_state(loc.ss);
}
stop.you.if = stop.you.set;


Thank you. I will try it when I get back from work. The most probable issue is an error in the CASE. According to the brain debug, the pose end normally (pose ready) but while the brain recognize the STAND command, it does not trigger it properly.

Author:  pavar [ Tue Jan 12, 2016 10:37 pm ]
Post subject:  Re: Animation help

Unfortunately, no joy.

I think I will start with a blank script and a fresh copy of the dungeon pack. Perhaps I messed up something in the peripherial files.
@Eskarn here is the state file, maybe you can find the error

Code:
//-------------------------------------------


<tablefuck0_state>

loc.res = pose_state();
[loc.res] return;

case (state.dyn.me.do.state2)
{
  [START1]
   {

      loc.sp.pose_type = STAND;
      loc.sp.pose_id   = 0;
      loc.sp.waypoint  = "DUNGEON1:TABLEBEND";
      do_set_timer(1);
      loc.sp.exact     = 1;
      SetPose(loc.sp);
      
        state.dyn.me.do.pose.sp     = loc.sp;
      state.dyn.me.do.state2 = START2;
      state.dyn.me.do.pose.fstate2 = FINISH;
      state.dyn.me.do.state2      = POSE_WAIT;

   }

   
  [START2]
   {
      
      
      
      loc.sp.pose_type = TABLEFUCK;
      loc.sp.pose_id   = 0;
      SetPose(loc.sp);
      
      
      
   state.dyn.me.do.pose.sp     = loc.sp;
   state.dyn.me.do.pose.state2 = START_tablefuck;
   state.dyn.me.do.state2      = POSE_WAIT;
      
   }
 
     
  [FINISH]
   {
      loc.sp.pose_type = STAND;
      loc.sp.pose_id   = 0;
    SetPose(loc.sp);
   }
   
   [JIGGLING]
   {
      loc.ts = GetTs(); 
       [loc.ts >= state.dyn.me.do.ts]   
         [state.dyn.me.do.pose.finish]
            {   
            // Reset head
            loc.hs.state = NONE;
            loc.hs.dur   = 0;
            loc.hs.scale = 1.0;
            SetHeadState(loc.hs);
             basic_state();
            }
    }
   
  [START_tablefuck]
   {
      tablefuck0_notify_actor_start();
      
      // Start tablefuck( task
      loc.tb.mood   = get_task_mood();
      loc.tb.actor ^= state.dyn.me.do.par;
       start_task_tablefuck(loc.tb);
      
      // Notify main
         [state.dyn.me.do.par == null]
         {
         loc.be.obj = state.dyn.me.avatar.id;
         loc.be.id     = CHAR;
         loc.be.action = "start_tablefuck";
         SendBaseEvent(loc.be);
         }
      
         state.dyn.me.pose.ia_type = null;
       
         state.dyn.me.do.state2 = GIVING_tablefuck;
   }

  [GIVING_tablefuck]
  {
    loc.res = tablefuck0_interact();
    [loc.res] return;
   
    loc.down = true;
    loc.res = react_clamp(loc);
    [loc.res] return;
   
    loc.down = true;
    loc.res = react_spank(loc);
    [loc.res] return;
 
    [state.dyn.me.do.pose.finish]
    {
        tablefuck0_notify_actor_stop();
   
      // Stop tablefuck task
        stop_task_tablefuck();

        basic_state();
        return;
      }
      
    // If ready
      [state.dyn.me.task.tablefuck.state == READY]
      {
        // Restart
        init_task_tablefuck_state();
       
      tablefuck0_notify_actor_restart();
      }
  }

  [STANDUP]
  {
    tablefuck0_notify_actor_stop();
 
    // Stop tablefuck task
      stop_task_tablefuck();
 
    // Standup
     loc.sp.pose_type = STAND;
     loc.sp.pose_id   = 0;
   
    SetPose(loc.sp);

   state.dyn.me.do.pose.sp     = loc.sp; 
  //  state.dyn.me.do.pose.state2 = PANTS_UP;
    state.dyn.me.do.state2      = POSE_WAIT;
  }
}


</tablefuck0_state>

//-------------------------------------------


<tablefuck0_interact>

[state.dyn.me.pose.ia_type != null]
{
  res = true;

  case (state.dyn.me.pose.ia_type)
  {
    [STAND]
    {
      state.dyn.me.do.state2 = STANDUP;
    }

    [TABLEFUCK]
    {
      tablefuck0_notify_actor_stop();
   
      // Stop tablefuck task
        stop_task_tablefuck();
   
      basic_pass_ia();
      return;
    }
  }

  state.dyn.me.pose.ia_type = null;
}
else res = false;

</tablefuck0_interact>


//-------------------------------------------


<tablefuck0_notify_actor_start>

[state.dyn.me.do.par == null] return;

// Notify actor
loc.be.obj    = state.dyn.me.do.par;
loc.be.id     = CHAR;
loc.be.action = "start_tablefuck";
SendBaseEvent(loc.be);   
   
</tablefuck0_notify_actor_start>


//-------------------------------------------


<tablefuck0_notify_actor_stop>

[par != null] loc.be.obj  = par;
else          loc.be.obj ^= state.dyn.me.do.par;

[loc.be.obj == null] return;

// Notify actor
loc.be.id     = CHAR;
loc.be.action = "stop_tablefuck";
SendBaseEvent(loc.be);   
   
</tablefuck0_notify_actor_stop>


//-------------------------------------------


<tablefuck0_notify_actor_restart>

[state.dyn.me.do.par == null] return;

// Notify actor
loc.be.obj    = state.dyn.me.do.par;
loc.be.id     = CHAR;
loc.be.action = "restart_tablefuck";
SendBaseEvent(loc.be);   
   
</tablefuck0_notify_actor_restart>

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