Re: [Win32] Scripting

From: Rob Baumstark (shirak@CONNECT.AB.CA)
Date: 08/09/98


>DG Scripts, C-style interpreters...
>Here's another option for you:
>JavaScript (and/or VBScript).
>What say ye all to such a scripting host in Circle? Would take a little
work
>to set up the object model (might even just wait til "Circle++" :p), but
>they're languages that are relatively familiar and MS has dlls and ActiveX
>thingies to stick them into any app. Heck, could even set up an event
system
>(more like triggers, but known as 'events' to those languages) and edit
them
>online, etc.


It's not a bad though, and in some ways would be quite easy to do, but would
require a LOT of work in other areas.  It's quite easy to hook up to the MS
Script control, and have full VB-Script instantly avaliable to edit from
within the MUD.  The hard part is giving access to the MUD's variables to
the script.  The script object has built in support to access any ActiveX
objects (which is more than just ActiveX controls, but all kinds of COM
objects), but Circle doesn't use COM, or objects.  I suppose if you didn't
want to re-write all of Circle in C++ using objects, you could just make a
global object with a bunch of members, and put the info for the script into
it before calling it, and get the values back out after the script exits,
but I think that would be even more of a pain in the ass.

Also, using the Scripting DLL's from Circle, you lose all control over what
the script is doing.  A nasty builder could put a
While 1
Wend
into his script, and it would effectivly freeze the MUD.  A MsgBox would
have the same effect, until someone sitting at the server hit the button.
You've got to be careful not to give the builders too much control.


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST