Jump to content
Sign in to follow this  
trini scourge

Diver Stats: A light simulation of depth, pressure and air consumption rates

Recommended Posts

Diver Stats is an attempt to introduce a simulation of real world underwater dynamics to Arma 3. It is meant mainly for Open Circuit Scuba Diving.

The Dive Mate (Diver stats display) overtly tracks :

Depth from surface (feet).

Pressure (based on depth from surface).

Air Consumption Rates.

Scuba Tank Size.

Maximum Depth reached.

Positional and Directional information.

Temperature. (C and F)

Breathing Time Remaining.

Dive Time.

Type of breathing gas mix.

Blood Nitrogen percentage.

Tissue Saturation Levels.

Ascent Time (Time to Surface).

Ascent Rate.

Maximum Operational Depth. (MOD)

Ascent Ceilings (Decompression Stops).

Diver Stats covertly tracks many, many more variables, down to the solubility of a particular breathing gas at a particular depth. All of this information is pumped back into the Dive Mate Display, so that the diver can have all of the required information at his/her fingertips.

In addition to visual information, the Dive Mate Display provides audio cues to keep the diver aware of: Fast Ascent Rates, surpassing recommended Tissue Saturation Levels and Maximum Operational Depth, and even sounds off to let the diver know that they have passed their No Decompression Limit (NDL).

March 15 2013: (v1.01: Updated to include custom display and more useful information)

March 16 2013 (v1.1: Updated display and added nitrogen blood level %)

March 22 2013 (v1.2: Updated almost every aspect of script and display. Now hosted on Armaholic.)

March 27 2013 (v1.31a: Too many changes to list here check Armaholic page for details).

April 05 2013 (v1.34a: Changes listed on Armaholic page).

Download v1.34a

index=1 Edited by trini scourge
Updated download link (update 5)

Share this post


Link to post
Share on other sites

Wow man! Props, this will be fun to play with and see whats overall possible. now we will need to go find a refill station for our air tanks. ;)

Share this post


Link to post
Share on other sites

Hey Trini Scourge can we just collaborate on one thread there seems to be 3 to 4 threads on this already? I have implemented your script into an FSM, I hope you dont mind? I will upload later on to this page.

Share this post


Link to post
Share on other sites
Have you both seen this thread:

http://forums.bistudio.com/showthread.php?117196-Diving-Under-Water

Also You should join the new group I've created:

http://forums.bistudio.com/group.php?groupid=291

Whoa. I see it's being handled by someone much more capable than myself. Kudos sir. Joined the group. I just got certified a few months ago, so let me know if you need help testing/developing etc.

Edited by trini scourge

Share this post


Link to post
Share on other sites

Trini...

Don't stop yours mate...

Using it in a coop mission and it works fantastically well...

Especially when the divers have less than five minutes air left, adds to the suspension..

Share this post


Link to post
Share on other sites

Yeah totally don't stop yours!

Join THIS PAGE TOO lol:

http://forums.bistudio.com/group.php?groupid=293

I'm going to try to get as many of the Arma Modders who are willing to work together with similar goals to do just that...

Hopefully work out a training/ranking system too so it's clear who has seniority and the best base of knowledge!

Share this post


Link to post
Share on other sites

good work!

one think to consider would be though, that military divers probably would use rebreathers instead of open-circuit type of gear.

Share this post


Link to post
Share on other sites
good work!

one think to consider would be though, that military divers probably would use rebreathers instead of open-circuit type of gear.

You're absolutely right. However I don't know nearly enough about how closed circuit systems work to simulate their function.

Share this post


Link to post
Share on other sites

Here is an FSM that uses a shorter version of the script above, it uses depth and pressure ONLY. If you die or go below a certain amount of feet the FSM will terminate. -80 meters is around 262 feet. Wiki Deep Diving, you can use these stats to decide on realism.

http://rapidshare.com/files/2504270919/DepthGauge.fsm

Execute with:

null = [this,-80] execFSM "DepthGauge.fsm"

null = [this] execFSM "DepthGauge.fsm" //default is -80

[player] execFSM "DepthGauge.fsm" // init.sqf file

Here is the FSM for the script trini scourge created and deserves full credit. I added two states into it, which are the same as above, you die or go below a certain amount of feet the FSM terminates.

http://rapidshare.com/files/314245647/DiverStats.fsm

Execute with:

null = [this,-80,25,1500] execFSM "DiverStats.fsm"

null = [this] execFSM "DiverStats.fsm" //default kill depth is -80, default Surface Air Consumption Rate 25, and default tank size is 2000

[player] execFSM "DiverStats.fsm" // init.sqf file

Edited by cobra4v320

Share this post


Link to post
Share on other sites

Just to let you know mate...

The hint box is broadcast though the whole server on a dedicated box... Can you localise a hint box to the player on a dedicated server?

Share this post


Link to post
Share on other sites

Marker Im working on improving this, I will see what I can do. Im also adding the option of disposable tanks from the script above and also damaging the player if they start to get too deep which leads to death. Hopefully I will have something tonight. I dont mess with dedicated servers very often so any feedback you have would be great. The issue with an FSM is you cant tell it to sleep you have to trick it and I'm still new to FSMs.

Share this post


Link to post
Share on other sites

