• strict warning: Non-static method view::load() should not be called statically in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/views.module on line 906.
  • strict warning: Declaration of views_handler_field_comment::init() should be compatible with views_handler_field::init(&$view, $options) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/modules/comment/views_handler_field_comment.inc on line 49.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/handlers/views_handler_filter.inc on line 607.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/handlers/views_handler_filter.inc on line 607.
  • strict warning: Declaration of views_handler_filter_node_status::operator_form() should be compatible with views_handler_filter::operator_form(&$form, &$form_state) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc on line 13.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/plugins/views_plugin_row.inc on line 134.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/plugins/views_plugin_row.inc on line 134.
  • strict warning: Non-static method view::load() should not be called statically in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/views.module on line 906.
  • strict warning: Declaration of views_handler_argument::init() should be compatible with views_handler::init(&$view, $options) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/handlers/views_handler_argument.inc on line 744.
  • strict warning: Declaration of views_handler_filter_boolean_operator::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state) in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc on line 159.
  • strict warning: Non-static method view::load() should not be called statically in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/views.module on line 906.
  • strict warning: Non-static method view::load() should not be called statically in /home/ordinal/ordinalmalaprop.com/engine/sites/all/modules/views/views.module on line 906.

Ordinal seeks Questions of a Querying Nature regarding the Implementation of the Linden Scripting Language for Sundry Tasks

It is unfortunately the case that I have been Neglecting this Journal in many ways, for several reasons. The foremost is this: that it was originally envisaged as an area wherein I might post Issues and Discoveries regarding the Linden Scripting Language, and at this point, to be quite honest, anything that I would write regarding my activities in the foregoing week would require so much Explanation and Background as to bore both me and any putative Reader to Tears before reaching the end of the second Paragraph.

Instead of causing tears before Bedtime, though, I would like to propose an alternative. I will ask, here, as I am doing now, for Issues of a Scripting Nature on which I might comment. Every week I shall pick an Issue from those suggested and, well, comment upon it - providing scripts and examples and as much detail as I can manage.

So, really, if you, dear Reader, have an issue that relates to Scripting, or that you suspect might be best addressed by Scripting, please leave it here in the Comments Section, and I shall do my humble best to write something appropriate regarding at least one of them.

Rez Gray's picture
12 Feb200907:29
Rez Gray (not verified)

Dear Ordinal,

As a fellow scriptor, we both know according to lore that LSL was supposedly written by two of the linden programmers in a few days. I have theorized based on some experience with syntactic decision analysis that LSL might have been composed and written by a room full of chimpanzees banging away at TR-80 Mini Computers in the same time frame. This is supported by the fact that the old Linden Office wasn't very far from a black market animal testing lab for Avon.

I'm also willing to posite that at least a few of them still do the bulk of the world code for the company, only the crack dosages have been lowered due to market fluctuations in the SanFran area.

Just a theory, Rez.

Cinco Pizzicato's picture
12 Feb200910:27
Cinco Pizzicato (not verified)

I have a topic you might address, Ordinal.

Given that there's no 'llGetMyParentWhatRezzedMe()' function, what is the best, happiest, and most secure way for an object to know who sired it? llDNATesting() seems to be a long way off.

Opensource Obscure's picture
12 Feb200911:00
Opensource Obscure (not verified)

I'd love if you wrote something about upcoming HTTP-in features and about what they can be used for.

Aleena Yoshiro's picture
12 Feb200911:03
Aleena Yoshiro (not verified)

In my favorite approach, I use a random channel and llRegionSay chats. The first script, below, passes that random channel to the object it is rezzing via the llRezObject function. It then listens on that channel for a message from the child. When the child speaks, it replies, thus passing whatever information it likes to the child.

The second script given below goes in the child. It listens in on the channel given by the on_rez event. It then speaks, and listens for the parent's reply. It now knows the ParentWhatRezzedIt is.

=======================
integer listenHandle;

