UnsortedSnippets
This page holds any stuff that hasn’t been properly moved into a sensible place in the wiki. It is a good place to contribute snippets if you don’t know where they would fit.
(From Camel, in forums, 20040322):
You can use the oid browser service to “browse” through any oid’s pages that you have permission to. For starters, the only thing you’re likely to be able to browse through with this method is your own avatar’s doid, unless you can convince someone else to set the permissions on their avatar oid so that everyone can read (strongly unrecommended). Some objects, such as books, have information in /p_ThereDoc that store their information – this includes not only what the book says, but things like how many copies remain, and what avatar took each copy. I would assume that the p stands for property, and that the p in ovp is the same.
Not sure exactly what FID stands for, but it has something to do with memory. Any object can be “FID terminated” and reloaded by the client through the ihost service. This can be useful if you screw an object up messing around with the ihost service.
--
via IanYoung
Taking a look at the details of a PortaZone, each visible piece within the PortaZone is detailed under individual ObstacleDasp.
The pieceScriptId property of ObstacleDasp gives a .ts
script of the piece within the PortaZone.
The pieceClass property of ObstacleDasp matches the ID property of PIECE within the .ts script.
The .ts scripts define a PIECE in the following syntax.
(taken from: “\Resources\gamekit\pieces\moroccan_pieces.ts”)
PIECE
{
name = "Furniture banner",
id = "m217pk",
model = "GameKit/PartyKit/m217pk_flag2.model",
layoutClass = "merchantsup",
collPoly0 = 0,
sinkToGround = dropRightEdge,
}
(taken from: “\Resources\gamekit\partykit\bazaarkit.ts”)
CONTENTS
{
{ "m208pk", NO_LIMIT }, -- shop
{ "m209pk", NO_LIMIT }, -- shop roof
{ "m210pk", NO_LIMIT }, -- awning
{ "m213pk", NO_LIMIT }, -- counter
{ "m217pk", NO_LIMIT }, -- shop banner2
{ "m218pk", NO_LIMIT }, -- shop banner3
{ "m219pk", NO_LIMIT }, -- wall divide
{ "m220pk", NO_LIMIT }, -- shop banner
{ "m222pk", NO_LIMIT }, -- cash register
{ "m302fu", NO_LIMIT }, -- date palm
{ "m289fu", NO_LIMIT }, -- floor rug1
{ "m290fu", NO_LIMIT }, -- floor rug2
{ "m308fu", NO_LIMIT }, -- floor rug3
{ "m285fu", NO_LIMIT }, -- pillow seat
{ "m299fu", NO_LIMIT }, -- vase
{ "m300fu", NO_LIMIT }, -- jug
{ "m294fu", NO_LIMIT }, -- screen
}
For a single piece the CONTENTS definition only contains one piece. For the sets, this contains a collection of pieces relevant to the set.
--
Bedicus
If you own multiple copies of a product, each is represented as a separate pob which is identified by a poid, which is just a type of oid. When you place two instances of an add-on kit in a PortaZone, you can see that the ObstacleDasp for each instance contains the same asset references such as the ThereScript files, but different poids.
--
IanYoung
If you own a PortaZone (and therefore all the objects in it) you can go from the poids in the PortaZone data to information about the product by using the “about” WebApp in its poid mode. This won’t work with PortaZones belonging to other people, though. One of the elements returned in the XML is a ProductId that you can then use with the try-it WebApp to give you a temporary copy of the object, or the buy-it WebApp to buy a copy. If it is a designer item rather than a MakenaTechnologies item, you won’t be able to do try-it or buy-it from that page unless you are the designer, instead you need to go through the auction mechanism (assuming that you can find it in auctions).
--
IanYoung
TryExperiment: Scrolls etc. seem to use a different doid when they are referenced from the There library or from My Gear than when they are view in-world. Is this second id the same as the id of the pob for the item?
--
IanYoung
Some comments in forums about them going missing seem to imply that the stars (and therefore maybe the moon too?) in Tyr are objects.
--
IanYoung
Ground and dome textures are located in There\Resources\terrain
. The moons and suns are separate objects from the dome but individual stars are not.
It is possible that There moved or changed the Tyr star textures (e.g., t004zsky_dcstarchroma.png.dds
) and it now appears that stars are missing.
--
Tablatronix
Is it possible through debug mode to dynamically re-load resources particularily TsFiles. This would provide a very efficient means of testing and observing configurations through trial and error and not require relogin.
--
Tablatronix
Random thought I just had: (dead forum post link)
There was also another post about floating tags but no avatars, which turned out to be people the other side of the world. Im not sure on how correct this is, but no one seemed to dispute it.
It got me thinking, about how you can only see objects on the same ihost as yourself, well if your on the other side of the world, are you on the same ihost? (does each ihost cater for two sides of the world, that way you can distribute islands inteligently and only need to have half the number of ihosts as one would first think)
I did a quick experiment with UserCamera+ (thanks to mescad on that one, im having a great time with it!) Locked the cam into position, infront of a few vehicles, avatars. and teleported to another sector, and as you would expect, vehicles and such dissapeared.
Ive yet to experiment further, but just wanted to get ideas flowing before I forget it. (This may end up as nothing) Im curious on thoughts about this?
--
Bedicus
It got me thinking, about how you can only see objects on the same ihost as yourself. This is not what actually happens. I don’t have the full details, but I do have some scrappy notes from conversations that I can drop in here. As I understand it your view of the world (which objects you can see) isn’t decided by either your client’s uhost or by any particular ihost, but instead by a different kind of server called a vis server, or view server. That server makes decisions about what you can see depending on where it thinks your camera is. My guess is that the view server does know about your zoom view, but does not know about the User Cam thing.
There are different visibility classes of object in the world; for example, avatars are a different visibility class to PortaZones. The view server decides (for example) which avatars in the current area you can see; if there are more than 18 avatars then it will start telling your client to show some of them as blockheads and finally some of them will just become invisible. Similarly with PortaZones; when there are too many in the area, it will only tell your client about some subset of them.
So whether your uhost listens to the ihost only “through” the view server in some sense, or whether the view server just tells your uhost to listen to some collection of sobs on some collection of ihosts is something that I don’t know.
Another aspect of the “people on the other side of the world” issue is that of course, a lot of the world is in sector 1. So, if there happened to be two people in sector 1 near the north pole, the view server might pick them to be visible even if you were close to the south pole… we don’t know the actual algorithm used.
We do know that at present, there is only one view server per sector and that all avatars in the sector get their marching orders from that view server; I think I mentioned a bit of this in the TechnicalOverview page. However, I am told that isn’t an architectural limitation and that having multiple view servers per sector is one thing that might get done in order to support events with larger numbers of people in them.
--
IanYoung
Just for confirmation, PID = ProductID
(source: forum post)
--
Bedicus
A thob’s location is described in its posOrDel
edprop, accessable through the ScriptHook interface. Observed value types for this are:
- “CarriedAndHidden by 196772622” occurs transiently if you “put away” the object. The thob will later go inactive and after that it won’t have a position at all.
- “OutAndAbout ( -9677.436255, 6479.788246, 6000254.498840 )” gives (x, y, z) co-ordinates for the object.
--
IanYoung
From a forum post by There_Hardware:
There uses all the CPU it can, to keep the CPU warm. Literally! The reason is that laptops that detect that the CPU isn’t used 100%, will shut down for a small while. Alas, that small while is long enough to cause There to lag. Because laptops are now > 40% of the total PC market, we had to make it like this.
We’ve repeatedly run There in the lab, looking for client memory leaks, and haven’t really found any. If you’re using third-party utilities, like the Flash GPS hack, then we know there’s bugs in that – uninstall it if you don’t want the bugs. That’s about the only advice I can give on the memory leaks, because I haven’t seen anything else cause significant bloating within a few hours (or even a day).
Now, for the good news: to make There NOT use all of your CPU, you can try this:
- right-click on My Computer and select Properties
- on the Advanced tab, click Environment Variables
- click “New” and name the variable THERESLEEP (all uppercase) and give it the value 1 (just a single digit one)
- apply, save, close windows, and restart your computer (just for good measure)
- now, when you log in, you may find that There is not using as much CPU
This procedure does not work on all computers. It also may induce lag on some computers. To reverse the effect, remove the environment variable you created and restart the computer again (for better karma).
Hope this helps!
--
via IanYoung
Another spider!
Was able to gather a little info on this one (see below). Its a barrel floating in air on motu, owned by There_renter.
<answer>
<title>Doid 340466458 details</title><h1>Doid 340466458 details</h1>
<table border="1"><tr><td><i>Attribute</i></td><td><i>Value</i></td>
<tr><td>Doid</td><td>340466458</td>
<tr><td>Clide</td><td>Obstacle</td>
<tr><td>State</td><td>Operating</td>
<tr><td>Sector source of truth (SSOT)</td><td>97</td>
<tr><td>Is transient</td><td>no</td>
<tr><td>Position</td><td>(-17350.80,24243.52,5999961.96) (delegated to 0)
<tr><td>Dasps</td><td>9 dasps, 117 bytes</td>
<tr><td>Memory</td><td>48 kb</td></table>
<form action=details method=post>
Details: <textarea name=state rows=30 cols=80>
[ObstacleDasp](../ObstacleDasp/)={code=0 dStatic={clide="Obstacle" ihostInetAddr=64.125.217.127 ihostPort=2313 visible=1 uuVersion=1 uuPending=0 visClass=0 productId=0 ownerDoid=100001 isUuDob=1 path={count=0 sectorId=[]}}}
[ObstacleDasp](../ObstacleDasp/)={code=1 global={ globalPos={r=6.0001280000000000e+006 theta=3.5983617761501489e+002 phi=2.3372600482193207e-001} globalParity=0}}
[ObstacleDasp](../ObstacleDasp/)={code=2 local={ local={globalParity=0 posMode=0 outAndAbout={ localPos={localX=-1.9516366728003845e+002 localY=-2.3266759141330306e+002 localZ=-9.1590375704944449e+001}}} heading=-1.8100000000000000e+002}}
[ObstacleDasp](../ObstacleDasp/)={code=5 name={name="Obstacle"}}
[ObstacleDasp](../ObstacleDasp/)={code=9 retrieve={step=0 retain=0}}
[ObstacleDasp](../ObstacleDasp/)={code=42 config={useOriginForSink=0 stickToFloor=0 useFloorNormal=0 carriable=0 isCarriableByAnyone=0 useDefaultCounting=1 useExperienceFramework=0 useActivob=0 useGameKit=0 useMusicHelper=0 yOffsets={valid=0} viewUrlText="" groupStatus=0}}
[ObstacleDasp](../ObstacleDasp/)={code=129 artHelper={SwobArtHelperDasp={code=32 header={ model={filename="Obstacle/barrel.model"} hasSkinHeader=0 hasSkinComponent=0}}
}}
</textarea><input name=submit type=submit value=Update><input name=doid type=hidden value="340466458"></form>
</answer>
--
Bedicus
Cool. I have a vague recollection that someone like There_Hardware once posted in forums that the barrel was in some sense the “default model”, so the barrel-ness of this may be a red herring. If it is owned by There_Renter I might be tempted to conclude it was a house or a funzone or something; does that make any sense in context?
--
IanYoung
Quoting TH
Author Topic There_Hardware 11/10/03 05:18 PM Re: Scary thing with red lazers Reply Sorry to break the speculation :-) Thanks for the report, though! The red lasers are affectionately known as "red spiders" and are how There displays objects that are wrongly configured in various ways (there are actually other colors, although red is the most common). In this screen shot, it appears that the model for the object in question is drawn as the default barrel, transparently, which means that you somehow are seeing a "raw" object which has been placed in the world, but not configured at all (or the configuration didn't "take").
--
tablatronix
So there I was, standing next to There_Economy’s AFKed avatar when the system closed. I was logged out as normal. When I logged back in, there he was again. A normal person would have had to log in again in order to reappear. Speculation: There_XXX avatars don’t get logged out when everyone else does.
--
IanYoung
Avatar privledge 25 is “Allowed to access the cluster while it is restricted.” Perhaps There_Economy (and others) stay on because they have this privledge set. I’ve put the master list of privledges on my userpage: MescadThere
--
Mescad
Concerning avman servers and the possible identification of which server an avatar belongs to: One way to find the IP of the avman server you are logged into is to cause certain kind of errors to happen. For example, if you visit http://127.0.0.1:9999/loginMan/login?doid=1
while in debug mode, you should get the error message “Login failed, http error from 64.125.217.134:2311:…” where the IP address will be the IP address of your avman server. Mescad is currently assigned to server 64.125.217.134 which I believe to be mapped to avman1.
As of this writing, since he is on avman17, iay should be assigned to the server located on 64.125.217.167.
I have a complete list of avman servers with what I believe are the correct associated IP addresses, but have not yet found a way to verify the information. If we can get more IP addresses from people who know their avman server number, I can verify the accurracy of the list and share it.
--
Mescad