Jump to content
Persian MO

[Release] Injured Ai script/Mod

Recommended Posts

Great Work !

It's giving more immersion to arma and i can say , that i can't play without it!

  • Like 1

Share this post


Link to post
Share on other sites

Is the mod version based off the script version 1.4.2? Or is it based off a previous version?

Share this post


Link to post
Share on other sites
50 minutes ago, rekkless said:

Is the mod version based off the script version 1.4.2? Or is it based off a previous version?

It's based on last version but reduced features like war voice or smoke drops.

  • Like 1

Share this post


Link to post
Share on other sites

Is it possible to allow players to revive friendly AI?

Share this post


Link to post
Share on other sites
1 hour ago, Mr. Rad said:

Is it possible to allow players to revive friendly AI?

No.Its just for AI's.

Share this post


Link to post
Share on other sites

I meant it as a feature request, sorry for bad wording.

Share this post


Link to post
Share on other sites

@Persian MO are you still actively updating the script? 

 

I want to report a few bugs.

1. Sometimes AI units gets stuck in the dragging animation and will only get release if the unit their dragon is shot and killed or their shot and killed. 

 

2. Units that go to help revive a down unit will not  rejoin their original group and they were will say at the location they healed the other unit. The wounded unit most of the time will  return back to its group and formation.

 

I know a few people asked if the player can heal the AI units and you keep saying no. Is this a design choice by you or something in the codes. I understand why the med packs are removed from the downed unit or killed units to prevent the AI from healing itself or hundreds of Health packs laying around the battlefield. I personally like this it makes for better manage of healing wound units during the mission. 

Share this post


Link to post
Share on other sites
On 6/19/2018 at 1:42 AM, Mr. Rad said:

I meant it as a feature request, sorry for bad wording.

:D My English isn't good. Because of codes that I used in this mod, it's not possible to add something like that to the mod. It needs whole new codes to make this happen. Already there are a lot of scripts that do something like that you want to revive your ais.

1 hour ago, avibird 1 said:

@Persian MO are you still actively updating the script? 

 

I want to report a few bugs.

1. Sometimes AI units gets stuck in the dragging animation and will only get release if the unit their dragon is shot and killed or their shot and killed. 

 

2. Units that go to help revive a down unit will not  rejoin their original group and they were will say at the location they healed the other unit. The wounded unit most of the time will  return back to its group and formation.

 

I know a few people asked if the player can heal the AI units and you keep saying no. Is this a design choice by you or something in the codes. I understand why the med packs are removed from the downed unit or killed units to prevent the AI from healing itself or hundreds of Health packs laying around the battlefield. I personally like this it makes for better manage of healing wound units during the mission. 

Thanks for reports bugs and using the mod. I'm aware of drag glitch but it was the best thing I get when it comes to animations in arma. about the dragger, I put some codes so dragger should regroup again. not sure why this not working. about the ais revive player or vice versa in the mod, there isn't room for such things. it needs new codes that perhaps not fit in there. some guys shared some idea about that bandages, but it needs some free time to make it happen. I hope to fix it soon or somebody try to fix it.

 

  • Thanks 1

Share this post


Link to post
Share on other sites

I have a bug to report. I am unable to disable the mod trough the init with 

dam_injured_ai = false;
publicVariable "dam_injured_ai";

It also doesn't work if i execute the code trough the admin console.

Share this post


Link to post
Share on other sites
3 hours ago, Mr. Rad said:

I have a bug to report. I am unable to disable the mod trough the init with 


dam_injured_ai = false;
publicVariable "dam_injured_ai";

It also doesn't work if i execute the code trough the admin console.

did you try it from init.sqf?

Share this post


Link to post
Share on other sites

First I love this Script something like this should have been in the vanilla game I've been saying this since I've been using the script it makes the fight more enjoyable to watch. What is the difference between the two Scripts I never used this because I always used this one.

 

 

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, Persian MO said:

did you try it from init.sqf?

Yes, like i said i tried trough both Init.sqf and debug console

Share this post


Link to post
Share on other sites

I really like how the AI drags people away from the battle to heal them instead of trying to heal them on the spot while under machinegun fire. Very immersive and cool.

 