I think you should implement this into a dialog mate... Would remove the broadcast through the server to other players..

Share this post


Link to post
Share on other sites

That will be a brilliant mod mate, but it might be a bit heavy for short missions.. Where the thinner versions will be perfect..

Share this post


Link to post
Share on other sites
That will be a brilliant mod mate, but it might be a bit heavy for short missions.. Where the thinner versions will be perfect..

I'm working on an improved version (with a display) that gives more information (such as ascent time, depth change, Nitrogen absorption levels under pressure etc.).

Share this post


Link to post
Share on other sites
I'm working on an improved version (with a display) that gives more information (such as ascent time, depth change, Nitrogen absorption levels under pressure etc.).

Cant wait to try it out. I'm interested in the display as well, since I have never messed with the dialogs.

Share this post


Link to post
Share on other sites

I updated the script and added a download link to the first post. Update includes: New custom display, new useful information, more accurate (stable) depth readings, auto turn on/off at surface.

Feedback always welcome.

Here is what it looks like:

ibwMXV4Q0pIIsX.png

Share this post


Link to post
Share on other sites

Will update later on mate!

Brilliant work...

---------- Post added at 18:53 ---------- Previous post was at 17:50 ----------

Ok mate

Small update if you don't mind...

Works well, I would say slightly too large and maybe make the position bottom right, of the screen...

When you comment on your script, just use //

If you start a comment with //****** and don't end it with */ then the uncomment carries on for the whole script...

Also, good planning to keep your dialogs in one folder...

I would change the folder path to

scripts\trinedisplay\

Diverstats.sqf

\Dialogs

trine_display.hpp

defines.hpp

The above way is probably the most common way that everyone uses..

Other than that, great work mate..

Share this post


Link to post
Share on other sites

Hey in case you guys didnt know with diving, if you use removeAllcontainers while the diver is underwater the game slows. Ticket submitted and has been assigned. I know you were using that command in your script trini, have you guys seen this issue also? Im using the Alpha DEV.

Love this dive gauge trini.

Share this post


Link to post
Share on other sites
Will update later on mate!

Brilliant work...

---------- Post added at 18:53 ---------- Previous post was at 17:50 ----------

Ok mate

Small update if you don't mind...

Works well, I would say slightly too large and maybe make the position bottom right, of the screen...

When you comment on your script, just use //

If you start a comment with //****** and don't end it with */ then the uncomment carries on for the whole script...

Also, good planning to keep your dialogs in one folder...

I would change the folder path to

scripts\trinedisplay\

Diverstats.sqf

\Dialogs

trine_display.hpp

defines.hpp

The above way is probably the most common way that everyone uses..

Other than that, great work mate..

Thanks for the feedback mate. I can put it in the bottom right, but the Alpha watermark would cover it up. Maybe bottom left would work better for now? Also thanks for the pointers on code/folder layout. I'm fairly new to scripting so every bit helps.

Hey in case you guys didnt know with diving, if you use removeAllcontainers while the diver is underwater the game slows. Ticket submitted and has been assigned. I know you were using that command in your script trini, have you guys seen this issue also? Im using the Alpha DEV.

Love this dive gauge trini.

I've noticed the issue. Does the bug still occur if the specific gear item is removed? Glad you like the script. It's not nearly as complicated as Feint's but it'll do until he releases his masterpiece. I'll continue to add functionality to this system.

Share this post


Link to post
Share on other sites
I've noticed the issue. Does the bug still occur if the specific gear item is removed? Glad you like the script. It's not nearly as complicated as Feint's but it'll do until he releases his masterpiece. I'll continue to add functionality to this system.

Tested using removeVest player and it does not freeze the player, so looks like that is the best method.

---------- Post added at 22:38 ---------- Previous post was at 22:16 ----------

One thing you might change in the script.

Instead of using this:

(getPosASLW _unit) select 2 < -1.83

Use this:

 [url="http://community.bistudio.com/wiki/underwater"]underwater [/url]_unit

Use this out of water:

 
!underwater _unit

---------- Post added at 23:48 ---------- Previous post was at 22:38 ----------

Here are dialogs and everything in the right folders. I also added a depthcheck, if the player goes below a certain depth he will become damaged and eventually die.

Let me know what you think.

http://rapidshare.com/files/2501683912/trin_DiverStatus.zip <----link is dead see new link below.

Edited by cobra4v320

Share this post


Link to post
Share on other sites

I made some changes to the script.

I added in a disposable option, that way if you are using a re-breather you don't see the psi or oxygen levels and you don't lose your vest.

I also added your debug in as an option.

So it would look like this: null = [this,25,3000,true,true] execVM "DiverStats.sqf" or like this null = [this] execVM "DiverStats.sqf", I added default 25, 2500, and disposable true.

http://rapidshare.com/files/1385237052/trin_DiverStats.zip

If you are going for realism with the rebreather:

US Navy restrictions on oxygen rebreather use are:

Normal working limit 25 fsw (feet of saltwater) (7.5 msw (meters of saltwater)) for 240 minutes.

Maximum working limit 50 fsw (15 msw) for 10 minutes.

LAR V Draeger has a maximum depth of 70 feet or 21 meters. Also most of the optics on these firearms are only built for 10 - 30 meters.

Edited by cobra4v320

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×