Jump to content

JOHN007

Member
  • Content count

    99
  • Joined

  • Last visited

  • Medals

Community Reputation

7 Neutral

About JOHN007

Recent Profile Visitors

887 profile views
  1. Hello opusfmspol thankyou for the reply. This is outstanding! Brilliant stuff as always! Thankyou very much for helping us Arma 2 veterans, I salute you sir! Going to review all segments now, hopefully get a much better understanding of CBA parameters, which always defeat me In the end, going to test out the new script, its looks god damn magnificent Captain! Epic as always! I'll post back ASAP. Thanks again, hope to speak soon.
  2. Hello opusfmspol hope you are good thankyou for the reply. This is great news! Sorry for the late reply, how on earth did you find the parameters? Epic stuff as always! I'm looking at the code now and I wouldn't even know how to convert this to be called from the main init script? This is beyond my capabilities with Arma scripting, CBA is on another level. Could that be possible may I ask? So we could have this script be called from the missions init file? Somehow implement the "ace_sys_wounds_selleader" script with the (leader CurrentGroup == leader player) parameters, would that be the correct method may I ask? I honestly wish I could code this right now, CBA has defeated me. I feel that we are so close now, if this could be implanted into a working script this would be the ultimate fix for ace. Thankyou very much for your time and expertise, hope to speak soon.
  3. Hello and thankyou for the detailed reply much appreciated. I have tried to find any other information regarding these parameters before replying but no luck I'm afraid. I wouldn't know how to edit the script, this is complicated indeed. Do you know anyone with CBA and ACE experience with editing these scripts? I believe you have found the section 100%, but who actually wrote ACE wounds? Maybe we could contact the author because we are editing this work. We need those parameters. So close now!
  4. Hello and thankyou for the reply. This is complicated indeed, may I ask how exactly did you implement this code? I included the parameters but no effect, but it may not be configured correctly I'm not sure? This is called from the main init.sqf if (!isServer) then // params ["_unit", "ace_sys_wounds_uncon"]; private ["_unit", "ace_sys_wounds_uncon"]; _unit = _this select 0; ace_sys_wounds_uncon = _this select 1; From further testing, example the squad leader can see the units on the bottom of the screen and can select them with F1 F2. If the squad leader is unconscious, (Unit1) Instantly the role is passed to the next rank (Unit2) On Unit2 screen on the UI, I can see that only Unit2 is present? As soon as the squad leader dies from an unconscious state, Unit2 can now see Unit1 and Unit2 at the bottom of the screen? Its difficult to explain, its like I need to find the parameters in the default Arma2 PBO's but I haven't got a clue where the configs are for respawning players. I don't understand why there is no information regarding this? Plenty of posts requesting help in preventing this role switch, but no solution for Arma2. I believe we just need the correct strings, but finding them is difficult. Thankyou for your time and hope to speak soon.
  5. Hello and thankyou for the reply. So I unpacked the Ace_Wounds PBO and found some interesting class/base strings. I don't see any standard A2/OA strings in any of the config files but I have found new strings that maybe could be allocated to the script? Blackoutall.sqf //#define DEBUG_MODE_FULL #include "script_component.hpp" private ["_unit", "_time", "_st", "_check", "_iss", "_fsm", "_xdam", "_isp", "_bdam", "_ndam"]; PARAMS_2(_unit,_time); if (!local _unit) exitWith {}; _isp = isPlayer _unit; _st = _unit getVariable "ace_w_state"; if (isNil "_st") then {_unit setVariable ["ace_w_state", 0]}; if (isNil "ace_sys_wounds_enabled") then { if (isNil {_unit getVariable "ace_w_carry"}) then {_unit setVariable ["ace_w_carry", objNull]}; if (vehicle _unit == _unit) then { [_unit, 100] call FUNC(animator2); }; _unit setVariable [QGVAR(uncon), true]; _unit setVariable ["ace_w_unconlen", time + _time]; // bleeding and pain if (_isp) then { [true] spawn FUNC(blackoutp); } else { [_unit,true] spawn FUNC(blackoutai); }; Blackoutai.sqf #include "script_component.hpp" private ["_grpunit", "_isLeader", "_uncontime", "_bleed", "_pain", "_doex", "_uconl", "_carrier", "_grp"]; PARAMS_2(_unit,_knockout); if (!local _unit) exitWith {}; if (isPlayer _unit) exitWith {}; _unit setVariable ["ace_w_wakeup",1]; _unit setVariable ["BIS_IS_inAgony",true]; //_unit setUnconscious true; _grp = group _unit; _isLeader = (_unit == leader _grp); if (_isLeader) then { _newl = objNull; { private "_isu"; _isu = _x call FUNC(isUncon); if (_x != _unit && !_isu && alive _x) exitWith {_newl = _x} } forEach units _grp; [QGVAR(selLeader), [_grp, _newl]] call CBA_fnc_globalEvent; {if (_x != _unit && alive _x) then {_x doFollow _newl}} forEach units _grp; }; {_unit disableAI _x} forEach ["TARGET","AUTOTARGET","MOVE"]; // Drop out of static weapons if (vehicle _unit isKindOf "StaticWeapon") then { _unit action ["eject", vehicle _unit]; }; // Fall down from ladders if (animationState _unit in ["ladderriflestatic","laddercivilstatic"]) then { _unit action ["ladderOff", (nearestBuilding _unit)]; // Unit perhaps falls to death so we can exit script here anyway // Cancel last move order otherwise it attempts to climb up ladder again on waking up, when probably going unconscious again (loop) // if (currentCommand _unit == "MOVE") then { }; // Order it to wait }; Blackoutp.sqf // #define DEBUG_MODE_FULL #include "script_component.hpp" #define _state_blackingOut 801 private ["_knockout", "_dialog", "_grpunit", "_isLeader", "_uncontime", "_normtime", "_awaketime", "_bleed", "_pain", "_endtime", "_doex", "_uconl", "_carrier", "_grp"]; if (player getVariable ["ace_w_bout", false]) exitWith {}; player setVariable ["ace_w_bout",true]; player setVariable ["ace_w_wakeup",1]; //player setVariable ["BIS_IS_inAgony",true]; enableRadio false; //player setUnconscious true; PARAMS_1(_knockout); _dialog = false; _grp = group player; _isLeader = (player == leader _grp); if (_isLeader) then { _newl = objNull; { private "_isu"; _isu = _x call FUNC(isUncon); if (_x != player && !_isu && alive _x) exitWith {_newl = _x} } forEach units _grp; if (!isNull _newl) then { [QGVAR(selLeader), [_grp, _newl]] call CBA_fnc_globalEvent; {if (_x != player && alive _x) then {_x doFollow _newl}} forEach units _grp; }; }; Playeractions.sqf // #define DEBUG_MODE_FULL #include "script_component.hpp" // Self action, in light blue and most negative value #define ACE_TEXT_LIGHTBLUE(Text) ("<t color='#0303ff'>" + ##Text + "</t>") #define __STOPBLEED ACE_TEXT_LIGHTBLUE(localize "STR_ACE_UA_STOPBLEED") #define __USEMORPHI ACE_TEXT_LIGHTBLUE(localize "STR_ACE_UA_USEMORPHI") #define __USEEPI ACE_TEXT_LIGHTBLUE(localize "STR_ACE_UA_USEEPI") #define _state_blackingOut 801 // semi-lucid private ["_exitloop","_pain_action","_epi_action","_epi_and_morph"]; sleep 5; if (isNil "ace_sys_wounds_enabled") exitWith {}; _nearMedicFacility = [player] call FUNC(nearMedicalFacility); _epi_and_morph = if (!isNil "ace_sys_wounds_medics_only") then { if ([player] call FUNC(isMedic) || _nearMedicFacility) then { true } else { false } } else { true }; while {true} do { _bandage_action = -9999; _pain_action = -9999; _epi_action = -9999; waitUntil {alive player}; sleep 1; while {true} do { if (alive player && !(player call FUNC(isUncon))) then { // bandage if ((player getVariable "ace_w_bleed") > 0 && _bandage_action == -9999) then { if (BND in magazines player) then { _bandage_action = player addAction [__STOPBLEED, QPATHTO_F(stopBleeding), BND,-1]; }; } else { if ((player getVariable "ace_w_bleed") == 0 && _bandage_action != -9999) then { player removeAction _bandage_action; _bandage_action = -9999; }; }; if (_epi_and_morph) then { // morphine if ((player getVariable "ace_w_pain") > 0 && _pain_action == -9999) then { if (MOR in magazines player) then { _pain_action = player addAction [__USEMORPHI, QPATHTO_F(stopPain),"",-1]; }; } else { if ((player getVariable "ace_w_pain") == 0 && _pain_action != -9999) then { player removeAction _pain_action; _pain_action = -9999; }; }; // epi if ((player getVariable "ace_w_state") >= _state_blackingOut && _epi_action == -9999) then { if (EPI in magazines player) then { _epi_action = player addAction [__USEEPI, QPATHTO_F(useEpi),"",-1]; }; } else { if ((player getVariable "ace_w_state") < _state_blackingOut && _epi_action != -9999) then { player removeAction _epi_action; _epi_action = -9999; }; }; }; }; // remove all actions if ((player call FUNC(isUncon)) || !alive player) exitWith { if (_bandage_action != -9999) then { player removeAction _bandage_action; }; if (_epi_and_morph) then { if (_pain_action != -9999) then { player removeAction _pain_action; }; if (_epi_action != -9999) then { player removeAction _epi_action; }; }; }; sleep 0.5; }; }; Somewhere in the code, is the main parameter for what looks like Ace has named Blackout' for the unconscious state. First I will try the new script you have provided, thankyou very much for the update on A3 parameters, I guess they would need to be edited for A2. Its a shame because the Ace Dev website has closed. Vital information on that site. Thanks for your time and hope to speak soon.
  6. Hello thankyou for the reply. Over at Armaholic, a user has provided a great script, it works for Arma 2. player addEventHandler ["Respawn", { params ["_unit", "_corpse"]; (group _unit) setGroupOwner (owner _unit); // not needed I don't think... just in case group isn't local (group _unit) selectLeader _unit; // group has to be local, Wiki says... }]; The script works 99% but its much better than the original script. May I ask do you know the base/class name for the ACE unconscious state? This is what happens. If the Squad leader is killed instantly, he stays as squad leader, no problem there. The problem is when you get shot and you fall unconscious, you instantly lose squad leader status,(Goes to next rank) If you are revived without dying, you will get back your squad leader status. If you die while been unconscious, you don't get back the squad leader status? Its just a guess, but I'm sure it would be included in the params ["_unit", "_corpse"]; section? I believe that's the last piece of the puzzle, the Ace unconscious state has to be included. Thankyou for your time and hope to speak soon.
  7. Update here. Unfortunately removing the F_40_White brightness/intensity values makes no difference I'm afraid. Also I have just Arma 2 OA with no Ace or other mods and from my testing with 3 PC's you can see Z-fighting bugs with the chaff countermeasures. For example load up the standard Desert map, set the time to 20:30, and fly over to the centre of the map while ejecting countermeasures and you can see the bugs, with nightvision active. Without nightvision you cant really see the terrain bug. May I ask can anyone verify this please if they got some spare time. I honestly believe we need the actual classname of the chaff projectile so we can add it to the config and edit the values. What is the classname for this projectile may I ask? Thankyou again and hope to speak soon.
  8. Hello Goliath thankyou for the reply. I had some problems on the unit so I had to reinstall, absolute nightmare. Now I have Arma online so I will edit the config ASAP. Just wondering from looking at the config from yourself that there are entries for brightness/intensity for the F_40_White, I replicated your settings into the Ace config. So may I ask which values are actually used here if I have brightness/intensity on both Flarecore and flarebase sections? So the theory is to have one set of brightness and intensity values across all flares? Would that be correct? Thankyou again for your brilliant config, hope to speak soon.
  9. Hello Goliath86. After much searching online found a few baseclass names for chaff magazines, adding the 60, 120 and 240 capacity mags to the config. Unfortunately I may have made an error, replicating the working config, or maybe the baseclass names are incorrect, I believe I need to find the actual bassclass of the projectile instead of the magazine classname? I'm not quite sure. // Generated by unRap v1.06 by Kegetys class CfgAmmo { class FlareCore; // External class reference class FlareBase : FlareCore { brightness = 200; size = 0.71; intensity = 1000000; ACE_Simulation = "shotFlare"; }; class F_40mm_White : FlareBase { soundFly[] = {"\x\ace\addons\sys_flares\sound\flare.ogg", 0.1, 1}; ace_sys_flares_SLOW = 1; ace_sys_flares_DAY = 1; ace_sys_flares_DESCEND = -2; ace_sys_flares_COLOR[] = {0.9, 0.9, 0.9, 0}; timeToLive = 90; brightness = 100; intensity = 5; }; class 60Rnd_CMFlare_Chaff_Magazine : F_40mm_White { ace_sys_flares_Color[] = {0.9, 0.9, 0.9, 0}; }; class 120Rnd_CMFlare_Chaff_Magazine : F_40mm_White { ace_sys_flares_Color[] = {0.9, 0.9, 0.9, 0}; }; class 240Rnd_CMFlare_Chaff_Magazine : F_40mm_White { ace_sys_flares_Color[] = {0.9, 0.9, 0.9, 0}; }; class F_40mm_Green : F_40mm_White { ace_sys_flares_Color[] = {0.05, 0.9, 0.05, 0}; }; class F_40mm_Red : F_40mm_White { ace_sys_flares_COLOR[] = {0.9, 0.05, 0.05, 0}; }; class F_40mm_Yellow : F_40mm_White { ace_sys_flares_COLOR[] = {0.9, 0.9, 0.05, 0}; }; Trying to find the Classname of the chaff projectile from the 240Rnd_CMFlare_Chaff_Magazine'' is difficult, could I ask the BIS Devs if they could help us here? Were just requesting a classname, should be reasonable enough right? Dwarden could you point us in the right direction here please? Thankyou for your time and hope to speak soon.
  10. Hello goliath86 thankyou for the reply much appreciated. The config 100% fixes the flares!! Thankyou ever so much for helping us! How did you fix this bug?? You are a Genius. I've noticed you mentioned that I posted a config for the countermeasures? The reason I ask is because unfortunately the aircraft countermeasures still cause the z fighting bugs even though the flares from example an m203 work correctly. Its really strange but I cannot find the post for the countermeasures? Do you know where/what the baseclass name is for the countermeasures? If we could replicate your settings I'm sure it would work. Thankyou again for your time and expertise Arma looks outstanding at nighttime now!! I SALUTE YOU SIR!!
  11. Hello Goliath thankyou for the reply. Would you kindly provide the config parameters please for the dedicated Arma 2 community. This bug is killing us. SOS.
  12. Hello Opusfmspol sorry for the late reply, I have tried other scripts but failed, so it seems that this one is the best one at the moment, I'll follow your instructions and hopefully fix the lag issue. Would you recommend editing the script in anyway? Could it be altered somehow? Or in your opinion is the 'waituntil' parameter actually fixing this issue in the first place? Thankyou very much for your expertise and hope to speak soon.
  13. Hello opusfmspol thankyou very much for the reply much appreciated. I understand, there is no information regarding this issue with Arma2, there are similar posts stating the same, there's no way. I've spent years on and off trying to fix this. Last night I bashed my head against the wall so hard something clicked. This is the diagnostic. Instead of respawning at the base when killed, I implemented a custom revive framework, this works. 3 revives and your kicked from the server, it works correctly with Ace wounds also which is brilliant. The script originally posted does actually work correctly, but only on some maps, so it does 99.9% work after much testing. Unfortunately some maps don't work, but I have a theory, the maps that don't work have custom units for players. The units have the Squad leader, Medic and Engineer parameters setup correctly also. So it may be that modded units don't work correctly with the script, but guess what? The other night I found a thread in the bloody Steam forums for Arma3, followed the instructions writing the script into the main Init sqf but still no luck, until I executed the scipt with execVM. Its bloody worked! There is one problem here, the new script caused some serious FPS issues/lag? May I ask if you could have a look at this script before I follow your instructions which I am eternally grateful for, maybe this script could be altered slightly? 1. Give your squad leader the variable name "OurSquadLeader" 2. Create .sqf script if (isServer) then { CheckGroupLeader = { waitUntil { (leader group OurSquadLeader) != OurSquadLeader) && (alive OurSquadLeader) }; {[_x] joinSilent OurSquadLeader)} forEach units group OurSquadLeader; [] spawn CheckGroupLeader; }; [] spawn CheckGroupLeader; }; 3. Call script from main Init.sqf This works correctly but causes serious lag issues? I haven't got the slightest clue as to why either? If we could fix this issue for the Arma2 community than we have a 1st fully working script for this problem. Thankyou very much for your time and hope to speak soon.
  14. Hello Chrisb thankyou very much for the reply much appreciated. I'm afraid not, as the squad leader can only issue orders/missions. When the squad leader is killed, the role is taken to the next rank, problem is that they cannot issue orders/missions because the framework is tied to the original allocated squad leader. This breaks the whole game. May I ask do you have any idea how we could fix this issue? Do you know anyone on the Arma forums who may be able to help? Its just incredibly difficult to get a response here on the forum so I am grateful for this Chris. Thanks again for your time and hope to speak soon.
  15. Hello. Basically when the squad leader is killed, the position is given to the next rank. How do you prevent this from happening may I ask? The only script I can find online is for Arma3 but it does sometimes work correctly but on some maps ie Cherno, the Arma3 script dosen't work at all. I have found no information regarding a script for Arma2 which keeps the squad leaders position? Here is the Arma3 script that is implemented at the moment. if (hasInterface) then // Normal player { CurrentGroup = group player; IsGroupLeader = false; if (leader CurrentGroup == leader player) then { IsGroupLeader = true; }; player addEventHandler ["Respawn", { if (IsGroupLeader) then //Reset Group Leader { CurrentGroup = group player; {[_x] joinSilent player} forEach (units CurrentGroup); CurrentGroup selectLeader player; }; }]; }; This is placed into the main Init.sqf Thankyou for your time and hope to speak soon.
×