![]() | Patch | Tutorials | Help | Forum | Goodies | Links | Archive | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contents: *About Variables And The Variables *Pushing And Popping A Variable Welcome back to part 2. Right this time we shall learn about variables and storing information in them so what is a variable, well there are 2 types of variables. 1. Dynamic Variable 2. Static Variable Dynamic Variables are variables you can both write and read data to/from. You can write data to them by using the push in commands. You may have as many uservariables as you want to read data from these variables you can use $variable-name$ - where variable-name is a unique name of the variable you want to read. variable-name may be any string or number you choose. For backward compatibility with old Metis versions you can also use %USERVAR[variable-name]% to access the variables. Static Variables are variables you can only read data from. Metis stores information in them such as Usernames, System time, and so on. Here is a list of all static Variables Metis offers, and in which commands you may use them. Variable And What It Does %NAME% Username without the digits (ID) at the end of user that trigger the command %RAWNAME% Complete name with ID of user that triggered the command %RAWNAME[name]% Gets the corresponding rawname for a name or namepart (you can use this along with %PARAM% for example: %RAWNAME[%PARAM%]%) %NICK% Name of the user truncated after the first underscore, space or dot in the name %OLDNAME% Name of user without ID before renaming %NEWNAME% Name of user without ID after renaming %OLDRAWNAME% Name of user with ID before renaming %NEWRANAME% Name of user with ID before renaming %LOCALTIME% System time of your Computer in 24h format %INETBEATS% Time in Internet beats (see www.swatch.com). This is an international standard time based on CET %SYSTEMUPTIME% Time your Computer (Windows) has been running in hours/minutes/seconds/milliseconds %TICKCOUNT% Time your Computer (Windows) has been running in milliseconds %BOTUPTIME% Time the bot has been running. %RANDOMNUM% A random number between 0 an 2000 %RANDOMNUM[nMax]% A random number between 0 an nMax %FILES% Number of files, user has shared %LINE% Connection type user is connected via (Cable, DSL, ISDN etc) %IP% IP of user (WinMX 3.53 or compatible servers. Bot must have sufficient privileges to See IPs) x %HOSTNAME% Hostname of user (WinMX 3.53 or compatible servers. Bot must have sufficient privileges to See IPs) x %HOSTNAME[IP]% Resolves the hostname belonging to IP if any. Example: %HOSTNAME[127.0.0.1]%, %HOSTNAME[%PARAM%]%, %HOSTNAME[%USERVAR[n]%]%. Returns the IP if the hostname could not be resolved x %USERVAR[n]% Uservariable. n may be between 0 and 49. You can store your own stuff in these variables %PARAMETER% [or %PARAM%] A parameter forwarded from the trigger. must be present in both trigger and response. NOTE: %PARAM% MUST be at the end of the trigger: "!test %PARAM%". BAD: "!test %PARAM% some more text" will NOT work. %TRIGGER% This variable contains the complete text of the message that triggered a <command>. If a one of your commands has the trigger "Hello, bot" and the user sends "Hello, bot my old pal", %TRIGGER% will contain "Hello, bot my old pal" ;-) This might be usefull to parse the trigger for more information (if %PARAM% is not sufficient...) %VERSION% Release Version number of the Bot %BOTNAME% Username of the bot uses in the channel %BOTRAWNAME% Username of the bot uses in the channel including the userid %SERVER% Name of the server brand the channel is hosted on (example: Ouka) %SERVERVERSION% Versionnumber of the server the channel is hosted on (example: 3.53) %WA-ARTIST% Artist of audiofile currently playing (requires Winamp 2.x or 5.x) %WA-SONG% Songtitle of audiofile currently playing (requires Winamp 2.x or 5.x) %WA-ELATIME% Elapsed time of file that is currently playing (requires Winamp 2.x or 5.x) %WA-REMTIME% Remaining time of file that is currently playing (requires Winamp 2.x or 5.x) %WA-TOTALTIME% Total time of file that is currently playing (requires Winamp 2.x or 5.x) %WA-SAMPLERATE% Samplerate of audio file that is currently playing (requires Winamp 2.x or 5.x) %WA-BITRATE% Bitrate of audio file that is currently playing (requires Winamp 2.x or 5.x) %WA-CHANNELS% Number of Channels of audio file that is currently playing (requires Winamp 2.x or 5.x) %WA-STATUS% Status of Winamp. Either "playing", "paused" or "stopped" (requires Winamp 2.x or 5.x) %WA-ISVIDEO% "0" if Winamp plays an audio file "2" when Winamp plays a video, "1" if you are using Winamp 2.x (not supported) (requires Winamp 5.01/02) %WA-VERSION% Version number of Winamp (2.91 i.e.) (requiresWinamp 2.x or 5.x) %WA-ALBUM% Album of the song currently playing in winamp (requires Winamp 2.x or 5.x, installed RoboMX Winamp report plugin and a correctly tagged file) %WA-TRACK% Tracknumber of the song currently playing in Winamp (requires Winamp 2.x or 5.x, installed RoboMX Winamp report plugin and a correctly tagged file) %WA-COMMENT% Comment tag of the song currently playing in winamp (requires Winamp 2.x or 5.x, installed RoboMX Winamp report plugin and a correctly tagged file) %WA-YEAR% Release year of the song currently playing in winamp (requires Winamp 2.x or 5.x, installed RoboMX Winamp report plugin and a correctly tagged file) %WA-GENRE% Genre of the song currently playing in winamp (requires Winamp 2.x or 5.x, installed RoboMX Winamp report plugin and a correctly tagged file) %RMX-CH-NUMCHANNELS% Number of channels on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMFILTERCHANNELS% Number of channels filtered out by RoboMX because they violated your filter settings (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMWINMX% Number of channels hosted on WinMX on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMROSE% Number of channels hosted on roboServe on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMRCMS% Number of channels using RCMS on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMMCMA% Number of channels using MCMA on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMMCS% Number of channels hosted with MCS on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMWCS% Number of channels hosted with WCS on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-CH-NUMWPNUSERS% Total number of users in all channels on the WinMX Peernetwork (requires RoboMX to be connected to the WPN and channellist to be loaded in RoboMX %RMX-RM-AVERAGELAG% Average lag in the channel Metis runs in %RMX-RM-RECVMSGS% Number of messages recieved by Metis since it entered the channel %RMX-RM-SENTMSGS% Number of messages sent by Metis since it entered the channel %EXEC_ERROR% If you use <out type="exec"> Metis will store the result of the ShellExecute call in this variable. (0 on success, other on failure. Check Windows API documentation for more details) %OUT_EXEC_CODE% <out type="exec"> in blocking mode (extdata="1") Metis will store the exit code of the program you launched in this variable. Ok so you know the basic structure of a code now. <command> <in>Trigger</in> <out>What Metis Says</out> </command> << closing of the code. Ok now lets look at pushing a variable to store data / info. So start of with a simple command but this time instead of just <command> put this <command type="script"> you will soon get into a habbit of putting the type="script" in every code you make so by know you should have. <command type="script"> now the <in> <in>!store %PARAM%</in> ok so this tells metis what to do more or less it tells metis to do something with %PARAM% this is the something, the <out>, in previous scripts you just put <out> now this is where it gets fun use this. <out type="push" extdata="Store"">%PARAM%</out> > ok so now what ever %PARAM% was is now stored in the variable Store to signify a variable you use $. ok now close that command with your </command>. so now you should have a command that looks like this <command type="script"> <in>!store %PARAM%</in> <out type="push" extdata="Store">%PARAM%</out> </command> ok now for the next bit you need another command so <command type="script"> the <in> with be <in>!show The Variable</in> the out will be the stored variable <out>$Store$</out> close the command </command> you should have a command that looks like this <command type="script"> <in>!show The Variable</in> <out>$Store$</out> </command> To test your command in your room make sure you have turned your bot on and its in /bot mode then type !store test Then Type !show the variable Thats it For This Session Hope you learnt a lot from it. Contact me with any suggestions. MrScruff123@hotmail.co.uk Thanks MrScruff | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
©2005-2008 WinMXWorld.com. All rights reserved. Page last updated Wed Mar 22 2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||