A little modification of the code - but if you did remove the three -l and got "unknown command" errors, you either mixed up something with the brackets, or you didn't load the file properly to "soldatbot"
To play safe:
1) remove (e.g. unload) the previously given script and your "own" soldatserver-kick-script as well
2) add the script below to the remotes of the "bot" client: Alt-R opening the scripts editor, in tab "remote" create a new file and paste all the code below
3) put the name of your channel for #YOURCHANNEL (line 1)
4) "save" or "save as ..." the new file and close the scripts editor
5) make sure remotes are enabled: type /remote on
6) make sure "com" isn't locked in this client. go to tools -> options -> other -> lock: if the box "com" is checked at "disable commands", uncheck it.
7) make sure the bot-client running this script is opped in the channel you put for #YOURCHANNEL
on @*:text:!kick *:#YOURCHANNEL:{
var %app = soldatserver.exe
if ($2 isop $chan) { notice $nick Ops cannot be kicked. }
elseif ($2 !ison $chan) { notice $nick $2 is not at $chan $+ . }
elseif (!$3) { notice $nick Syntax Error: !kick <name> <reason> }
else {
kick $chan $2-
if ($isrun(%app) == $true) {
sendtoapp %app /kick $2- {ENTER}
notice $nick $2 has been kicked out of the game.
}
else { notice $nick %app isn't running. }
}
}
alias -l sendtoapp {
if ($2) {
if ($com(sta)) { .comclose sta }
.comopen sta WScript.Shell
noop $com(sta,AppActivate,3,*bstr,$1)
.comclose sta $com(sta,SendKeys,3,*bstr,$2-)
showmirc -s
}
}
alias -l isrun {
if (($isid) && ($1 != $null)) {
if ($com(isrun_a)) { .comclose isrun_a }
if ($com(isrun_b)) { .comclose isrun_b }
.comopen isrun_a WbemScripting.SWbemLocator
if (!$com(isrun_a)) { return }
.comclose isrun_a $com(isrun_a,ConnectServer,3,dispatch* isrun_b)
if (!$com(isrun_b)) { return }
.comclose isrun_b $com(isrun_b,ExecQuery,3,string,SELECT ProcessId FROM Win32_Process WHERE Name = $qt($1) $+ ,dispatch* isrun_a)
if (!$com(isrun_a)) { return }
noop $com(isrun_a,Count,3)
var %return = $iif(($com(isrun_a).result),$true,$false)
.comclose isrun_a
return %return
}
}Now, if a user types "!kick <somenick> <somereason>", he should reveive one of the possible notices: ops cant be kicked/<nick> is not at <chan>/<nick> has been kicked/soldatserver isnt running
If he's receiving the "isnt running" message and you're sure soldatserver.exe IS running at the system of the "botclient", try again after changing the 2nd line:
var %app = soldatserver.exe
to
As I don't have a soldatserver.exe, I tested with cmd.exe, and it worked like expected

_____________
EDIT:
looking at the topic you put in one of the screens above: if you want to restrict the !kick command to ops or voices only, add
above this line:
if ($2 isop $chan) { notice $nick Ops cannot be kicked. }that line (limiting !kick to ops):
if ($nick !isop $chan) { return }or that line: (limiting !kick to voices)
if ($nick !isvoice $chan) { return }