beno_83au 1369 Posted December 4, 2018 (edited) Download: MIL_Mirror: Dropbox/Armaholic Description: MIL_Mirror allows a mission maker to add a mirror-type effect to an object capable of using setObjectTexture. To use: - PIP MUST BE ENABLED for the mirror to work (Options >> Video >> General >> PIP). - Copy the folder MIL_Mirror into your mission directory. - Place your intended mirror object (e.g. a whiteboard - "Land_MapBoard_01_Wall_F" - they work best) and name it. - Add this line to your mission's init.sqf file: nul = [_mirrors] execVM "MIL_Mirror\initialise.sqf"; - _mirrors - array - names of all the mirrors Example: nul = [mirror_1,mirror_2] execVM "MIL_Mirror\initialise.sqf"; Media: Day/Night demo of some mirrors (0.50): Glass House Update (2.05): **Disclaimer - Duke Nukem is talking about himself here, definitely not me 😄 Known issues: - The reflection doesn't behave quite like a mirrored reflection because it's a camera, but it's the best I could achieve. - Resolution isn't outstanding, but it's ok. - Torch beams (and probably most other light sources) aren't reflected, which is pretty obvious in the video. - As far as I'm aware you can only have up to 8 mirrors working at a time (once one is destroyed the next in the list will start working). I assume this is a limitation of the game unfortunately. If anyone finds any problems please let me know. Thank you. Change log: Spoiler v1.1: Added - Breaking glass. - 1-3 shots at random. - Breaks from explosions. - Glass shatter effect. - Glass breaking noises. Added - 50m distance check to mirrors being "active". Changed - How mission creators implement the function. - Objects no longer need to have setObjectTexture run on them from the editor!!! - Instructions have changed due to this, but are now MUCH simpler. Changed - Increased mirror resolution. Fixed - Working MP implementation. v1 - Release. Edited March 28, 2019 by beno_83au Update v1.1 - Glass House Update 4 2 Share this post Link to post Share on other sites
HazJ 1289 Posted December 4, 2018 Nice concept / release! Does this require PIP to be enabled? Can't remember if rt2 requires it. 1 Share this post Link to post Share on other sites
beno_83au 1369 Posted December 4, 2018 Thanks @HazJ, it's obviously not as good as what an actual mod can achieve, but as far as I could figure, this is as good as a script can do. As for PIP, I have no idea . I'll have to have a look. 1 Share this post Link to post Share on other sites
HazJ 1289 Posted December 4, 2018 Yeah, I understand due to the limitation however a very good idea and concept. As you said, the best you can do! I think it is a great feature to have in a mission. Share this post Link to post Share on other sites
Guest Posted December 4, 2018 Thanks for sending us your newest release! An Armaholic mirror is now available: MIL Mirror Share this post Link to post Share on other sites
johnnyboy 3797 Posted December 4, 2018 11 hours ago, beno_83au said: MIL_Mirror allows a mission maker to add a mirror-type effect to an object capable of using setObjectTexture. That is very cool and creative. You bloody Aussies are pretty smart! I guess I have to work on a mission like this now: Idea for enhancement: Add handleDamage EventHandler to the white board object that spawns broken glass fragments (like when windows are shot), sets texture to original whiteboard texture, and plays breaking glass sound. It would be awesome if the mirror is destructible. 1 1 1 Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted December 4, 2018 Beno this is really great and i like it very much ! Congratulations ! 1 Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted December 4, 2018 1 hour ago, johnnyboy said: Idea for enhancement: This is a crazy GOOD idea Johnnyboy ! 1 Share this post Link to post Share on other sites
beno_83au 1369 Posted December 4, 2018 11 hours ago, HazJ said: Does this require PIP to be enabled? OP updated. Thanks for the heads up, it DOES require PIP to be turned on. 3 hours ago, johnnyboy said: Idea for enhancement: I'm keeping an eye on that other post you tagged me in. Not a bad idea at all. 3 hours ago, johnnyboy said: You bloody Aussies are pretty smart! There's the rugged (very rugged) good looks too, don't forget that. 2 Share this post Link to post Share on other sites
HazJ 1289 Posted December 4, 2018 Expanding on @johnnyboy idea - you could use setObjectMaterial too. 1 Share this post Link to post Share on other sites
johnnyboy 3797 Posted December 4, 2018 2 minutes ago, beno_83au said: There's the rugged (very rugged) good looks too, don't forget that. Haha. I took a year off to travel many years ago, and spent 2 months in Oz. Loved every minute of it. Yanks may not be too popular around the world, but at least back then Aussie's loved my yank "surfer dude" accent (I'm not a surfer, but have the california accent). And the opposite is true: I love the Aussie accent. One of my favorite sayings I learned was "There's only two states to be in: Queensland or pissed!". Hahaha. 1 Share this post Link to post Share on other sites
HazJ 1289 Posted December 4, 2018 Good day mate, put us a shrimp on the barbie! 1 Share this post Link to post Share on other sites
beno_83au 1369 Posted December 4, 2018 7 minutes ago, HazJ said: Good day mate, put us a shrimp on the barbie! Close enough haha. 2 Share this post Link to post Share on other sites
armatech 8 Posted December 5, 2018 excellent job but is it just me or is your mirror mirrored Share this post Link to post Share on other sites
johnnyboy 3797 Posted March 19, 2019 G'day and good on ya mate. Here's how goko does broken glass effects if you want to add that in. https://github.com/the0utsider/ballistic-impact/blob/master/addons/goko_BI/functions/fn_particleEffectsOther.sqf 1 Share this post Link to post Share on other sites
beno_83au 1369 Posted March 22, 2019 Thanks @johnnyboy. I've just had some down time from being crook but I'll have a look at it over the next few days and try and get something out. 1 Share this post Link to post Share on other sites
beno_83au 1369 Posted March 23, 2019 Little WIP video: "#particlesource" createVehicleLocal got me pointed in the right direction, then I just had to look for the broken glass particle classes and go from there 👍 3 Share this post Link to post Share on other sites
beno_83au 1369 Posted March 26, 2019 Ehhh, I'm on struggle street again. So the problem this time is one that has been persistent with the "mirrors" since the beginning. In MP, clients don't see any basic texture changes when executed locally (I guess I might've known about that issue a while ago, but forgot about it since). So, on the server (hosted), this works fine: testMirror setObjectTexture [0,"#(rgb,8,8,3)color(0,0,0,1)"]; However, when the client tries this the object (whiteboard) goes black. This was also occurring when I was trying to get a client to see the mirror with: _mirror setObjectTexture [0,format["#(argb,512,512,1)r2t(%1,1)",_surface]]; Again, host worked fine. So I kind of went on a journey (comparable to LOTR journeys) thinking that it was either camCreate or procedural textures being used locally that was the issue somehow. I even tried creating a whiteboard locally from the client PC but got no where. Eventually I cut it back to bare basics and found that the texture just would not set on the client PC. What's going on here!!???!?!?! Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted March 26, 2019 1 hour ago, beno_83au said: setObjectTexture try : https://community.bistudio.com/wiki/setObjectTextureGlobal Share this post Link to post Share on other sites
beno_83au 1369 Posted March 26, 2019 @GEORGE FLOROS GR I need to use it locally. When a player goes more than 50m away from a mirror the texture gets set back to it's default (which works), then when they are back within the 50m a loop resumes running. I have it pause to save on resources, as I figured that beyond 50m at would be unlikely that someone would be seeing themselves in the mirror. This is what I'm using for the loop: nul = [_mirror,_dir1,_camera,_camPos,_surface] spawn { params ["_mirror","_dir1","_camera","_camPos","_surface","_dir2"]; while {true} do { waitUntil {(player distance _mirror) < 50}; _mirror setObjectTexture [0,format["#(argb,512,512,1)r2t(%1,1)",_surface]]; while {(player distance _mirror) < 50} do { _dir2 = _dir1 - ((player getDir _mirror) - (getDir _mirror)); _camera camPrepareTarget [ (_camPos getPos [player distance _mirror,_dir2]) select 0, (_camPos getPos [player distance _mirror,_dir2]) select 1, _camPos select 2 ]; _camera camCommitPrepared 0; }; _mirror setObjectTexture [0,"a3\structures_f\civ\infoboards\data\mapboard_default_co.paa"]; }; }; I figured it'd save on resources/lag if the script wasn't needlessly running on anything too far away. So this works fine for the host, but not clients. 1 Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted March 26, 2019 I thing that you need so else to use the global and are you running this from the intPlayerlocal ? Share this post Link to post Share on other sites
johnnyboy 3797 Posted March 26, 2019 8 hours ago, beno_83au said: What's going on here!!???!?!?! I hope Georgie talked you off the ledge Frodo! setObjectTextureGlobal! I've been there mate. Sometimes you just spin your wheels and go crazy... 2 Share this post Link to post Share on other sites
beno_83au 1369 Posted March 26, 2019 5 hours ago, johnnyboy said: I hope Georgie talked you off the ledge Frodo! Lol, yeah he tried to help. The problem is though I need the textures to be set locally and at different times for different players, so running all this locally made sense. New day anyway, i might have a think about a different way to do this. 1 Share this post Link to post Share on other sites
beno_83au 1369 Posted March 27, 2019 Ugh, god damnit. Quote Make sure PIP is enabled in the video options. Me: "Pft, of course it is. I cAn SeE iT wOrKiNg On ThE hOsT pC!?!??!!?!?!" Better me (and far too late): "OMG the client PC!!!!!!!!!!!!!!!!!!!!!" Anyway, I gotta go to the dentist now. Cheers 🤣 edit: Thanks @GEORGE FLOROS GR, told you I'd figure it out haha 1 Share this post Link to post Share on other sites
beno_83au 1369 Posted March 27, 2019 Updated. v1.1 - Glass House Update: Added - Breaking glass. - 1-3 shots at random. - Breaks from explosions. - Glass shatter effect. - Glass breaking noises. Added - 50m distance check to mirrors being "active". Changed - How mission creators implement the function. - Objects no longer need to have setObjectTexture run on them from the editor!!! - Instructions have changed due to this, but are now MUCH simpler. Changed - Increased mirror resolution. Fixed - Working MP implementation. Glass House Update (2.05): **Disclaimer - Duke Nukem is talking about himself here, definitely not me 😄 Link/s on the OP have been updated. Props in the video, other than the mirrors, were done using @phronk's furniture script (it's unoptimised, but this is SP using one building). As far as I'm aware you can only have up to 8 mirrors working at a time (once one is destroyed the next in the list will start working). I assume this is a limitation of the game unfortunately. 1 2 Share this post Link to post Share on other sites