Your slap snippet is redundant. Why do you specify "slap $me" as a wildcard in the match text section of the text event with an if condition of "$me isin $1-?"
This is all you need:
on *:action:$($strip($+(*,slap,*,$me,*))):*:{
if (!%slap. [ $+ [ $nick ] ]) {
describe $iif(#,#,$nick) slaps $nick around a bit with $read(slaps.txt) $+ .
set -eu10 %slap. $+ $nick 1
}
}
When you set the dynamic variable, you don't need to include the evaluation bracket []. A $strip() identifier is advised so your mIRC recognizes the trigger if someone has their script customized with control codes, and that you do not have the option of incoming messages stripped enabled. The exclamation mark by the %slap is pretty much the same as:
if (%slap. [ $+ [ $nick ] ] == $null) {