Jump to content
Sign in to follow this  
x39

[WIP] X39s Medical System 2 (XMS2)

Recommended Posts



logoXMS2_head.jpeg

WIKI

XMS2 is a project of X Studios

old (rough) Roadmap (trashed as it was a really good concept but due the lack of interest in the project not realisable)

http://x39.unitedtacticalforces.de/XMS2/Roadmap.png

Description


"X39s Medical System 2" (XMS2) is the sequel to the successful MedicalMod: "X39s Medical System 1" (XMedSys).

Its main focus is a more plausible medical system which is even more diverse than its predecessor!

Just like XMedSys, XMS2 will be highly configurable and modable using various script events, however, new to XMS2, you can configure it using simple to use functions to add new items or modifications you think would fit XMS2!

Planned features ((#) done; (#) confirmed; (#) planned; (#) confirmed for a far future "addon")


  • Extension System (#Link1 #Link2)
  • QuickActions (Perform multiple tasks with just a single interaction)
  • Heart simulation
    • Pulse will vary dependent on adrenaline/fatigue and speed
    • FlatLine
    • Various disadvantages to having a high pulse
    • Pulse affects other parts of the mod (fe. High pulse + low blood pressure can knock you out)

    [*] Blood simulation

    • The entire body has a “Blood Valueâ€
    • Different hitzones cause different amounts of bleeding
    • Bleeding will stop with time(depending on the strength)
    • Bleeding out will kill you
    • Blood pressure can have different effects on your body

    [*] Temperature simulation

    • Low body temperature will have an impact on your movement and sight
    • Low body temperatures can (and will) kill you
    • Shelter/Wind/Wetness affects your body temperature (wind will only take effect when you’re in an open area)

    [*] Adrenaline simulation

    • Blurry vision (radial blur) to simulate the focus effect
    • Firefights will raise adrenaline
    • Natural and nonnatural limits
    • Adrenaline has impact on pain (as its also some sort of pain killer)

    [*] Pain simulation

    • Different disadvantages when player is in pain
    • Different types of pain (when shot you will receive permanent bodily pain until healed)

    [*] Smooth transition between blackOut stages

    • Only one function to bring you to a blacked out stage
    • Transitions between different blackOut stages can only go from low to high (or to 0 which is wakeUp :F)
    • Protected blackOut screen which will prevent other UIs from appearing

    [*] Hearing

    • You can become deaf

    [*]Drugs/Items/Medical actions

    • Adrenaline
    • Morphine
    • Naloxone
    • Atropine
    • Saline
    • ASA (Aspirin)
    • Nitroglycerin
    • Diazepam (Valium)
    • Penicillin
    • Amoxillin
    • NPA (nasopharyngeal airway)
    • OPA (oropharyngeal airway)
    • Pneumothorax needle decompression
    • King-LT
    • bandage
    • heatPack
    • mediPack
    • morphine
    • naloxone
    • coldpack
    • earplugs
    • defibrillator

    [*] Highly customizable TriageCard

    [*] EasyToUse configuration using the server/client config

    • EXTREMLY flexible mod configuration settings (you can disable nearly all features + you can adjust everything to your specific needs so that at the end you get YOUR medical system)

    [*] Internal organ damage

    • Different types of pneumothorax woundings (Open, Tension, Bleeding)
    • Arterial Bleeding (basically a different, more deadly type of bleeding which cannot be healed simply by bandages)
    • Airway obstructions
    • Curing people while in vehicles
    • Drag/Carry people
    • Putting units into vehicles/out of vehicles

    [*]BackBlast simulation

    [*]Radiation (using modules/functions you can define radial zones) <-- Please tell me what you think about this

    [*]Ingame mod configuring using XLib

(more features can be added in the future (red color does not directly means that it wont come ^^ its also some sort of overview for the alpha testers so they know whats prepared for a new update))

Planned vehicles/buildings

  • Stretcher
  • Medical vehicles which are ignored by AI (Geneva Conventions)
  • Medical Container building (used to patch a unit up to 100% (or better: resets all values to the defaults))


Media (chronological ordered)


Screnshots

Videos

Further stuff


BIG thanks to the those below who contributed to the mod!


  • audiocustoms for the epic sounds which will power XMS2 (not all of which are implemented yet due to the limitations of arma…this will be solved at some point)
  • 3CBWhiplash and rob_demir for tons of medical related, selfwritten documents
  • Astrell for being part of the mod team as tester + being general project support :F
  • Phyma for being part of the mod team as scripter
  • Merfy for helping writing this text
  • ALL ALPHA TESTERS which tested activly and gave propper feedback about the UI etc.

(if youre not listed in here but contributed PN me)

Download


Changelog (because the changelog already destroyed the char limit per post (50k) it is not the entire changelog anymore ... check the latest version for full changelog


BETA 2.0
   Fixed
       |v- variable X39_MS2_var_Blackout_allowTurningTempBlackoutToPermaByChance had no impact on blackouts
       |\- variable X39_MS2_var_Blackout_turnTempToPermaBlackoutChanceP
       |- [DEBUG MODE ONLY]((not rly a fix actually ...)) while using XMS with AI on own computer, AI overlays got calculated too
       \- X39_MS2_var_Events_EnableSetEvents was not affecting all change events
   Added
       |- variable X39_MS2_var_Blackout_turnTempToPermaWakeUpAtAdrenalineP                            - default: 0.2
       |- variable X39_MS2_var_Temperature_startRainAffectionAt                                    - default: 0.5
       |- variable X39_MS2_var_Temperature_maxReductionByOcean                                        - default: 2.0
       |v- Wetness tracking (part of temperature simulation)
       ||- function X39_MS2_fnc_getWetness
       ||- function X39_MS2_fnc_setWetness
       ||- function X39_MS2_fnc_addWetness
       ||- player variable "X39_MS2_var_Temperature_wetness"
       ||- wetness overlay texture can now be displayed
       ||- variable X39_MS2_var_Temperature_wetnessModificator                                        - default: 1.0
       ||- variable X39_MS2_var_Temperature_wetnessValueReductionPerTick                            - default: 0.01
       ||- variable X39_MS2_var_Temperature_wetnessMaxReductionWithoutFire                            - default: 0.25
       ||- variable X39_MS2_var_Temperature_wetnessImpactOnTemperatureChangeModificator_Negative    - default: 2
       ||- variable X39_MS2_var_Temperature_wetnessImpactOnTemperatureChangeModificator_Positive    - default: 0.5
       ||- variable X39_MS2_var_Temperature_wetnessReductionIncreaseByFireModificator                - default: 10
       ||- variable X39_MS2_var_Temperature_wetnessIncreaseModificator                                - default: 0.2
       |\- variable X39_MS2_var_Temperature_oceanSetsWetnessToFull                                    - default: true
       |- variable X39_MS2_var_Temperature_fireplaceClasses                                        - default: ["FirePlace_burning_F", "Land_Fire_burning"]
       |- variable X39_MS2_var_Temperature_windStrengthImpactModificator                            - default: 0.125
       |- variable X39_MS2_var_special_DisableTimeIntensiveCallsTick                                - default: false
       |- variable X39_MS2_var_Temperature_aslHeightReductionStart                                    - default: 1000
       |- variable X39_MS2_var_Temperature_aslMaxReductionHit                                        - default: 3000
       |- variable X39_MS2_var_Temperature_aslImpactPerTick                                        - default: 0.5
       |- variable X39_MS2_var_Temperature_environmentTemperatureP                                    - default: 1
       |- variable X39_MS2_var_Temperature_reductionByEnvironmentOnHighBodyTemperaturePerTick        - default: 0.001
       |- variable X39_MS2_var_Temperature_speedIncreasePerTick                                    - default: 0.04
       |- variable X39_MS2_var_Temperature_allowUnitSpeedToAffectTemperatureIncrease                - default: true
       |- variable X39_MS2_var_Temperature_fireplaceIncreasePerTick                                - default: 1
       |- variable X39_MS2_var_Temperature_reductionByBeingPronePerTick                            - default: 0.25
       |- variable X39_MS2_var_Temperature_environmentChangePerTick_day                            - default: 0.01
       |- variable X39_MS2_var_Temperature_environmentChangePerTick_night                            - default: -0.025
       |- variable X39_MS2_var_Temperature_maxTempChangeByEnvironmentP_day                            - default: 1
       |- variable X39_MS2_var_Temperature_maxTempChangeByEnvironmentP_night                        - default: 0.25
       |- event "FlatLineChanged"
       \v- Implemented CPR
        |- added function X39_MS2_fnc_getCprPresent
        |- added function X39_MS2_fnc_setCprPresent
        |- added function X39_MS2_fnc_addCprCount
        |- added function X39_MS2_fnc_getCprCount
        |- added function X39_MS2_fnc_setCprCount
        |- added unit variable X39_MS2_var_Heart_cprPresent                                        - default: false
        |- added unit variable X39_MS2_var_Heart_cprCount                                            - default: 0
        |- added variable X39_MS2_var_InteractionMenu_Defibrillate_CprNeeded                        - default: true
        |- added variable X39_MS2_var_InteractionMenu_Defibrillate_ChanceWithoutCprP                - default: 25
        \- STARTCPR medical action
   Removed
       |- "DoNotTriggerEvent" parameter from X39_MS2_fnc_setHearing
       \- "DoNotTriggerEvent" parameter from X39_MS2_fnc_setRespiratory
   Changed
       |- Seperated CfgFunctions from the config.cpp file into functions.cpp
       |- added more alpha to bleeding and water overlay textures
       |- renamed variable X39_MS2_var_Temperature_maxReductionWhileRaining to X39_MS2_var_Temperature_maxReductionByRaining
       \- renamed variable X39_MS2_var_Heart_enableHeartSimulation to X39_MS2_var_Feature_enableHeartSimulation
BETA 1.3
   Fixed
       |- ScriptIssue when using defib or blackOutUnit with specific params
       |- X39_MS2_fnc_unInitUnit function (threw script issues & did not worked correctly)
       |- applyDrug was not working propper in some cases
       |- DrugRequest was created when other unit is non-local & unconscious
   Added
       |- ResearchHq medical building <- used to heal a unit to 100% to finally make ingame use of the modification possible
   Removed
   Changed
       |- variable X39_MS2_var_Bleeding_ChanceForAterialDamageP from 0.2 to 0.05 (equals a 5% chance for aterial damage which only can be healed in a "hospital" (the medical HQ in XMS2s empty section)

Edited by X39
fixed dead roadmap link

Share this post


Link to post
Share on other sites

finally... Im waiting for this project for Months now. Glad to see your on it now. :D

edit:

Medical vehicles which are ignored by AI (Geneva Conventions)

Not sure about this. Does anyone in War take care of Geneva Conventions, except for publicity?

Edited by Saine

Share this post


Link to post
Share on other sites

Looking good. I'm certainly looking forward to it.

---------- Post added at 19:11 ---------- Previous post was at 19:09 ----------

Not sure about this. Does anyone in War take care of Geneva Conventions, except for publicity?

I know that regular armies do. Insurgencies not so much, which I guess is why we stopped plastering medics with crosses and gave them guns because the Taliban were gonna kill them anyways.

So maybe have the FIA shoot at trucks or something.

Share this post


Link to post
Share on other sites

The British Army definitely still abides by the convention, which is why we have so many court cases on-going for every alleged or even suspected breach of the laws of armed conflict.

Anyway, XMS2 is shaping up to look like a really great mod. Looking forward to it!

Share this post


Link to post
Share on other sites

Does you're medical system affects the hit against AI? does it have some penalty for being hit? differently from the vanilla game

Share this post


Link to post
Share on other sites
finally... Im waiting for this project for Months now. Glad to see your on it now. :D

edit:

Not sure about this. Does anyone in War take care of Geneva Conventions, except for publicity?

its already in developement since a month :F

alpha is deployed to test groups

Looking good. I'm certainly looking forward to it.

---------- Post added at 19:11 ---------- Previous post was at 19:09 ----------

I know that regular armies do. Insurgencies not so much, which I guess is why we stopped plastering medics with crosses and gave them guns because the Taliban were gonna kill them anyways.

So maybe have the FIA shoot at trucks or something.

those medical vehicles would be ignored by every faction (if AI)

only problem is

the medics wont be :F but thats not my problem at all XD

The British Army definitely still abides by the convention, which is why we have so many court cases on-going for every alleged or even suspected breach of the laws of armed conflict.

Anyway, XMS2 is shaping up to look like a really great mod. Looking forward to it!

there are still some features which are also planned but not listed (mainly because they are not planned and just wished :F)

Does you're medical system affects the hit against AI? does it have some penalty for being hit? differently from the vanilla game

check XMedSys to see the current way of dealing with hits

in theory

AI is not official supported (but thats more because of the fact that the performance impact would just be too big!) and it wont be tested towards this

@ALL

If you want to contribute/discuss about features or suggest features

please head over to the official X Studio forums XMS2 section http://forum.unitedtacticalforces.de/viewforum.php?f=13

Share this post


Link to post
Share on other sites

Not even a single penalty ? please tell me that there is just one...these AI suck

Share this post


Link to post
Share on other sites
Not even a single penalty ? please tell me that there is just one...these AI suck

its a pretty heavy medical mod

so

no

in general there wont be any effect on the AI

Share this post


Link to post
Share on other sites

Will this version work on a Linux server? Your last version had an issue and crashed Linux servers due to capital letters calling the config, or something along those lines. Anyways, thank you for your work!

Share this post


Link to post
Share on other sites

X39 if you need another group to test it let me know. We have been using XMED1 since November and have a dedicated server box running lots of other addons (30 total). Running our own custom persistent ALiVE maps. Small group of about 15 players.

Share this post


Link to post
Share on other sites

Hi X39,

First of all, thank you for your work, bringing us a good medical gameplay with Xmed1.

We are using Xmedsys since the first release now and if you need one more test group, we will be glad to help you.

Our server is running with 30+ mods/addons, MCC & VTS with ~15 regular players.

Let me know if you need our participation.

Regards,

Share this post


Link to post
Share on other sites
This looks great! A feature you should add in is the ability to put wounded/knocked out people into vehicles.

the feature list is not completed as said

its more or less the part which is really planned (rest is just wishes without any proof concept how it works / how it is easy to reproduce using a function or something like that (fe. there is a function to register Items in XMS2 so that you can use them inside of the game. Thats just one part of XMS2 where the endusers or another modder could adapt into and create an extension to this mod without the need of editing src code)

also

the current UI is in discussion internal (its working but ... yeah ... it could be better and more flexible in its usability)

Share this post


Link to post
Share on other sites

With this mod, will you discontinue your work on XMedSys 1 (i.e. no more updates, fixes, etc). And do you have an ETA for this mod? Any rough estimations would do the job.

Share this post


Link to post
Share on other sites
With this mod, will you discontinue your work on XMedSys 1 (i.e. no more updates, fixes, etc). And do you have an ETA for this mod? Any rough estimations would do the job.

yes and no

the current work on XMedSys is only suspended (exams + XMS2 (which is also more or less suspended for the next two weeks))

it will still exist and be activly developed soon

also its possible to contribute to XMedSys through creating tickets at its git https://github.com/X39/XMedSys1 (dont get too used to the code of XMedSys 1 :F in XMS2 many things will change)

XMS2 will be available for the public !HOPEFULLY! this summer (public BETA as only ALPHA will be closed)

@ALL

If you want to discuss about some features for XMS2 (or someone of you has suggestions) head over to the official XMS2 forums section (account creation is required) and start discussing ^^

Kindly regards

X39

Share this post


Link to post
Share on other sites

We love xMedSys, really looking forward to this new version. Thank you for bringing some of what we had in Ace to Arma 3.

Share this post


Link to post
Share on other sites

X39, you forgot to add the tourniquets to the first post's list of planned items :)

Share this post


Link to post
Share on other sites

X39, is it possible for XMS2 to make the vanilla ArmA 3 First Aid Kits and Medkits usable somehow? Adds a little bit more immersion being able to scavenge medical supplies off enemies.

Share this post


Link to post
Share on other sites

Hm, yeah... Thinking about it... I will write a feature request ticket for that.

Like "ripping off" the package and have some stuff. Should be easy to script. But make resupply from medical stuff a bit too easy.

As I said, I write a ticket

Share this post


Link to post
Share on other sites
X39, you forgot to add the tourniquets to the first post's list of planned items :)

there are many things missing ^^

also

the tourniquet is not planned yet as i have no idea how i should put them into the new system (belongs to the rework UI stuff)

Share this post


Link to post
Share on other sites

Here's my backblast code if you want to use it/chop it up/use it for inspiration...

private ["_unitFiring", "_weapon", "_deathRange", "_deathAngle", "_countKilled", "_countHurt", "_launchers", "_islauncher"];

_unitFiring= _this select 0;
_weapon= _this select 1;

_deathRange= 8;	// 8 meters.
_hurtRange= 25;
_deathAngle= 30;
_countKilled= 0;
_countHurt= 0;


// Extra Launchers... 
_launchers= ["av_at4"];
// and those BIS ones that start with launch_.... 
_isLauncher= ["launch_", _weapon] call bis_fnc_inString;

// Should it have backblast?
if ((_weapon in _launchers) or (_isLauncher)) then {

// What units are near the firer...
private ["_units"];
_units= _unitFiring nearEntities ["Man", _hurtRange];
{
	// Not ourselves...
	if !(_x== _unitFiring) then {
		// are they not blocked by wall?
		private ["_notBlocked"];
		_notBlocked= lineIntersects[aimPos _unitFiring, eyePos _x, _unitFiring];
		if !(_notBlocked) then {
			private ["_inAngle"];
			_inAngle= [getPosATL _unitFiring, (getDir _unitFiring)- 180, _deathAngle, getPosATL _x] call BIS_fnc_inAngleSector;
			if (_inAngle) then {
				// within 8m Dead...
				if ((_x distance _unitFiring) <= _deathRange) then {
					_countKilled= _countKilled+ 1;
					_x setDamage 1;
				} else {
					// Hurt them...with just the tip.
					_x setDamage ((getDammage _x)+ 0.25);
					_countHurt= _countHurt+ 1;

				};
			};  // end of inAngle check... 
		};	// end of check for unit not being blocked from weapon.  (i.e. wall.)
	};  // end of check that it's not the firer...
} forEach _units;	

};

Not sure why you'd put backblast in a medical addon though?

Share this post


Link to post
Share on other sites
Here's my backblast code if you want to use it/chop it up/use it for inspiration...

private ["_unitFiring", "_weapon", "_deathRange", "_deathAngle", "_countKilled", "_countHurt", "_launchers", "_islauncher"];

_unitFiring= _this select 0;
_weapon= _this select 1;

_deathRange= 8;    // 8 meters.
_hurtRange= 25;
_deathAngle= 30;
_countKilled= 0;
_countHurt= 0;


// Extra Launchers... 
_launchers= ["av_at4"];
// and those BIS ones that start with launch_.... 
_isLauncher= ["launch_", _weapon] call bis_fnc_inString;

// Should it have backblast?
if ((_weapon in _launchers) or (_isLauncher)) then {

   // What units are near the firer...
   private ["_units"];
   _units= _unitFiring nearEntities ["Man", _hurtRange];
   {
       // Not ourselves...
       if !(_x== _unitFiring) then {
           // are they not blocked by wall?
           private ["_notBlocked"];
           _notBlocked= lineIntersects[aimPos _unitFiring, eyePos _x, _unitFiring];
           if !(_notBlocked) then {
               private ["_inAngle"];
               _inAngle= [getPosATL _unitFiring, (getDir _unitFiring)- 180, _deathAngle, getPosATL _x] call BIS_fnc_inAngleSector;
               if (_inAngle) then {
                   // within 8m Dead...
                   if ((_x distance _unitFiring) <= _deathRange) then {
                       _countKilled= _countKilled+ 1;
                       _x setDamage 1;
                   } else {
                       // Hurt them...with just the tip.
                       _x setDamage ((getDammage _x)+ 0.25);
                       _countHurt= _countHurt+ 1;

                   };
               };  // end of inAngle check... 
           };    // end of check for unit not being blocked from weapon.  (i.e. wall.)
       };  // end of check that it's not the firer...
   } forEach _units;    

};

Not sure why you'd put backblast in a medical addon though?

thx for the code ^^ (also located the function BIS_fnc_inAngleSector a few days ago (was the root of the problem i got ... stupid math) :F so its not rly needed anymore : / but thx anyway ^^)

why backblast in this mod?

simply because there is no way to trigger ingame events with ease so that all addons/scripts which would implement that would simply kill everyone behind the one who shot instead of hurting/blacking them out depending on the configuration you did in XMS2 ^^


Good news everyone

XMS2 will feature (might not on release date) a full ingame documentation about how to actually use it (still need someone who writes it ... but hey ^^ at least i can say it will come when as soon as i got the time to write something like that down :F)

also got some progress with blender:

Kj38yZpm2eaBd0R3GK8y1Nqqb.png

so that custom models could be confirmed already (still had no time to get it into the actual game ... but will try soon and backreport)

Edited by X39

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×