Don't click here unless you want to be banned.

LSL Wiki : ExampleAnimationScript

HomePage :: PageIndex :: RecentChanges :: RecentlyCommented :: UserSettings :: You are
Here is an example of how to animate an avatar. I wrote this soon after starting
SL to test out the animation system, and it is now free for anyone's use.

-- Xylor Baysklef

// Animation Script v1.2.1
// Written by Xylor Baysklef

/////////////// CONSTANTS ///////////////////
list ANIMATIONS  = [ "aim_L_bow", "aim_R_bazooka", "aim_R_handgun", "aim_R_rifle", "angry_fingerwag",
"angry_tantrum", "away", "backflip", "blowkiss", "bow", "brush", "clap",
"courtbow", "cross_arms", "crouch", "crouchwalk", "curtsy",
"dance1", "dance2", "dance3", "dance4", "dance5", "dance6", "dance7", "dance8",
"dead", "drink", "express_afraid", "express_anger", "express_bored",
"express_cry", "express_embarrased", "express_laugh", "express_repulsed",
"express_sad", "express_shrug", "express_surprise", "express_wink",
"express_worry", "falldown", "female_walk", "fist_pump", "fly", "flyslow",
"hello", "hold_R_bow", "hold_R_bazooka", "hold_R_handgun", "hold_R_rifle",
"hold_throw_R", "hover", "hover_down", "hover_up", "impatient",
"jump", "jumpforjoy", "kick_roundhouse_R", "kissmybutt", "kneel_left",
"kneel_right", "land", "laugh_short", "motorcycle_sit", "musclebeach", "no_head", "no_unhappy",
"nyanya", "peace", "point_me", "point_you" ];

list ANIMATIONS2 = [ "prejump", "punch_L", "punch_onetwo", "punch_R", 
"RPS_countdown", "RPS_paper", "RPS_rock",
"RPS_scissors", "run", "salute", "shoot_L_bow", "shout", "sit", "sit_female", "sit_ground", 
"sit_to_stand", "sleep", "slowwalk", "smoke_idle", "smoke_inhale", "smoke_throw_down",
"snapshot", "soft_land", "stand", "standup", "stand_1", "stand_2",
"stand_3", "stand_4", "stretch", "stride", "surf", "sword_strike_R",
"talk", "throw_R", "tryon_shirt", "turnback_180", "turnleft", "turnright",
"turn_180", "type", "uphillwalk", "walk", "whisper", "whistle", "wink_hollywood", "yell",
"yes_happy", "yes_head", "yoga_float" ];
///////////// END CONSTANTS /////////////////

///////////// GLOBAL VARIABLES ///////////////
//integer gToggle = 0;
integer gAnimNumber;
integer gTotalAnims;

string gAnimName = "type";
/////////// END GLOBAL VARIABLES /////////////

default {
    state_entry() {
        //llSay(0, "Init...");
        llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
        ANIMATIONS2 = [];
        gTotalAnims = llGetListLength(ANIMATIONS);
        gAnimNumber = -1;
        llListen(0, "", llGetOwner(), "");
    on_rez(integer param) {
        //llGiveInventory(llGetOwner(), "Animation Names");
    listen(integer channel, string name, key id, string mesg) {
        string preamble = llGetSubString(mesg, 0, 3);
        if (preamble != "anim" && preamble != "stop")
        integer perm = llGetPermissions();
        if ( !(perm & PERMISSION_TRIGGER_ANIMATION)) {            
            llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
        list parsed = llParseString2List(mesg, [ " " ], []);
        //llSay(0, (string)parsed);
        string anim = llList2String(parsed, 1);
        if (preamble == "stop") {
            //llSay(0, "Stopping: " + llGetAnimation(llGetOwner()));
            if (anim == "")
                anim = gAnimName;
            if (anim == "all") {
                integer i;
                llSay(0, "Stopping all animations... please wait.");
                for (i=0; i<gTotalAnims; i++)
                    llStopAnimation(llList2String(ANIMATIONS, i));
                llSay(0, "Done.");
            //llSay(0, "Stopping: " + anim);
        gAnimName = anim;
        //llSay(0, "Animation: " + gAnimName);
    run_time_permissions(integer perm) {
        //gToggle = 0;
    attach(key id) {
        integer perm = llGetPermissions();
        if (id != NULL_KEY) {        
            if (! (perm & PERMISSION_TRIGGER_ANIMATION)) {
                llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
        else {
            if (perm & PERMISSION_TRIGGER_ANIMATION) {

    touch_start(integer total_number) {
        if (llDetectedKey(0) != llGetOwner())
        integer perm = llGetPermissions();
            if (gAnimNumber != -1) {
                llStopAnimation( llList2String(ANIMATIONS, gAnimNumber) );
            if (gAnimNumber == gTotalAnims)
                gAnimNumber = 0;
            gAnimName = llList2String(ANIMATIONS, gAnimNumber);
            llStartAnimation( gAnimName );
            llSay(0, "Animation: " + gAnimName);
        else {
            llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);

For a simpler explanation of animation permissions, see ExampleAnimationBasic.

Examples Jasa SEO Jasa SEO Murah Sepatu Online Toko Sepatu Online Sepatu Sepatu Murah Sepatu Safety Sepatu Futsal Cheapes Hostgator Coupon Link Booking Televisori offerte Notebook Offerte Berita Terkini Internet Marketer Muda Internet Marketer Indonesia Portatile Apple RDAnet Lorks Karikatur Bisnis Modal Kecil Bisnis UKM Berita Terbaru Iklan Baris Jasa SEO Jasa SEO Murah SEO Indonesia Konsultan SEO SEO Belajar SEO Kursus SEO Kursus SEO Murah Jam Tangan Casio Jam Tangan Casio Jam Tangan Murah Jam Tangan Grosir Baju Terbaru Grosir Baju Baju Terbaru Grosir Baju Murah Bisnis Online Belajar SEO Kerupuk Kerupuk kulit Social Bookmark Dofollow Social Bookmark Kumpulan Puisi Kirim Puisi bola hantu Penumbuh Rambut Penumbuh Rambut timbangan WBC Wonogiri Jasa SEO Murah Jasa SEO Jam Tangan Murah
There are 2 comments on this page. [Display comments/form]