Yeah, I was in the middle of updating that, because I relized that not everyone was going to go from Z28 to A1, so strictly speaking that's not always going to be true. Thus I retracted that statement. Although I did provide my hosts.ini file as an example for the lost souls.
You can get a LFS 0.6A1 InSim Version 5 compatible patch for PRISM here. Actually, even 0.3.5 should still work with the current patch, due to how PRISM handles packets. But, anyway, this version includes the new packets in the 0.6A1 patch for LFS. There is only one thing that I've not worked on that I must, and that's sending IS_AXM packets to InSim from PRISM.
Please do test, and you can all expect the next official patch pretty soon after this if no one finds major bugs. Any issues please report them here or in PRISM's Issue Tracker. Thank you all for using PRISM, and I hope to continue this development pace over the coming weeks.
One last quick note, in order to get all of the new fetures from the new InSim packets you must change the flags in your hosts.ini file.
My hosts.ini file looks like this for my local server.
That's a good question, as it should not really be possible to incercept messages in this way. Unless I've missed something within the InSim.h file ... What your saying is something I would like to see also, the power to handle messages from a client to sanitize them would provide a great level of power to any InSim application.
Only on new users. This bit of information should really be cached for S2 users, until S3 comes out. But then on each connection for someone with a Demo or S1 license. (I wonder what the break down is of Demo vs S1 vs S2 licenses is.)
Bug?: In mouse clip mode (Ctrl + C), I can still move my mouse to the outside edge of the window. While using a mouse to steer (and using the left click button to accelerate) this can cause the undesired operation of stretching / reducing the window size.
Can you please make it so that the mouse is clipped to the render width and height so that it may not adjust the size of the window while in Mouse Clip Mode.
Cool idea for the registerOnClick function. If you're willing to work on this, I'm willing to merge it into the main branch. Although you might want to have a look at my current as it has some updated values for the Powered By Button.
<?php public function onClientConnect(IS_NCN $NCN) { $BTN = new IS_BTN; $BTN->ClickID(100)->UCID($NCN->UCID)->T(IS_Y_MAX - IS_Y_MIN)->L(IS_X_MIN)->W(IS_X_MAX)->H(8); $BTN->Text('Welcome to this ^3PRISM ^7Powered^8 Server.')->Send(); $BTN->ClickID(101)->T($BTN->T + $BTN->H); $BTN->Text('PRISM Version ^7'.PHPInSimMod::VERSION.'^8.')->Send(); $this->createTimer('tmrClearWelcomeButtons', 15, Timer::CLOSE, array($NCN->UCID)); } ?>
Just a couple of things, move ButtonController into the modules directory, as it's meant to be used by, many, many plugins. From there, I'll add the interface into the Plugins class (Much like timer is given some forwards within the Plugins class.) Great job!
There has also been some huge changes to the gapmon plugin, so I'm sure that misiek08 will want to take a look at that. Just keep in mind, it's not even close to being done yet.
You could do the command `autox build garage` and it will wait for you to place an object. After you do place an AutoX object, InSim sends the IS_AXM with the details of the 1 object that was placed by you, the InSim application then goes on to use the AutoX object you just placed as the Geomertic center and adds the other AutoX objects around it, finally removing the object you placed at the end. I can see this working quite well, except for one thing.
struct ObjectInfo // Info about a single object - explained in the layout file format { short X; short Y; [b] char Zchar;[/b] byte Flags; [b] byte Index;[/b] byte Heading; };
First is, why is Z called Zchar? Was that an error? Should it not just be Z.
Second is how did you manage to Index 800 objects with a value of 0 - 255?
Sorry to be pedantic but could you make the Index the structs first value, as it's the most significant bit of data we will have.
struct ObjectInfo // Info about a single object - explained in the layout file format { [b] byte Id;[/b] [b] byte Flags;[/b] short X; short Y; [b] char Z;[/b] byte Heading; };