I don't really get cmd_target() to be perfectly honest, so I'd use find_player instead.
It also looks like all of the arguments should be integers.
I don't know if you can pass in a value as str_to_num, so I'll just make 4 new variables - what the hell.
Code:
new index[25]
new weapon[3]
new clips[4]
new extra[3]
read_argv(1,index,24)
read_argv(2, weapon, 2)
read_argv(3, clips, 3)
read_argv(4, extra, 2)
new target=find_player(index,"bl") // bl = partial name, only alive. (I think ;-) )
if (!target)
{
client_print(id,print_chat,"Could not find player %s",index)
return PLUGIN_HANDLED
}
new weapon_id=str_to_num(weapon)
new clips_num=str_to_num(clips)
new extra_num=str_to_num(extra)
ts_giveweapon( id,weapon_id,clips_num,extra_num)