Anlıyorum, ancak *:P* olarak tanımladığın için :P nin nerede olduğunu anlayıp tüm cümleyi ona göre düzenlemek gerekir, bunun için ancak;
Kod:
//f_fix_args <ARGS>, <Kontrol Edilecek Karakter>, <Değiştirilecek Karakter>
//Örnek: f_fix_args "<ARGS>", :P, §
[Function f_fix_args]
LOCAL.CHAR=<ARGV[1]>
LOCAL.CHAN=<ARGV[2]>
ARGS=<ARGV[0]>
LOCAL.RETURN=""
WHILE !<isEmpty <strArg <ARGS>>>
LOCAL.ARGS=<strArg <ARGS>>
IF (STRMATCH('<LOCAL.ARGS>', '<LOCAL.CHAR>'))
LOCAL.RETURN .= " <LOCAL.CHAN>"
ELSE
LOCAL.RETURN .= " <LOCAL.ARGS>"
ENDIF
ARGS=<strEat <ARGS>>
ENDWHILE
RETURN <STRSUB 1 0 <LOCAL.RETURN>>
Tabi eski sphere sürümlerinde "" içini tek bir argüman olarak tanımadığı için bu function çalışmayabilir, ayrıca test etmediğim için kodlamada hata yapmış da olabilirim, üstün körü yazdım, ancak basitçe bir örnek bu tabi ki geliştirmesi sana kalmış.
Kod:
On=*:P*
ARGS=<f_fix_args "<ARGS>", :P, §
MESSAGE @0,1 <ARGS>
RETURN 1