I'm going to release the Dual Render Scopes client and server mods I made and never finished, as well as a special Designated Marksman Rifle that I designed to work with the DRS mod. It will work regardless of whether or not you have the Dual Render Scopes client, but people who do have the client will be able to see the effect.
It's not as much "unfinished" as much as I was never happy with how the mod worked and how little it'd probably get used, so I ended up abandoning the project, but I'm going to release it anyway because it's not doing any good sitting in my add-ons folder so you guys might as well have it.
Weapon_DMR
Support_DRScopes (Server)
Client_DualRenderScopes (Client)(you need all three)
Weapon_DMRThe DMR uses some (relatively) realistic ballistic calculations. It comes with a range finder (plant brick key) and the scope can be zero'd to a specific distance using the brick shift up and down keys. The magnification of the scope can be changed with the brick shift forward and to keys. I can't remember if I actually completed this feature or not, but I'm pretty sure you will hear a super-sonic crack if somebody shoots past you. I also think I remember adding some functionality for bullet ricocheting depending on the angle of attack (and RNG)
Pictures of the dual render, zeroing and magnification functionality:
Here's what people who don't have the client mod will see:
Client_DualRenderScopesThis is the actual client component of the mod, when it receives a command from the server, it will open a GUI meant to resemble looking through a rifle scope. The mod will automatically adjust your mouse sensitivity based on your magnification. You'll need this if you want to see DR scopes on any server that has them enabled.
Support_DRScopesThis is the server component of the mod, and if you are running a server that has items/weapons that use DR scopes, you will need it to use them. It automatically detects who has the client mod and simplifies the scoping process for developers with the commands
%client.pushDRScope(%fov, %scopeBitmapIndex);
%client.clearDRScope();It also has some obsolete functionality regarding getting the client's FOV but there are better ways to do this nowadays.
All the code is pretty well commented so it shouldn't be too hard to use if you want to make weapons with it, but feel free to ask any questions or report any bugs. I probably won't add more features but I'm willing to correct small bugs if possible.