11 override void CreateConditionComponents()
19 if ( !target )
return false;
21 Object target_object = target.GetObject();
22 string action_selection = target_object.GetActionComponentName( target.GetComponentIndex() );
29 vector fire_point_pos_world, fire_point_rot_world;
36 vector diff = fire_point_rot_world - fire_point_pos_world;
39 float dotp =
vector.Dot(
"0 0 1" , diff );
40 rot_deg =
Math.Acos( dotp ) *
Math.RAD2DEG;
41 if ( ( diff[0] < 0 ) && ( diff[2] < 0 ) )
42 rot_deg = 360.0 - rot_deg;
43 else if ( ( diff[0] < 0 ) && ( diff[2] > 0 ) )
44 rot_deg = 360.0 - rot_deg;
49 float fire_point_dist =
vector.Distance( fire_point_pos_world, player.GetPosition() );
50 if ( fire_point_dist <= 2 )
52 player.SetLastFirePoint( fire_point_pos_world );
53 player.SetLastFirePointIndex( fire_point_index );
54 player.SetLastFirePointRot( rot_deg );
63 override void OnExecuteServer(ActionData action_data)
66 Object targetObject = action_data.m_Target.GetObject();
71 lambda.SetTransferParams(
true,
true,
true);
72 action_data.m_Player.ServerReplaceItemInHandsWithNewElsewhere(lambda);
75 override bool IsLockTargetOnUse()