As it turns out, three scripts fire at the point you get rid of your last throwing weapon. These are the target's OnPhysicalAttacked, the module event OnPlayerUnEquipItem and the module event OnUnAcquireItem.
The first of the three is impractical to use because you'd need to stick the script to every creature and placeable and door in the game to make sure the dart/axe/whatever always returns. The other two should both do the job, but I'd suggest the OnUnAcquireItem because that one's last to fire and so you can be sure the item is truely gone.
Mind you, throwing weapons aren't automatically re-equipped the way bullets, bolts and arrows are. You'll have to do that manually, and that may result in the 'thrower' resorting to a fistfight, being busy with a 'combat' action and therefore ignoring the 'equip' action which comes later in the action queue. Clearing the combat action first would work, but it also messes up things like attacks per round and sneak attack vulnerability.
You can of course clear the action the moment the dart is unacquired to prevent the character rushing forward and claim a throwing weapon can only be used once per round - or tie the number of darts to the user's attacks per round as modified by haste, rapid shot mode etc.. In which case you assume a character always spends all of a round's worth of darts on a target.
A problem there is that it becomes all too easy to separate the stack and replenish all of the new mini stacks to generate more throwing weapons. Splitting stacks isn't captured by any script hooks you can apply to a PC.
So, in summary, returning throwing weapons aren't likely to be very user-friendly or rapid-firing unless you can think of some tidy solution.
On the other hand, you can probably off-set some of the discomfort by accepting they are a bit slow and clumsy, and compensating for that with relatively powerful enchantments.
|