In the Bitcoin scripting language, how can I access the other outputs of the transaction? Or how can I limit how coins can be spent?

Is there a way to add an opcode to a UTXO that prevents the use of parts?

For example, to use the output, a person must send an X number of bitcoins to a Y address in the associated transaction.