Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

TLTP is working :)

Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-06-2006 03:42
I'm happy to announce that TLP is now FUNCTIONAL :)

I've set up an example server in my sim, and it's working great:

The browser's this little red ball in the corner. It's waiting for a server to advertise itself.


Here, server detected. I click the browser...


I click Connect...


OK, so the server's name isn't a parangoon of originality, sue me.


The page loads: the prims of the browser take the shape, color, texture and position specified by the server, in a blink :)
(Alright, the page displayed here is pretty bland... I was just testing it, not trying to sell it to someone :D)

The pictures here cannot show though that the prims are clickable, and can:
- send the browser to another page (or another server, even)
- trigger an animation
- play a sound
- display text (both through improved XyText or hover text)
- call plugin scripts in the browser :)
- and yet more to come :)


The browser can be turned off, too. Here I click Close to clear the HUD.

Basically, this is your Universal HUD piece on steroids, thanks to the awesome work of Strife Onizuka (you rock!). This one little sphere can take any appearance you tell it too, send back any protocol you want it to, it can plug to any existing client-server method you may be using in your own HUDs.

I'll be adding support for TLTP browsers in the next Multimove version, so that one can pilot huge builds through the HUD without having to change HUD pieces all the time.

[Edit]
I'm making another server that will show useful info...
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-06-2006 06:12
Here's an example of what one can do with it... Think HTML-On-A-Prim :)


Building up the server ;)

_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Yumi Murakami
DoIt!AttachTheEarOfACat!
Join date: 27 Sep 2005
Posts: 6,860
02-06-2006 07:03
So where do we get it? :)
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-06-2006 07:04
Off the Wiki, on the Protocol Exchange page:

http://secondlife.com/badgeo/wakka.php?wakka=exchangeTLML
http://secondlife.com/badgeo/wakka.php?wakka=exchangeTLTP

(I'm updating the browser code to 0.35f right now)

[Edit]
I feel like making a subscription-based game server to go with it :)
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Christopher Omega
Oxymoron
Join date: 28 Mar 2003
Posts: 1,828
02-06-2006 09:52
I have one word for this:
w0000000t! :D

Awesome - finally, an open protocol for HUD design :)
Id be honored if I could help with its development.
==Chris
_____________________
October 3rd is the Day Against DRM (Digital Restrictions Management), learn more at http://www.defectivebydesign.org/what_is_drm
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
02-06-2006 10:53
It should all work, i don't remember any bugs in it.
XyMod should all work too. I was thinking about writing a script engine so pages could do cool stuff, but this hasn't happened.

