Jump to content

Patrick Playfair

Resident
  • Posts

    57
  • Joined

  • Last visited

Reputation

6 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Due to the great success we have had with the Abducted by Aliens Experience, we have moved to a full-prim sim. Along with expanding our previous attractions, we have added a new Shopping Center (Galaxy Mall) and a new club (Club Core). Both share the Sci-Fi theme that our guests have come to love on our sim. Watch for our Grand Opening this Saturday. Stores and stalls are now for rent at the mall. And if you haven't been there yet, you must stop by! http://maps.secondlife.com/secondlife/Kentucky Moon/81/109/2356
  2. Thanks for your help. The rest of the script went a lot easier than I expected. I incorporated it into our Staff HUD. Now we speak Alien and only other AlienStaff members get the interpretation.
  3. Thank you, that is exactly what I was looking for, and tried it once but kept failing. I had forgotten the square brackets in llGetSubString I'm sure I will need more assistance before I am through with this one.
  4. Haven't done a lot with strings, but am trying to convert text into a new "language". In the sample snippet below, I am reading the first 3 characters of string "said", and want to say the first 3 characters in English (which works fine), then say them in the alien language. But is only says the 1st character of the alien language 3 times. I am using llGetSubSring as the index, but it is not working as I expected. Any ideas or tips on how to accomplish this? list Alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","!","@","#","$","%","&"]; list AlienAlphabet; string said = "A crazy fox jumped over the moon"; default { state_entry() { } touch_start(integer total_number) { list AlienAlphabet = llListRandomize(Alphabet, 1); llOwnerSay("What was said -" + said); llOwnerSay("1st character of what was said " + llGetSubString(said, 0, 0)); llOwnerSay("2nd character of what was said " + llGetSubString(said, 1, 1)); llOwnerSay("3rd character of what was said " + llGetSubString(said, 2, 2)); llOwnerSay("Alien alphabet is " +(string)AlienAlphabet); llOwnerSay("1st character in Alien language " + llList2String(AlienAlphabet, (integer)llGetSubString(said, 0, 0))); llOwnerSay("2nd character in Alien language " + llList2String(AlienAlphabet, (integer)llGetSubString(said, 1, 1))); llOwnerSay("3rd character in Alien language " + llList2String(AlienAlphabet, (integer)llGetSubString(said, 2, 2))); } }
  5. Well, not getting a white cloud. The avatar sees himself as an orange cloud, and everyone else sees him switching back & forth between a big bald guy and a scrawny guy with hair (supposed to be the bald guy). Am using a fast cable connection, and only happens to one avatar. Will try rebooting the modem & router and see if that helps. Thanks
  6. I have an Avatar that recently has started turning into the "ruth" avatar every few minutes, then changing back. It keeps doing it over & over, and I can see it from other machines, & other avatars can see it. Have tried re-baking, but didn't help. Any ideas?
  7. No, it is not mine, and listens on the standard RLV Channel
  8. That one kept giving me a syntax error, but the other seems to be working. Thanks
  9. I need to pass a users UUID to another object, and am doing so using RegionSay, with a listener in the other object. According to the wiki... "Implicit conversion will happen automatically when supplying a string where a key is required." I have doe this before I believe, but cannot find it anymore. Below is the code I am using. The llOwnerSay's were put in to help torubleshoot. "message" does contain a UUID in string format, and I need to pass that as a key to llRequestExperiencePermissions. Have tried several ways, the one blow is the most recent. According to the wiki, key user = "xxxxxxxx-xxxx-xxxx--xxxxxxxxx" will work, but passing the message is not working for me. Any Ideas? listen(integer channel, string name, key id, string message) { if(channel==rChannel) { llListenRemove(handle); llOwnerSay("Received " + (string)channel + ", " + name + ", " + (string)id + ", " + message); key user = message); llRequestExperiencePermissions(user,""); } else { llListenRemove(handle); llOwnerSay("Nothing, received " + (string)channel + ", " + name + ", " + (string)id + ", " + message); llResetScript(); } }
  10. Thanks for the response. Yeah, I thought using multiple commands would help me troubleshoot, but it didn't help any. I use @versionnum to check for an active relay. I don't mind if they use safewords, and don't even strictly enforce RLV, but base upon the sims theme, not using it is kind of pointless. Regarding my auto-attach RLV HUD, I just added a script that checks versionnum again after it attaches, and if it still returns nothing, informs the user that RLV is not enabled in their viewer, and sends them a notecard explaining how to enable it.
  11. I will try that, and see if I can figure out where the @detach=y or @clear or whatever is coming from . You are correct, it is a simple relay (in fact, the name of it is Simple RLV HUD). Thank you
  12. The @detach=n is issued when the relay is attached, by the relay itself. As for detach, because it is attach-temp, it detaches automatically when they leave the sim or logout.
  13. All users to our sim are checked for an active RLV relay upon landing, and are only issued one if they do not have one on. They are then checked again, and if still not detected, they are instructed on how to enable and use RLV. EXP is used only for two things. To attach the relay and for Teleports. I do not understand what is so HORRIBLE about that. Back to the original question, looking at your "valid command string" all I see is "@detach" commands. My script doesn't even have the word detach in it. I do not want to detach anything. They are not allowed to detach their relay before my script runs, but they are after, and I have NOT issued a "@detach=y" command, so I am wondering why they can detach it after my script runs. I do appreciate the response, and will review your command suggestions again and revisit them. All of the other restraints and unrestraints however work exactly as expected, so I do not suspect the command string is the problem. (I will change them to llRegionSayto, thank you) Thanks for the response...
  14. Good catch on the second declaration, that was it! As for the "@detach=y", it is not sent anywhere in the script that I can see. Will look closer and see if I can find anything. Thanks
  15. I am using Experience permissions to auto-attach an RLV HUD (relay) when visitors come to my sim. After it attaches I issue a "llOwnerSay("@detach=n");" command and the user cannot detach it. It auto-detaches when they leave the sim. It is working fine. However I have a HUD, and a UFO that I use to force sit them, and I use the following commands. To sit them I use the following: string restraints = "@unsit=n|@sittp=n|@tploc=n|@tplure=n|@tplm=n"; string cmdsit = cmdname + "," + (string)id + "," + restraints; llSay(relaychannel, cmdname + "," + (string)victim + "," + "@sit:" + (string)object + "=force"); llSay(relaychannel, cmdsit); It works fine, sits the user, and restricts them from standing & TP'ing. When I unsit them, I use the following: string unrestraints = "@unsit=y|@sittp=y|@tploc=y|@tplure=y|@tplm=y"; string cmdsit = cmdname + "," + (string)id + "," + unrestraints; llSay(relaychannel, cmdname + "," + (string)victim + "," + "@unsit:" + (string)object + "=force"); llSay(relaychannel, cmdsit); It unsits them and removes the restrictions, but it also removes the "@detach=n" restriction. If I add a "@detach=n" restriction to the unrestraint string, the HUD stays RED and says I still have control of it. Any thoughts on how to resolve this? Item number 2..... I use the following dialog menu to select a destination to TP to, I also use a similar one to choose a sound and play it. However, whenever I make a choice, local chat speaks it, as though I am speaking it. In other words, if I chose LOUNGE, it appears that I said LOUNGE in local chat, if I choose EXIT, I say EXIT in local chat. I cannot find what is causing this or how to stop it. // Multi-Page Landmark Selector // Omei Qunhua April 2014 // Modified by Patrick Playfair list gListFullNames; // List of inventory landmarks list gListBriefNames; // List of abbreviated landmark names for dialog buttons list details; integer gPage; // Current dialog page number (counting from zero) integer gMaxPage; // Highest page number (counting from zero) integer gChan; // Channel used for dialog communications. key gUser; // Menu User key victim; // Avatar to Perform command on vector pos; string destination; // Destination DestinationMenu(key user) { integer TotalChoices = (gListBriefNames != [] ); // get length of landmark list // set up scrolling buttons if needed list buttons = [ "<<","EXIT", ">>" ]; integer ChoicesPerPage = 9; if (TotalChoices < 13) { buttons = ["EXIT"]; ChoicesPerPage = 12; } // Compute number of menu pages that will be available gMaxPage = (TotalChoices - 1) / ChoicesPerPage; // Build a dialog menu for current page for given user integer start = ChoicesPerPage * gPage; // starting offset into action list for current page // 'start + ChoicesPerPage -1' might point beyond the end of the list - // - but LSL stops at the list end, without throwing a wobbly buttons += llList2List(gListBriefNames, start, start + ChoicesPerPage - 1); llDialog(user, "\nPage " + (string) (gPage+1) + " of " + (string) (gMaxPage + 1) + "\n\nChoose a Destination", buttons, gChan); llSetTimerEvent(15); // If no response in time, return to 'ready' state } default { link_message(integer sender,integer num,string msg,key id) { if (num == 2) { victim = id; // Compute a negative communications channel based on prim UUID integer gChan = (integer)(llFrand(99999.0) * -1); gUser = llGetOwner(); integer count = llGetInventoryNumber(INVENTORY_LANDMARK); string name; while (count--) { name = llGetInventoryName(INVENTORY_LANDMARK, count); gListFullNames += name; gListBriefNames += llGetSubString(name, 0, 23); } } else { llResetScript(); } state busy; // Changing state sets the application to a busy condition while one user is selecting from the dialogs // In the event of multiple 'simultaneous' touches, only one user will get a dialog } } state busy { state_entry() { llListen(gChan, "", gUser, ""); // This listener will be used throughout this state gPage = 0; DestinationMenu(gUser); } listen (integer chan, string name, key id, string msg) { integer index; if (msg == "<<" || msg == ">>") // Page change ... { if (msg == "<<") --gPage; // Page back if (msg == ">>") ++gPage; // Page forward if (gPage < 0) gPage = gMaxPage; // cycle around pages if (gPage > gMaxPage) gPage = 0; DestinationMenu(id); return; } if (msg == "EXIT") { llResetScript(); } if (msg == "") { llResetScript(); } if (msg != " ") // no action on blank menu button { // User has selected a landmark from the menu llSetTimerEvent(0); index = llListFindList(gListBriefNames, [msg]); destination = llList2String(gListFullNames, index); integer channel = llRound(llFrand(-1000)); key give_to = victim; llRezObject("Alien Zapper!", llGetPos(), ZERO_VECTOR, ZERO_ROTATION, channel); llRegionSay(channel, "ATTACH|" + (string)give_to +"|" + destination); llResetScript(); } else { llResetScript(); } } timer() { llOwnerSay("Too slow, menu cancelled"); llResetScript(); } }
×
×
  • Create New...