default
{
stateentry()
{
integer randomChannel = (integer)llFrand(−214748364.0);
listenHandle = llListen(randomChannel, "", NULL
KEY, "");
llRezObject("object", llGetPos(), ZEROVECTOR, ZEROROTATION, randomChannel);
}

[geshifilter-code]listen(integer channel, string name, key id, string message) { llSay(0, "I am!"); // debug line llRegionSay(channel, "I am!"); llListenRemove(listenHandle); } [/geshifilter-code]

}

=======================

integer listenHandle;

default
{
onrez(integer chan)
{
listenHandle = llListen(chan, "", NULL
KEY, "");
llSay(0, "Whose my daddy?"); // Debug line
llRegionSay(chan, "Whose my daddy?");
}

[geshifilter-code]listen(integer channel, string name, key id, string message) { llSay(0, "My daddy is " + name + " and his key is " + (string)id); } [/geshifilter-code]

}

=======================

Another approach if you know the parent's object name, you could use a sensor in the child testing for objects of that name. Then you test to see if that potential parent is owned by the same person as the child. Objects rezzed by script inherit the ownership of its parent.

Edward Pearse's picture
12 Feb200912:17
Edward Pearse (not verified)

Dear Lady Ordinal,

A timely invite for topics. I'm currently attempting to understand texture animation scripts. I admit my LSL knowledge is about on par with explaining computers to my mother, though I can hack numbers in existing scripts with the best of them. Is it better to scrunch up a texture to be animated so as the prim surface just has the texture of 1 length, or (in the case of steps on an escalator) can a single step repeated 10 times work just as well?

Sorry for the ignorance. I've been looking at the LSL wiki but it makes my head hurt.

Peter Stindberg's picture
12 Feb200921:19
Peter Stindberg (not verified)

/me gives up on eloquent Victorian way of words

Ordinal, what puzzles me (and other scripting beginners) time and again is the asynchronous nature of the dataserver. Basically when I ran into my first serious dataserver mangling, I more or less gave up scripting. I would love to see a "best practice" approach of dataserver querying that goes beyond "reading lines from a notecard". Especially how to handle consecutive dataserver calls (e.g. read avatar name from notecard and check age of avatar).

Thanks!

Jaymin Carthage's picture
13 Feb200902:59
Jaymin Carthage (not verified)

My Esteemed Ordinal,
My heart leap at the possibility of understanding from you a simple and eloquent description of the nature of Quaternions. I fear though that this would break the "no tears before bedtime" rule. Instead, this comes to mind.
While shopping for a new hat they other day (and later determining that one of my own invention would be more satisfying) I was surprised to see my own visage in a shop window. My fame is extraordinarily small, and I thought it quite a coincidence for someone to have erected a monument in my honor. After a moment's pondering it struck me that this was the same picture that was in my profile.
The obvious deduction is that there is some capacity within LSL to find out the texture that a passing avatar has used to illustrate themselves in their profile. I must confess, although I normally consider myself a LSL expert, I was previously unaware of this capacity.
Should you know the answer to this riddle, I would be most enlightened to learn.
In service,
JC

Kage Seraph's picture
13 Feb200913:06
Kage Seraph (not verified)

How about a discussion of the relative importance of primary factors determining smooth vs. jerky region border crossings in vehicles?

Dale Innis's picture
15 Feb200900:45
Dale Innis (not verified)

Anything at all related to Vehicles, as for instance the mysteries of Banking, of Movement in the Vertical Direction, of those vehicles which are steered through the use of Mouselook, would be of great interest to me; this is an aspect of the Linden Scripting Language with which I have struggled, but never gotten beyond the level of those who Fiddle to See What Happens.

(Mr. Carthage, I believe that in fact the only features of the Linden Scripting Language used in those soi-disant "profile mirrors" are, firstly, the ability to discern the Universally Unique Identifiers of nearby Avatars, secondly, the ability to send a request via the Hypertext Transfer Protocol (and subsequently receive a reply), and lastly the ability to display an arbitrary image that is stored in the Asset Servers, given the Universally Unique Identifier of that image. Determining the Identifier of an Avatar's corresponding Profile Image given the Identifier of the Avatar itself is done by an "external server", taking advantage of the profile data that Linden Lab exposes to general view on the World Wide Web. But if Ordinal knows more on the subject than that, or can offer any corrections to it, I would also be most interested.)

Attica's picture
21 Feb200913:57
Attica (not verified)

multiple queries

Is region say quite impolite and a bit of noise pollution unless an item absolutely needs it?

I am frightened of for/while loops. I think they are dangerous cos they might get stuck. I used to wake up with a start at night wondering if someone had driven a vehicle into my teleporters landing point.
What frightens you ? Are you fearless?

I cannot reset scripts in no mod objects, so I have to throw away no mod no copy sofas cos the sit script crashed etc. Is there a clever way of tricking sl into resetting a script inside a no copy no mod object? Please do not tell me not to purchase unmoddable, where would I be without my stuffed leather victorian tramploine?

Is there a simple way to figure out whats better or worse for lagging? I know that chess has a points sytem for how much various elements are worth, does lsl and I missed it?
For example- I guess based on how many "steps" it has listening on an obscure channel is better than sensoring used for satelite object control (Cos sensortime two things and listen is one thing). Is this true?

I made a while for nonphys teleporter movement and it got stuck when i put a chair in its road. Is using a timer and die, a listen and die, an unsit die and also making the thing temporary a wanton use of resources, or simply good and prudent housekeeping?

ichabod Antfarm's picture
23 Feb200905:29
ichabod Antfarm (not verified)

The code for displaying profile pictures on prims is here -http://www.lslwiki.net/lslwiki/wakka.php?wakka=LibraryDisplayProfilePic

Ordinal,

Having spent the morning fruitlessly wrestling with llDetectedGrab() trying to create a slider widget for a HUD, how about a little talk on that poorly documented function. Whatever hair remains on my head would be eternally grateful.

Thank you.

Ordinal Malaprop's picture
23 Feb200905:42
Ordinal Malaprop (not verified)

I apologise for the delay here, but I have been frantically attempting to "clear my decks", as it were, in preparation for a new project - an endeavour which has not, shall we say, been entirely successful. I shall address questions though.

Icterus Dagger's picture
06 Apr200920:39
Icterus Dagger (not verified)

I have a couple of questions:

  1. Is there a way to disable or override the default "swirly" particle effect that occurs whenever a scripted item does something?
  2. How might one smoothly fade from one texture to another on a prim (when touched)?

-iD

An Engine Fit For My Proceeding · in Which Ordinal Belatedly's picture
07 Apr200903:27
An Engine Fit For My Proceeding · in Which Ordinal Belatedly (not verified)

[...] Icterus Dagger on April 6, 2009 at 12:39 pm http://ordinalmalaprop.com/engine/2009/02/11/ordinal-seeks-questions-of-...... [...]