Unless something unexpected happens, not like the list of things that could go wrong is short. Doesn't necessarily have to be something crazy, like people throwing stuff from bridges, or jumping onto the highway to commit suicide (but both these things happen), someone could lose their cargo, or experience some sort of sudden defect. Hell, someone could simply have a heart attack and become completely unpredictable as a result.
Granted, most of things that can go wrong on the highway produce a lot of noise before contact with your vehicle occurs, but even then you lose at least a second reacting and are less likely to react correctly.
Psycho beat me to it but I had this written already so ima post it anyway :P
OBH looks pretty good, although it might produce a lot of traffic in certain situations, such as a cone killing spree.
Would X and Y be the position the object was placed at? Or the position at the time the OBH is sent? Should be the former.
Some way to determine whether the object was moving (i.e. struck by another car, then propelled toward the current OBH-trigger) at the time of impact would also be nice.
I'd also like to raise something from EQ's InSim Bug Report / Update Request thread:
Notification when objects are added, moved (by an admin, not a collision) or deleted; should contain an ObjectID, X/Y/Z coords, Rotation and the UCID of the user responsible for the change of state.
Ability to add objects by specifying ObjectType, X/Y/Z and Rotation. If ReqI != 0, a response is sent containing the added object's ObjectID.
Ability to move or remove objects using the ObjectID, providing new coordinates and rotation when moving.
Ability to instantly reset an object that's been moved by a collision.
Instead of the unique ObjectID, the ObjectType with the X/Y could also work, i.e. to delete, you specify the ObjectType and coords and LFS will remove the object of the specified type closest to the specified coords.
I disagree, select() should be left blocking indefinitely whenever possible. The whole point of select() is to have the application sleep when there's nothing to do, making select() perfect for passive/reactive applications, which most InSim applications are. That's probably especially true for those made with PRISM due to its limited support for interactivity (as in, GUI or console input).
The current approach is good, but sorting the timer list on every iteration isn't terribly efficient, should be done when timers enter the queue.
Should probably check that out sometime, I'm still running 1.5.3
With just PHP and its most common extensions alone, it's impossible. Threading is obviously a very low priority item for what is still primarily a hypertext preprocessor.
Obviously incoming packets will also resume execution, which could potentially double (almost) the delay.
Timer is set to 1 second
select() suspends execution with a timeout of 1 second
a packet arrives after 900ms and is handled within 50ms, the timer has not yet expired and thus does not trigger
select() suspends again with 1s timeout
a second goes by without any packets
timeout triggers the timer, which is now 950ms late
Even with a very low timeout the timer resolution will be limited and vary greatly depending on the complexity of the script, as it's all running in a single thread of execution. Still, dynamically calculating the timeout will greatly improve the timer reliability, i.e.
I don't see any reason for pyinsim to use a timeout at all, since it can use (virtual) threads for timers and keep the socket blocked until there actually is something to do, including handling socket exceptions (disconnects mostly). More to the point, it would just use actual threading.Timers or something similar, I'm fairly certain those provide sufficient resolution.
200 hostiles max IIRC, but they despawn if there's no player within 4 chunks. If you're all alone on the server, your trap/tower should yield the same as it does in singleplayer. A possible explanation could be caves underneath the tower or around it, so instead of spawning in your tower, they spawn in those caves.
Everything true in above statement is marked green.
"Inherent reliability" based on the type of fuel combusted? Really now?
Cast iron is not steel, guess what your block is made from?
Aluminium is not steel either, guess what your head and oil sump are made from?
Extra stresses without increased wear? Again: really?
Problem is, as predictable as that situation might seem, there are still lots of unknowns. In Germany, people (predominantely teenagers) throwing stuff from bridges is a big problem, here in Lower Austria we had a "run across for a dare" recently where a driver was killed because he rolled it attempting to evade. There could be an accident ahead that doesn't necessarily affect the flow / fluidity of traffic all that much until right up to it. You cannot be certain that highway traffic is constantly fluid, even if it should be.
A lot can change in a few seconds and a few seconds can change a lot.
That's a matter of brightness (i.e. the amount of light), not colour.
As quoted a few posts back, the human eye is more sensitive to green light than red, meaning if you displayed the same thing in green and red light, you'd need less green light than red to make the eye perceive it with the same intensity.
Teal / turquoise if you need colours, white if you don't. There's a reason most dashes are (were, before designers became more important than scientists) lit green (cheaper than teal, better than blue), including racing displays (Motec and the likes).
MyHome and Lightvote work fine, everything else throws "An internal error occured while attempting to perform this command", including /spawn, /playerlist, etc.
Urge people not to connect via in-game hostlist and instead either type the name in directly ("Join specific host") or join via lfs://join= links from trusted sources (your signature on LFSF or your website, for example).
From what I've found, all of Neale Davidson's fonts are freeware
I'm fairly certain the Optimus font Flame used is in fact Neale Davidson's, so there shouldn't be any legal issues.
It's a bug introduced with one of the recent updates, has it's advantages though. You can use the 4 crafting slots in your inventory for additional storage, just make sure to take the stuff out before you log out or it'll be gone. It's most useful for tools you intend to consume on your trip.
If you're talking about the tree house, nycska accidentally burned it down (again). Apparently a fully contained fire can still spread, I've observed it myself placing a wooden note block on top of a dirt block with a still lava block underneath.