Someone made a script called Automedic or something. It lets the AI heal people using ace stuff such as bandages and morphine and whatever. Maybe you could integrate some of that technology into this cool mod so people aren't forced to use the vanilla healing system which is extremely gamey.

 

Here's the script I was talking about: https://pastebin.com/MtK4dWLQ

Share this post


Link to post
Share on other sites
On 04/12/2016 at 4:28 PM, Persian MO said:

This error means the script didn't find any units around injured guy.I didn't try script with asr and alive mods.

 

Some expectation work with ASR?
I use ASR, I do not use ALIVE and it presents this error to me too

Share this post


Link to post
Share on other sites

 

 

 

I did a normal help animation after dragging.
And a chance of smoke in 30% of cases.

 

I hope the author does not mind)

 

inCap.sqf

Spoiler

if (!isServer) exitWith {};

_unit = (_this select 0);
_anim = (_this select 1);

private ["_aCount","_Pos","_dummy","_unit","_anim","_nearestunits","_dragger","_hls","_emptyHouse","_nearesthouses",
"_houseList","_randomHouse","_dis", "_randomSmoke", "_unitGrp","_draggerGrp","_ls","_noDragger"];

 if (isNil {_unit getVariable "doomed"}) then {_unit setVariable ["doomed", 0, false];}; //checking if unit got any local variables, if it not, then add one

 if (_unit getvariable "doomed" == 0) then {                //This will check if this unit got already spawn function. Cause we dont want to fire it twice or more...
    _doomtimer = [_unit,_anim] spawn {
    private ["_unit","_ls","_anim","_aCount"];
    _unit = _this select 0;
    _anim = _this select 1;
    _unit setVariable ["doomed", 1, false];                 //Mark the unit with this variable. then script above check for it later if something gets wrong with rescue team...
    _aCount = 0;
    while { (alive _unit) } do {
    _ls = lifeState _unit;
    if (_ls != "INCAPACITATED") exitWith {};
    _unit playMove _anim;
    _aCount = _aCount + 1;
    if (_aCount == 20) then { _unit setDamage 1};
    sleep ((random 4)+4);
};
 _unit setVariable ["doomed", 0, false]; //if unit got healed then reset variable
};
};

_unitGrp = group _unit;
[_unit] joinSilent grpNull;

//_arr = [];
_noDragger = [];
//_unitdir = getDir _unit;
_nearestunits = _unit nearEntities ["CAManBase", 50];
if (_nearestunits isEqualTo _noDragger) exitWith {};
_dragger = selectRandom (_nearestunits - (playableUnits + switchableUnits + [_unit]));
///////////////////Find dragger loop////////////////////////////////////////
/*while {true}                  
do {
    //hint "searching dragger...";
    _nearestunits = _unit nearEntities ["CAManBase", 50];
    _dragger = selectRandom (_nearestunits - (playableUnits + switchableUnits + [_unit]));
    sleep 1;
    if ((alive _unit) && ((side _dragger) != civilian) && ((lifeState _dragger) != "INCAPACITATED") && (alive _dragger) && ((AnimationState _dragger) != "AcinPknlMwlkSrasWrflDb")) exitWith {};
    if (!alive _unit) exitWith {};
};
*/

//if ((alive _unit) && ((side _dragger) != civilian) && ((lifeState _dragger) != "INCAPACITATED") && (alive _dragger) && ((AnimationState _dragger) != "AcinPknlMwlkSrasWrflDb")) exitWith {};
if ((!alive _unit) or (!alive _dragger)) exitWith {};
_hls = lifeState _dragger;

//hint "dragger found";

if ((alive _unit) && (side _dragger != civilian) && (!isPlayer _dragger) && (_dragger != _unit) && (_hls != "INCAPACITATED") && (alive _dragger) && ((AnimationState _dragger) != "AcinPknlMwlkSrasWrflDb")) then {

_draggerGrp = group _dragger;

[_dragger] joinSilent grpNull;
_dragger removeAllMPEventHandlers "MPHit";
_dragger setUnitPos "MIDDLE";            
_dragger doMove getpos _unit;


waituntil { sleep 1; (_dragger distance _unit < 2) or !(alive _unit) or !(alive _dragger)  };

if (!alive _dragger) exitWith {sleep ((random 15)+15);
_unit playMove _anim;
// _null = [_unit, _anim] spawn inCap;//Exit script to repeat it all over again, to find another dragger
};
if (!alive _unit) exitwith {};

_randomSmoke = selectRandom [1,2,3];

If (_randomSmoke == 2) then {
createVehicle ["SmokeShell", _unit, [], (random 6), "CAN_COLLIDE"];
};
 

[ _unit ] remoteExec [ "dam_fnc_wake", 2 ];
sleep 2;
_dragger playAction "grabDrag";
[[_unit,"AinjPpneMrunSnonWnonDb"] remoteExec ["switchMove"]];     
Sleep (0.01);
    
waitUntil { ((AnimationState _dragger) == "AmovPercMstpSlowWrflDnon_AcinPknlMwlkSlowWrflDb_2") || ((AnimationState _dragger) == "AmovPercMstpSnonWnonDnon_AcinPknlMwlkSnonWnonDb_2")};


    _unit attachTo [_dragger, [0, 1.2, 0]];
    _unit setDir 180;

_DummyClone = {
    private ["_dummy", "_dummygrp", "_dragger"];
    _dragger = _this;
    
    _dummygrp = createGroup civilian;
    _dummy = _dummygrp createUnit ["C_man_polo_1_F", Position _dragger, [], 0, "FORM"];
    _dummy setUnitPos "up";
    _dummy hideObjectGlobal true;
    _dummy allowdammage false;
    _dummy setBehaviour "CARELESS";
    _dummy disableAI "FSM";
     _dummy forceSpeed 0.2;
    _dragger attachTo [_dummy, [0, -0.2, 0]];
    _dragger setDir 180;
    
    _dummy
    
};

_dummy = _dragger call _DummyClone;


_emptyHouse = [];
_nearesthouses = _dragger nearObjects ["House",100];
_houseList = [];
{
    for "_i" from 0 to 3 do {
        if ( [(_x buildingPos _i), [0,0,0]] call BIS_fnc_arrayCompare ) exitWith {
            if (_i > 0) then {
                _houseList set [count _houseList, [_x, _i]];
            };
        };
    };    
}forEach _nearesthouses;

if !(_houseList isEqualTo _emptyHouse) then

{

_randomHouse = _houseList select (floor (random (count _houseList)));
_Pos = (_randomHouse select 0) buildingPos (floor (random (_randomHouse select 1)));


} else {
    
_dis = (30 + random 20);    
_Pos = [_dragger, _dis, random 360] call BIS_fnc_relPos;
    
    };
    
_dragger playMove "AcinPknlMwlkSrasWrflDb"; _dragger disableAI "ANIM"; _dummy doMove _Pos;

waituntil {(_dummy distance _Pos < 5) or !(alive _dragger) or !(alive _unit) };

if (!alive _dragger) then {    
detach _unit;    
detach _dragger;
detach _dummy;
_dummy stop true;
deleteVehicle _dummy;
[[_unit,""] remoteExec ["switchMove"]];
[_unit] remoteExec [ "dam_fnc_setunconscious", 2 ];
_unit playMove _anim;

if (true) exitwith {};

//sleep ((random 15)+15);
// _null = [_unit, _anim] spawn inCap; //Repeat again if dragger was killed or injured in drag action. Pay attention to _animN.


} else {

if !(alive _unit) then {
detach _unit;
detach _dragger;
detach _dummy;
_dummy stop true;
deleteVehicle _dummy;
[[_dragger,""] remoteExec ["switchMove"]];
_dragger enableAI "ANIM";
_dragger setCombatMode "RED";    
_dragger setBehaviour "AWARE";    
{ _dragger reveal _x; } forEach allUnits;
[_dragger] joinSilent _draggerGrp;

if (true) exitwith {};

} else {

if (_dummy distance _Pos < 10) then {
detach _unit;
detach _dragger;
detach _dummy;
_dummy stop true;
deleteVehicle _dummy;
[[_dragger,"Acts_TreatingWounded01"] remoteExec ["playMove"]];
[[_unit,""] remoteExec ["switchMove"]];
[[_unit,"UnconsciousReviveDefault_C"] remoteExec ["playMove"]];
_unit attachTo [_dragger, [0, 0.6, 0]];
_unit setDir 90;
sleep (15 + random 15);
detach _unit;

[[_dragger,"Acts_TreatingWounded_Out"] remoteExec ["switchMove"]];
sleep 3;
_unit setDamage 0;    
[[_unit,"UnconsciousOutProne"] remoteExec ["switchMove"]];
_dragger enableAI "ANIM";
_dragger setCombatMode "RED";    
_dragger setBehaviour "AWARE";    
_unit enableAI "FSM";
_unit setCombatMode "RED";    
_unit setBehaviour "COMBAT";    
{ _dragger reveal _x; } forEach allUnits;
{ _unit reveal _x; } forEach allUnits;

[_unit] joinSilent _unitGrp;
[_dragger] joinSilent _draggerGrp;

if (true) exitwith {};

};

};

};

if (true) exitwith {};
    
} else {


    _unit disableAI "TARGET";
    _unit disableAI "AUTOTARGET";
    _unit disableAI "MOVE";
    _unit disableAI "TEAMSWITCH";
    _unit disableAI "FSM";
    _unit disableAI "AIMINGERROR";
    _unit disableAI "SUPPRESSION";
    _unit disableAI "COVER";
    _unit disableAI "AUTOCOMBAT";
    _unit disableAI "PATH";
    
    
_unit playMove _anim;
    
// _null = [_unit, _anim] spawn inCap; //Repeat...    
    


};

 

  • Like 5

Share this post


Link to post
Share on other sites

Here is "inCap.sqf" for the mod version.

 

New features:

Help is provided only to friendly units.

You can injurid unit who is trying to help.

They will try to provide assistance several times if the first time fails.

Improved assistance, which was in the video above.

Units remain in their platoons after treatment.

 

Problems:

If only one unit remained in the platoon, then in case of injury no one will help him. Maybe someone will help solve this problem?

 

inCap.sqf

Spoiler

if (!isServer) exitWith {}; 

_unit = (_this select 0);
_anim = (_this select 1);

private ["_aCount","_Pos","_dummy","_unit","_anim","_nearestunits","_dragger","_hls","_emptyHouse","_nearesthouses",
"_houseList","_randomHouse","_dis", "_randomSmoke", "_unitGrp","_draggerGrp","_ls","_noDragger","_future","_nearPlayers", "_isFriendly"];

 if (isNil {_unit getVariable "doomed"}) then {_unit setVariable ["doomed", 0, false];}; //checking if unit got any local variables, if it not, then add one 

 if (_unit getvariable "doomed" == 0) then {                //This will check if this unit got already spawn function. Cause we dont want to fire it twice or more...
    _doomtimer = [_unit,_anim] spawn {
    private ["_unit","_ls","_anim","_aCount"];
    _unit = _this select 0;
    _anim = _this select 1;
    _unit setVariable ["doomed", 1, false];                 //Mark the unit with this variable. then script above check for it later if something gets wrong with rescue team...
    _aCount = 0;
    while { (alive _unit) } do {
	_ls = lifeState _unit;
	if (_ls != "INCAPACITATED") exitWith {};
    _unit playMove _anim;
    _aCount = _aCount + 1;
    if (_aCount == 20) then { _unit setDamage 1};
    sleep ((random 4)+4);
};
 _unit setVariable ["doomed", 0, false]; //if unit got healed then reset variable
};
};

_unitGrp = group _unit;



//_arr = [];
_noDragger = [];
//_unitdir = getDir _unit;
_nearestunits = _unit nearEntities ["CAManBase", 50];

_nearPlayers = 0; 
{ 
 if ((_x distance _unit) <= 50) then 
 { 
  _nearPlayers = _nearPlayers + 1;                                  
 }; 
} forEach allPlayers;

if ((_nearestunits isEqualTo _noDragger) or ( (count _nearestunits) - _nearPlayers == 1)) exitWith {
sleep 1;
};

