Well, I've tried. I downloaded PHP and the activescript dll as you suggested. A few changes to MUSHclient to recognise PHP as a script engine, register the DLL and we are away, sort of.
The problem is:
a) I don't seem to be able to test without raising syntax errors in PHP; and
b) As soon as I get an error, I see the usual script error dialog box, but when I close that MUSHclient silently terminates (ie. with no error message, however without offering to save changed documents etc.)
I tried testing with:
/world.Note "Hi"
This usually works, however first I see this in the error dialog:
syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Then this is what I get in the debug window:
T=0000015e 01dcc6d0: GetScriptState(current=SCRIPTSTATE_CONNECTED)
T=0000015e ParseScriptText
T=0000015e pstrCode=001423E4 pstrItemName=00000000
punkContext=00000000 pstrDelimiter=00000000 pvarResult=00000000 pexcepinfo=0012F990
T=0000015e [MARSHAL] prepping for function code 0 ParseScriptText, 9 args, marshal defs at 01EDA01C
T=0000015e [MARSHAL] marshalling ...
T=0000015e [MARSHAL] arg=2 IUnknown(NULL) - skip
T=0000015e [MARSHAL] -- skipping (this param is not needed in this direction)
T=00000141 [MARSHAL] unmarshalling...
T=00000141 [MARSHAL] unmarshal arg=2 IUnknown(NULL) - skip
T=00000141 ParseScriptText
T=00000141 pstrCode=001423E4 pstrItemName=00000000 punkContext=00000000 pstrDelimiter=00000000
pvarResult=00000000 pexcepinfo=0012F990
T=00000141 01dcc6d0: ParseScriptText:
state=SCRIPTSTATE_CONNECTED
code=world.Note "Hi"
item=<NULL>
delim=<NULL>
line=0
T=00000141 0014ee58: COMPILED FRAG
T=00000141 code to compile is:
code_offs=0 func=(null)
world.Note "Hi"
T=00000141 01dcc6d0: PHP Error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
T=00000141 raising error object!
T=00000141 Calling [marshall] m_pass->OnScriptError
T=00000141 Release: errobj refcount=1
CActiveScriptSite: OnScriptError
T=00000141 Release: errobj refcount=2
T=00000141 Release: errobj refcount=1
T=00000141 Release: errobj refcount=0
T=00000141 024f3b40: cleaning up error object
T=00000141 --- done calling m_pass->OnScriptError
The thread 0x15E has exited with code -1 (0xFFFFFFFF).
The thread 0x122 has exited with code -1 (0xFFFFFFFF).
The thread 0x125 has exited with code -1 (0xFFFFFFFF).
The thread 0x13C has exited with code -1 (0xFFFFFFFF).
The thread 0x153 has exited with code -1 (0xFFFFFFFF).
The thread 0x147 has exited with code -1 (0xFFFFFFFF).
The thread 0x167 has exited with code -1 (0xFFFFFFFF).
The thread 0x141 has exited with code -1 (0xFFFFFFFF).
The program 'G:\source\mushclient\WinDebug\MUSHclient.exe' has exited with code -1 (0xFFFFFFFF).
The final line is the important one, MUSHclient.exe has exited.
Now if I try slightly different syntax:
/world.Note ("hi");
I get these errors:
Use of undefined constant world - assumed 'world'
Call to undefined function Note()
However, MUSHclient does not exit and continues normally.
So I have two major problems - the first is that, although I am familiar with PHP, I don't seem to be able to get it to recognise the "world" object (using $world doesn't help much either).
The second is, that for certain sorts of errors the MUSHclient session goes away.
It seems that for parsing (syntax) errors like "syntax error, unexpected T_CONSTANT_ENCAPSED_STRING", it decides to terminate the application altogether, however for semantic errors (doesn't recognise the word "world") it doesn't. Sounds like a bug in the script engine to me.