PROJECT TITLE: Diving Under Water UNDERWATER DIVING MODULE
PROJECT START DATE: March 28, 2011
The ability to swim almost anywhere under sea water for mission makers -100% done
The ability to "order" your AI pals to a specific depth -100% done
7 types of dive gases which all have different effects on your dive time and dive capabilities -100% done
Simulated cylinder tanks -100% done
Air consumption effected by depth (open circuit) -100% done
Simulated lungs - ability to dive underwater and hold your breath for 4 minutes -100% done
Ability to drown -100% done
Diving computer which measures its own battery life, air levels in tanks and depth below sea level -100% done
More realistic diving computer with advanced features (Cylinder Pressure, Breathing Time Remaining, Ambient Pressure, Maximum Depth, Decompression Ceiling (safety stop) -100% done
Add battery level to every screen of the diving computer -100% complete
Add a stopwatch or countdown timer to diving computer -100% done
Ability to position satchels in specific places underwater (and on land) and set their detonation time incrementally -85% done
Simulated depth effects and damage (oxygen toxicity, nitrogen narcosis, decompression sickness) -66% done (DCS and OxTox are done)
Small invisible pond object to attachTo which enables underwater travel -100% done (Defunkt!!)
Make instructional missions teaching you how to use the equipment -30% done
Sound effects for open and closed circuit equipment -100% done
No loss of inventory while swimming (unless using Turbo) -100% done (SLX mod (thanks to kju and boxter.dk for help)
LOCKING OUT scripts to enable leaving Gnat's submerged subs and staying submerged once you detach from the deck - 100% done (Delta IV (animated hatch), Akula (static aft hatch) and Los Angeles (midships and aft static hatches) classes enabled) -NEW: uses this and _this so script can be applied to multiple subs of the same class per mission
LOCKING IN scripts to enable entering Gnat's submerged subs while staying submerged - 0% done (Delta IV (animated hatch), Akula (static aft hatch) and Los Angeles (midships and aft static hatches) classes planned)
Add sound effects to locking out tube doors - 100% done (door opening, door close shut, door close creak)
Ability to create buoy lines from boats and retrieve them - 100% done
D.E.A.D. - Diver Emergency Ascent Device based on real world device used by Spec Ops - 100% done
D.E.A.D. resettable emergency strobe - 100% done (not happy with the strobe effect but I'll improve it in 2.0 version)
D.E.A.D. sound effects - 100% done
Dive Light - 40% done (not happy with it, might move it to 2.0)
Cylinder Recharge scripts to refill diving tanks with any dive gas - 100% done
Add sound effects to cylinder recharge scripts - 100% done
Dry Deck Shelter! :) with the ability to launch a Zodiac while submerged -85% done
FUTURE 2.0 FEATURES:
The ability to dive or submerge in lakes that reside above sea level -0% done
Two versions - Open and Closed Circuit systems - 50% done (open circuit template done)
Air consumption effected by depth (closed circuit) -50% done
Locking In (ability to get into subs while submerged so you never have to surface and your underwater status changes to 0 once onboard)
Better strobe effect using WarFX sparks similar to anti-collision lights addon
Diving Computer put into Dialogs instead of hints - 0% done
New animations for diving and swimming underwater -RESEARCHED and TESTED - not sure how to do it successfully - 0% done
Add darkness to depth (simulated using setAperture) -setAperture? - 10% done
Add ability to get air from another diver - buddy breathing - 0% done
Hand signals while underwater -CANCELLED (might not be possible with engine limits)
Inventory functionality - check for batteries, physical diving computer, check for satchels, etc. -0% done
Add an alarm to diving computer -0% done
Add ability to attach a satchel to a specific part of a boat (simulated magnetic bond with metal hulls) -0% done (FFAA mod might have the answer because they have a script that attachTo's players to the boat before it moves wherever they are standing - this is what I need!)
Add Satchel Dialog which will allow you to set hours, minutes and seconds countdown for detonation -1% done (this is a PITA)
Add ability to detonate a satchel at a specific time of the day (i.e. 23:30 hours) -0% done (don't know where to start)
Add ability to read satchel detonation info on detonation or dive computer (time of detonation, det status, time remaining to detonation) -0% done
Add oxygen tank scripts to a backpack (or a backpack that looks like an oxygen tank or rebreather UBA -CANCELLED (I made this into a Module you can sync with the player but I'd like to be able to sync the module with a backpack - I just don't know how)
Add diving computer actions to physical object you can keep in your inventory - 0% done (don't know how to do this)
Add MORE SOUNDS! I.e. gasping/drowning, water in ears -0% done
Add bubble particles to open circuit SCUBA style systems -5% done (I don't know how to do this)
Add weather forecast/barometer to dive computer -doesn't seem possible - CANCELLED - OUTSIDE OF SCOPE
Add some sort of weight belt - not sure I want this feature -(I don't know how to change the weight or mass of an object in game)
Add normal vs. high exertion multipliers to gas consumption -CANCELLED - TOO DIFFICULT
Make all of this multiplayer compatible -0% done - I will definitely need help
When using certain animations in PvP which greatly increase your fatigue such as emergency prone, your fatigue level increases to the point where you might lose your gear while swimming immediately afteward - SOLUTION: wait before swimming to decrease fatigue level and don't map the dive key to "z" the way I have as it can cause you to accidentally perform that animation while submerged
The player has a positive buoyancy - it's slight but it makes staying at depth a little more challenging - I can fix this, but it makes ascending more difficult (maybe the ability to turn buoyancy on and off is the answer (hold at depth)
Can't currently dive in lakes or ponds (limitations with getPosASL vs getPos)
If you dive too deep into the sea floor, beyond the level of your waist, you will snap onto the sea floor and get stuck until you swim to shore and pass above 0 meters - WORKAROUND: swim to shore or don't dive that deep -FIXED!
Sometimes birds fly by you under water - lol
I decided to see if AttachTo combined with setPos could be a viable way of getting underwater. It is, and it isn't. You can attachTo certain objects. I tried a few different things, and depending on the object's buoyancy (I guess) or lack of buoyancy data (I'm guessing), you will either stay underwater for an instant and teleport back to the surface (most objects), stay underwater for a few seconds (attached to Gnat's scuba) or stay under for a long time (pond water) (or you will snap out of the water and into the air and back to the surface as is the case with the CRRC). So I tried attaching to a pond like this:
pond attachTo [diver02, [0,0,0]]
I tried every small pond, they are all pretty large.
Then, with a radio trigger, I changed the position of the diver AND the pond to a negative number and got them both underwater:
The good news is that I can swim around, I can stop and hover, all underwater. The bad news is that if I look down, I can see the surface of the pond. The other bad news is that the more I swim, the faster I begin to move toward the surface. Actually, after extensive testing, this doesn't seem like too bad of a feature.
So a possible solution would be for someone to make an object to attachTo which is like a pond but invisible (or water with 100% transparency or something), has some kind of buoyancy which is neutral, not positive (if possible - workaround is to write a script that updates your depth every half second or so), and maybe this would solve the problem of swimming underwater!
Of course, you still lose all of your gear. But if your mission is to set a satchel charge, you could do it Modern Warfare 2 style where you go to a highlighted position where the satchel should be placed, (a small arrow with an action added to it would work) and when you activate the action, the satchel could be placed into the position of that arrow - tested and works well. I've also added a placable satchel charge that you can position easily while underwater. It's not taken from your inventory, it's added to the unit at the start of the mission.
Here I am swimming underneath the boat:
Here you can see the surface of the pond, if I look down on it. But when I'm looking up through the surface of the pond, there's no additive effect of water under water. It's all just the same tone and clarity of blue.
By the way, the watch and compass and NV goggles all work under water:
That is, until you lose your NV goggles, weapon, etc. You don't seem to ever lose your watch or compass though. Stupid engine limitations.
I decided to make this thread in the hopes that someone can help me with these coding and scripting issues and model making (see below). I need help making this multiplayer compatible.
I also need someone to make a bit of water. Hopefully, if the water has the same properties as the ponds, but is small enough to fit inside a unit's body, then hopefully people can float on the surface of a pond under the ocean. Better yet, I need someone to make a big pond of water but one that has no reflective properties and is completely invisible. If the pond is large, that allows AI to dive with me. But it needs to be invisible.
This post was edited by Feint (2012-01-18 06:40, ago)
I made a dive computer:
It has three modes: Depth (real readings), Battery (fake - placeholder?) and Air (also fake - placeholder). It also has real readings of date and local time. I can add mission time as well, but it's supposed to be a dive computer and that might be overkill. I named it Divotron. Yeah, baby.
I also made a test mission where you go to a boat, place a charge, let it blow, then exfil. It's all on land (to speed things up), but it's a test for the real thing underwater; i.e proof of concept for attaching satchels to boats and having them blow up after placement. Everything worked so far. Now I just need to stay underwater.
EDIT: I was able to create two countdowns: One for oxygen levels and one for battery levels (for the computer). I finally managed to get the levels to appear on the diving computer. It looks pretty cool. When the battery dies, all of the functions stop working, but the oxygen level still drops. If the oxygen level still drops and you are still underwater, the script damages the player until he or she dies. I've gotten the oxygen variable to be a global variable that can be passed to the computer script.
Now I just need to figure out how to stop the oxygen counter script if you surface and how to restart the script once you go underwater. The counter is just a number reducer. The overall oxygen level in your tanks shouldn't ever reset as far as I can tell.
How do you stop a looping script once it has started running? DeleteVehicle? That works for triggers.
EDIT2: Never mind. Figured it out. I just set a global variable such I called myUnderwaterStatus. I set it to 0. Then I made an sqs script which changes it to 1. Then I set a check in the oxygen countdown to always check that variable status before it proceeds. Works like a charm. Now I can start and stop the oxygen countdown.
That's probably really boring, so here are a few shots of the different screens on the diving computer:
Now, if someone can help me figure out how to remove actions, I can make the diving computer a little more flexible (like being able to turn it off to save the battery life). I can't figure out how to tell a script what the action ID's are so that I can remove them when I shut off the diving computer. Help!
Also, if someone can help me, I would prefer to only select 1 digit after the decimal point when I am displaying the depth. Four digits is a little too accurate.
This post was edited by Feint (2011-04-01 00:16, ago)
I have been dying for this addon since i started playing. I have gotten seals in wetsuits to swim around and use trggers to keep weapons. but now you are making my dream come true.
One very important question is about enemy being able to spot you. I notice when I use the subs and can be deep underwater, I can still be spotted from far away. Even though on land I wouldn't be spotted.
Ive been trying to play around with keeping weapons when being in water. The only thing I have been able to do is to create a trigger, say "alpha" and everytime I lose my equipment, I call on "alpha" right away and the equipment will be reloaded. Using the "remove all weapons this, et c...." However it won't take into account any ammo the was spent.
The only downside is that after the alpha call you end up with no weapon in hand and need to push F t change weapon. But you should be able to at least be able to push N and get the night vision back up.
Other thn that it has been working perfectly. AI automatically switch and have weapons ready to go.
It Also is a big help when using ACE. If you use ACE, you can forget about swimming. The stamina thing destroys the unit after 20 or 30 seconds of swimming. The more equipment the quicker you go slower. So what i did was to start with a unit (useally the navy seal diver), I give him a backpack and maybe a rifle (just for looks) and any NV goggles and small gear. I have him start with NO ammo. Only a backpack and a gun. That way you can stay light and fast for a long time. And for far away swimming I can have 2 triggers. One that gives me just the backack and NVgoggles and one trigger for full weapons.
IMO, i think i would use a rebreather system instead of SCUBA, rebreathers recycle oxygen so you can't run out of air (well, your rebreather has like an 8 hour life) that would probably make a lot of things easier. it looks like this (there are also mixed gas systems like the mk15 and 16, but im not too sure on the difference)
@KJU - Oh, sweet. Thanks KJU! That rounding of the number and dividing and multiplying, man, that is clever. Did you come up with that? You're quicker than I! I tried it and it works perfectly. Now I can add heading info to the computer easily.
I tried the equipment preservation idea and no joy. I put that code into an sqf file and called it from the init. The script runs but I still lose equipment after 30 seconds. Am I placing the code in the wrong place?
@Victim913, I know about the ACE stamina issues which is why I stopped using ACE. Thanks for your ideas about the equipment.
@ghostnineone, thanks. The scuba tanks are currently just the unit I'm using for screenshots from ADO. They also have a unit wearing a LarV or something but it's wearing a camo cover on their heads which I didn't prefer to use at the time. I'll see if I can use that model in future screenshots.
In terms of my scripts, I can set the oxygen level to anything and have it decrease as quickly or as shortly as I want. So I can have dives as short at 20 minutes or as long as 4 hours or longer, depending on the gear I want to have the unit wearing.
Theoretically, I could make a scuba version and a closed circuit version. SCUBA version would have a shorter underwater dive limit (smaller O2 tanks) with no depth restrictions down to say 50 feet of sea water (15 meters). The closed circuit version would have a depth limit of 25 feet of sea water (fsw) or about 7.62 meters. The US Navy has guidelines of diving down to 26-40 fsw for a time limit of 15 min and 41-50 fsw (15 meters) for 5 minutes. So in emergencies, you could dive deeper but beyond that you'd take damage. I'll add this as a future feature. I can try to implement damage if you surface too quickly but I don't want to built in too many features and abandon the project because of scope creep.
Does anyone know how to assign user keys like User1 and User2 or better yet Q and Z to actions? I want to see if I can assign Q and Z to the setPos command to change my depth higher and lower relatively. I read the Wiki on adding keystrokes to actions, but I can't figure out how to write it.
Also, does anyone know how to change the background color of a hint box? The brown is OK, but it might be nice to have another option.
This post was edited by Feint (2011-04-05 00:51, ago)
that would be sweet! i think rebreathers have a limit of like 70 feet, scuba is deeper but they arent good for stealth, the mk15 and 16 let you go as deep as scuba (maybe deeper) and keep the stealth factor, but are pretty big and bulky
I am very proud to use your script in my next release of my addons in OA Vs.
The net on one of the divers is real but very hard to achieve.
I'm working on a new version or the bottle are managed as a backpack and dive mask managed as a profile.
@ADO GMC, I hope I didn't insult you with my comment about the net. I never knew they really wore those. I guess it makes sense to have camo on already when you surface to help block the glare from the dive mask. Amazing models by the way. I just love them! Fantastic idea to make the breathing apparatus a backpack. I had the same idea when I was daydreaming. Glad you are working on that. If you do that, it might be possible to add some of these scripts to a backpack.
I have great news. I was able to take a look at SAM's handsignals and figure out how to combine keystrokes with actions. So I made up a small script and now I can control my depth by using User1 and User2 keystrokes, which for me are keypad 1 and 2. Basically the script measures your height using getPos, then I set that as a variable, add or subtract 0.01 distance from that variable, set a new variable, and apply that position to both the player and the pond that the player is attached to. Works perfectly. There's still a positive buoyancy when attached to the pond that works out to about:
FLOATING - 1 meter rise/13 seconds
SWIMMING - 1 meter rise/9 seconds
CONTROLLING DEPTH WITH USER KEYS:
DIVING - 1 meter dive/7-8 seconds
DIVING WHILE SWIMMING - 1 meter dive/4 seconds
SURFACING - 1 meter rise/7-8 seconds
SURFACING WHILE SWIMMING - 1 meter rise/4 seconds
Hitting the dive/submerge keys seems to override your buoyancy for that instant that you hit the key. Also, swimming forward while diving or surfacing causes you to dive or surface much faster (around 1 meter per 4 seconds) might be realistic compared to the real world (I've never gone scuba diving). That's a benefit I have fallen ass backward into via the engine. But I do know that if you have a buoyancy vest on, you can rise or dive by changing the settings on the vest. Right? Again, I've never gone scuba diving. :)
Now I'm off to go to the zoo with my niece. My eyes are pretty bloodshot.
TO DO LIST:
Fix heading added to all screens on computer
See if there's a way to stay neutrally buoyant
Add depth damage/healing script
Add sounds - bubbles/breathing/water, drowning, heavy breathing (when surfacing after drowning damage)
Make a very small pond (the size of a postage stamp) to attachTo (maybe someone can help me with this part?)
See if there is a way to have AI do all of this stuff and see if there's a way to make this multiplayer compatible (I don't know where to start)
The last two are listed last because for me they will be the most difficult to accomplish.
I really like that you're working on this. A while ago i got done reading the whole Patrick Robinson series of books and thought arma should REALLY support seals, subs, SDV's etc. A note, you may want to replace the compass, gps etc with a SEAL 'attack board' and I agree with the above poster about adding a Dragor (sp?) rebreather system. I think scuba and dregors should be available b/c dregors cant get below ~40 ft without some sort of gas issue. I would also love to see subs added to the game. We could drastically increase map sizes to 100kmx100km and include tons of ocean. Since there would be pretty much no detail for the bottom besides basic height changes, i don't see this as a big issue. Could drastically change the way the game is played if for instance, a sub had to get within 5km of shore avoiding mines, patrol boats, SOSIS lines, and other fast attack subs, then deploy a SDV (seal delivery vehicle, now its called something else). Seal team sails their way in to the shallows, deploys the team, team swims the rest with attack boards and dregors. THEN the traditional arma style comes in where theyre on land, do an objective, then they get back in the water and extract the same way or by IBS etc.
Or just open up a submarine warfare element to arma which could also include launching cruise missiles to aid a ground assault. Meanwhile the submariners could be having their own fun attacking enemy subs and surface vessels.
I will definitely be watching the progress of this mod. I only wish I could contribute ( I might be able to build a Virginia class sub, but the interior detail might drive me crazy)
If you need any information or refrence images, just ask, I work at a dive store that services and maintains LAR-V's as well as other rebreather variants, also I've got some suggestions
first off. for your dive computer, I recommend you use PSI or BAR rather than a time limit at least for SCUBA
For CCR's (closed circuit rebreathers), you should add the risk of oxygen toxicity (CNS toxicity, causes convulsions which make you spit out your regulator, although having it strapped to your face helps) at depths deeper than 25 ft, as well as a computer to read your calculated PO2
Thanks everyone for your support! Love this community!
@eightball024 : I would definitely take a look at Gnat's subs that ghostnineone linked to. They are amazing. They require Mando to work correctly and it includes a cool sub hunting mission where you can drop two sonobuoys from a helo, find a bearing to the subs, then drop a torpedo close to the sub and blow it up (hopefully), which is a really cool night mission. But you did get me thinking. I should do a test to see what happens if I eject from one of Gnat's submerged subs. Will I appear at the water surface or submerged? One more thing to add to the check list and maybe to the future feature list.
Also, your idea of an attack board or diving board would be ideal! The one that is shown on YouTube by Realtime Immersive is perfect and helped inspire me to go down this road. That video is here: http://www.youtube.com/watch?v=kodNKq0pWx4
Unfortunately, that sort of mod requires model making and integration into the shell of the game and those are things which I don't know how to do at all. Anyway, we already have the watch and compass. Just not the board and glow stick. But hopefully the dive computer I'm working on will be a nice digital add on. It has some cool features and is pretty flexible in terms of what options I can add to it. (I was thinking of adding a stopwatch feature to a future release - not sure if that's useful or not.)
@Peopleonfire: Thanks for the offer of help! I currently have the dive computer set to show a number with a warning level. The number could indicate PSI or %O2. But I love the idea of adding a small indicator. I have a few ideas in mind for improving the overall look of the dive computer indicators and one of them is to include bright as well as ghosted out indicators such as PSI, %O2, meters, feet, battery remaining, battery time remaining, etc. I'm pretty good with Photoshop so I'd like to PS a lot of these details, but that's going to require some testing with transparency and slicing and will push everything back. So right now, some of those more immersive details will wait until I can release something that people can play with.
The one thing I don't know about is what sorts of warning indicators there are for dive computers. Do you have any info on that like a link to a PDF of a dive computer which checks your PSI or O2 percentage? I'm currently making it all up on my own and trying to keep it simple and logical because I figure if you are diving with a complex system, you want a simple indicator that says, "Problem with O2" or whatever. Currently, when you go underwater with a full tank of air, the number is 100-SAFE. Then as the number drops past certain thresholds, it reads 45 WARNG, 30 DANGR , 15 EMERG, 5 SCRUB, 0 REPLC. Those indicators mean safe, warning, danger, emergency, scrubber check (i.e. check the oxygen scrubber if you are on closed circuit), and replace (i.e. replace the scrubber material). Those warnings can easily be changed to LOWO2, and EMPTY for open circuit systems.
Thanks again everyone, including KJU for that additional clarification. I'm not sure how I can add that config code at the moment but I'll chew on it. It's one of my priorities.
ADDED FEATURE: I've added the ability to refill your air tanks. This could be a good, "before the mission starts," thing to do. Unfortunately for now, this can only be done while on the surface of the water or while in a boat or on land. I know in real life it is possible with valving to refill oxygen tanks while submerged, but it screws up everything for reasons too complicated for me to go into right now.
This post was edited by Feint (2011-04-02 07:41, ago)
Copyright (c) 2006 - 2020 Armaholic.com All Rights Reserved.
Armed Assault, ArmA: Combat Operations, ArmA: Queen's Gambit, Arma 2, Arma 2: Operation Arrowhead, Arma 2: Combined Operations, Arma 2: British Armed Forces, Arma 2: Private Military Company, Arma 2: Army of the Czech Republic, Arma 2: Reinforcements, Arma 2: Firing Range and Arma 3 are trademarks or registered trademarks of Bohemia Interactive a.s.