| MULTI ANIMATION POSEBALL |
|
this is a great multi poseball, Just drop in the animations and you are ready to go . you can set the debug TRUE to let you know witch animation is playing, handy if you want to deleate a animation that will not fit the object sitting on. chainge the pose by pressing shift+arrow key (left or right)
// Created by Seagle Neville //debug added F.B integer debug = TRUE; //tels the av sitting the current animation make FALSE to Diable vector sit_pos = <0.28, 0, -0.25>; vector sit_rot = <-5, 12, 190>; string DISPLAY_TEXT = "DANCE \n \n"; string ANIMATION; integer is_sitting = FALSE; integer anim_num; integer fire_anim_num; list SIT_ANIMATIONS = []; RANDOM_SELECT_ANIMATION() { anim_num = llGetInventoryNumber(INVENTORY_ANIMATION) - 1; // Count from 0 fire_anim_num = llRound(llFrand(anim_num)); } SIT_ANIMATION() { ANIMATION = llGetInventoryName(INVENTORY_ANIMATION, fire_anim_num); } default { state_entry() { is_sitting = 0; llSitTarget(sit_pos, llEuler2Rot(sit_rot*DEG_TO_RAD)); } on_rez(integer start_param) { llResetScript(); } changed(integer change) { if(change & CHANGED_INVENTORY)llResetScript(); if(change & CHANGED_LINK) { key av = llAvatarOnSitTarget(); RANDOM_SELECT_ANIMATION(); if(av != NULL_KEY) { llRequestPermissions(av, (PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS)); llInstantMessage (av,"Use SHIFT + ARROW key to chainge pose."); llSetAlpha(0.0,ALL_SIDES); llSetText(DISPLAY_TEXT,<1,1,1>,0); } else { llSetAlpha(0.65,ALL_SIDES); if((llGetPermissions() & (PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS)) && is_sitting) { is_sitting = 0; llStopAnimation(ANIMATION); llSetText(DISPLAY_TEXT,<1,1,1>,1); llReleaseControls(); } } } SIT_ANIMATION(); } run_time_permissions(integer perm) { if(perm & (PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS)) { llTakeControls(CONTROL_RIGHT | CONTROL_LEFT, TRUE, FALSE); is_sitting = TRUE; llStopAnimation("sit_generic"); llStopAnimation("sit"); llStartAnimation(ANIMATION); } } control(key id, integer level, integer edge) { if(level & CONTROL_RIGHT) { llSleep(0.1); fire_anim_num = fire_anim_num + 1; if(fire_anim_num > anim_num) { fire_anim_num = 0; } llStopAnimation(ANIMATION); ANIMATION = llGetInventoryName(INVENTORY_ANIMATION, fire_anim_num); if(debug == TRUE)llInstantMessage(id,ANIMATION); llStartAnimation(ANIMATION); } if(level & CONTROL_LEFT) { llSleep(0.1); fire_anim_num = fire_anim_num - 1; if(fire_anim_num < 0) { fire_anim_num = anim_num; } llStopAnimation(ANIMATION); ANIMATION = llGetInventoryName(INVENTORY_ANIMATION, fire_anim_num); if(debug == TRUE)llInstantMessage(id,ANIMATION); llStartAnimation(ANIMATION); } } }
|
Show (0) - Add comments:

