First, you do not need to use "smote". You can simply have the mob "yell". A line like: "yell I am being attacked! Help!" would work fine.
Second remark ... in the mpechoaround, the "target" of the around is $n, not @N. The first "$n" tells the mud who is the character
around who the comment must be echoed. If you need to refer to character $n
inside the echo though, you would use @N. For example:
mpechoaround $n {70}A guard comes to help the mob fight @N.
Third, you wouldn't need the mpquiet on/mpquiet off, because (a) mpgive does not produce any echo, and (b) this is only telling
this mob to be quit; the echoes that the other mob is "wearing all his equipment" or "wielding a longsword in his right hand" will still be shown.
Now... about the weapons... it's a bit tricky, and there's no good solution. What you have there works if only one mob is summoned for help, but becomes broken when more mobs are summoned before the first one is dead. Consider this:
- mob summons Guard
- mob gives equipment to Guard
- mob forces Guard to wear all (all that works well)
- mob summons a second Guard
- mob gives equipment to
the first Guard
- mob forces
the first Guard to wear all
Thus, we have Guard 1 with a set of equipment worn plus a set of equipment in inventory and Guard 2 who is naked.
If the mob is sentinel and you know where he is, you can do this: load the (new) guard in another room, equip him there, then transfer him. That would go something like this:
Code: Select all
>fight_prog 33~
yell "Shouts for help in some fashion specific to the area"
if rand(50)
mpat SecretRoom mpmload 'guardsman'
mpat SecretRoom mpoload 'a weapon'
mpat SecretRoom mpoload 'some armour'
mpat SecretRoom give 'a weapon' 'guardsman'
mpat SecretRoom give 'some armour' 'guardsman'
mpat SecretRoom mpforce 'guardsman' wear all
mpat SecretRoom mpforce 'guardsman' mpgoto RoomWithTheMob
mpechoat $n �echo to player that aid has arrived�
mpechoaround $n �echo to anyone else in vicinity�
mpforce 'guardsman' mpkill $n
endif
~