_dragger = selectRandom (_nearestunits - (playableUnits + switchableUnits + [_unit]));
///////////////////Find dragger loop////////////////////////////////////////
/*while {true}                  
do {
    //hint "searching dragger...";
    _nearestunits = _unit nearEntities ["CAManBase", 50];
    _dragger = selectRandom (_nearestunits - (playableUnits + switchableUnits + [_unit]));
    sleep 1;
    if ((alive _unit) && ((side _dragger) != civilian) && ((lifeState _dragger) != "INCAPACITATED") && (alive _dragger) && ((AnimationState _dragger) != "AcinPknlMwlkSrasWrflDb")) exitWith {};
    if (!alive _unit) exitWith {}; 
};
*/

//if ((alive _unit) && ((side _dragger) != civilian) && ((lifeState _dragger) != "INCAPACITATED") && (alive _dragger) && ((AnimationState _dragger) != "AcinPknlMwlkSrasWrflDb")) exitWith {};

_isFriendly = [side _dragger, side _unitGrp] call BIS_fnc_sideIsFriendly; //Checks if units is friendly


if ((!alive _unit)) exitWith {
};
if ((!alive _dragger) or ("INCAPACITATED" == lifeState _dragger) or (str _isFriendly != "true")) exitWith {
sleep 1;
_null = [_unit, _anim] spawn dam_inCap;//Exit script to repeat it all over again, to find another dragger
};

_hls = lifeState _dragger;

//hint "dragger found"; 

if ((alive _unit) && (side _dragger != civilian) && (!isPlayer _dragger) && (_dragger != _unit) && (_hls != "INCAPACITATED") && (alive _dragger) && ((AnimationState _dragger) != "AcinPknlMwlkSrasWrflDb") && ((AnimationState _dragger) != "AinjPpneMstpSnonWrflDb") && ((AnimationState _dragger) != "AinjPpneMrunSnonWnonDb") && ((AnimationState _dragger) != "AinjPpneMrunSnonWnonDb_still") && ((AnimationState _dragger) != "AcinPknlMwlkSnonWnonDb")) then {




_dragger setUnitPos "MIDDLE";			
_dragger doMove getpos _unit;

_future = time + 30;



waituntil { sleep 1; (_dragger distance _unit < 3) or !(alive _unit) or !(alive _dragger) or (time >= _future) or ("INCAPACITATED" == lifeState _dragger)};
sleep 0.1;
if ((!alive _dragger) or ("INCAPACITATED" == lifeState _dragger) or ((AnimationState _dragger) == "AcinPknlMwlkSrasWrflDb") or ((AnimationState _dragger) == "AinjPpneMstpSnonWrflDb") or ((AnimationState _dragger) == "AinjPpneMrunSnonWnonDb") or ((AnimationState _dragger) == "AinjPpneMrunSnonWnonDb_still") or ((AnimationState _dragger) == "AcinPknlMwlkSnonWnonDb")) exitWith {
sleep ((random 15)+15);
_null = [_unit, _anim] spawn dam_inCap;//Exit script to repeat it all over again, to find another dragger
}; 
if (!alive _unit) exitWith {
_dragger setUnitPos "AUTO";
}; 
if  (time >= _future) exitWith {
_dragger setUnitPos "AUTO";
[_unit] joinSilent _unitGrp;
sleep ((random 5)+5);
_null = [_unit, _anim] spawn dam_inCap;//Exit script to repeat it all over again, to find another dragger
}; 

_randomSmoke = selectRandom [1,2,3];

If (_randomSmoke == 2) then {
createVehicle ["SmokeShell", _unit, [], (random 6), "CAN_COLLIDE"];
};
  

[ _unit ] remoteExec [ "dam_fnc_wake", 2 ];
sleep 2;
_dragger playAction "grabDrag";
[[_unit,"AinjPpneMrunSnonWnonDb"] remoteExec ["switchMove"]]; 	
Sleep (0.01);
	
waitUntil { ((AnimationState _dragger) == "AmovPercMstpSlowWrflDnon_AcinPknlMwlkSlowWrflDb_2") || ((AnimationState _dragger) == "AmovPercMstpSnonWnonDnon_AcinPknlMwlkSnonWnonDb_2") or (!alive _dragger) or ("INCAPACITATED" == lifeState _dragger) or (!alive _unit)}; 

[_unit] joinSilent grpNull;

	_unit attachTo [_dragger, [0, 1.2, 0]];
    _unit setDir 180; 

_DummyClone = {
	private ["_dummy", "_dummygrp", "_dragger"];
	_dragger = _this;
	
	_dummygrp = createGroup civilian;
	_dummy = _dummygrp createUnit ["C_man_polo_1_F", Position _dragger, [], 0, "FORM"];
	_dummy setUnitPos "up";
	_dummy hideObjectGlobal true;
	_dummy allowdammage false;
	_dummy setBehaviour "CARELESS";
	_dummy disableAI "FSM";
     _dummy forceSpeed 0.2;
	_dragger attachTo [_dummy, [0, -0.2, 0]]; 
	_dragger setDir 180;
	
	_dummy
	
};

_dummy = _dragger call _DummyClone;


_emptyHouse = [];
_nearesthouses = _dragger nearObjects ["House",100];
_houseList = [];
{
    for "_i" from 0 to 3 do {
        if ( [(_x buildingPos _i), [0,0,0]] call BIS_fnc_arrayCompare ) exitWith {
            if (_i > 0) then {
                _houseList set [count _houseList, [_x, _i]];
            };
        };
    };    
}forEach _nearesthouses;

if !(_houseList isEqualTo _emptyHouse) then 

{

_randomHouse = _houseList select (floor (random (count _houseList)));
_Pos = (_randomHouse select 0) buildingPos (floor (random (_randomHouse select 1)));


} else { 
	
_dis = (30 + random 20);	
_Pos = [_dragger, _dis, random 360] call BIS_fnc_relPos;
	
	};
	
_dragger playMove "AcinPknlMwlkSrasWrflDb"; _dragger disableAI "ANIM"; _dummy doMove _Pos;

waituntil {(_dummy distance _Pos < 5) or !(alive _dragger) or !(alive _unit) or ("INCAPACITATED" == lifeState _dragger)};

if ((!alive _dragger) or ("INCAPACITATED" == lifeState _dragger)) then {	
detach _unit;	
detach _dragger;
detach _dummy;
_dummy stop true;
deleteVehicle _dummy;
[[_unit,""] remoteExec ["switchMove"]]; 
[_unit] remoteExec [ "dam_fnc_setunconscious", 2 ];
_unit playMove _anim;
[_unit] joinSilent _unitGrp;

if (true) exitwith {
sleep ((random 15)+15);
[_unit] remoteExec [ "dam_fnc_setunconscious", 2 ];
_null = [_unit, _anim] spawn dam_inCap; //Repeat again if dragger was killed or injured in drag action. Pay attention to _animN.
};

} else {

if !(alive _unit) then {
detach _unit;
detach _dragger;
detach _dummy;
_dummy stop true;
deleteVehicle _dummy;
[[_dragger,""] remoteExec ["switchMove"]]; 
_dragger enableAI "ANIM";
_dragger setCombatMode "RED";	
_dragger setBehaviour "AWARE";	
{ _dragger reveal _x; } forEach allUnits;

if (true) exitwith {};

} else {



if (_dummy distance _Pos < 10) then {
detach _unit;
detach _dragger;
detach _dummy;
_dummy stop true;
deleteVehicle _dummy;
[[_dragger,"Acts_TreatingWounded01"] remoteExec ["playMove"]]; 
[[_unit,""] remoteExec ["switchMove"]];
[[_unit,"UnconsciousReviveDefault_C"] remoteExec ["playMove"]];
_unit attachTo [_dragger, [0, 0.6, 0]];
_unit setDir 90; 
sleep 20;
detach _unit;

if ((!alive _dragger) or ("INCAPACITATED" == lifeState _dragger)) then {
if (true) exitwith {
[_unit] joinSilent _unitGrp;
sleep ((random 5)+15);
[_unit] remoteExec [ "dam_fnc_setunconscious", 2 ];
_null = [_unit, _anim] spawn dam_inCap; //Repeat again if dragger was killed or injured in drag action. Pay attention to _animN.
};

} else {

[[_dragger,"Acts_TreatingWounded_Out"] remoteExec ["switchMove"]]; 
sleep 3;
_unit setDamage 0;	
[[_unit,"UnconsciousOutProne"] remoteExec ["switchMove"]]; 

_dragger enableAI "ANIM";
_dragger setCombatMode "RED";	
_dragger setBehaviour "AWARE";
_dragger setUnitPos "AUTO";	

_unit enableAI "ANIM";
_unit setUnitPos "AUTO";
sleep 0.1;
_unit enableAI "FSM";
_unit setCombatMode "RED";	
_unit setBehaviour "COMBAT";	
[_unit] joinSilent _unitGrp;
{ _dragger reveal _x; } forEach allUnits;
{ _unit reveal _x; } forEach allUnits;


if (true) exitwith {};

};

};


};

};

if (true) exitwith {
};
	
} else {



[_unit] joinSilent _unitGrp;
    _unit disableAI "TARGET";
    _unit disableAI "AUTOTARGET";
    _unit disableAI "MOVE";
    _unit disableAI "TEAMSWITCH";
    _unit disableAI "FSM";
    _unit disableAI "AIMINGERROR";
    _unit disableAI "SUPPRESSION";
    _unit disableAI "COVER";
    _unit disableAI "AUTOCOMBAT";
    _unit disableAI "PATH";
	
	
_unit playMove _anim;

	
_null = [_unit, _anim] spawn dam_inCap; //Repeat...	
	


};





 

 

  • Like 3

