Video discussing client and script variables

Posted by Nick Gammon on Thu 30 Dec 2010 05:19 AM — 7 posts, 40,874 views.

Australia Forum Administrator #0
I have made a video discussing both client and script variables, how you might create them, and how you could use them.



Amended on Mon 25 Nov 2013 10:44 PM by Nick Gammon
#1
Excellent presentation and a good review, Nick
Australia Forum Administrator #2
Thanks!

Below are the aliases I described, in case they are hard to read in the video:


<aliases>

  <alias
   match="f"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>
Send (left_direction)
</send>
  </alias>

  <alias
   match="k"
   enabled="y"
   expand_variables="y"
   sequence="100"
  >
  <send>kick @target</send>
  </alias>

  <alias
   match="t *"
   enabled="y"
   variable="target"
   send_to="9"
   sequence="100"
  >
  <send>%1</send>
  </alias>

</aliases>


Here are the triggers:


<triggers>

  <trigger
   custom_colour="2"
   enabled="y"
   match="* arrives from the *."
   send_to="12"
   sequence="100"
  >
  <send>

target = "%1"
direction = "%2"

</send>
  </trigger>

  <trigger
   custom_colour="6"
   enabled="y"
   match="* leaves *."
   send_to="12"
   sequence="100"
  >
  <send>

target = "%1"
left_direction = "%2"

</send>
  </trigger>

  <trigger
   enabled="y"
   expand_variables="y"
   match="@target punches you"
   sequence="100"
  >
  </trigger>

</triggers>


And here are the variables:


<variables>

  <variable name="last_direction">east</variable>

  <variable name="tank">edward</variable>

  <variable name="target">carrion crawler</variable>

</variables>



Template:pasting
For advice on how to copy the above, and paste it into MUSHclient, please see Pasting XML.

Amended on Thu 30 Dec 2010 08:48 PM by Nick Gammon
#3
HI
Are there some default client variables? Like for the last command sent (or last 3 commands)
In zmud it was %lastcom
Is there a list of all default variables?
thanx
Amended on Thu 21 Aug 2014 07:44 PM by Mahony
Australia Forum Administrator #4
There are no default variables, however quite a lot of functions that return things. For the last command, for example:

Template:function=GetCommandList
GetCommandList

The documentation for the GetCommandList script function is available online. It is also in the MUSHclient help file.



An argument of 1 returns the most recent command.

Look at the function list (Ctrl+Alt+Shift+L) and type "get" into the filter window to see quite a few of them.

Some of them (like GetInfo) have a selector (argument) that returns a lot of things about the current client state, such as the world file name, log file name, how many triggers have fired, and so on.

Template:function=GetInfo
GetInfo

The documentation for the GetInfo script function is available online. It is also in the MUSHclient help file.

#5
Oh great. Thanx. GetInfo(87) works fine for me.

Now a general problem with using stuff from functions like this.
Im trying this
Send("open" GetInfo(87))
and it doesn't work. Tried moving the apostrophes and brackets all possible ways... :)

How to do it? GetInfo(87) returns "up" in my case.

Thank you
Australia Forum Administrator #6
You need to read up on Lua and how it handles strings. To concatenate (join) them you use two dots, eg.


 Send("open" .. GetInfo(87))