Jump to content

LSValmont

Member
  • Content Count

    907
  • Joined

  • Last visited

  • Medals

Everything posted by LSValmont

  1. Yes @Leopard20 I do! Thank you! I think I fixed all issues with this iteration of the script, what do you think? vMotionScanner = { params [ ["_unit", objNull, [objNull]], ["_motionScannerDistance", 60, [60]], ["_detectAllEnemies", false, [false]], ["_detectEnemyUnits", false, [false]], ["_detectEnemyVehicles", false, [false]], ["_detectEnemyAgents", true, [true]] ]; if (isDedicated OR !hasInterface) exitWith {}; if(!("ItemGPS" in assignedItems player) || !alive player || !(vehicle player == player)) exitWith {vMotionScannerRunning = false; cutText ["", "PLAIN"]}; vMotionScannerRunning = true; private _nearObjects = []; private _motionMarkersArray = []; private _maxMotionMarkers = 10; switch (true) do { case (_detectAllEnemies) : { _nearObjects = (player nearEntities [["Man", "Air", "LandVehicle", "Ship"], _motionScannerDistance]); }; case (_detectEnemyUnits) : { _nearObjects = (player nearEntities [["Man"], _motionScannerDistance]); }; case (_detectEnemyVehicles) : { _nearObjects = (player nearEntities [["Air", "LandVehicle", "Ship"], _motionScannerDistance]); }; case (_detectEnemyAgents) : { _nearObjects = agents select {agent _x distance player < _motionScannerDistance}; }; }; while { vMotionScannerRunning } do { if (visibleGPS) then { _nearObjects = _nearObjects select {side group _x isNotEqualTo side group player && abs speed _x >= 3}; if (_nearObjects isNotEqualTo []) then { private _sortedContacts = []; _sortedContacts = [_nearObjects, [], { player distance _x }, "ASCEND"] call BIS_fnc_sortBy; private _closestContact = objNull; _closestContact = _sortedContacts select 0; switch (true) do { case (_closestContactDis > 40 && _closestContactDis < 50): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_1.ogg", player] }; case (_closestContactDis > 30 && _closestContactDis < 40): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_2.ogg", player] }; case (_closestContactDis > 20 && _closestContactDis < 30): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_3.ogg", player] }; case (_closestContactDis > 10 && _closestContactDis < 20): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_4.ogg", player] }; case (_closestContactDis > 0 && _closestContactDis < 10): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_5.ogg", player] }; }; private _displayedMotionMarkers = 0; { if (_displayedMotionMarkers < _maxMotionMarkers) then { playerSide reveal _motionTrackerContact; private _xName = name _motionTrackerContact; private _marker = createMarkerLocal [_xName, position _motionTrackerContact]; _marker setMarkerShapeLocal "ICON"; _marker setMarkerTypeLocal "DOT"; _marker setMarkerColorLocal "ColorGUER"; _marker setMarkerAlphaLocal 0.85; _marker setMarkerSizeLocal [0.5, 0.5]; [vAnimatedMarker_1_Fnc, _marker, 0.3] call CBA_fnc_waitAndExecute; [vAnimatedMarker_2_Fnc, _marker, 0.6] call CBA_fnc_waitAndExecute; [vdeleteMarkerLocalFnc, _marker, 1] call CBA_fnc_waitAndExecute; _displayedMotionMarkers = _displayedMotionMarkers + 1; }; } forEach _sortedContacts; }; }; sleep 0.5; }; }; vAnimatedMarker_1_Fnc = { params ["_marker"]; _marker setMarkerAlphaLocal 0.70; _marker setMarkerSizeLocal [1, 1]; }; vAnimatedMarker_2_Fnc = { params ["_marker"]; _marker setMarkerAlphaLocal 0.55; _marker setMarkerSizeLocal [1.4, 1.4]; }; vdeleteMarkerLocalFnc = { params ["_marker"]; deleteMarkerLocal _marker; };
  2. Ok but if I want to show all the dots for the contacts almost simultaneously I need to remove the sleeps and if I remove the sleeps I loose the marker blinking effect (Marker going from smaller to bigger over 0.9 seconds). Perhaps that effect alone is not worth it and I should just show a normal marker that doesn't grow in size and get it done with. Thank you for all you feedback. I didn't know that spawns that last less than a second could still hog the scheduler.
  3. Thanks for the input! I believe this will do the trick... vMotionScanner = { params [ ["_unit", objNull, [objNull]], ["_motionScannerDistance", 60, [60]], ["_detectAllEnemies", false, [false]], ["_detectEnemyUnits", false, [false]], ["_detectEnemyVehicles", false, [false]], ["_detectEnemyAgents", true, [true]] ]; if (isDedicated OR !hasInterface) exitWith {}; if(!("ItemGPS" in assignedItems player) || !alive player || !(vehicle player == player)) exitWith {vMotionScannerRunning = false; cutText ["", "PLAIN"]}; vMotionScannerRunning = true; private _nearObjects = []; private _motionMarkersArray = []; private _maxMotionMarkers = 10; if (_detectAllEnemies) then { while { vMotionScannerRunning } do { if (visibleGPS /*&& "ItemGPS" in (assignedItems player + items player*/)) then { private _nearObjects = (player nearEntities [["Man", "Air", "LandVehicle", "Ship"], _motionScannerDistance]); _nearObjects = _nearObjects select {side group _x isNotEqualTo side group player && abs speed _x >= 3}; if (_nearObjects isNotEqualTo []) then { private _sortedContacts = []; private _closestContact = objNull; _sortedContacts = [_nearObjects, [], { player distance _x }, "ASCEND"] call BIS_fnc_sortBy; _closestContact = _sortedContacts select 0; if (_closestContact distance2d player > (_motionScannerDistance*0.84)) then { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound.ogg", player]; } else { [_closestContact] call { params ["_closestContact"]; private _closestContactDis = _closestContact distance2d player; switch (true) do { case (_closestContactDis > 40 && _closestContactDis < 50): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_1.ogg", player] }; case (_closestContactDis > 30 && _closestContactDis < 40): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_2.ogg", player] }; case (_closestContactDis > 20 && _closestContactDis < 30): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_3.ogg", player] }; case (_closestContactDis > 10 && _closestContactDis < 20): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_4.ogg", player] }; case (_closestContactDis > 0 && _closestContactDis < 10): { playSound3D [getMissionPath "vScripts\vSounds\MotionDetectorSound_5.ogg", player] }; }; }; }; private _displayedMotionMarkers = 0; { if((player isNotEqualTo _x) && (vehicle _x isEqualTo _x)) then { _displayedMotionMarkers = _displayedMotionMarkers + 1; if (_displayedMotionMarkers < _maxMotionMarkers) then { [_x] spawn { params ["_motionTrackerContact"]; if(abs speed _motionTrackerContact >= 3) then { playerSide reveal _motionTrackerContact; private _xName = name _motionTrackerContact; private _marker = createMarkerLocal [_xName, position _motionTrackerContact]; _marker setMarkerShapeLocal "ICON"; _marker setMarkerTypeLocal "DOT"; _marker setMarkerColorLocal "ColorGUER"; _marker setMarkerAlphaLocal 0.85; _marker setMarkerSizeLocal [0.5, 0.5]; sleep 0.3; _marker setMarkerAlphaLocal 0.70; _marker setMarkerSizeLocal [1, 1]; sleep 0.3; _marker setMarkerAlphaLocal 0.55; _marker setMarkerSizeLocal [1.4, 1.4]; sleep 0.3; deleteMarkerLocal _marker; }; }; }; }; sleep 0.1; } forEach _sortedContacts; }; }; sleep 0.5; if(!("ItemGPS" in assignedItems player) || !alive player || !(vehicle player == player)) exitWith {vMotionScannerRunning = false;}; }; }; }; I have lowered the sleeps because it has to look like this:
  4. LSValmont

    Persistent Save System

    Very neat and much needed script suite @sukhoi191! Clean code and well commented, it is a pretty good start if you ask me! It is in the MP department where this would shine thou. If you followed the method behind Antistasi I believe it should be multiplayer compatible if you make it sure that it runs completely on the server. I hope you can keep updating this until it is fully MP compatible 😉
  5. LSValmont

    Visibility Condtion

    private _canSeePlayer = []; { if ((side group player) getFriend (side group _x) < 0.6 && alive _x && isNull objectParent _x && ([_x, "VIEW"] checkVisibility [eyePos player, eyePos _x]) > 0 && currentWeapon _x != "" && !(lifeState _x isEqualTo "INCAPACITATED")) then {_canSeePlayer = _canSeePlayer + [_x]; player knowsabout _x;} } forEach allUnits; if (_canSeePlayer isNotEqualTo []) then {//code}; That works for me when run on the client! Good luck!
  6. Hello dear @hoverguy! Hope you are doing good and 2020 wasn't too hard on you. Any update on the physical money you were working on?
  7. I have an account and I am logged in but since I live in South America in seems to have a problem with out ISPs here. I've tried changing Browsers, PCs and even IPs but it won't allow me to download. It seem like a bug because the armaholic page says I am already downloading when it never did. I used to download from there just fine until around two years ago. If you even manage to upload your work to other location please share the link 😉 And thank you!
  8. Can we get a google drive link to your scripts? I can't download from Armaholic for some reason.
  9. The issue is related to a bug with the setObjectTextureGlobal command that was broken with the release of Arma 3 version 2.0 but will be fixed in an upcoming Arma 3 patch. The fix is already present on the Dev Branch of Arma 3: https://forums.bohemia.net/forums/topic/140837-development-branch-changelog/?do=findComment&amp;comment=3421633
  10. One last question. Is the framework save compatible? Like if we have a very long campaign and we save using bis save before we end the campaign do we continue from the saved file at a later time without any issues like loosing our points? Is everything important to the mission saved correctly or should we just set missions that we can finish in just one session?
  11. First time seeing this! I can't believe I missed this! It is awesome that you added an Option to Randomize the Missions! Adds lots of replayablity to the missions! Some questions: 1) Is this framework up to date compared to Shoe Lace? 2) Is it possible to use normal SQF scripts in tandem with this mission framework? PS: Just subscribed to your YT channel 😉 Would be great if the framework could be expanded with a few more features: 1) A Lobby/Mission Option to disable Insertion Points (Sometimes missions require players to use vehicles and/or walk all the way to the Mission location rather than teleport right next to it). 2) Would be great that even if you set the missions to random, the mission maker could still define an Opening and a Ending Mission so for example the first mission is to set up a FOB, then you play X number of missions in Random Order and your last Mission is Always to Extract via Helicopter etc. Of course you could set the Starting Mission and the Ending Mission to none so that all missions just play randomly if the random option is choosen!
  12. I've experienced this bug too and it is clearly a case of an unoptimized asset that needs to be fixed by the devs at some point, as having just a few of these "Limestone Rocks" and cause heavy stutters and cause low FPSs on all systems.
  13. This Script was made for Ai and not players and was not even tested in MP... but... I am working on another version that helps in multiplayer but is a lot more complex and also better. Expect a release SOON TM 😉
  14. Can you try this Beta of version 2.0. Quite a few things have changed so read the readme perhaps. https://drive.google.com/file/d/142RTSWBJT74fy22Q3KfB95vzYncHkGtZ/view?usp=sharing Let me know how it fairs in MP!
  15. vAiDriving Multiplayer Script by Valmont RELEASED! Improved Ai Driving and Civilian Pedestrian Simulation will now also increase your FPS rather than decrease it! (Three for the price of one, order NOW!) (promotion ends when Arma 4 releases or we run out of stock!) EDIT: -SOLD OUT- Inspired by (And adapted from) the work of the Ai Driving master @RCA3 ! REQUIRES CBA_A3 ! vAiDrive Main Features: 1) Greatly reduces the chances of Ai Driven Vehicles colliding with objects, vehicles and other units. 2) Greatly improved the chances of Ai Driven Vehicles evading other vehicles and units. 3) Since version 13 the script is able to handle the waypoints and movement of both vehicles and pedestrians and therefore it no longer needs manual waypoints setup by the mission maker. All that is required now is the placement of civilian vehicles and units on the scenario and the script does the rest. 4) By giving vehicles the optimal amount of waypoints, waypoint distance, timeout and position while also giving pedestrians custom routines that mimic real urban movement patterns the immersion of any mission using civilians is greatly increased. 5) Has the option to cache far away units and vehicles being handled by the script. 6) Due to its many optimizations, instead of having a toll on server performance this script actually INCREASES the performance (FPS) on the server! Extra Features: 1) Ai units in the way of vehicles will move away from the streets and into buildings. 2) Option for Handled vehicles to open closed bargates automatically. 3) Option to add random uniforms and gear to civilian pedestrians automatically. 4) Ai vehicle Drivers will occasionally use their horns when a obstacle is in front. 5) Ai Drivers are optimized for driving! And if their vehicle run out of fuel then they exit the vehicle and the script stops (liberating resources). 6) The script uses a combination of scheduled and unscheduled Environments to achieve that virtual CERO impact on performance. OBS: Since version 13 it is nearly impossible to have fatalities of any kind due to bad Ai Driving with vAiDriving enabled (for the CIVILIAN SIDE). CHANGELOG: How it works: Limitations: Usage: Script Optional Configs: The script (Updated to version 12): PS: This script aims towards making the Ai Driven vehicles brake better. If you actually want to make the Ai drive better then you should use @RCA3's amazing AI Driving Control. (Link in spoiler Below) Enjoy and I am looking forward for suggestions and testing input! Special thanks to @RCA3 again for his work and sharing his amazing scripts and mods with us! vAiDriving version 13 Demo Mission (Malden) DOWNLOAD LINK: https://drive.google.com/open?id=133RUlQmcrzXFxV9RLC27sdIQYOLkFyR5 PS2: I haven't tested this script as a CONVOY but I believe it should also help with convoy missions probably. (Please report your results)
  16. LSValmont

    RCO and ERCO aiming reticle misalignment issue

    Good find @a_killer_wombat! I hope it gets fixed soon!
  17. Thank you @johnnyboy! As always you are correct... both fatherhood and work have taken a toll on my scripting time but I will be more active here in January. I will update the script with your improvements and any other suggestion you guys have. PS: I can make the dogs focus on the killer of their owner. Right now they go passive as an optimization and also because they are grieving =p
  18. LSValmont

    Forward Scan Sonar for ships

    This is awesome! Now all we need is a motion scanner like X-COM or the aliens movies for the ultimate fear missions! Well done Sparker, always putting that creative brain of yours to good use!
  19. You just gifted us another weekend of fun! Thank you! Looking forward to the port to other maps 😉 PS: Some of my friends said this was the most fun they have had in Arma 3. Some are pretty new and couldn't get into Arma 3 before as they found the Single Player to be too boring and MP to be too punishing or requiring too many mods until I showed Operation Shoe Lace to them and then Arma finally clicked for them. May I ask, do you have a discord channel or a channel were you hang the most?
  20. I am on the same boat, got to 90% of my dream Arma 3 project and then a new born child and RL hit and I haven't found the time to resume work yet. I am thankful that you managed to finish and share this with us.
  21. Ok so me and my LAN group of 7 players + me tested the mission last sunday for almost 5 hours! Results: - We did not play anything else! (And we usually do a couple new coop missions and other LAN games too). - This is the most fan we've ever had outside of Warlords. In fact it felt far less repetitive than Warlords even after multiple playthroughs. - Your team is always on their toes. We made the mistake on our first playthrough of not setting the "In Between missions rest time" high enough and had to rush some missions unprepared. The outcome is that the mission never felt long even after hours of playing. - The mission was played on a plethora of hardware configurations from crappy 5 years old notebooks to i7 9900 Desktops and all with optimal results (Compared to Warlords or other missions we had much higher performance and no stuttering). That was helped by the relatively small and barren map thou. No performance degradation after very long sessions too for both the server and the clients. - Some missions can be incredibly cinematic! That is almost unheard of for the PVP TVT scene, rivaling some of the best COOP and even SP scenarios. Suggestions: - Randomize everything, from the starting locations to the missions order. - Bring the mission to Malden/Altis. - Make the Insertions usage cost a little "Mission Points" to use? - Make sure that Insertion points are not too close to the objectives. (Basically that they are balanced and do not promote the "Enemy Spawned right in my face" scenario that no one likes because it reminds you that you are playing a video game and breaks the immersion). - Add some more missions variations in case you go for the random missions order. Conclusions - Mission maker really knows what he is doing. From the mission design, to the scripting and the flow, everything is top notch. - You don't see missions playing on Arma 3's strenghts while masking its weakness so well very often. For the first time in a long time I didn't mind dying to Arma 3's horrible default damage system. Dying felt punishing enough but not overly so, and I had fun spectating and cheering for my team to finish the current task while I was dead. - The respawning after the timer or the mission ends is brilliant and fits like a glove for Arma 3. - It saddens me that so many players miss gems like this because all they look for is the screenshots and the mods on the mission rather than how well the mission uses the resources at its disposal and how well coded the mission is. I hope that @engima continues to refine this gem until it is polished because its foundations are very very strong and well lay out. I feel that every new mission, tool and content that the dev releases keeps getting better and better and it is pleasure to watch and enjoy his growth.
  22. Yes I played with only 2 Ai bots on each side but with just one human player (me) but this weekend I will be playing on a 8 players LAN so I will have further feedback then. And I agree that it would beneficial to state at the mission description that the mission works as intended when there are at least one human player on each side commanding the Ai units. The truck was moving when I found it, at about 2 minutes (or 3 kilometers) from its starting point, perhaps the 2 Ai units that I added on the enemy side were driving it but I did notice that the truck did not go directly towards their "end point". I assumed that was because there was a heli firing at them. It was the only truck on the whole map. There was a Strider and several Quad Bikes from the IND side moving around but no other truck and specially no other opfor truck. Also no civilian vehicles in sight. That is good to know, it makes the mission even more fun as both sides are always engaged to each other which is far more immersive and changes every time you play. That also explains why the attack never came when I was defending the Air Base. The missions are random or are always in the same order? That would be awesome, since at 30 min for each mission for 7 missions ends up being a 3.5 hours session. We often do 2 hours sessions and being able to choose less than 7 missions would be godsend. One more suggestion: At one of the mission we had to clear a town and the insertion point what inside some of the buildings of said town. When we Inserted one of the Ai units in our group got stuck under the building. So I suggest doing Insertion points on said mission on the outskirts of town instead so it is a bit safer.
  23. Just tested the script version again and had only a -2 fps impact in performance overall at a much greater immersion. Totally worth it! Thank you dear @tinter!
  24. Ok I was doing the "Capture the Airbase" mission and when we won the script failed to teleport my two ai team mates back to the base with me. It was the second mission and when we finished the first one they were teleported just fine. (Fixed super easily with the insertion option that put the whole squad together again) On the next mission "Cannonball Run" it destroyed the EAST Truck with the heli yet it did not end the mission. All the other vehicles on the map where AAF and the mission description said I shouldn't destroy those. So I waited at the truck destination point but it never arrived there so I lost that mission after the timeout. Not biggie and the mission was very cool still! So far loving the structure of the mission! It is quick but not super quick and everything is clear. I also love how each mission gives players map hints but the task themselves do not show the exact position on the map so you really need to explore and be aware of the map rather than just following a gamey 3D marker like most Arma missions. Perhaps both teams competing for the points could get some shared objectives so there could be some forced encounters between the two player factions at some point, specially if the scores are tied... (Or maybe all objectives are shared among factions but since I was playing vs Ai only if couldn't tell). Also, when you die and you have alive Ai team mates perhaps it is better to teamswitch to them rather than just spectate them maybe? Is there a way to set the campaign length? Like XX amount of missions and it is over?
×