Well, for sure, it would be more complicated, because "drop" command calls CBasePlayer:: DropPlayerItem() but this function is used in severals others functions, so using orpheu you would need either to filter the functions, either to hook ClientCommand() and filter the arguments. At the end, hooking "drop" is the simplest way and fits perfectly to the need here. ;)