Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float bunny_strength;
- key ql_bunnifier_key;
- key ql_bunnifier_next_key;
- cl_bunny(string level) {
- if(llGetSubString(level, 0, 4) == "help "){
- key who = (key)llGetSubString(level, 5, -1);
- llRegionSayTo(who, 0, "Parameter format: <level>\n\n\Where <level> is the probability that you'll append your message with a pyon, pyon~");
- }
- else {
- bunny_strength = ((float)level) / 100.0;
- llOwnerSay("Bunny Power set to " + (string)((integer)(bunny_strength * 100)) + "%");
- }
- }
- //searches a message for punctuation or end of line, appents ", pyon" before the punctuation.
- string fp_bunny(string message) {
- integer i=0;
- integer j=0;
- while(i <= llStringLength(message) - 1) {
- string s = llGetSubString(message, i, i); //ith character
- string t = llGetSubString(message, i-1, i-1); //last character, to determine end of ellipses
- string u = llGetSubString(message, i+1, i+1); //next character, for finding end of string
- j=i+6; //position of i + length of a pyon.
- if (llStringLength(message) == 1 && !(s == "." || s == "," || s == "~" || s == "…" || s == "?" || s == "!")) { //single character case, execute different
- s = s+", pyon.";
- j=i+7;
- // llSay(0x7FFFFFFF, "one liner " + s);
- } else if(s == "." || s == "," || s == "~" || s == "…" || s == "?" || s == "!") {
- if(i == 0) { //very start of string message
- s = "pyon"+s;
- j=i+5;
- } else if(t == "?" || t == "!" || t == "~" || t == "…" || t == "." || t == ",") {
- //do nothing
- }
- else{
- s = ", pyon"+s;
- }
- //llSay(0x7FFFFFFF, "period found.");
- /* if(t == ".") { //ellipses found, need to iterate to find end.
- while(j <= llStringLength(message)-1 && t == "."){/*keep iterating to find end of ellipses
- t = llGetSubString(message, j+1, j+1);
- j++;
- //llSay(0x7FFFFFFF, "loop for periods.");
- }
- loop = j;
- }
- } else if(s == "," || s == "~" || s == "…" || s == "?" || s == "!"){
- s = ", pyon"+s;
- //llSay(0x7FFFFFFF, "syntax detected.");
- if(t == "?" || t == "!" || t == "~" || t == "…" || t == "." || t == ",") {
- while(j <= llStringLength(message)-1 && (t == "?" || t == "!" || t == "~" || t == "…" || t == "." || t == ",")) {
- t = llGetSubString(message, j+1, j+1);
- j++;
- //llSay(0x7FFFFFFF, "loop for syntax.");
- }
- loop = j;
- } */
- } else if(u == "") {//found end of line, append a pyon and force loop to close
- s = s+ ", pyon";
- // llSay(0x7FFFFFFF, "eol: " + s);
- }
- else {
- s = "";
- j = 0;
- // llSay(0x7FFFFFFF, "we're done.");
- }
- if(llFrand(1.0) < bunny_strength && s != "") {
- if(llStringLength(message) == 1)
- return s;
- else if(i == llStringLength(message)-1)
- message = llGetSubString(message, 0, i-1) + s;
- else if(i > 0)
- message = llGetSubString(message, 0, i-1) + s + llGetSubString(message, i+1, -1);
- else
- message = s + llGetSubString(message, i+1, -1);
- i+=j;
- } else{
- i++;
- }
- }
- return message;
- }
- default
- {
- state_entry()
- {
- bunny_strength = 0.4;
- ql_bunnifier_key = llGetInventoryKey(llGetScriptName());
- llMessageLinked(LINK_ROOT, 802, "fp_bunnifier", ql_bunnifier_key);
- }
- link_message(integer source, integer number, string message, key id) {
- if(number == -1801) {
- llMessageLinked(LINK_ROOT, 802, "fp_bunnifier", ql_bunnifier_key);
- } else if(id == ql_bunnifier_key) {
- if(number == -1803) {
- ql_bunnifier_next_key = (key)message;
- } else if(number == -1804) {
- cl_bunny(message);
- } else if(number == -1810) {
- message = fp_bunny(message);
- // llSay(0x7FFFFFFF, fp_bunny(message));
- }
- llMessageLinked(LINK_ROOT, 810, message, "");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement