|
Here's a reference of current actionscript commands (compiled mostly from vexx22's and BJ's work) If I have missed something, reply here
==============SYSTEM OPERATIONS=============== Reboot Reboots your xbox Shutdown Shuts down the xbox PowerCycle Shuts down the xbox and then turn it on ResetMenuCache Resets the menu cache. Do this after copying a new app/game to the hard disk TrayOpen Opens the DVD Tray TrayClose Closes the DVD Tray
LaunchDVD Launches the DVD in Drive SystemMenu <Activate|Hide|Unhide|ActivateFull> EEPROMBackup [Filename] Backs up EEPROM contents, encrypted, to a file, file defaults to "eeprom.bin" in current directory EEPROMRestore [Filename] Restores EEPROM contents, encrypted, from a file, file defaults to "eeprom.bin" in current directory SETFANSPEED <Manual|Default> <speed>
DATE <Day> <Month> <Year> Sets date TIME <00:00> Sets time
==============DRIVE OPERATIONS==============
ALLOWFORMAT <1|0> Allows format through scripts and FTP SITE commands Format <Drive> Formats the drive MOUNT <Drive:> [<DevicePartitionPath>]
==============FILE/FOLDER OPERATIONS=============== Attr <FileOrDir> ro|rw Sets file attributes Chmod 777 <FileOrDir> This command is compatible with FlashFXP's "Attributes" action MkDir <PATH> MAkes a directory RmDir <PATH> <CASCADE> Removes a directory CD <PATH> GUI only, sets default directory, which starts as MXM's path Copy <Path/File/Wildcard> <Path/File> When specifying Paths: Copies everything from one path to another When specifying File: Copies the specified file to the other specified filename Wildcard example: COPY Z:\*.bmp E:\ Rename <FileOrPath> <FileOrPath> Renames the file or directory Delete <File> Deletes the file
MEDIAPATCH <FilePath> Experimental, patches media flag and media check code EXEC <xbe> [<args>] Executes xbe
==============VARIABLES=============== Use alphanumeric characters, prefix with underscore for "persistant a.k.a global" variables, that is, variables prefixed with an underscore ("_") will retain their value after the script is done running, and may be examined by other scripts. Variables are used in arguments as follows:
SET SomeVar "This is a test" MessageBox %SomeVar%
Will output a message box that says "This is a test"
Likewise, you can access system strings, just as in layouts, but use the string name bounded by "$" characters:
SET SomeVar "The Time Is: $time$" MessageBox %SomeVar%
Will output a message box that says something like "The Time Is 11:39pm"
$eol$ is a special variable that inserts the CR/LF sequence into a string.... useful for message box text.
Important note on arguments for actions... if it's quoted, then the BACKSLASH is an escape character, meaning you'll need to "double up" to see a single BACKSLASH in any quoted arguments. This is not an issue on arguments that are NOT quoted. You only need to quote arguments that contain spaces.
Set <VarName> <Value>
SETFUNC <VarName> <Function> <Function Arguments> Functions: XBETITLE <FileName> Returns the XBE Title (game name) XBEID <FileName> Returns the XBE ID: unique (usually) number for each xbe FILESIZE <FileOrPath> Returns the size of the file or folder FILEEXIST <FileOrPath> Returns whether the specified file or folder exists - (Returns 1 or 0)? PATHEMPTY <Path> Returns whether the directory is empty LEFT <Count> <Text> Returns the first <Count> characters from the left of the string RIGHT <Count> <Text> Similar to LEFT MID <Count> <Length> <Text> Returns <Length> characters, starting from <Count> SPACE <Count> Returns a string with <Count> spaces (?) REPEAT <Count> <Text> LENGTH <Text> Returns the length of the string TRIM <Text> Returns after removing leading and trailing spaces (whitespace) TRIMLEFT <Text> Same as TRIM but from the left only TRIMRIGHT <Text> Same as TRIM but from the right only LOWER <Text> Returns the specified string, converted to lower case UPPER <Text> Returns the specified string, converted to upper case CONDITION or COND <conditional> Sets value to 1 or 0, depending on state of skin conditional !CONDITION or !COND <conditional> FNBASENAME <FilePath> FNEXTENSION <FilePath> FNPATH <FilePath> FNMERGE <Path> <Filename> [<Extension>] FATXIFY <filename> [<replacementchar>] Do not use with a full path! backslashes and colons will be removed!! TEMPFILE <Path> <Prefix> (Creates a new temporary filename) REPLACE <Old> <New> <Source> Returns a string with all instances of <Old> replaced with <New> ContextScriptExists <scriptName> ScriptExists <scriptName>
Example: SET someString " test " SETFUNC otherString UPPER %someString% SETFUNC anotherString TRIM %otherString%
Callscript _Messagebox %otherString% (will show " TEST ") Callscript _Messagebox %anotherString% (will show "TEST")
==============ARITHMETIC OPERATIONS=============== ADD <VarName> <Value> Numerically adds value to variable's value SUB <VarName> <Value> Numerically subtracts value from variable's value DIV <VarName> <Value> Numerically divides the variable's value by value MULT <VarName> <Value> Numerically multiplies the variable's value by value
==============SCRIPTING COMMANDS=============== :<Label> Goto <Label> Quit
IF <arg1> <op> <arg2> GOTO <label> (Evaluates by comparing strings) <op>: = > < >= <= != or <> ## (True if LValue contains RValue) #^ (Same as ##, but case insensitive) !## (True if LValue doesn't contain RValue) !#^ (Same as !##, but case insensitive) IF# Used to evaluate numerically; used same as normal IF. Note: Currently doesn't properly compare values larger than around 2 billion. CallFile <file> <Args...> Runs actionscript from the specified file CallScript <name> <Args...> Used to call internal scripts (check internal scripts section)
DELAY <Delay Sec> Waits specified number of seconds DELAYMS <Delay ms> Waits specified number of miliseconds
==============GETTING INPUT=============== INPUT Sets an input variable equal to 1 "e.g. pressing the B button will set the value of _GP_B equal to 1" INPUT NOWAIT Optional "nowait" parameter, which prevents it from waiting for input
Input variables: _GP_A _GP_B _GP_X _GP_Y _GP_BLACK _GP_WHITE _GP_START _GP_BACK _GP_D_UP _GP_D_DN _GP_D_RT _GP_D_LF _GP_TRG_RT _GP_TRG_LT _GP_THUMB_LF _GP_THUMB_RT
==============DRAWING ON THE SCREEN=============== BeginDraw [UseCurrent]
MessageBox <message> Displays a message box AFTER script is done executing Box <X> <Y> <Width> <Height> [<Color>] [<BorderColor>] Draws a box on the screen Text <X> <YTOP> <CENTER|LEFT|RIGHT> <Text> [<Color>] Writes text on the screen
EndDraw
=================COLOR NAMES===================== WHITE BLACK GRAY BLUE RED GREEN YELLOW CYAN VIOLET ORANGE BROWN
You may also add "LIGHT" or "DARK" as a prefix, names are not case sensitive:
LightGreen is the same as LIGHTGREEN
It also accepts hexadecimal ARGB "Quads" such as 0xFF112233 See the Skinning Overview for details.
===================SPECIAL ACTIONSCRIPT SYMBOLS==================
$eol$ New line character $lt$ ? $gt$ ?
=================XML COMMANDS===================== XMLOpen <HandleName> <FileName> Opens an XML file or internal XML link (::MXM, ::PREFS, ::MENUCACHE, ::MENU, ::Internal) XMLSave <HandleName> [<FileName>] Saves XML back out to a given file XMLSaveNode <HandleName> <FileName> Save current selected node to file (File must not exist) XMLSetNodePtr <HandleName> <Node> [OnFail <Label>] Set the current node pointer To start from "root" use ! Example: !.FTPServer.User:1 (Accesses second user node in FTPServer node of a config file) XMLCreateNode <HandleName> <Node> [OnFail <Label>] XMLCreateElement <HandleName> <Element> [OnFail <Label>] XMLSetElementPtr <HandleName> <Element> [OnFail <Label>] Must be relative to currently set node, or this will also cause the current node to change XMLSetElementValue <HandleName> <Value> XMLSetElementAttr <HandleValue> <Attribute> <Value> XMLSetNodeAttr <HandleValue> <Attribute> <Value> XMLSetValue <HandleValue> <Location> <Value> [<AttrPref>] XMLGetValue <HandleValue> <VarName> <Location> [<DefaultValue>] XMLGetNodeCount <HandleName> <VarName> [<Name>] XMLGetElementCount <HandleName> <VarName> [<Name>] XMLGetNodeAttrCount <HandleName> <VarName> XMLGetElementAttrCount <HandleName> <VarName> XMLCreate <HandleName> <MainNodeName> XMLClose <HandleName>
Example: XMLOPEN TestXML ::MXM XMLSetNodePtr TestXML !.FTPServer.User XMLGetNodePtr TestXML XMLPtr XMLGetValue TestXML User1Name !.FTPServer.User:0.Name XMLGetValue TestXML User2Name !.FTPServer.User:1.Name XMLGetValue TestXML User1Pass !.FTPServer.User:0.Password XMLGetValue TestXML User2Pass !.FTPServer.User:1.Password CallScript _DisplayMessageBox "XMLNode Pointer=(%XMLPtr%)$eol$1)%User1Name% / %User1Pass%$eol$2)%User2Name% / %User2Pass%" XMLSetNodePtr TestXML !.FTPServer XMLGetNodeCount TestXML NewUser XMLCreateNode TestXML User XMLSetValue TestXML !.FTPServer.User:%NewUser%.Name Action XMLSetValue TestXML !.FTPServer.User:%NewUser%.Password Script XMLSave TestXML Z:Check.xml XMLCLOSE TestXML
=====================INTERNAL XML LINKS===================== ::MXM ::Prefs ::BIOSMD5 ::Menu ::Menu_Cache
=================FILE/FOLDER SEARCHING===================== BEGINSEARCH <WildCardPath> The local variables "search_name", "search_path", "search_arg", "search_size", "search_type", "search_active" (which equals "1" when the search values are OK) are updated during the search SEARCHITEM <VarName> Load VarName with current file/pathname SEARCHSIZE <VarName> Load VarName with current file size SEARCHTYPE <VarName> Load VarName with current type for entry - "file" or "dir" SEARCHNEXT ENDSEARCH
=================FILE READ/WRITE ACCESS===================== OPENREAD <HandleName> <FilePath> Opens the specified file for input OPENWRITE <HandleName> <FilePath> Opens the specified file for output READFILELN <HandleName> <VarName> Reads line and loads variable WRITEFILELN <HandleName> <Text> Writes line with text and appends CR/LF WRITEFILE <HandleName> <Text> Writes line with text CLOSEFILE <HandleName>
FILESTAT <HandleName> <VarName> If file access is OK, value will be "1" - for read, "0" means end - otherwise ""
WEBFILEFETCH <Filename> <URL> A little goodie... but this is a very basic HTTP client, so it won't work with all sites
==============INTERNAL SCRIPTS=================== This is a copy of the Internal XML node used to hold Internal ActionScripts
<scripts> <ActionScript Name="_DisplayMessageBox"> BeginDraw UseCurrent MessageBox %1% EndDraw Input </ActionScript> <ActionScript Name="_AutoExec"> IF $MXMVersion$ !#^ "WIP" GOTO DONE CallScript _DisplayMessageBox "This is a WIP Release$eol$Do not distribute" :DONE </ActionScript> </Scripts>
Example: CallScript _DisplayMessageBox "Test"
To redefine internal scripts:
Example: In your mxm.xml
<Config> . . . <scripts> <ActionScript Name="_AutoExec"> CallScript _DisplayMessageBox "This is an alternate startup (Autoexec) script" </ActionScript> </Scripts> . . . </Config>
This post has been edited by geniusalz: Dec 2 2003, 01:34 AM
|