Jump to content

Rolig Loon

Advisor
  • Content Count

    37,420
  • Joined

  • Last visited

Everything posted by Rolig Loon

  1. Rolig Loon

    traduction

    Pas tout à fait. Il n'existe aucun lien sur le mot "voila". ETA: Ooop, pardon. Il est là, mais mon navigateur ne peut pas lier à elle pour une raison quelconque. Je pense que c'est mon problème, pas le vôtre. ETA: Non, je vois. Il ya un supplément de "http://"dans votre adresse web.
  2. Rolig Loon

    This or that!

    Eh bien, j'aime le Google Translate (http://translate.google.com/?tab=mT#fr|en|). Je ne sais pas si elle traduit le langage technique correctement, parce que je ne connais pas les termes techniques en français moi-même. Sa traduction de phrases de base est généralement OK, cependant. (Il me sauve aussi la peine de taper les accents, qui ne sont pas sur mon système, j'ai donc l'utiliser même si je pourrais probablement écrire une bonne réponse en français par moi-même.)
  3. Rolig Loon

    This or that!

    LOL. Ich wünschte nur, dass meine deutschen Wortschatz besser war. Es wurde viel zu vielen Jahren, seit ich studiert, so jetzt muss ich auf Google Translate verlassen. Ich war froh, dass Ihre Frage auf Französisch statt gestellt wurde. ;-)
  4. Rolig Loon

    This or that!

    Ah, je viens de voir ta nouvelle note d'explication. Peewee y a repondu exactement. Bonne chance.
  5. You will discover that you are not allowed to drag a box to the ground in most places in SL. There are two ways around the problem. One way is to find a sandbox where you are allowed to rez items. You can do that by opening your Search function, selecting the "Places" tab, and typing in the keyword sandbox. Another way to open a box is to attach it to yourself instead. You have already done that simply by wearing the box. Once it is attached, you should be able to select the box by right clicking on it, and then select "Open" to send its contents to your inventory. When you are finished, just detach the box again.
  6. Rolig Loon

    This or that!

    Salut Rotpaulette! Utilisez le menu «Options» , dans le coin supérieur droit de votre message . Le premier choix dans le menu est "Edit". Vous pouvez utiliser cette option pour modifier n'importe quelle partie de votre message, y compris le titre.
  7. Take a look at the shortcut cheat sheet at http://wiki.secondlife.com/wiki/Shortcut_Keys. It has most of the common shortcuts, laid out for both PC and Mac platforms. It might be handy to print out and keep next to your keyboard while you are learning your way around in SL.
  8. Nope. Avatars only have one arm. That was one of LL's dumber design choices. The only way to make a tattoo appear on one side but not the other is to wear a prim attachment (armor, a puffy sleeve, or a fake arm) to cover it on the side you don't want to see.
  9. Essayez de porter une base de chaussures différente, et puis essayer de porter une nouvelle paire de chaussures.
  10. It looks like you have found your answer. You are trying to run SL in a 64-bit Windows 7environment and the CPU is not fast enough to handle it. You might try running in 32-bit emulation mode to see if that helps. If not, your only alternative is to be patient until you can replace your computer with one that has a faster CPU.
  11. Define a global variable to carry the value of llDetectedKey(0) to the dataserver event. At the top of your script, before the default event, write, for example key gAV; Then, in the touch_start event, write gAV = llDetectedKey(0); Once gAV is defined and properly loaded that way, you can use it in the dataserver event in place of llDetectedKey(0), which will not work there. The llDetected* functions only work in events that actually detect something.
  12. If your code is sending the correct message when your friend clicks on it, then you can be fairly sure that her age is being calculated correctly, so the problem is likely to be in the information passed to llGiveInventory. The problem is often that an improper UUID has been passed to the llGiveInventory function. This can happen, for instance, if you have failed to capture the target av's UUID in a touch_start or collision_start event and pass it to whatever event the llGiveInventory function is sitting in. One way to track it down is to put llOwnerSay diagnostic statements around the section of the code where you are trying to give inventory and find out what UUID and av name are being used. Check also to be sure that the inventory you are trying to give isn't no copy, and that you have named it appropriately.
  13. Nice. As usual in scripting, there's more than one solution to a problem. If you only need to use the function a couple of times, this one's a good solution. Each use involves querying every single prim in the linkset, though, so if you have to use this function very many times, it ends up doing way too much computation. In that case, it's smarter to query the prims one time and save the results in a list. Checking the list for an index is much faster in the end. One of the challenges in scripting is to find the best solution for the particular situation you are facing. Not always easy. :smileytongue:
  14. Once you have downloaded and installed a viewer, then go HERE to find out how to do things in SL. After that, you're on your own. You can go anywhere you want, meet new friends, and do anything that you find interesting. Welcome aboard. :smileyhappy:
  15. Oh, #$@***! Fixed again. :smileysad: Yeah, I actually considered that doubling back trick for getting rid of the script name but figured that it wasn't worth the extra effort to optimize a bit of code that will execute once on a script reset, especially where saving time is not really important.
  16. if (change & CHANGED_LINK){ gPrimnames = []; integer i; for(i=1;i<=llGetNumberOfPrims();++i) { gPrimnames += [llGetLinkName(i)]; }} Then you can safely query the global list gPrimnames by list index at any time with integer LinkIdx = llListFindList(gPrimnames, [the_link_I_Want]) + 1; to get the number of a named link.
  17. Oh, the list could go on and on. Actually, the biggest reason why it will be a long time before most greeter scripts recognize Display names is simply economics. Most people who use those scripts aren't scripters. They paid someone to create the greeters for them, and they aren't about to pay some else to do it all over again just to accommodate Display Names. Even if they are using freebie greeters, it's a pain to have to replace all of them. Inertia rules in all things.
  18. Nice thoughts, Void. Thanks. I updated the OP, above.
  19. Here's the scenario: You have a box full of goodies that you want to offer people, and you want to make it easy for them to know what's inside. Yes, I know they can always right click and use Open or Edit >> Contents, but you want to save them even that much trouble. This simple little script lists everything in your box in an alphabetized hover text display that shows 8 lines at a time, like a vertical marquee. It even shows what type of item (clothing, script, notecard, ....) each one is. // FLOAT BOX CONTENTS -- Rolig Loon // Lists object contents in hover text, labeled by type // // Hover text has a 254 character limit, so this script rotates the contents list into hover text eight at a time, marquee style list gContents = []; default { state_entry() { list list_types = [INVENTORY_NONE, INVENTORY_TEXTURE, INVENTORY_SOUND, INVENTORY_LANDMARK, INVENTORY_CLOTHING, INVENTORY_OBJECT, INVENTORY_NOTECARD, INVENTORY_SCRIPT, INVENTORY_BODYPART, INVENTORY_ANIMATION, INVENTORY_GESTURE]; list list_names = ["None", "Texture", "Sound", "Landmark", "Clothing", "Object", "Notecard", "Script", "Body Part", "Animation", "Gesture"]; integer i; for (i=0;i<llGetInventoryNumber(INVENTORY_ALL);++i) { string item_name = llGetInventoryName(INVENTORY_ALL,i); if((item_name != llGetScriptName())&& (llGetInventoryType(item_name) != 10)) { integer type_index = llListFindList(list_types,[llGetInventoryType(llGetInventoryName(INVENTORY_ALL,i))]); string type_name = llList2String(list_names, type_index); gContents += type_name + ": " + item_name + "\n "; } } if(llGetListLength(gContents) > 8) { llSetTimerEvent(5.0); } else { llSetText("THIS BOX CONTAINS: \n " + llDumpList2String(gContents,""),<1,1,1>,1.0); } } changed(integer change) { if (change & CHANGED_INVENTORY) { llResetScript(); } } timer() { gContents = llList2List(gContents,1,-1) + llList2String(gContents,0); // Move item 0 to the end of the list list temp = llList2List(gContents,-8,-1); // Display only the last eight items llSetText("THIS BOX CONTAINS: \n " + llDumpList2String(temp,""),<1,1,1>,1.0); } }ETA: Modified with the addition of suggestions by Void Singer. :smileywink: ETA2: And again. That's what I get for editing too fast. :=P
  20. Most scripted objects that you are likely to bump into were created before anyone had even thought of Display names, so they don't know how to recognize one. Also, many of those devices are scripted to recognize when the same visitor returns a second time. That way it doesn't send another annoying greeting or count you twice in its visitor counter. To do that, it needs to look for your real (i.e., Login) name or your UUID because it can't count on a Display name staying the same from one week to the next. Including a Display name as well may use more memory than many greeters can handle. For those and many other reasons, that scripting job is just tricky enough that I suspect it will be a while before many greeters are written to do it right. It will actually be a while before most people see your Display name, after all. :smileywink:
  21. There's nothing in this Scripting Library, as I'm sure you have found by doing a search. There is a good listing of other script libraries and tutorials HERE that you might look at. And of course you should try Marketplace or the Wanted section of the Commerce forums (http://community.secondlife.com/t5/Wanted/bd-p/Wanted). Good luck.
  22. There's nothing in this Scripting Library, as I'm sure you have found by doing a search. There is a fairly comprehensive listing of other script libraries and tutorials HERE that you might look at. And then, of course, there's Marketplace, although you are not likely to find a full perm script there. Other than that, I'd suggest stepping back a bit and practicing your scripting skills with a few simpler projects as you warm up to making a chess game. As you have questions, post them in the Scripting forum (not here) and you'll find people ready to help.
  23. Rolig Loon

    No Object sit

    Dora Gustafson wrote: I fail to see though, how could it be possible to unsit more avatars on an object when this or one of the simple scripts are in it? (They will unsit any avatar trying to sit) Good point. If the sit target is set, then a simple llUnSit(llAvatarOnSitTarget()) should prevent one or more avatars from sitting (unless they are using a viewer that allows the av to override that restriction). I'm stretching to think of a situation where I might want to use Void's method, but it does show a way to handle the unsit without defining a sit target.
  24. Be sure that you have checked the box that says "Send IM to E-mail" in the Communication tab in Preferences (CTRL-P). If it got unchecked for some reason, IMs won't be forwarded. Another possibility is that your messages are capped. From the Knowledge Base: Maximum number of offline messages (involving IMs, inventory offers, group notices and group invitations) received before messages get capped is 25. Senders can't know whether their messages were capped or not.
  25. Dante's idea is pretty good. If you make a sphere about 0.1m in diameter and drop this script in it, you'll have a follower that hovers over your head and covers that pesky dot most of the time. The dot moves up and down a bit as your av changes position, so it doesn't stay a constant distance above your head. If you make the sphere big enough, though, it works well enough. default{ state_entry() { vector pos = llGetPos(); llSetStatus(STATUS_PHYSICS, TRUE); llSleep(0.1); llMoveToTarget(pos,0.4); llSensorRepeat("", llGetOwner(), AGENT, 20.0, PI,1.0); } sensor(integer total_number) { vector pos = llDetectedPos(0); vector offset =<0,0,1.4>; pos+=offset; llMoveToTarget(pos,0.4); } no_sensor() { llDie(); // Self-destruct if the owner can't be found. } } ETA: I should qualify "well enough." If you fly too fast or if you TP away, you'll leave the follower behind. I just added a self-destruct mechanism to the script so you won't end up cluttering space with orphaned followers. :smileyhappy:
×
×
  • Create New...