A boolean is either 0 or 1. Yes or no. Therefore, you should say slot number instead. The most complex words aren't necessarily the most correct, just like cartoons teach.
I am going to pardon your filibuster, because everyone who doesn't know things on a subject ends up with one, and going angry over it every time has brought me nothing good.
The object of the player is, well, %pl. That is the player object.
The client is, like you put it there, %pl.client.
The code seems to be pretty much correct except for a thing I'll talk about later. Or, at least, assuming announce() exists. Many have used that so maybe it exists.
Works or not, here's how simple the situation can get. You didn't explicitly said if the function you gave works, but the rest of your wall implies it didn't.
So you have a variable %f and a variable %pl there, wherein %f is unknown and %pl is the player object.
But first, you've made a mistake: Overwritten the original function. In Torquescript, if you want stuff to happen when a function is called without overwritting the already-existing one, you make yourself a package.
Here it is:
package SlotPackage
{
function useFirstSlot(%f, %pl)
{
parent::useFirstSlot(%f,%pl);
announce(%pl.client.name);
}
}
activatePackage(SlotPackage);
The function is now inside a package. It will not overwrite the original function, and is executed instead of it. So doing calling the function on "parent" is now valid, since we don't overwrite it.
Packages are disabled by default, so we use the function activatePackage to activate the package.
I've typed this up on my phone, so I am going to edit now that I get on a computer. Refresh later after you read this so far.