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>