"HUMAN_LIGHT_INF_LARGE_WEAPON_PUSH"
{
	INT my_unit_recno 
	my_unit_recno = FUNC("get_character_recno") 

	INT large_weapon_recno
	large_weapon_recno = FUNC("get_curr_task_para" , my_unit_recno, 1)
	
	INT large_weapon_attach_index
	INT large_weapon_attach_x
	INT large_weapon_attach_y
	INT large_weapon_attach_z

	if( FUNC("get_attaching_unit_recno", my_unit_recno) <= 0 )
	{
		if( FUNC("can_attach", large_weapon_recno) == 1 )
		{
			if ( FUNC("get_curr_task_para", my_unit_recno, 2) == 0 )
			{
				large_weapon_attach_index = FUNC("get_nearest_attach_point", my_unit_recno, large_weapon_recno, "M")

				if( large_weapon_attach_index >= 0 )
				{
					large_weapon_attach_x = FUNC("get_nearest_attach_point_x", large_weapon_recno, large_weapon_attach_index)
					large_weapon_attach_y = FUNC("get_nearest_attach_point_y", large_weapon_recno, large_weapon_attach_index)
					large_weapon_attach_z = FUNC("get_nearest_attach_point_z", large_weapon_recno, large_weapon_attach_index)
					ACTION("give_order", my_unit_recno, "MOVE_TO_TARGET", 10, 0, large_weapon_attach_x, large_weapon_attach_y, large_weapon_attach_z, 0, 10000)	
					FUNC("attach_unit", my_unit_recno, large_weapon_recno, "M", 10)
				}
			}
			else
			{
				large_weapon_attach_index = FUNC("get_nearest_attach_point", my_unit_recno, large_weapon_recno, "F")

				if( large_weapon_attach_index >= 0 )
				{
					large_weapon_attach_x = FUNC("get_nearest_attach_point_x", large_weapon_recno, large_weapon_attach_index)
					large_weapon_attach_y = FUNC("get_nearest_attach_point_y", large_weapon_recno, large_weapon_attach_index)
					large_weapon_attach_z = FUNC("get_nearest_attach_point_z", large_weapon_recno, large_weapon_attach_index)
					ACTION("give_order", my_unit_recno, "MOVE_TO_TARGET", 10, 0, large_weapon_attach_x, large_weapon_attach_y, large_weapon_attach_z, 0, 10000)	
					FUNC("attach_unit", my_unit_recno, large_weapon_recno, "F", 10)
				}
			}
		}
	}
	else if ( FUNC("dist_to_attaching_point", my_unit_recno) > 14.2 )
	{
		FUNC("detach_unit", large_weapon_recno, FUNC("get_attaching_index", my_unit_recno))
		ACTION("stop_all_order", my_unit_recno) 
	}
	else
	{
		ACTION("stop_all_order", my_unit_recno) 
	}

	exit
}
