Advertisement
Guest User

Untitled

a guest
Sep 16th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. integer gMaxMilk = 100;
  2. float gTimerInterval = 108.0;
  3. integer gMilkChannel = 100;
  4. integer gMilkLevel;
  5. string gName;
  6. string gClicker;
  7. integer gFinalCounter;
  8. integer getUniqueChannel(key id){
  9.     return (integer)("0x"+llGetSubString(llMD5String((string)id,1),0,6));
  10. }
  11. string getFirstName(string fullName)
  12. {
  13.     return llList2String(llParseString2List(fullName,[" "],[]),0);
  14. }
  15. say(string msg)
  16. {
  17.     string objName = llGetObjectName();
  18.     llSetObjectName("");
  19.     llSay(0, msg);
  20.     llSetObjectName(objName);
  21. }
  22. default
  23. {
  24.     state_entry()
  25.     {
  26.         llSetTimerEvent(gTimerInterval);
  27.         gMilkChannel = getUniqueChannel(llGetOwner()) - 30;
  28.         gName = getFirstName(llGetDisplayName(llGetOwner()));
  29.         llListen(gMilkChannel, "", NULL_KEY, "");
  30.         say("/me " + gName + "s udders are empty");
  31.     }
  32.    
  33.     listen(integer channel, string name, key id, string msg)
  34.     {
  35.         if(msg == "Milk me")
  36.         {
  37.             if(gMilkLevel >= 80)
  38.             {
  39.                 if(gClicker == gName) {
  40.                     gClicker = "herself";
  41.                 }
  42.                 say("/me " + gName + " is purring loudly, being milked by " + gClicker);
  43.                 gMilkLevel = 0;
  44.                 gFinalCounter = 0;
  45.             }
  46.             else
  47.             {
  48.                 if(gClicker == gName) {
  49.                     gName = "herself";
  50.                 }
  51.                 say("/me " + gClicker + " is trying to milk " + gName + ", but her udders aren\'t full enough yet");
  52.                 if(gName == "herself") {
  53.                     gName = getFirstName(llGetDisplayName(llGetOwner()));
  54.                 }
  55.             }  
  56.         }
  57.     }
  58.    
  59.     attach(key id)
  60.     {
  61.         if(id != NULL_KEY) llResetScript();
  62.     }
  63.    
  64.     on_rez(integer param)
  65.     {
  66.         llResetScript();
  67.     }
  68.  
  69.     touch_start(integer num)
  70.     {
  71.         integer i;
  72.         gClicker = getFirstName(llGetDisplayName(llDetectedKey(0)));
  73.        
  74.         for(i = 0; i < num; i++)
  75.         {
  76.             string text = "\nMy udders (milkable at 80%, so please don\'t touch my teats earlier " + gClicker + "... and even then - ASK FIRST!)\n\nMilk level: "+(string)gMilkLevel+"%";
  77.             llDialog(llDetectedKey(i), text, ["Milk me"], gMilkChannel);
  78.         }
  79.     }
  80.    
  81.     timer()
  82.     {
  83.         if(gMilkLevel < gMaxMilk)
  84.         {
  85.             gMilkLevel++;
  86.         }
  87.        
  88.         if(gMilkLevel >= 100)
  89.         {
  90.  
  91.             if(gFinalCounter == 0)
  92.             {
  93.                 say("/me " + gName + " moorews soflty, feeling her swollen, pulsing udders and strained, leaking teats");
  94.             }
  95.  
  96.             gFinalCounter++;
  97.             if(gFinalCounter == 1) gFinalCounter = 0;
  98.         }
  99.  
  100.         if(gMilkLevel == 85)
  101.         {
  102.             say("/me " + gName + " starts to feel uncomfortable, adjusts her tauted udders and covers stiffened teats with a blush");
  103.         }
  104.  
  105.         // string text = gName+"s udders\n Milk level: "+(string)gMilkLevel+"/"+(string)gMaxMilk;
  106.         // llSetText(text,<1.0, 1.0, 1.0>, 1.0);
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement