Going to get a tad technical here. Having seen a ROM code from the inside, not saying that SK has a normal code but the concept is usable. I'm going to be assuming some things resemble those used in stock ROM codes.
Whenever there is a message to be printed to specific targets the act function is used. The function uses string identifiers $n $N for person doing action and target affected by action, it uses tons of other identifiers handled in the function but that's another issue. Now, I am assuming that the acid blast spell is much like any normal spell nested in magic.c and once its calculated damage is done and checks are made if the enemy is dead and so on and so forth there is a call to act in, possibly, the following manner :
Code:
act ("$N dodges aside as only part of your acid blast showers onto $M.", ch, NULL, vch, TO_CHAR);
$n resolves to the caster and $N to the target, causing that message since ch and vch are one and the same. The flag TO_CHAR states that the caster gets the message.
Now there is another message that gets printed to the target, pressumably:
Code:
act ("You dodge aside as only part of $n acid blast showers onto you.", ch, NULL, vch, TO_VICT);
Here $n is the caster and the flag TO_VICT states that the victim gets the message.
I realise that there might be some extra work involved tuning all spells and stuff but, can't there be some sort of check saying:
Code:
if ( ch != vch ) {
act ("$N dodges aside as only part of your acid blast showers onto $M.", ch, NULL, vch, TO_CHAR); }
Therefore printing the message to the character ONLY if the target is someone else and using the TO_VICT message to print the correct message to the target. In this case the act function needs to be tuned to check if $n and $N are the same person and return your in the or return the $n name appended with a nice 's at the end and all?
Did that make any sort of sense?
PS: Yes I didn't get into the TO_NOTVICT flag but that's a similar issue anyway