XyMod doesn't use remaps like XyText, if the page is served via email or chat then unicode characters supported by XyMod can be directly used. So if you want the 1/2 symbol use the 1/2 symbol. Unfortunately there isn't a way to do this via notecard. Little oversight, one solution would be to add an unescape function like (FunctionUnescape

There are changes that need to be made to TLML but nothing to major.

Chris: it would be great to have anohter developer working on this.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-06-2006 11:09
I've set up the demo server here, it distributes a free browser (I have to fix the perms on it though).
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Zodiakos Absolute
With a a dash of lemon.
Join date: 6 Jun 2005
Posts: 282
02-06-2006 12:12
Are there any methods there in TML (is that correct?) for handling payments? I couldn't really find it on the wiki. For example, to make something happen when someone pays one of the prim-page prims a certain amount? I could see something like this very useful for creating HUD-based sales catalogs...
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-06-2006 13:43
Well, I can certainly add support for payment, but the problem is you're supposed to own the browser, so you'd end up paying yourself... unless you leave a browser in a public place that people would pay into (but then anyone's browser could potentially catch the money in your place ?).

Payment the other way (server to client) is supported I think. If it's not it should be very very easy to add.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Yumi Murakami
DoIt!AttachTheEarOfACat!
Join date: 27 Sep 2005
Posts: 6,860
02-06-2006 14:56
Since I heard about this I've been thinking about a TLTP vendor, but I think the only way of doing it securely would be to have the client set up a "shopping cart" via TLTP and then pay the actual money to the server.

You could, I suppose, have the client pay the money to themselves and then have the prim pay the money on to the server owner, but that's abusable..
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
02-06-2006 15:25
The trouble is you cannot pay hud attachments, making money handling difficult. Design wise it's complicated. Since the browser is open source (and the implied license requires it), trusted transaction are impossible. The closest that can be done would be to create sessions and associate passwords and usernames with it. There is no way currently to get the owner of an object from emails. If you are with in chat range whats the point? Until the owner info can be determined from emails, and objects being able to handle money payed to the owner, using TLTP for use as an online store is impossible. Using it as a catologe or delivery of products on the other hand it would work well.

With some light scripting this could be made to work with Infonet, though it is unlikely we will get the comm info for such an interfacing as infonet is closed source and commercial.

Edit:
What would be great is if we had a CVS. I'd setup a SF project but SF CVS gets a bit busy.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
Vince Plunkett
Registered Geek
Join date: 2 Jan 2006
Posts: 91
02-06-2006 16:54
From: Strife Onizuka
What would be great is if we had a CVS. I'd setup a SF project but SF CVS gets a bit busy.


I would recommend using subversion instead of CVS. There is a free subversion hosting site at https://opensvn.csie.org/

Subversion fixes all the problems with CVS and almost all new projects these days use it.
Lallander Parvenu
Registered User
Join date: 21 Apr 2005
Posts: 45
02-06-2006 20:45
Ok I get just about everything except for the Parameter numbers. From what I thought at first you just need to add up the numbers for the commands and setting you need, and then any that require more info are added on after that.

To be specific I'm trying to figure out the input needed to get texture animation working.
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
02-06-2006 22:08
texture animations are complicated... and i don't think i ever tested them.

I'm sorry there was a bug in the documentation
i've corrected the docs for texture animation.

Since i've been getting questions left and right, i'll be posting some demo scripts along with the updated TLML script with some bug fixes and new features.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-07-2006 02:36
I've fixed a couple more minor bugs in the browser code, now in 0.37f version.

There's support for bookmarks: just drop a notecard containing URLs in your browser ;)
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-07-2006 07:19
Here is a sample TLML page, it's the main page on my example server:

CODE

T/-99
cWelcome to Fairland InWorld Information Server !
T/0/T!-98/0x8401F/0.8/<.1,.1,-0.1>/<.9,.9,.0>
T/1/U!home/0x8421F/9d65115e-0cb7-75e8-d738-4c32355969df/1.0/<.2,.77,.0>/<.8,.88,.1>
T/2/T!-98/0x8601F/<0,0,0>/1.0/<.1,.7475,.0>/<.9,.7525,.1>
T/3/U!notecards/0x6421F/a9e75d84-5073-9cb7-10a9-1ca68ef5c7ba/1.0/<.064,.064,.01>/<.22,.64,.2>
T/4/T!-98/0x186401F/0.0/<.01,.01,.01>/<.5,.6,.25>/Click for the notecards page./<0,0,0>/1.0
T/5/U!TLTP Browser v0.3/0x6421F/0f0780a0-89c4-742a-ef28-26405a41cf85/1.0/<.064,.064,.01>/<.22,.44,.2>
T/6/T!-98/0x186401F/0.0/<.01,.01,.01>/<.5,.4,.25>/Click for the latest TLTP Browser./<0,0,0>/1.0

All the lines but one start with T, it stands for "this is a TLML command". -99 is the TLML code for "clear the browser display".
The line that starts with "c" is an OwnerSay command. The rest of the line is said by the browser to the reader.

The other lines decompose like this:
- a number, that indicate what display prim the command goes to. The page here uses 7 prims, numbered 0 through 6.
- a TLTP URL (T!-98 is an empty URL, U!home and U!notecards are URLs pointing to the home and notecards pages, U!TLTP Browser v0.3 points at an inventory object instead of a page)
- an hexadecimal value: this indicates what the rest of the lines means. There is a detailed explanation of it here.
- a few parameters (UUID of texture to display, alpha value, position on the HUD, size of the display prim, etc)
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Lallander Parvenu
Registered User
Join date: 21 Apr 2005
Posts: 45
02-07-2006 09:30
OK, I understand a heck of a lot more then I did yesterday, but I still cant seem to get either sound or animated textures to work. Has anyone had any success with this?
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
02-07-2006 10:04
From: Strife Onizuka
Since the browser is open source (and the implied license requires it), trusted transaction are impossible.
That's not necessarily true, depending on the license. The GPL would make it hard: even GPL2 would, and GPL3-draft would make it impossible. BSD wouldn't be a problem, because you could put a crypto secret in a no-mod copy of the script. And there's all kinds of room between these two extremes.
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-07-2006 11:41
I added an Unescape on the llSetText part of the TLML main script.

Browser is now v0.38f, with a correct detection and expiration of servers.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Lallander Parvenu
Registered User
Join date: 21 Apr 2005
Posts: 45
02-07-2006 13:47
T/1/T!-98/2630207/"Image Key"/<1,1,1>/<.2,.3,.1>/<.8,.7,.1>/<0,ANIM_ON|LOOP,2,4,0,0,8.0>

Im not even sure really why local roatation is included, or how to use it. But to the question. What am I doing wrong here?
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
02-07-2006 14:53
From: Lallander Parvenu
<0,ANIM_ON|LOOP,2,4,0,0,8.0>

This doesn't make sense. There are no 8-dimensions vectors in LSL :o The numbers shouldn't be enclose in a < , , > format. Also, the ANIM_ON and LOOP constants, and the | symbol, don't mean anything to the script. Try this instead:
T/1/T!-98/2630207/"Image Key"/<1,1,1>/<.2,.3,.1>/<.8,.7,.1>/0/3/2/4/0/0/8.0
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Lallander Parvenu
Registered User
Join date: 21 Apr 2005
Posts: 45
02-07-2006 15:15
Doh, yeah that does look better, what is the 3 for then? Loop?

Anywho,

T/1/T!-98/2630207/"Image Key"/<1,1,1>/<.2,.3,.1>/<.8,.7,.1>/0/3/2/4/0/0/8.0

Doesn't animate anything

While

T/1/T!-98/2630207/"Image Key/<.2,.3,.1>/<.8,.7,.1>/0/3/2/4/0/0/8.0

Animates it but acts like <0,0,0> is the centerpoint and makes it a sort of green color.

I'm going to futz with it a bit and I'll see if I can figure it out.

I went back through the hex code thingie, and I shouldn't even have to set the color, it should be preset. The problem is it is misreading the two corners, both times it sets the first corner at 0,0 and the second point between .2,.3 or .8,.7

Or rather I'm telling it incorrectly.

Also, what is the correct format for sounds. I still can't get that to work. And is there the ability to loopsound?
Lallander Parvenu
Registered User
Join date: 21 Apr 2005
Posts: 45
02-07-2006 17:30
Ok finally got it working,

T/1/T!-98/0x28023F/"Image Key"/<.2,.3,.1>/<.8,.7,.1>/3/2/4/0/0/8

I fudged the hex stuff, and dropped the 0 from the last value.
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
02-07-2006 18:27
Ok i'm releasing a new version of TLML shortly

TLML version 0.50
It's been sitting around for a couple months so i'm still trying to remember all that needs to be done to it.

There are some major changes in how attributes are recycled. 0.50 is a preliminary release, 0.51 will add the recycling features that 0.50 is lacking.

attribute recycling between pages can be a bad thing. In many cases it shouldnt' be allowed.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
02-07-2006 23:24
TLTP Broswer 0.40
Changes:
  1. TLTP Broswer - Permissions Hanlder 0.10
    1. New Script - handles anything that requires permissions.
      1. Was added to reduce load on main browser script.


  2. TLTP Browser 0.40
    1. 10 New Flags
      1. s - stop a sound
      2. L - PlaySound a sound
      3. l - LoopSound a sound
      4. D - default a prim (clear) range
      5. A - start an animation
      6. a - stop an animation
      7. K - Not Implemented - Take a key
      8. k - Not Implemented - Release a key
      9. P - Request permission(s) and keep existing perms
      10. p - Request permission(s) and release existing perms
        1. no you don't have to request permissions before you want to use them, but your script will be more user friendly if you request them all at once, to keep from spaming the user, there is a 0.5 second delay before the request is made.


    2. Better sound support, also a way to turn it on/off via menu
    3. Rewrote parts of the menuing code to be more memory concious.
      1. we are really cuting it close on compile time memory in the main script.

  3. TLML Display Element - Version 0.50
    1. Added - feature bit 5 adds new paramater, recycled attributes mask
      1. Default recycled is, there is no way to remove them presently:
        1. BITface
        2. BITXyText
        3. BITSetTextText
        4. BITSetTextAtrib
        5. BITtargetomega


    2. Removed - bit 5 for stopping texture animation
      1. If you want to keep the animation, be sure BITtexture_anim is in your first recycle mask

    3. Added - Bit 27 - 0x8000000 - BITprim_type_chained - See SetPrimTypeChained
    4. Changed - Parameter & recycle masks must be in hex
      1. If your old command started "T/3/ /0x28021F/" now it must to be "T/3/ /28021F/"

    5. Other Random fixes

  4. TLML Display Element - XyTextMod Version 0.46
    1. Bug Fix - Killed a nasty bug i thought i had been crushed before; it would have screwed up parsing of improperly formated XTM Group requests.

_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
1 2 3