Jump to content

Rolig Loon

Resident
  • Posts

    46,306
  • Joined

  • Days Won

    5

Everything posted by Rolig Loon

  1. Don't use wireless. It is not inherently stable enough for the sort of use that SL demands, and it is easily interrupted by interference from cell phones, garage door openers, smart refrigerators, fluorescent light fixtures, and almost everything else in RL. Not only that, but unless you are on a private router you are losing bandwidth to everyone else in your dorm, coffee shop, or office. Wireless is fine for simple things, but not for SL.
  2. When you write your script, use llMapDestination . There's an example script in the wiki that you can use as a jumping off point for your work.
  3. Your life is WAY too complicated. If you don't want friends to drop in without calling first, just have the guts to say so. Don't make some machine say it for you. IMO, security orbs are a pain in the butt. They always offend people that you don't want to offend, and they send everyone the message that you have them on "a list".
  4. If an item is no transfer, it doesn't transfer. Period. You're not selling the stuff on the land with it unless your sales agreement inclkudes them, and anyone knows that you can't sell non-transferable items. If you leave them behind when you sell the property, they will probably be returned to your inventory when the next owner resets permissions on the land. The house has nothing to do with the things in it. If you want to sell the house and any of the belongings, you'll have to do that as a bunch of separate sales to be sure that ownership changes properly.
  5. Yup. As I said, it sounds like low-probability scrambling, but I can imagine it happening.
  6. You'd have to know which direction your av is facing first. One way to do that is to ask rotation AvFacing = (rotation) llList2String(llGetObjectDetails(llGetOwner(),[OBJECT_ROT]),0); Once you have that, then the rotation for your rezzed object should be llEuler2Rot(<0.0,0.0,PI>)*AvFacing That is, your own rotation times a 180 degree turn around the Z axis. I assume that you mean to have the object rez in front of you, so you'd want the position vector to be your own position plus, say, <2.0,0.0,0.0>*AvFacing .
  7. There are many reasons why you might get that message. It's usually LL's code to say that you have been suspended or banned. If so, you should have received an e-mail explaining why. Check your spam filter. Your account may also have been put on hold by mistake, or for an administrative reason -- maybe someone else has been using your account for phishing or other unauthorized purposes, or maybe someone using the same IP address ( a wireless router, maybe?). In any case, the only people who can take your account off hold again are at Linden Lab. Read http://wiki.secondlife.com/wiki/Linden_Lab_Official:Why_is_my_account_on_hold%3F for more details and to find out what you can do next. Occasionally, that same message can also mean that your router is acting up and will not let you connect to SL's servers. You can try rebooting it by unplugging it from the power for a few minutes to let it clear its RAM and see if that helps.
  8. I can't think of anything in SL that would cause that. It sounds as if you have a sick mouse. Try borrowing a spare to see. Fortunately mice are cheap., so replacing it won't be hard, if it comes to that.
  9. There's quite a bit of information in the Knowledge Base. To learn about the control panel, for example, take a look at http://community.secondlife.com/t5/English-Knowledge-Base/Linden-Home-reference-guide/ta-p/700105#Accessory_Controls . There are embedded links on that page and associated ones where you will find most of your questions answered. Of course, there's always someone here too. To find out how many prims you are using, open the World menu at the top of your screen and look at About Land ( or Parcel Details, depending on which wording your own viewer uses). If you look under the Objects tab, you'll see a minor wealth of information about how many prims your parcel supports, how many are being used, and how they are being used. As for taking care of you ..... that's not really part of the corporate philosophy. For better or worse, residents learn from each other and offer fairly reliable support. We're mostly adults, reasonably smart, and definitely resourceful. :smileywink:
  10. Lindal's right that your inventory doesn't reside on your own computer, but a cached copy of it does. The item descriptions are all safely in LL's asset servers. The list you see in your screen is (loosely speaking) a lookup table, like an index, that lets your viewer tell the asset servers what you'd like to rez. That table can get scrambled easily, which is why we sometimes have to ask people to manually clear cache and rebuild a freshly cached copy. What Peggy's suggesting sounds like a low-probability sort of scrambling, but I can imagine it happening if you have similar files stored and accessed by your viewer. Like both of you, I think it's more likely that the OP accidentally logged in with the wrong account. I've done that myself several times, and LL's dumb system has even tricked me into doing it by failing to log me out as I asked.
  11. Funny, it used to bother the heck out of me. Over the past five years, though, I have become more and more tolerant of crummy typing. Communicating rapidly by chat in SL gradually makes you more tolerant of typos. They are our equivalent of mumbling, the inevitable price of valuing speed over accuracy. Yes, I know chat is not the same as a web site. People who create web sites don't have the excuse of needing to communicate quickly. They have the luxury of time for editing. Still, the question was whether their errors annoy me, and I suppose the answer is that I have become numbed to them after creating so many thousands of typos myself. It could also be that the older I get, the pickier I get about which things I let rile me. Just don't get me started on politics ...... BTW, this would be a lovely question to post in General Discussion, where you could get a real discussion going. It's hard here. The structure of Answers doesn't lend itself to back and forth conversation, and we are really here to answer questions, not debate them anyway.
  12. It sounds as if you may have accidentally logged in under the wrong account, or without logging out of your main av's account first. I'm not sure how much help technical support will be, but you can try it. From what I hear, they are usually very reluctant to move assets from one av to another. The only Linden technical support is Live Chat, which you can get to from https://support.secondlife.com/contact-support/ if you are a Premium member. There's no way to use a support ticket for that kind of problem.
  13. The easy part is that you just drop the animation in. Select the ball with your edit tool and go to the Contents page, then drag the anim from your inventory and drop it in. Bingo. :smileyvery-happy: The hard part is that you need a script to make the animation work. Well, not all that hard, actually. Here's a poseball script too >>> http://community.secondlife.com/t5/LSL-Library/Basic-Pose-Ball-script/td-p/719317 Follow Dora's instructions and you'll have yourself a poseball.
  14. If you ever need to whitelist any executable file with your anti-virus program, here's a good set of instructions for how to do it >>> http://wiki.phoenixviewer.com/doku.php?id=as_anti-virus_white_listing_steps Incidentally, there's another possible reason for voice and streamed media to disappear. You may have your Maximum Bandwidth set too high (in Preferences >> Graphics). That slider should normally be set at around 1,500 for most people. It determines the maximum amount of your available bandwidth that your viewer will use for basic functions like handling object/avatar shapes and texture, motion, communication, etc. If you set it too high, then your viewer may try to use all of your available bandwidth for those functions. That will give you better FPS and less lag, but it can leave you with no available bandwidth for voice and streaming music or video. If your are having trouble with voice or music getting choppy or dropping our altogether, sometimes lowering Maximum Bandwidth can cure the problem right away.
  15. There are many reasons why that might happen. Usually they boil down to an intermittent connection problem. SL is unlike most applications you have used before. It depends on having a continuous data stream between your viewer and LL's servers, because both are being continuously updated. That requires a large bandwidth and few interruptions. A break of even a second is often enough to drop you out of SL. Th prime suspects are usually (1) Wireless. SL residents commonly have difficulty with wireless connections, which are inherently less stable than direct cable connections and more susceptible to interference from cell phones, garage door openers, and almost anything else that emits RF interference. If you have a choice at all, get off wireless. (2) Your router. Especially if a router has been plugged in for a while, it begins to accumulate garbage in its RAM and becomes less efficient. Reboot by unplugging for a few minutes. (You may actually want to plug your computer's cable diretly into the modem as a test, to see whether bypassing the router clear up your problem. If so, and if a simple reoot isn't enough to solve the problem, it may be time to replace the router, (3) Packet loss en route to LL's servers. You can check for his by looking at your Statistics Bar (CTRL + Shift + 1), or by doing a ping test. For more about this and other possibilitis, see >>> http://blog.nalates.net/2011/10/26/troubleshoot-your-sl-connection/
  16. Simply clearing your cache is often not enough. It's best to clear cache manually from outside SL. Follow the instructions at http://wiki.phoenixviewer.com/doku.php?id=fs_cache_clear . They apply to any viewer, although they were written for Firestorm's support group. Be sure that once you have cleared cache as directed, you log in to a quiet, low lag sim like Smith or Pooley and let your viewer fetch your entire inventory from the servers to build a new cached copy before you try to do anything else. It's a good time to just sit back and watch, or go out for coffee if your inventory is large enough.
  17. OK, here's a semi-schematic of the top part of your script. I left out Void's multipagination function and a bunch of other stuff, to just focus on the logical flow through the start of the dialogs. I'll assume that your notecards are named in the same alphabetical order as the elements in the list called gContinents below. That's important, so that we know which card to read. Notice, among other things, that this means we don't need that stack of names gCard1, gCard2, etc. This is only schematic, and probably has a typo or two...... list gContinents = ["Africa","Asia","Europe","N America","Oceania","S America","Miscellany"];list gSites;list gTex1;list gTex2;list gLstMnu;list gDlabels;list Lbls;integer gRunOnce;integer gCrdNo;integer gCount;integer gLine;string gCard;key gQuery;default{ state_entry() { if(!gRunOnce) //This is the first time through { if (llGetInventoryNumber(INVENTORY_NOTECARD)) //There are no notecards present { llOwnerSay("No Flag notecard detected."); } else { gQuery =llGetNotecardLine(llGetInventoryName(INVENTORY_NOTECARD,0),0); gCrdNo = 0; //Reading card #0 gCount = 1; //Set index for first line in dialog box text } } else //Not the first time through. Just read the chosen card. { gCount = 1; //Set index for first line in dialog box text gQuery = llGetNotecardLine(gCard,0); } } dataserver(key qID, string data) { if (qID == gQuery) { if (data != EOF) { integer idx = llSubStringIndex(data,"="); if (~idx) { gSites += [llStringTrim(llGetSubString(data,0,idx-1),STRING_TRIM)]; //Site names from NC gTex1 += [llStringTrim(llGetSubString(data,idx+1,idx+37),STRING_TRIM)]; //Texture from NC gTex2 += [llStringTrim(llGetSubString(data,idx+39,-1),STRING_TRIM)]; //Flip texture from NC gDlabels += [(string)gCount + ". " +llStringTrim(llGetSubString(data,0,idx-1),STRING_TRIM) + " \n"]; //Dialog text gLbls += [(string)gCount]; // Button labels ++gCount; } gQuery = llGetNotecardLine(gCard,++gLine); } else { llSay(0,"Card " + gCard + " reading complete."); state running; } } }}state running{ state_entry() { gRunOnce = TRUE; //You've determined that there are notecards present. No need to do it again. } touch_start(integer num) { if(llDetectedKey(0) == llGetOwner()) { gDChan = (integer)("0xF" + llGetSubString(llGetOwner(),0,6)); gDLsn = llListen(gDChan,"","",""); llDialog(llGetOwner(),"Pick a continent.",gContinents,gDChan); //Always start with a continent dialog } } listen (integer channel, string name, key id, string msg) { if (~channel = llListFindList(gContinents,[msg]) //Was this a Continent question ? { if(channel != gCrdNo) //If the selected continent is not the one we read last time .... { gCrdNo = channel; //We've selected a different continent, so empty all the lists first gSites = []; gTex1 = []; gTex2 = []; gDlabels = []; gLbls = []; //Then .... gCard = llGetInventoryName(INVENTORY_NOTECARD,gCrdNo); //go back and read its card now. state default; } else { // Do your country dialog based on the first ten lines of the current card } } else //The User has not just answered a Continent dialog question, so { //Did the user hit a << or >> button? If so advance page or go back //Else //What texture did the user choose? Act on the choice. } }} So, that first if test at the top of the listen event in state running always tests to see if you chose a continent. If you did, and if it's not the same continent you read the last time, it goes back to state default and reads the new continent's notecard. (This is a little clunky, because it means that the user will have to answer a Continent dialog question again, but this time he will be chosing the continent that was just read. You could get around that extra click easily enough, but for now ...) If the user selected the continent that was read most recently, then you present him with a country dialog based on that continent's notecard. From there on, it's straight sailing .... second star to the right and straight on till morning.
  18. Read this >>> http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Quickstart/ta-p/1087919 There's a lot more to SL than just logging in, so you'll need to at least read some of the basics before you come in world for the first time. You'll find that there a lot of helpful people who can show you the first steps. Still, it's good to have a general picture first.
  19. State default, as it is written, is where you are going to be reading each notecard as you need it. The way it's structured right now, it will always read the first notecard in inventory, no matter what, because that's the one defined as gCard. So, the first thing you have to do is think through how you are going to find the right one when you need it later. It would be handy if they were named alphabetically so that they end up in inventory in the same order as the elements in your global list called Continents. If that were the case, then you could use the Continents elements as dialog button labels and just say if(message == "Africa"){ gCard = llGetInventoryName(INVENTORY_NOTECARD,6);} That's not the only approach, but it's a handy one. In any case, your first llDialog call has to present you with the choice of notecards to read. Suppose the user clicks the "Africa" button .... The listen event in state running should be prepared to recognize that response and then send the script back to read the correct notecard. Without messing with the way your script is already structured, that would be something like if(message == "Africa"){ gCard = llGetInventoryName(INVENTORY_NOTECARD,6); gLine = 0; state default;} Now you're back in state default, where you read the proper notecard. When that's done and you have loaded a new array of button labels from the contents of the notecard, you need to get back to state running. As you do it, be sure that you have set some kind of flag (gCountries) that says "OK, now I'm not presenting a Continents dialog. This is a Countries dialog." That way, when you pop back to state running again, there's something in the touch_start event that says if (gCountries == TRUE){ llDialog(llDetectedKey(0),"Which country do you choose?", country_buttons,gDChan);} And the listen event is prepared to know that to do if it hears one of the new button names. Working through the logic of something like this can be a bit of a challenge, but this is where the heart of scripting is --- follwing your nose along the logical path that you want the script to execute. There are some things you can do to make life easy for yourself. When I have to do something like this, for example, I tend to prefer using numbers as button labels instead of using lists of names that (1) don't fit on the buttons and (2) are a bear to keep track of. As I read each line of data from the notecard, I build two lists. One will end up being used to create the text in the dialog box and the other, which will be the button labels, just adds a new number for each notecard line: ["1","2","3","4","5"] and so on. Then when I need to evaluate the result of a dialog button push, I can write something like llSetTexture(llList2String(Tex1,(integer)message - 1),4); and can be confident that pressing button #5 will apply the 4th texture listed in list Tex1.
  20. Rolig Loon

    Blurry avatar

    That's blurry? I guess I'd need "before" and "after" shots to compare well, but those pics don't look blurry to me.
  21. Two things...... (1) If your land is deeded to a group, your music panel needs to belong to the group too, because only the owner of a parcel can change the parcel music stream. So, deed your panel to the group. If it is well scripted, you should still be able to change URLs in the configuration notecard byt simply deleting the card and replacing it with another one. If in doubt (or even if you aren't), follow the creator's instructions. (2) When you delete the URL with About Land, be sure that you delete the right one. There's a Parcel Media URL and a separate tab for the Music URL.
  22. You can only delete an object by script if the object has a script in it that will respond to your command. An external script can't just say "/99 delete" and remove anything. So, if you expect to want to delete an object in the furture, you need to put a script sort of like his one into it.... default{ state_entry() { llListen(99,"",llGetOwner(),""); //Listen only to the owner's message on channel 99 } listen (integer channel, string name, key id, string msg) { if (llToLower(msg) == "delete") { llDie(); } }} Beware, though .... If you have this script in several things and they are all within hearing range (20m if you use chat, 50m if you shout), then they will all be deleted at once. It's much safer to delete things one at a time unless you are very sure what you are doing.
×
×
  • Create New...