Jump to content

LeonissiaLoc

Resident
  • Content Count

    24
  • Joined

  • Last visited

Community Reputation

0 Neutral

About LeonissiaLoc

  • Rank
    Member

Recent Profile Visitors

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

  1. How can I get llGetObjectDetails(); to track the name of a remote prim instead of the key?
  2. Can llSetLinkPrimitiveParamsFast(); be used inside a timer function to make the base of the turret track the avatar selected in the dialogue? Note: the base is a separate prim in the link set and the barrel isn't the root prim. They are both connected to a separate block.
  3. What can I use to get the turret to not shoot the owner or the house, but only the target? Something that will make the turret stop shooting on the timer and then continue shooting after the obstacle is no longer in the way.
  4. Is there a way to have two timers in a script like this: integer index; default { state_entry() { llSay(0, "Hello, Avatar!"); } touch_start(integer total_number) { llSay(0, "Touched."); } timer() { } timer(index) { } }
  5. We can be glad there is an endless amount of puzzles to solve with this. That's interesting.
  6. I defined integer index; in the global variable and now it looks at the right avatar when I select it. I had to study LSL Variables to figure out how to do it. I was just stressing out over it because it seemed impossible to define index as a global variable and then change it later in the script. Thank you for your help, I couldn't have figured that out without it. It was a lesson to go back to basics. I will do further testing to make sure everything works right.
  7. When did LSL finally click for you?
  8. All this code does is list my avatar first followed by the rest in the list at the same time when I select one from the list: integer index = llListFindList(uuid,[]); key kTarget = llList2Key(uuid,index); vector vTargetPos = llList2Vector(llGetObjectDetails(kTarget,[OBJECT_POS]),0); vector vPos=llGetPos(); llLookAt(vPos + (vTargetPos + <0.0, 0.0, 0.0> - vPos) / llGetRootRotation(), 1.0, 0); It does the same thing even before even before the timer starts in the listen event in this bit of code with the llOwnerSay() Test: listen(integer channel, string obj, key id, string message) { list uuid = llList2ListStrided(Names, 0, -1, 2); integer index = llListFindList(Names, [message]); if (index != -1) { llSetTimerEvent(0.05); } } I think the problem is somewhere in the listen event or it could be in the sensor event because I have the same issue throughout the entire script. It doesn't zero in on the avatar I select It just keeps going at the avatar sensed first and ignores the one I select. Do I need to rewrite the script again or is there something that I failed to study properly? Could it be something simple that I forgot to include? At this point, I'm not really sure what to do.
  9. When there are avatars in the region, it's returning all keys with llOwnerSay(llList2CSV(uuid)); and all names with llOwnerSay(llList2CSV(Names)); at the same time. What should I do to get it to read only the one I select from the llDialog()?
  10. I don't know what to do to get this thing to work. I studied the strided list and I can select the avatar with just the names list. I put the uuid list in there because I can't get the llLookAt() to work with only one list. At "integer index = llListFindList(uuid,[]);" is the only way to track the avatar selected but my avatar is still the one targeted no matter who I select. How do I know what to look up and study so I can fix this what seems to be an impossible challenge? I looked up the functions, but I don't get this. Thanks for your help, any guidance is appreciated. list Names; list uuid; default { state_entry() { llListen(10, "", llGetOwner(), ""); llSensorRepeat("", "", AGENT, 96.0, PI, 0.2); } touch_start(integer detected) { if (llDetectedKey(0) == llGetOwner()) { llSetTimerEvent(0.0); llListenRemove(10); llSensorRemove(); llSensor("","",AGENT,96,PI); llDialog(llDetectedKey(0), "Choose an avatar...", Names, 10); } } sensor(integer allAvatars) { integer o; key Id; Names = []; uuid = []; o = 0; while ((o < allAvatars) && (o < 12)) { Id = llDetectedKey(o); uuid = uuid + Id; Names = Names + llKey2Name(Id); o = o+1; } } listen(integer channel, string obj, key id, string message) { list uuid = llList2ListStrided(Names, 0, -1, 2); integer index = llListFindList(Names, [message]); if (index != -1) { llSetTimerEvent(0.05); } } timer() { integer index = llListFindList(uuid,[]); key kTarget = llList2Key(uuid,index); vector vTargetPos = llList2Vector(llGetObjectDetails(kTarget,[OBJECT_POS]),0); vector vPos=llGetPos(); llLookAt(vPos + (vTargetPos + <0.0, 0.0, 0.0> - vPos) / llGetRootRotation(), 1.0, 0); } }
  11. When I am hammering code, I'm also looking up the functions. I seem to not be able to understand what seems to be abstract. Anything with a practical sense or what I've already reverse engineered I can figure out pretty easily. I guess I need to read the wiki about the functions two million times and ask y'all about it for me to get it to click.
  12. After I study LSL long enough and it clicks, will I be able to program anything I think of? Is it the same for all programming languages? How do you know what to do when you get stuck for lack of knowledge and don't know what to look up? Do I just ask on here on how to program a billion different scripts until I finally get it? How does all this work? I don't understand why this is so complicated to wrap my head around. How did y'all do it? Thanks for all the help thus far.
  13. I got my new script to do the basic select avatars and use one list instead of two. What do I need to study to get the listen event to receive the avatar tracking info when I select an avatar?
  14. Thanks for that. I will research it to see what I can come up with.
×
×
  • Create New...