Share this post


Link to post
Share on other sites

This script/mod adds great immersion to the overall aspect of the game from a PvE perspective. I agree with @0Y0 that its kinda bad to see an AI group pass right by another AI who was the last in his team to be alive but is wounded and they don't even check on the poor fellow. Not sure how that would work as I think it would add too much to the mission and might create lag or use server cycles which could be used elsewhere.

Share this post


Link to post
Share on other sites
On 28.12.2018 at 4:47 PM, Nichols said:

This script/mod adds great immersion to the overall aspect of the game from a PvE perspective. I agree with @0Y0 that its kinda bad to see an AI group pass right by another AI who was the last in his team to be alive but is wounded and they don't even check on the poor fellow. Not sure how that would work as I think it would add too much to the mission and might create lag or use server cycles which could be used elsewhere.

 

 

I completely solved the problem of helping only friendly units))) How do I finish the mod lay out in it)

Here is the topic of mod:

 

  • Like 3

Share this post


Link to post
Share on other sites

Does anyone know how to make this work in Iron Front 3 Lite and Faces of War? Not only do they show error while in-game but ai also refuses to drag the dead bodies. 

Share this post


Link to post
Share on other sites
On 27.01.2019 at 3:05 PM, Rex Imperator said:

Does anyone know how to make this work in Iron Front 3 Lite and Faces of War? Not only do they show error while in-game but ai also refuses to drag the dead bodies. 

 

And in the game without mods? Same?

Share this post


Link to post
Share on other sites
6 hours ago, 0Y0 said:

 

And in the game without mods? Same?

After initial testing without the mods, yes, that is an affirmative. The problem still occurs. 

Share this post


Link to post
Share on other sites
20 hours ago, Rex Imperator said:

After initial testing without the mods, yes, that is an affirmative. The problem still occurs. 

 

Try the code I wrote above.

Share this post


Link to post
Share on other sites
On 1/30/2019 at 6:23 AM, 0Y0 said:

 

Try the code I wrote above.

Apologies if i wasn't clear. I'm using the mod version. How do you put the code in the mod version? Sorry, i'm a noob in arma. 

Share this post


Link to post
Share on other sites

Hello, we are trying the mod version, but it doesnt seem to do anything.. what should we try to test it 100% proof?

Edit: Only works singleplayer or from the editor choosing multiplayer, as a test...

it wont work serverside...

Ace parameters , medical for players and IA, enabled and IA unconsciousness disabled.

Share this post


Link to post
Share on other sites

Hey @Persian MO I really do enjoy this script, I have notice a wee issue though while testing the ALiVE mission I'm working on. I've seen OPFOR guys dragging BLUFOR guys to cover, healing them up and shooting the crap out of them again 😂

That lead me to think, what if you leave that in, and make it if the guy being dragged is enemy of the dragger, then they get striped of their gear and forced to surrender (actually is there a surrender in vanilla, we use ACE all the time so I can't quite remember) 
Having the AI dynamically taking prisoners would be kind of cool.

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

×