Difference between revisions of "MLPV2 Menu Maker Helper"

From Second Life Wiki
Jump to navigation Jump to search
(Created page with "<lsl> //won't make your MLP menu for you completely but will save you some typing time //drop in a box of animations that are paired by name logically so that they will appear in…")
 
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<lsl>
<lsl>
//won't make your MLP menu for you completely but will save you some typing time
//won't make your MLP menu for you completely but will save you some typing time by giving you an outline of your menu based on a set of animations
//drop in a box of animations that are paired by name logically so that they will appear in alpha order in an inventory list
//drop in a box of animations that are paired by name logically so that they will appear in alpha order in an inventory list.
//it will make an MLP menu giving POSE name to first animation in the set of two
//it will make an MLP menu giving POSE name to first animation in the set of two
//you may need to re-order M and F anims in the pose line
//you may need to re-order M and F anims in the pose line depending on your style of creating MLP menu lines
//to use, copy this into a script, save, add script to a box which holds the animations you want to use, then click the box to run the script.
//WON'T be useful with all animations because of course how animations are named varies wildly from animator to animator, and not even animators are consistent with their own styles and if such inconsistently named anims are also no mod, you're beat....
//Chaz Longstaff November 2013
//Chaz Longstaff November 2013
//
//
//Sample of what this can produce for you
//Sample of what this can produce for you
//[05:26]  POSE Cuddle 1 M|Cuddle 1 M|Kiss His Neck F
//[05:58]  POSE Cuddle 1 B|Cuddle 1 B|Cuddle 1 T
//[05:26]  POSE Relax Hug1 M|Relax Hug1 M|Sex Neck Kiss 01 F
//[05:58]  POSE Kiss His Neck B|Kiss His Neck B|Kiss His Neck T
//[05:26]  POSE Sex1 M|Sex1 M|Sex1 F
//[05:58]  POSE Relax Hug1 B|Relax Hug1 B|Relax Hug1 T
//[05:26]  POSE Sex1Brut M|Sex1Brut M|Sex1Brut F
//[05:58]  POSE Sex Neck Kiss 01 B|Sex Neck Kiss 01 B|Sex Neck Kiss 01 T
//[05:26]  POSE Sex1BrutFast M|Sex1BrutFast M|Sex1BrutFast F
//[05:58]  POSE Sex1 B|Sex1 B|Sex1 T
//[05:26]  POSE Sex1Fast M|Sex1Fast M|SexLickTit F
//[05:58]  POSE Sex1Brut B|Sex1Brut B|Sex1Brut T
 
//[05:58]  POSE Sex1BrutFast B|Sex1BrutFast B|Sex1BrutFast T
 
//[05:58]  POSE Sex1Fast B|Sex1Fast B|Sex1Fast T
//[05:58]  POSE SexLickTit B|SexLickTit B|SexLickTit T




