Ry4nD 84 Posted April 16, 2018 https://github.com/rcantec/Support-Requester //Support Requester By RCANTEC(RyanD) 2018 _this select 0 synchronizeObjectsAdd [SupportRequester]; SupportRequester synchronizeObjectsAdd [_this select 0]; BIS_supp_refresh = TRUE; publicVariable "BIS_supp_refresh"; if (typeOf (_this select 0) isEqualTo "B_T_Sniper_F") then { [_this select 0, SupportRequester, ArtilleryProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, CasProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, TransportProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, AmmoProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, HelicasProvider] call BIS_fnc_addSupportLink; }; Add initPlayerLocal.sqf to your mission root folder, place labeled support modules. Place Support requester module named SupportRequester Then place virtual Support modules for each named; ArtilleryProvider, CasProvider, TransportProvider, AmmoProvider, HelicasProvider Sync each virtual module back the the main SupportRequester module. The line containing if (typeOf (_this select 0) isEqualTo "B_T_Medic_F") then { Whereas quoted class type can be any playable unit "B_T_Medic_F" playable units with same class name will have the support enabled. If you want to see how it is implemented in a multiplayer mission, you can try my Malden Insurgency https://github.com/rcantec/Malden_Insurgency_R1.Malden 1 1 Share this post Link to post Share on other sites
avibird 1 36 Posted April 16, 2018 So you can have multiple units using the support modules now. If this is true great work I never understood why boheima did that in the vallina game. 1 Share this post Link to post Share on other sites
Ry4nD 84 Posted April 21, 2018 Yes which ever units you white-list, will have the support available ;-) Share this post Link to post Share on other sites
Jnr4817 215 Posted April 21, 2018 Does this still work after a player respawns in a coop game, MP, or dedicated. Thanks, 1 Share this post Link to post Share on other sites
Ry4nD 84 Posted April 22, 2018 On 21/04/2018 at 9:59 AM, Jnr4817 said: Does this still work after a player respawns in a coop game, MP, or dedicated. Thanks, Yes, if you die, or respawn it will still work in multiplayer and or on a dedicated server 1 Share this post Link to post Share on other sites
avibird 1 36 Posted May 7, 2018 @Doctor-Vanilla I just got around updating some old mission however I can' t get this to work. followed you directions Add initPlayerLocal.sqf to your mission folder, place labeled support modules. Place Support requester module named SupportRequester Then place virtual Support modules for each named; ArtilleryProvider, CasProvider, TransportProvider, AmmoProvider, HelicasProvider Sync each virtual module back the the main SupportRequester module. The line containing if (typeOf (_this select 0) isEqualTo "B_T_Medic_F") then { Whereas quoted class type can be any playable unit "B_T_Medic_F" playable units with same class name will have the support enabled. I just added B_Soldier_UAV_F and B_Recon_JTAC_F I have four groups each has one of the soldiers nothing shows up when I sink the Support requester module to one of them it works for him only and not the other three soldiers if I DON'T sink none of them get the ability. What am I doing wrong. Avibird Share this post Link to post Share on other sites
avibird 1 36 Posted May 8, 2018 Has anyone used this. Does this work with Teamswitch enable or does this only work with human players. I open his demo mission insurgence and enable Teamswitch but only the first unit I picked has the support. It works with the five different units he has in the script but I think only for human players. So if you use Teamswitch into one of the other units who have the ability to call support it will not work ? I would like to get this to work with Teamswitch Avibird Share this post Link to post Share on other sites
Ry4nD 84 Posted May 10, 2018 On 07/05/2018 at 8:23 PM, avibird 1 said: Has anyone used this. Does this work with Teamswitch enable or does this only work with human players. I open his demo mission insurgence and enable Teamswitch but only the first unit I picked has the support. It works with the five different units he has in the script but I think only for human players. So if you use Teamswitch into one of the other units who have the ability to call support it will not work ? I would like to get this to work with Teamswitch Avibird You can see how it is configured in one of my mission files, https://github.com/rcantec/Pre-packed-Missions Share this post Link to post Share on other sites
Ry4nD 84 Posted May 10, 2018 Be sure to check the latest release here https://github.com/rcantec/Support-Requester Share this post Link to post Share on other sites
Ry4nD 84 Posted May 10, 2018 On 07/05/2018 at 8:23 PM, avibird 1 said: Has anyone used this. Does this work with Teamswitch enable or does this only work with human players. I open his demo mission insurgence and enable Teamswitch but only the first unit I picked has the support. It works with the five different units he has in the script but I think only for human players. So if you use Teamswitch into one of the other units who have the ability to call support it will not work ? I would like to get this to work with Teamswitch Avibird It should work regardless of teams, as it uses your player class, the pre-defined class as you chose in the lobby, once in game, if you switch teams, you would still be a "sniper" so if if (typeOf (_this select 0) isEqualTo "B_T_Sniper_F") then { than remains true, you would still have the support enabled for that class. Hope that helps. Share this post Link to post Share on other sites
avibird 1 36 Posted May 11, 2018 Hey like I said. I open his demo mission insurgence and enable Teamswitch but only the first unit I picked has the support. It works with the five different units that you have in the script but if you teamswitch into one of the other units you set in the script it does not work. I hope you understand what I am saying. Share this post Link to post Share on other sites
f2k sel 164 Posted May 12, 2018 I took a look to see if it would work in SP as it looks like it should if it works in MP but it gives the same result only first unit has support. I also tried using onteamswitch to run the code again but it still doesn't work. 1 Share this post Link to post Share on other sites
avibird 1 36 Posted May 12, 2018 I have a script code block that allows the player to keep their request modules link to him during teamswitch into any unit. But that's not exactly what I want. I just want to have the ability to have one unit within a Squad to have the ability but have multiple squads in a mission each with one unit who has the ability. Share this post Link to post Share on other sites
f2k sel 164 Posted May 12, 2018 Yes I can do that as well but this script was little simpler if it worked. I used teamswitch to force the script to run again after switching just to see if that would work but it didn't. Share this post Link to post Share on other sites
Ry4nD 84 Posted May 13, 2018 On 11/05/2018 at 8:04 PM, f2k sel said: I took a look to see if it would work in SP as it looks like it should if it works in MP but it gives the same result only first unit has support. I also tried using onteamswitch to run the code again but it still doesn't work. Yes only the defined unit will have support B_T_Sniper_F anyone else in the group does not have it. If you want additional units to have the same abilities, you can just whitelist them, as defined by their class name. Share this post Link to post Share on other sites
Ry4nD 84 Posted May 13, 2018 On 11/05/2018 at 11:21 PM, avibird 1 said: I have a script code block that allows the player to keep their request modules link to him during teamswitch into any unit. But that's not exactly what I want. I just want to have the ability to have one unit within a Squad to have the ability but have multiple squads in a mission each with one unit who has the ability. Yes, so define a TL in each squad, and then all TL will have the support. Share this post Link to post Share on other sites
f2k sel 164 Posted May 13, 2018 22 minutes ago, Doctor-Vanilla said: Yes only the defined unit will have support B_T_Sniper_F anyone else in the group does not have it. If you want additional units to have the same abilities, you can just whitelist them, as defined by their class name. I had several units all same type but not grouped but when switching to them they had no support. I can't test right now do they need to be in the same group? Share this post Link to post Share on other sites
avibird 1 36 Posted May 13, 2018 same here f2k sel . @Doctor-Vanillaeven in your demo mission. All five units have the ability to call support only if you start with that unit. If you team switch into one of the other four units you setup it does not work during the mission sorry to say. I don't think you understand. You can't have multiple units at the same time during the mission to call for support in your demo mission. I hope I am wrong. Please let us know how you are getting this to work. I have your demo mission and unpbo to see what you did. But it does not work in your demo at this time. When was the last time you use the demo. Share this post Link to post Share on other sites
Larrow 2822 Posted May 15, 2018 On 4/16/2018 at 1:36 AM, Doctor-Vanilla said: _this select 0 synchronizeObjectsAdd [SupportRequester]; SupportRequester synchronizeObjectsAdd [_this select 0]; BIS_supp_refresh = TRUE; publicVariable "BIS_supp_refresh"; No need to do this part as the following call to BIS_fnc_addSupportLink already does this for you. On 4/21/2018 at 1:21 AM, Doctor-Vanilla said: Yes which ever units you white-list, will have the support available 😉 Only if they are players. BIS_supp_refresh causes any supports to refresh their users, but if they are not a player they are ignored. On 5/8/2018 at 1:23 AM, avibird 1 said: Has anyone used this. Does this work with Teamswitch enable or does this only work with human players. You will need to run the code once the player has changed into the appropriate unit. There are also many other variables needed on the player object for supports to work properly. This will transfer all supports and their providers to the unit the player team switches into. No used support amounts are transferred and everything is reset as if from fresh. Spoiler addMissionEventHandler [ "TeamSwitch", { _nul = _this spawn { params[ "_from", "_to" ]; _allrequestors = synchronizedObjects _from select { typeOf _x == "SupportRequester" }; _requestProviders = _allrequestors apply { synchronizedObjects _x select { typeOf _x in BIS_SUPP_providerTypes } }; waitUntil { local _to && { player isEqualTo _to } }; { _requestor = _x; { { _provider = _x; [ _to, _requestor, _provider ] call BIS_fnc_addSupportLink; }forEach _x; }forEach _requestProviders; }forEach _allrequestors; { _to setVariable [format ["BIS_SUPP_used_%1", _x], 0, true] } forEach [ "Artillery", "CAS_Heli", "CAS_Bombing", "UAV", "Drop", "Transport" ]; _to setVariable ["BIS_SUPP_transmitting", false, true]; if (!(_to kbHasTopic "BIS_SUPP_protocol")) then { _to kbAddTopic ["BIS_SUPP_protocol", "A3\Modules_F\supports\kb\protocol.bikb", "A3\Modules_F\supports\kb\protocol.fsm", {call compile preprocessFileLineNumbers "A3\Modules_F\supports\kb\protocol.sqf"}] }; if (isNil {_to getVariable "BIS_SUPP_HQ"}) then { _to setVariable ["BIS_SUPP_HQ", missionNamespace getVariable format ["BIS_SUPP_HQ_%1", side group _to ]] }; }; }]; This will setup support access from the named requester and it providers, when the player team switches into a unit of a specific type or named unit. Spoiler TAG_allowedSupportUnitTypes = [ "B_T_Sniper_F" ]; //Or/And unit var names TAG_supportRequestors = [ NameGivenToRequestorModules ]; addMissionEventHandler [ "TeamSwitch", { _nul = _this spawn { params[ "_from", "_to" ]; if ( _to in TAG_allowedSupportUnitTypes || { { typeOf _to == _x }count TAG_allowedSupportUnitTypes > 0 } ) then { _requestProviders = TAG_supportRequestors apply { synchronizedObjects _x select { typeOf _x in BIS_SUPP_providerTypes } }; waitUntil { local _to && { player isEqualTo _to } }; { _requestor = _x; { { _provider = _x; [ _to, _requestor, _provider ] call BIS_fnc_addSupportLink; }forEach _x; }forEach _requestProviders; }forEach TAG_supportRequestors; { _to setVariable [format ["BIS_SUPP_used_%1", _x], 0, true] } forEach [ "Artillery", "CAS_Heli", "CAS_Bombing", "UAV", "Drop", "Transport" ]; _to setVariable ["BIS_SUPP_transmitting", false, true]; if (!(_to kbHasTopic "BIS_SUPP_protocol")) then { _to kbAddTopic ["BIS_SUPP_protocol", "A3\Modules_F\supports\kb\protocol.bikb", "A3\Modules_F\supports\kb\protocol.fsm", {call compile preprocessFileLineNumbers "A3\Modules_F\supports\kb\protocol.sqf"}] }; if (isNil {_to getVariable "BIS_SUPP_HQ"}) then { _to setVariable ["BIS_SUPP_HQ", missionNamespace getVariable format ["BIS_SUPP_HQ_%1", side group _to ]] }; }; }; }]; Both of these rely on mission teamSwitch EH so will need to be applied during intPlayerLocal.sqf or equivalent. Have put through very little testing so may still need some adjusting, I have just quickly put something together to get you heading in the right direction. Its pretty much the same as previous code I have shared on this forum, without the extra code to transfer support used counts. Share this post Link to post Share on other sites
avibird 1 36 Posted May 15, 2018 @Larrow hi I think you give me that code block a while back. Yes it give the human player the ability to have the support with ever unit he team switches into very cool but not may preference. I usually play with a few squads of playabke/switchable units. I prefer that each squad has the ability to use certain things and if that unit goes down that's the way the cookie crumbles lol. I appreciate your input but the the Doctor vanilla made it sound that it would work with the team switch enabled to the various classes of units defined in the script. Unfortunately I never understood why he Bohemia never made the modules for multiplayer with access from multiple units to use it. Share this post Link to post Share on other sites
avibird 1 36 Posted May 15, 2018 @Larrow so in your second code block you provided ie TAG_allowedSupportUnitTypes ect....... This would let me setup the support for let's say two other units in a different squad. Both of the having the class of B_T_Sniper_F. I just need to added the code to a intPlayerLocal.sqf. If yes I still need to setup the support modules the old-fashioned way to the first unit link to all of the the modules I want? Share this post Link to post Share on other sites
Ry4nD 84 Posted May 19, 2018 On 15/05/2018 at 4:00 PM, avibird 1 said: @Larrow hi I think you give me that code block a while back. Yes it give the human player the ability to have the support with ever unit he team switches into very cool but not may preference. I usually play with a few squads of playabke/switchable units. I prefer that each squad has the ability to use certain things and if that unit goes down that's the way the cookie crumbles lol. I appreciate your input but the the Doctor vanilla made it sound that it would work with the team switch enabled to the various classes of units defined in the script. Unfortunately I never understood why he Bohemia never made the modules for multiplayer with access from multiple units to use it. I am sorry I am not familiar with teamswitch, I have never used that. The support works based on the player class, and they have to be a playable unit. If you enable it for each playable unit, every playable unit will have the support. I am not sure how I can help you. Share this post Link to post Share on other sites
Ry4nD 84 Posted May 19, 2018 On 15/05/2018 at 1:01 PM, Larrow said: No need to do this part as the following call to BIS_fnc_addSupportLink already does this for you. Only if they are players. BIS_supp_refresh causes any supports to refresh their users, but if they are not a player they are ignored. You will need to run the code once the player has changed into the appropriate unit. There are also many other variables needed on the player object for supports to work properly. This will transfer all supports and their providers to the unit the player team switches into. No used support amounts are transferred and everything is reset as if from fresh. Reveal hidden contents addMissionEventHandler [ "TeamSwitch", { _nul = _this spawn { params[ "_from", "_to" ]; _allrequestors = synchronizedObjects _from select { typeOf _x == "SupportRequester" }; _requestProviders = _allrequestors apply { synchronizedObjects _x select { typeOf _x in BIS_SUPP_providerTypes } }; waitUntil { player isEqualTo _to }; { _requestor = _x; { { _provider = _x; [ _to, _requestor, _provider ] call BIS_fnc_addSupportLink; }forEach _x; }forEach _requestProviders; }forEach _allrequestors; { _to setVariable [format ["BIS_SUPP_used_%1", _x], 0, true] } forEach [ "Artillery", "CAS_Heli", "CAS_Bombing", "UAV", "Drop", "Transport" ]; _to setVariable ["BIS_SUPP_transmitting", false, true]; if (!(_to kbHasTopic "BIS_SUPP_protocol")) then { _to kbAddTopic ["BIS_SUPP_protocol", "A3\Modules_F\supports\kb\protocol.bikb", "A3\Modules_F\supports\kb\protocol.fsm", {call compile preprocessFileLineNumbers "A3\Modules_F\supports\kb\protocol.sqf"}] }; if (isNil {_to getVariable "BIS_SUPP_HQ"}) then { _to setVariable ["BIS_SUPP_HQ", missionNamespace getVariable format ["BIS_SUPP_HQ_%1", side group _to ]] }; }; }]; This will setup support access from the named requester and it providers, when the player team switches into a unit of a specific type or named unit. Reveal hidden contents TAG_allowedSupportUnitTypes = [ "B_T_Sniper_F" ]; //Or/And unit var names TAG_supportRequestors = [ NameGivenToRequestorModules ]; addMissionEventHandler [ "TeamSwitch", { _nul = _this spawn { params[ "_from", "_to" ]; if ( _to in TAG_allowedSupportUnitTypes || { { typeOf _to == _x }count TAG_allowedSupportUnitTypes > 0 } ) then { _requestProviders = TAG_supportRequestors apply { synchronizedObjects _x select { typeOf _x in BIS_SUPP_providerTypes } }; waitUntil { player isEqualTo _to }; { _requestor = _x; { { _provider = _x; [ _to, _requestor, _provider ] call BIS_fnc_addSupportLink; }forEach _x; }forEach _requestProviders; }forEach TAG_supportRequestors; { _to setVariable [format ["BIS_SUPP_used_%1", _x], 0, true] } forEach [ "Artillery", "CAS_Heli", "CAS_Bombing", "UAV", "Drop", "Transport" ]; _to setVariable ["BIS_SUPP_transmitting", false, true]; if (!(_to kbHasTopic "BIS_SUPP_protocol")) then { _to kbAddTopic ["BIS_SUPP_protocol", "A3\Modules_F\supports\kb\protocol.bikb", "A3\Modules_F\supports\kb\protocol.fsm", {call compile preprocessFileLineNumbers "A3\Modules_F\supports\kb\protocol.sqf"}] }; if (isNil {_to getVariable "BIS_SUPP_HQ"}) then { _to setVariable ["BIS_SUPP_HQ", missionNamespace getVariable format ["BIS_SUPP_HQ_%1", side group _to ]] }; }; }; }]; Both of these rely on mission teamSwitch EH so will need to be applied during intPlayerLocal.sqf or equivalent. Have put through very little testing so may still need some adjusting, I have just quickly put something together to get you heading in the right direction. Its pretty much the same as previous code I have shared on this forum, without the extra code to transfer support used counts. "BIS_supp_refresh" is needed to make the support repeatable in multiplayer. Otherwise after you use it the first time, It disappears. Share this post Link to post Share on other sites
Ry4nD 84 Posted May 23, 2018 My latest mission I have it setup like this; //Support Requester By RCANTEC(RyanD) 2018 _this select 0 synchronizeObjectsAdd [SupportRequester]; SupportRequester synchronizeObjectsAdd [_this select 0]; BIS_supp_refresh = TRUE; publicVariable "BIS_supp_refresh"; if (typeOf (_this select 0) isEqualTo "rhsusf_army_ocp_squadleader", "rhsusf_army_ocp_teamleader", "rhsusf_socom_marsoc_teamleader", "rhsusf_socom_marsoc_teamchief", "rhsusf_socom_marsoc_sniper") then { [_this select 0, SupportRequester, ArtilleryProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, CasProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, TransportProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, AmmoProvider] call BIS_fnc_addSupportLink; [_this select 0, SupportRequester, HelicasProvider] call BIS_fnc_addSupportLink; }; Works just fine, not sure about the teamswitch though, I can't find any information regarding. I may update the github, once I test this configuration some more. 1 Share this post Link to post Share on other sites
avibird 1 36 Posted May 23, 2018 @Doctor-Vanilla if you could get this to work using team switch it would be greatly appreciated and need it with this basic function that should have been included in the vanilla game Avibird Share this post Link to post Share on other sites