The expensive Vista animation overriders in Second Life are based on the ZHAO-II engine (by Ziggy Puff, mod by Marcus Gray, Johann Ehrler and Moeka Kohime) and the Vista AOs that were tested contain the ZHAO-II-core MGJEmod 1.1.9
script.
Even though the Vista animation creator does not disclose the GPLv2 source, the header of the ZHAO-II-core MGJEmod 1.1.9
script mentions the following:
// ZHAO-II-core - Ziggy Puff, 07/07 ///////////////////////////////////////////////////////////////////////////////////////////////////// // Main engine script - receives link messages from any interface script. Handles the core AO work // // Interface definition: The following link_message commands are handled by this script. All of // these are sent in the string field. All other fields are ignored // // ZHAO_RESET Reset script // ZHAO_LOAD|<notecardName> Load specified notecard // ZHAO_NEXTSTAND Switch to next stand // ZHAO_STANDTIME|<time> Time between stands. Specified in seconds, expects an integer. // 0 turns it off // ZHAO_AOON AO On // ZHAO_AOOFF AO Off // ZHAO_SITON Sit On // ZHAO_SITOFF Sit Off // ZHAO_RANDOMSTANDS Stands cycle randomly // ZHAO_SEQUENTIALSTANDS Stands cycle sequentially // ZHAO_SETTINGS Prints status // ZHAO_SITS Select a sit // ZHAO_GROUNDSITS Select a ground sit // ZHAO_WALKS Select a walk // // ZHAO_SITANYWHERE_ON Sit Anywhere mod On // ZHAO_SITANYWHERE_OFF Sit Anywhere mod Off // // ZHAO_TYPE_ON Typing AO On // ZHAO_TYPE_OFF Typing AO Off // // ZHAO_TYPEKILL_ON Typing Killer On // ZHAO_TYPEKILL_OFF Typing Killer Off // // So, to send a command to the ZHAO-II engine, send a linked message: // // llMessageLinked(LINK_SET, 0, "ZHAO_AOON", NULL_KEY); // // This script uses a listener on channel -91234. If other scripts are added to the ZHAO, make sure // they don't use the same channel
In other words, the script provides a micro-API accessible to scripters to enable and disable the AO.
By injecting (creating) a script into any Vista AO:
with the following contents:
default { state_entry() { llListen( 7331, "", llGetOwner(), "" ); } listen(integer channel, string name, key id, string text) { if(text == "on") { llMessageLinked(LINK_SET, 0, "ZHAO_AOON", NULL_KEY); return; } if(text == "off") { llMessageLinked(LINK_SET, 0, "ZHAO_AOOFF", NULL_KEY); return; } // More, if you so desire... } on_rez(integer num) { llResetScript(); } changed(integer channel) { llResetScript(); } }
will enable the owner of the AO to type on local chat:
/7331 on
to enable the AO, respectively:
/7331 off
Using the tell command, Corrade can send the on
or off
message on channel 7331
defined in the script from the previous section:
llInstantMessage(CORRADE, wasKeyValueEncode( [ "command", "tell", "group", wasURLEscape(GROUP), "password", wasURLEscape(PASSWORD), // or "off" to switch the Vista AO off "message", "on", "entity", "local", "type", "Normal", "channel", "7331" ] ) );
Happy Corrading!
Based on the ZHAO-II API, it is possible to do more programatically with the Vista AO, for instance: cycling stands, sits, etc… The principle is still the same.
For the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.