Confirmed, I wasn't aware of that. Somehow never thought of that. It works fine now, but I still have to check when optimising through InSim IS_AXM. I just tested an optimised LFS layout.
How does LFS manage InSim checkpoints with same x,y,h but different z? When you drive above them is there a max height you can be above them for the detection to work?
This would be a welcome improvement although I try to think of situations where it could be useful to "overwrite" IS_PLC with /cars. Would /cars be ignored by IS_PLC so that you can actually select a car which is not enabled by /cars as that sounds like a bad idea. IS_PLC should remain less powerful than /cars but this will still be the case or did I miss the point?
Other observations:
• Is it intentional that a race car spawned by IS_JRR has pit speed limiter turned on by default?
• I always found it annoying that you can't force a player to click GO when you did /end and changed to a new /track. Is there no way to force the track to show so that you don't have to wait for the players who clicked "join race" to click "GO"? (It would be useful for automatic track rotations)
EDIT:
One more suggestion. When /canreset=no you get "Car reset is not allowed on this host" and no IS_CRS reply is sent. If instead you still send it, with IS_JRR it would be easy to decide if the player who wanted to reset is allowed to reset or not but you would have to remove the "Car reset is not allowed on this host" message.
Ok that seems to work well! However I don't understand the use of:
I still haven't found the issue with IS_OCO for autocross startlights. I was hoping to get this ready for tonight. Anyway, perhaps you will quickly find the problem.
Still haven't looked enough into GitHub but I can still make 1 small contribution (see attachment). The files attached are those I made or modified. The other files remain untouched.
NOTE: Can you check IS_TTC.cs in debt? I have tested my implementations and IS_TTC seems to work well (replied by IS_AXM etc.). Can you still double check as I am not 100% confident of what I modified.
I'm almost certain BulbInfo is still bugged. Setting main start lights works half but certainly not correctly.
By the way, any chance on implementing IS_TTC tonight? If not I might attempt it, I want to have a version ready for tomorrow because I might be away this weekend.
These are just selections of autocross objects opened/closed by the new InSim checkpoints.
Quoting GitHub:
DarkTimes, I made an account on GitHub. I haven't looked into it enough yet to help but I'm tracking down an IS_OCO bug. I can make track start lights work although there seems to be an issue with BulbInfo. On the other hand setting the movable lights (autocross object: AXO_START_LIGHTS (index 149)) won't work at all.
A packet going into LFS. To put it bluntly:
• Player x types command !i_want_objects_added_here
• InSim program creates the IS_AXM and assigns the UCID of the player to the IS_AXM packet UCID
• InSim program sends the packet
• LFS receives the packet, adds (or deletes) the objects and sends the IS_AXM reply
That IS_AXM reply with that player UCID can be useful. The InSim program can detect exactly who sent IS_AXMs and when they are received. It's the same as what LFS reports when a player adds an object using the LFS autocross editor only for custom InSim IS_AXM packets.
In the end after some thought I think it's a messy explanation and probably only useful to me but on the other hand I maintain that TINY_SEL on multiplayer hosts would be nice
Good to know
EDIT:
To answer your question from a few pages back. I successfully tested this multiple race idea running 3 races on Westhill simultaneously. It works seamlessly (although that might be another story on a packed server). But InSim wise it is now easy to implement multiple races.
Thanks a lot for these new features and improvements!
As LFS dedi reports TINY_SEL - not for dedicated host I suppose it is a no-go to try to lift this restriction by being able to set the UCID from the IS_AXM (with PMO_SELECTION) so that this also works online?
It can also be useful to send an IS_AXM (with PMO_ADD_OBJECTS or PMO_DEL_OBJECTS) with UCID set so that you can easily know who sent the IS_AXM. But it comes outside my jurisdiction, I suppose this is not easy to implement?
Also, when your selection is a combination of objects and marshalls, the marshalls are excluded from the selection. I'm sure this has been thought through but can you confirm this is the right thing to do?
Sorry, I wasted your time. This does work well (apart from 1 anomaly I will report). I didn't think things through and thought it would work on a host (without UCID "setable" it should have been obvious it isn't possible so LFS dedi reported "TINY_SEL - not for dedicated host".
Firstly, thanks for the information. Granted at the moment my program doesn't deal with unicode. It is a mistake but it is mainly because I could happily throw any string at InSim.NET without it complaining or give distorted results.
Your quick fix gave semi-distorted results (see attachment). The red cross is fine but those arrows now have an unwanted dot behind them. Could it be related to the issue PeterN reported: https://www.lfs.net/forum/post/1901919#post1901919
Secondly, all InSim.NET updates (in sync with Scawen's patches, thanks for that) went fine until the last one concerning 0.6K18 & 0.6K19. I'm talking about the IS_AXM updates. I had to fix some things with PMOFlags (cast enum to byte and vice versa) but the recent implementations quoted below don't seem to work. Am I missing something? Could you check please before I report it in the incompatible test patch thread. I have a vague suspicion it is InSim.NET related.
EDIT:
(Just for the sake of reporting, when doing multiple object selections in marshall mode, you can't adjust the width of InSim checkpoints or diameter of InSim circles. I can't picture situations where it would be crucially important to be able to do this anyway.)
One small suggestion. In the autocross editor you can right click the X Y Z arrows for incrementation to move your object faster. What about having this also for concrete objects flags (WIDTH, LENGTH, HEIGHT, SIZEX, SIZEY, PITCH, ANGLE).
For example:
• Increment factor 2 when right click width arrows.
• Increment factor 3 when right click pitch arrows.
It would make it easier to make a horizontal slab object (pitch 0°) vertical (pitch 90°) for example.
Yes, you can't ground level check your object again once the dot is blue. I always thought it was a design choice. Although it works with InSim IS_AXM.
I have a note somewhere about this. I will get back to you once I can give you info on how to reproduce it easily.
For example, you have a panel of 200 buttons. All 47 players of a full server should be shown this panel at the same time. I'm looking for the best & fastest way to do this. Same for buttons who get updated often (text updates every 100ms of several buttons for example). Basically a way to queue packets, making batches and send them at appropriate intervals. You master this stuff. I don't have enough knowledge about sockets & netcode to implement this well.
Thanks for the library updates (EventHelper & 0.6K13). I will test EventHelper once I'm done updating my program with IS_UCO & IS_JRR.
So far so good except for 1 little artefact. When you add an InSim checkpoint and spam the arrows in the autocross editor to move the InSim checkpoint a new InSim checkpoint is added at that position. It doesn't happen with InSim circles.
With marshall objects there was always that odd "Can't add : intersecting object" message when you move the object with the arrows.
OFF-TOPIC:
Another (old) artefact but unrelated to 0.6K (or 0.6J) is that you can't select multiple marshall objects (CTRL +) but I'm sure you are well aware of this. Or is this intentional?
One more inquiry, is there any shareable data available concerning:
• The autocross objects dimensions.
• The cars dimensions.
• The center of gravity of the cars.
I'm asking because if it's easy to share, this data can be useful. For example when adding objects relative to a car or organising grids (the gap you should leave between cars at start). It's unimportant so don't bother if it's no easy copy/paste.
• A very old bug you are probably aware of is IS_BTN special characters problem. Some special characters result in a bugged output. I forgot how to reproduce it easily (I think it was a combination of special characters).
Either way, it's not a big nuisance.
There are a few suggestions I have for InSim.NET:
• A fool proof packet buffer (mainly concerning IS_BTN's): insim.NET would deal appropriately with the many buttons sent so you wouldn't have to worry about overflows etc. For IS_AXM I use the safe LFS system for example (wait for packet arrival, then send new packet).
• A button manager: I made a far from ideal button manager where I group buttons (parent -> child). Maybe you know the perfect way to deal cleanly with buttons (clickID & text updates)?
• Improving the socket loss detection (the error I mailed you) to improve our chances to catch the reason of the disconnection.
• An event manager: it seems to be a pain to maintain 8 InSim connections with all packet events bound. Maybe you have some clearer thought about this?
Personally, I'm not fond of the route checker ID sequence. I suppose it isn't possible to have the same indexing system as Start Position & Pit Start Point?
Looks great so far
Will the InSim checkpoints & circles be reported by IS_AXM? And will there be a limit to the amount of InSim checkpoints?
OFF-topic:
@cargame.nl: So much frustration and animosity...I'm not going to respond to your personal attacks, I'm only interested in LFS development and this thread is about exactly that.
You don't seem to realise the chance you have to directly correspond with the game developers. With such hostility, no wonder some game developers avoid public fora like the plague.