Line 27: Line 30:
list printObjectList(integer type) {
list printObjectList(integer type) {
     list      result = [];
     list      result = [];
     integer    n = llGetInventoryNumber(type);
     integer    n = llGetInventoryNumber(INVENTORY_ANIMATION);
     integer    i = 0;
     integer    i = 0;
     integer count = 0;
     integer count = 1;
     string myitem;
     string myitem;
     string myitem1;
     string myitem1;
Line 37: Line 40:
     while(i < n) {
     while(i < n) {
              
              
         string itemName = llGetInventoryName(INVENTORY_ALL, i);
         string itemName = llGetInventoryName(INVENTORY_ANIMATION, i);
         type = llGetInventoryType(itemName);
         type = llGetInventoryType(itemName);
              
              
         if (type != INVENTORY_ANIMATION) {
         if (type == INVENTORY_ANIMATION) {
        jump gonext;
        }
          
          
         string myitem = llGetInventoryName(type, i);
         string myitem = llGetInventoryName(type, i);
         if (count == 1) {
         if (count == 1) {
             myitem1 = myitem;
             myitem1 = myitem;
          // llSay(0, (string)count + " " + myitem1);
         }
         }
         else myitem2 = myitem;
         else myitem2 = myitem;
          
          
         if (count == 2) {
         if (count == 2) {
        // llSay(0, (string)count + " " + myitem2);
           mySay("","POSE " + myitem1 + "|" + myitem1  + "|" + myitem2 );  
           mySay("","POSE " + myitem1 + "|" + myitem1  + "|" + myitem2 );  
           count = 0;
           count = 1;
           myitem = "";
           myitem = "";
           myitem1 = "";
           myitem1 = "";
Line 62: Line 65:
          
          
                
                
        @gonext;
}
          
          


Line 107: Line 110:
      
      
}
}


</lsl>
</lsl>

Latest revision as of 07:13, 16 November 2013

<lsl> //won't make your MLP menu for you completely but will save you some typing time by giving you an outline of your menu based on a set of animations //drop in a box of animations that are paired by name logically so that they will appear in alpha order in an inventory list. //it will make an MLP menu giving POSE name to first animation in the set of two //you may need to re-order M and F anims in the pose line depending on your style of creating MLP menu lines //to use, copy this into a script, save, add script to a box which holds the animations you want to use, then click the box to run the script. //WON'T be useful with all animations because of course how animations are named varies wildly from animator to animator, and not even animators are consistent with their own styles and if such inconsistently named anims are also no mod, you're beat.... //Chaz Longstaff November 2013 // //Sample of what this can produce for you //[05:58] POSE Cuddle 1 B|Cuddle 1 B|Cuddle 1 T //[05:58] POSE Kiss His Neck B|Kiss His Neck B|Kiss His Neck T //[05:58] POSE Relax Hug1 B|Relax Hug1 B|Relax Hug1 T //[05:58] POSE Sex Neck Kiss 01 B|Sex Neck Kiss 01 B|Sex Neck Kiss 01 T //[05:58] POSE Sex1 B|Sex1 B|Sex1 T //[05:58] POSE Sex1Brut B|Sex1Brut B|Sex1Brut T //[05:58] POSE Sex1BrutFast B|Sex1BrutFast B|Sex1BrutFast T //[05:58] POSE Sex1Fast B|Sex1Fast B|Sex1Fast T //[05:58] POSE SexLickTit B|SexLickTit B|SexLickTit T


mySay(string objectName, string msg) {

   string name = llGetObjectName();
   llSetObjectName(objectName);
   llSay(0, "/me " + msg);
   llSetObjectName(name);

}


list printObjectList(integer type) {

   list       result = [];
   integer    n = llGetInventoryNumber(INVENTORY_ANIMATION);
   integer    i = 0;
   integer count = 1;
   string myitem;
   string myitem1;
   string myitem2;
   integer type;   
   mySay("", "__________________________________________");
   while(i < n) {
           
       string itemName = llGetInventoryName(INVENTORY_ANIMATION, i);
       type = llGetInventoryType(itemName);
           
       if (type == INVENTORY_ANIMATION) {
       
       string myitem = llGetInventoryName(type, i);
       if (count == 1) {
           myitem1 = myitem;
          // llSay(0, (string)count + " " + myitem1);
       }
       else myitem2 = myitem;
       
       if (count == 2) {
       // llSay(0, (string)count + " " + myitem2);
          mySay("","POSE " + myitem1 + "|" + myitem1  + "|" + myitem2 ); 
          count = 1;
          myitem = "";
          myitem1 = "";
          myitem2 = "";
       }
       else {
          count = count + 1;  
       }
       
              

}


       ++i;
   }
   mySay("", "__________________________________________");
   return result;

}


//__________________________


default {

   on_rez(integer start_param) {
       llResetScript();
   }
   
   
   state_entry() {
   }
   
   
   changed(integer change) {
       if (change & CHANGED_INVENTORY) {
           llResetScript();
       }
   }
   
   touch_start(integer total_number) {
       string tmp = "all";  
       integer type;      
           type = INVENTORY_ALL;

       printObjectList(type);
   }
   


}


</lsl>