The basic process is firstly to install the XMCP/1.1 Driver and Feature Objects. Then install some application objects, like the Generic Desktop or Generic Whiteboard. Finally you can configure your tkMOO-light client to operate with your own objects, and then you're ready to go.
@fix-commands #feature
;#driver.trusted = setadd(#driver.trusted, #feature)
;#driver.trusted = setadd(#driver.trusted, #me)
;#feature.driver = #driver
;#gd.driver = #driver
;#gw.driver = #driver
;#gd.whiteboard = #gw
@create gd named desktop @create gw named colouring book
... ConnectScript: connect %u %p ConnectScript: @wrap off ConnectScript: @xmcp_challenge ClientMode: line ...
@xmcp_challenge
then you should never have to type the command again (see above).
@addfeature #feature @xmcp_challenge
At this time you should see the message:
XMCP/1.1 Authentication set.
If you don't see the message, then something's wrong, and you should check that you've set the values of
#driver.trusted
and#feature.driver
correctly.
put me on desktop
watch colouring book
@create $thing named XMCP/1.1 Driver (xdr):XMCP/1.1 Driver (xdr),xdr @prop xdr."authentication_keys" {} rc ;xdr.("authentication_keys") = {{#253, "33554454"}, {#221, "16777238"}} @prop xdr."trusted" {} rc ;xdr.("trusted") = {#252, #221} @prop xdr."debug" 0 rc @prop xdr."tag" 9 rc ;xdr.("key") = 0 ;xdr.("aliases") = {"XMCP/1.1 Driver (xdr)", "xdr"} ;xdr.("description") = {"A driver for XMCP/1.1 Server->Client messages. This object implements a message passing system on MOOs that don't have native MCP-like protocol support.", "", ".trusted = {#owner, #The first line uses the '@create' command to create an object, giving it the alias 'xdr'. When you issue this command the MOO will respond with a message like:, [# , ...]}"} ;xdr.("unique") = 0
You now have XMCP/1.1 Driver (xdr) (aka xdr) with object number #287 and parent generic thing (#5).You'll need to change the lines in the *.moo file that begin with:
;xdr.("...so that 'xdr' is replaced by the object number of the new object you created. With the 'xdr' string replaced the remainder of this section of the file should now look like this:
@prop xdr."authentication_keys" {} rc ;#287.("authentication_keys") = {{#253, "33554454"}, {#221, "16777238"}} @prop xdr."trusted" {} rc ;#287.("trusted") = {#252, #221} @prop xdr."debug" 0 rc @prop xdr."tag" 9 rc ;#287.("key") = 0 ;#287.("aliases") = {"XMCP/1.1 Driver (xdr)", "xdr"} ;#287.("description") = {"A driver for XMCP/1.1 Server->Client messages. This object implements a message passing system on MOOs that don't have native MCP-like protocol support.", "", ".trusted = {#owner, #Note that you don't need to change the lines in the *.moo file that begin with:, [# , ...]}"} ;#287.("unique") = 0
@prop xdr."...Once these changes have been made you can proceed to issue them to the MOO.
If you forget to change the 'xdr' to the object number of the newly created object then MOO will complain and give an error traceback like this:
#-1:Input to EVAL, line 1: Variable not found ... called from built-in function eval() ... called from #59:eval_cmd_string (this == #79), line 18 ... called from #59:eval*-d (this == #79), line 10 (End of traceback)This error might occurr if you try sending MOO the command:
;xdr.("unique") = 0instead of:
;#287.("unique") = 0If this error occurrs then you should edit the *.moo file to replace the relevant 'xdr' strings and send the corrected text to the MOO.