Jump to content

agentronin

Resident
  • Posts

    202
  • Joined

  • Last visited

Posts posted by agentronin

  1. Because LSL is multithreaded, is not Object Oriented, has an asynchronous data server, an LSL script can become very complex. The OpenCollar script is an example of how complex an LSL script can get. There is just as much a need for the ability to quickly create an HTML manual for these as there is for most any C, C++, C#, etc, program. There is a difference between reading documentation embedded as comments in the code, and being able read that documentation in an outlined, and organized, HTML, or CHM. I have very complex code I wrote that I need to start editing again. It has been a few years since I last worked on it so much has been forgotten. I have a need to have documentation in an organized HTML document to re-familiarize myself with what I did. This is much easier than reading it distributed throughout pages of code. 

    I did thoroughly document. In the hope that someday DoxyGen would someday support LSL I wrote that documentation in accordance with DoxyGen standards. DoxyGen cannot generate from it because it is language sensitive. Now with Natural Docs I have means of generating this. It will mean time spent reformatting the documentation, but doing that will save me a lot of time during re-familiarization.

    If someone else has already created a Natural Docs Languages.txt file I am hoping such a person will share it so I would not have to duplicate that effort. If I end up creating it, I will share it here.

  2. I have been looking for the equivalent of the DoxyGen documentation generator used for C, and C++, that can be used for LSL. I found a promising one here:

    https://www.naturaldocs.org/

    It can be used to document code written in any language. In the case of LSL a Languages.txt configuration file must be created:

    https://www.naturaldocs.org/reference/languages.txt/#adding_languages

    I would like to hear from anyone who has experience using this with LSL. Also, before I create a Languages.txt file, I would like to see the Languages.txt file anyone else has already created.

    • Like 1
  3. I am using linkset data to store information about an avatar. The way I have it working now is the avatar's key (aka UUID) is stored into a hexadecimal string, and that string used as a key in the linkset data. It is not memory efficient to convert this key's 16 bytes into a 36 character hexadecimal encoded string (4 of the characters are dashes). Is there a way to cast, and compress, an avatar key's 128 bit pattern into a string variable 16 bytes long that can be used as the key in the linked data set?

  4. I have done testing that shows the send failures are related to how long the avatar sent to has been offline. The longer the avatar has been offline, the fewer sends succeed, until no sends do. There appears to be a limit in effect regarding how many objects an avatar can receive by means of llGiveInventory(). And I think the number of additional objects that can be received while offline is dependent open how many have already been received during that time.

    I have been aware of such limits for types other than notecards, but I did not expect notecards would be subject to them. Mostly because many times I have seen in the profiles of vendor customer service instructions to communicate by notecard because IMs get capped, and also because the recipient avatar used for my tests has AutoAcceptNewInventory set True.

    Now I think I understand why Caspervend, when an object has been gifted, has to wait for the gift recipient to be online before it does delivery.

  5. My attempt to pose the avatar in this file:

    https://www.mediafire.com/file/tfawh0cl2nue27s/Neutral_Stand_Starting_File_Frozen.blend/file

    is thwarted by most of the bones being unmovable, and unrotatable due something I did, and I do not know what. An example is AnkleLeft, and AnkleRight. Maybe because they are driven by ikHeelLeft, and ikHeelRight. But I cannot rotate thes on any axis.

    When I raise ikHeelLeft, and ikHeelRight on the z axis, the knees bend the wrong way.

    I cannot move ikElbowTargetLeft, nor ikElbowTargetRight.

    Right after I created this file with a shape file import into Blender, and using an Avastar avatar. I was able to do all of the above. What has gone wrong with this file?

    Creation:
    Blender 3.3.1
    Avastar: 3.1.0

  6. The file in question can be downloaded from:
        https://www.mediafire.com/file/uzemw3pwgcdpqzt/Neutral_Stand_Starting_File.blend/file
        
    This file was created using the features of the Avastar 3.1.0 plugin.
    https://avalab.org/avastar/293/help/n-panel/avastar/

    The ikHeelRight, and ikHeelLeft, IK function works as expected. When they are grabbed and moved the knee bends as it should.

    The problem is the IK function for ikWristRight, and ikWristLeft, is not working. When moved they do not bend their respective elbows. As far as I can see these IK constraints are in place. ikElbowLineRight, and ikElbowLineLeft, are parented to ikWristRight, and ikWristLeft respectivey, in way similar to how ikKneeLineRight, and ikKneeLineLeft, are parented to ikHeelLeft, and ikHeelRight. Why do the IK constraints for wrist, and elbow, not work?
     

  7. There is a slave collar, and its associated cuffs, offered for sale that can RLV limit avatar movement speed. If the ankle cuffs are chained loosely together the avatar can move no faster than walk. If the avatar's ankles are chained closely together the avatar can only move by short hops, and the movement speed is much slower than the walking speed. If the avatar is hogtied the avatar can move only be squirming on the floor, and movement very slow, much slower than even avatar crouching speed.

    I expected that RLV movement would be be limitable to walking speed, crouching speed, and even slower, with a simple RlV command. But I can only find a such a command to limit an avatar to walking speed. I am interested in ways RLV can limit an avatar's movement speed to slower than walk just as that collar is able to do. How might that collar be able to do it:?

    That collar is not OpenCollar scripted. It has the creator's own scripts.

  8. In the Inventory path: Library/Textures/Waterfalls there are several textures meant to work together to create waterfalls. Is there a tutorial somewhere that instructs how these textures are meant to be used to create waterfalls?

    My interest is not in just making realistic waterfalls, but also realistic as possible moving water in rapids, streams, creeks, and rivers.

     

     

  9. This was notices in several regions. Two were chosen for their low traffic. I am not sure if I should list them here.

    It appears the best odds of successful sends are right after Tuesday's rolling resets.

    Should the JIRA include source code for the script I am using to do the sends?

  10. The three test avatars that indicate to me there is a problem are no students. They are alts of mine, they are offline during the send, and so cannot possibly be in busy mode. Also, they did not reject the send. I know this because they are me.

  11. The avatar list is never more than 10 avatars long. Distributed throughout the list there are three test avatars who are offline. I know there is a reliability problem when one or more of these three do not get the notecard.

    When the first, and last, test avatar in the list gets the notecard, and the one in the middle does not, I know for sure the delivery failure was not due to throttling.

    The notecards are not sent in a burst. They are sent at a rate that does not exceed 5k per hour. Just before the next notecard is sent, the last send's timestamp, and the current time stamp, is used to calculate how long to sleep so as not to exceed this. In addition there is 1 second added to the  sleep time for a margin of safety. Whats more, there is the two second sleep time that llGiveInventory() does when sending to an avatar. The sends were done in a region that has hardly any traffic.

  12. I have scripted a tool of convenience to send notecarded class transcripts to students who have attended. The script is centered around the function:

    llGiveInventory()

    I find this function is not reliable in spite of all due precautions to prevent throttling.  I thought at first it was due to that throttling, but there have been tests where the first, and last, avatars in the list got the notecard, but an avatar in the middle of it did not. It is as if the notecards were dropped by the server into a bit bucket never to be seen again.

    I know it is not a bug in the script, because there have also been successful sends to all in the list. The odds of success seem to correlate positively with how quiet a region has been, and also whether the sends were done after a recent rolling Tuesday region resets.

    Please suggest reasons for this happening, and possible solutions.

  13. I have written a script to send notecards to a list of subscribers. The subscriber list is on a notecard the script reads. The script has is coded to be well under the send threshold that would trigger throttling as described here:

    http://wiki.secondlife.com/wiki/LlGiveInventory

    Nevertheless, I find the script to be unreliable. Sometimes it works fine, other times the intended recipients do not get the notecards. So I am looking for reasons for it not to work, and for it to be able to warn when it will not. Is there a way for a script that gives notecards to a list of avatars can know if the region it is running in has been throttled in advance of the attempt to do the gives? Is there a way I can visit a region and know this from Parcel, or Region, details, or other way?

  14. My hardware profile:

    CPU: AMD FX(tm)-4350 Quad-Core Processor (2101.87 MHz)
    Memory: 32075 MB
    Concurrency: 4
    OS Version: Linux 5.11.0-38-lowlatency #42-Ubuntu SMP PREEMPT Fri Sep 24 16:05:48 UTC 2021 x86_64
    Graphics Card Vendor: NVIDIA Corporation
    Graphics Card: NVIDIA GeForce GTX 1080 Ti/PCIe/SSE2
    Graphics Card Memory: 11264 MB
    
    OpenGL Version: 4.6.0 NVIDIA 470.63.01

    During my last Gorean raid I did I found I could not fight due to very low FPS. I started the raid with a sufficient FPS of about 20. But when the enemy was engaged this dropped down to about 2, or 3, or so. I was easily downed because at this FPS I could not see what was happening soon enough, or respond quickly enough. While downed I cammed around and confirmed my suspicion that my low FPS was related to how many avatars were in view. There were about 36 avatars participating in combat. I thought low FPS  was solved when I upgraded from a GTX 760. Upgrading did help because before this upgrade my FPS dropped very low when I had about 5 avatars in view. Now 5 are easily handled, but 36 are not.

    So it has become apparent that I do not have sufficient hardware to handle the number avatars I encountered during this last Gorean raid. Decreasing maximum  avatar complexity did dramatically increase FPS, but in combat I need to see what an opposing avatar is doing, most especially, I need to see which weapon is drawn. This is not visible in jelly dolls.

    So now I have some questions:

    I learned recently that a powerful graphics card will not be fully utilized if the computer's main board is not powerful enough. Is this the case with my hardware? If so what main board hardware would I need to upgrade to for my graphics card to be fully utilized?

    What computer hardware is needed to fully utilize an RTX 2080, or RTX 3090?

    What are the technical details of how, and why, an underpowered mainboard will not fully utilize a powerful graphics card?

     

  15. A benefit of Mono is that multiple instances of the same script share the same memory in the server, with consequence that each additional instance of a rezzed object that contains the Mono script is not an additional burden on the sever in regard to script memory.

    Would the same be true if the same script were in different inventory objects that were rezzed? In this case how would the server recognize that the different objects, which are not instances of the same object, have an identical script in common with them?

    • Like 1
  16. There will be several attached objects to an avatar, each with one identical script, and communicating to one HUD. To communicate between HUD and the other attachments on only one channel, I need to come up with a scheme of automatically created addresses, such that each script will act only on messages it sees is addressed to itself. I am exploring the use of using the UUID of the object the script resides in to create a script's. I would like not to use the entire UUID for it is very long. What minimum amount of characters from the UUID would mean zero chance of more than one script having the same address? My interest is not in negligible chance, rather, it is in no chance.

×
×
  • Create New...