ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post Reply
User avatar
Nummi
Posts: 1589
Joined: 26 Nov 2013, 01:52
Location: Stadi

ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post by Nummi »

Näillä skripteillä voi määrittää mm. pitkässä kanavien nimet ja määrittää pelaajille automaattisesti tietty kanava tehtävän alkaessa.

Company RTO Setup Script

Code: Select all

/*! @file examples\mission_setupCompanySignals.sqf
 *
 *      \brief Sample of setting up RTO's for a company signals setup.
 *
 *  Called by: [this, "platoon_rto"] call compile "mission_setupCompanySignals.sqf";
 *
 *  This setup assumes that each RTO has a single PRC-152 and a single PRC-117F.
 *      Each platoon command and the company commander has not been configured in this config, but canFire
 *      easily be added to the switch statement below.
 *
 *  The order of operations is documented in the script below.
 *
 */
 private["_unit", "_localUnitType", "_localRadioList"];
 _unit = _this select 0;
 _localUnitType = _this select 1;
if(player != _unit) exitWith { false };


// First we copy the presets. This is not required, but for this example a seperate preset called example1 is being
// used just for this example.
//
// !! Keep in mind, each radio has its own set of presets. So when we operate on a radios preset, they can have the
//              same names but they are different presets due to the fact its a different radio.

["ACRE_PRC148", "default", "example1"] call acre_api_fnc_copyPreset;
["ACRE_PRC152", "default", "example1"] call acre_api_fnc_copyPreset;
["ACRE_PRC117F", "default", "example1"] call acre_api_fnc_copyPreset;

// Below, we simply name all the channels for each radio, to matching names. This will make the radios
// in game (and in the popup hint) show the NAME of the channel they are speaking on.
// Next, we rename the first 6 channels on each radios preset. The field names are different for each
// radio type because they are dependent of the radio's programming and configuration. This was done
// in ACRE because the actual field names match the technical specifications of how these radios
// internally handle their data.
//
// Although the names are different, they serve the same purpose. "name", "description" and "label" are
// the 3 different ways the 148, 152 and 117 reference their internal channel naming schemes.

["ACRE_PRC152", "example1", 1, "description", "PLTNET 1"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 2, "description", "PLTNET 2"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 3, "description", "PLTNET 3"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 4, "description", "COY"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 5, "description", "CAS"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 6, "description", "FIRES"] call acre_api_fnc_setPresetChannelField;

["ACRE_PRC148", "example1", 1, "label", "PLTNET 1"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC148", "example1", 2, "label", "PLTNET 2"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC148", "example1", 3, "label", "PLTNET 3"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC148", "example1", 4, "label", "COY"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC148", "example1", 5, "label", "CAS"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC148", "example1", 6, "label", "FIRES"] call acre_api_fnc_setPresetChannelField;

["ACRE_PRC117F", "example1", 1, "name", "PLTNET 1"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 2, "name", "PLTNET 2"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 3, "name", "PLTNET 3"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 4, "name", "COY"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 5, "name", "CAS"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 6, "name", "FIRES"] call acre_api_fnc_setPresetChannelField;


// Finally, we save the preset information. This command basically "selects" the preset to be used for the radio.
// Remmember, each radio has its own presets; so we have to save each preset for each radio.
["ACRE_PRC152", "example1"] call acre_api_fnc_setPreset;
["ACRE_PRC148", "example1"] call acre_api_fnc_setPreset;
["ACRE_PRC117F", "example1"] call acre_api_fnc_setPreset;

_this spawn {
         _unit = _this select 0;
        _localUnitType = _this select 1;

        waitUntil { ([] call acre_api_fnc_isInitialized ) };
        switch _localUnitType do {
                case 'platoon_rto': {
                        [ (["ACRE_PRC117F"] call acre_api_fnc_getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call acre_api_fnc_getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'company_rto': {
                        [ (["ACRE_PRC117F"] call acre_api_fnc_getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call acre_api_fnc_getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'forward_observer': {
                        [ (["ACRE_PRC117F"] call acre_api_fnc_getRadioByType), 6] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call acre_api_fnc_getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                };
                case 'JTAC': {
                        [ (["ACRE_PRC117F"] call acre_api_fnc_getRadioByType), 5] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call acre_api_fnc_getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                };
        };
};
Company with squads:

Code: Select all

if(isDedicated) exitWith {};

private["_unit", "_localUnitType"];
_unit = _this select 0;
_localUnitType = _this select 1;

if(_unit != player) exitWith { false };

["ACRE_PRC152", "default", "example1"] call acre_api_fnc_copyPreset;
["ACRE_PRC117F", "default", "example1"] call acre_api_fnc_copyPreset;

["ACRE_PRC152", "example1", 1, "description", "PLTNET 1"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 2, "description", "PLTNET 2"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 3, "description", "PLTNET 3"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 4, "description", "COY"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 5, "description", "CAS"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC152", "example1", 6, "description", "FIRES"] call acre_api_fnc_setPresetChannelField;

["ACRE_PRC117F", "example1", 1, "name", "PLTNET 1"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 2, "name", "PLTNET 2"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 3, "name", "PLTNET 3"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 4, "name", "COY"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 5, "name", "CAS"] call acre_api_fnc_setPresetChannelField;
["ACRE_PRC117F", "example1", 6, "name", "FIRES"] call acre_api_fnc_setPresetChannelField;

["ACRE_PRC152", "example1"] call acre_api_fnc_setPreset;
["ACRE_PRC117F", "example1"] call acre_api_fnc_setPreset;

_this spawn {
        _unit = _this select 0;
        _localUnitType = _this select 1;

        waitUntil { ([] call acre_api_fnc_isInitialized) };

        switch _localUnitType do {
                case 'ftl_leader_1': { [ (["ACRE_PRC343"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel; };
                case 'ftl_leader_2': { [ (["ACRE_PRC343"] call getRadioByType), 2] call acre_api_fnc_setRadioChannel; };
                case 'ftl_leader_3': { [ (["ACRE_PRC343"] call getRadioByType), 3] call acre_api_fnc_setRadioChannel; };
                case 'ftl_leader_4': { [ (["ACRE_PRC343"] call getRadioByType), 4] call acre_api_fnc_setRadioChannel; };
                case 'ftl_leader_5': { [ (["ACRE_PRC343"] call getRadioByType), 5] call acre_api_fnc_setRadioChannel; };
                case 'ftl_leader_6': { [ (["ACRE_PRC343"] call getRadioByType), 6] call acre_api_fnc_setRadioChannel; };

                case 'squad_leader_1': {
                        [ (["ACRE_PRC343"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'squad_leader_2': {
                        [ (["ACRE_PRC343"] call getRadioByType), 2] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'squad_leader_3': {
                        [ (["ACRE_PRC343"] call getRadioByType), 3] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'squad_leader_4': {
                        [ (["ACRE_PRC343"] call getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 2] call acre_api_fnc_setRadioChannel;
                };
                case 'squad_leader_5': {
                        [ (["ACRE_PRC343"] call getRadioByType), 5] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 2] call acre_api_fnc_setRadioChannel;
                };
                case 'squad_leader_6': {
                        [ (["ACRE_PRC343"] call getRadioByType), 6] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 2] call acre_api_fnc_setRadioChannel;
                };

                case 'platoon_hq_1':  { [ (["ACRE_PRC343"] call getRadioByType), 7] call acre_api_fnc_setRadioChannel; };
                case 'platoon_hq_2':  { [ (["ACRE_PRC343"] call getRadioByType), 8] call acre_api_fnc_setRadioChannel; };
                case 'company_hq':  { [ (["ACRE_PRC343"] call getRadioByType), 9] call acre_api_fnc_setRadioChannel; };

                case 'company_rto': {
                        [ (["ACRE_PRC343"] call getRadioByType), 9] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC117F"] call getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'company_commander': {
                        [ (["ACRE_PRC343"] call getRadioByType), 9] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                };
                case 'platoon_leader_1': {
                        [ (["ACRE_PRC343"] call getRadioByType), 7] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'platoon_leader_2': {
                        [ (["ACRE_PRC343"] call getRadioByType), 8] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 2] call acre_api_fnc_setRadioChannel;
                };
                case 'platoon_rto_1': {
                        [ (["ACRE_PRC343"] call getRadioByType), 7] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC117F"] call getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 1] call acre_api_fnc_setRadioChannel;
                };
                case 'platoon_rto_2': {
                        [ (["ACRE_PRC343"] call getRadioByType), 8] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC117F"] call getRadioByType), 4] call acre_api_fnc_setRadioChannel;
                        [ (["ACRE_PRC152"] call getRadioByType), 2] call acre_api_fnc_setRadioChannel;
                };
        };
};
Furean wrote:Pitää muistaa, että ruotsalaisethan pani melkein koko Suomen kansaa.
ruoste wrote:Dataa on saatava.
Scottz
Posts: 562
Joined: 14 Aug 2013, 11:48
Location: Hki

Re: ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post by Scottz »

Näin ehdotuksena heittäisin, että tehtävätiimi voisi laajemminkin pohtia selkeää ohjeistusta ja standardia siihen, että tehtävissä radiokanavat olisivat viestiperusteiden mukaiset oletusarvoisesti. Etenkin uudempien pelaajien kannalta olisi hyvä, että joka ikisessä tehtävässä olevat alkuhärväykset saisi minimoitua skripteillä: radio oikealla kanavalla, korvatulpat päässä ja ase varmistettuna.
The only hope you have is to accept the fact that you're already dead and the sooner you'll accept that, the sooner you're able to function as a soldier's supposed to function. Without mercy, without compassion, without remorse. All war depends upon it.
User avatar
Nummi
Posts: 1589
Joined: 26 Nov 2013, 01:52
Location: Stadi

Re: ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post by Nummi »

Scottz wrote:Näin ehdotuksena heittäisin, että tehtävätiimi voisi laajemminkin pohtia selkeää ohjeistusta ja standardia siihen, että tehtävissä radiokanavat olisivat viestiperusteiden mukaiset oletusarvoisesti. Etenkin uudempien pelaajien kannalta olisi hyvä, että joka ikisessä tehtävässä olevat alkuhärväykset saisi minimoitua skripteillä: radio oikealla kanavalla, korvatulpat päässä ja ase varmistettuna.
Kunhan tulee tätä skriptiä kokeiltua, ilomielin nostan aiheen esiin tehtävätiimin paltsussa. Voisi selkeyttää toimintaa paljon uusille.
Furean wrote:Pitää muistaa, että ruotsalaisethan pani melkein koko Suomen kansaa.
ruoste wrote:Dataa on saatava.
User avatar
Anatooli
Posts: 164
Joined: 26 Jul 2013, 18:15

Re: ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post by Anatooli »

Alla esimerkkiä simppleistä skriptasta, jolla homman pitäisi hoitua yhtä lailla:

Code: Select all

if(!isDedicated) then {
	_grpId = groupId group player;

	waitUntil { ([] call acre_api_fnc_isInitialized) };
	sleep 2; //waitUntil not enough for some reason

	_radio = ["ACRE_PRC343"] call acre_api_fnc_getRadioByType;
	switch _grpId do {
		case 'A1': { [_radio, 1] call acre_api_fnc_setRadioChannel; };
		case 'A2': { [_radio, 2] call acre_api_fnc_setRadioChannel;};
		case 'A3': { [_radio, 3] call acre_api_fnc_setRadioChannel; };
		case 'A4': { [_radio, 4] call acre_api_fnc_setRadioChannel; };
		case 'A10': { [_radio, 5] call acre_api_fnc_setRadioChannel; };
		case 'V1': { [_radio, 6] call acre_api_fnc_setRadioChannel; };
		case 'V2': { [_radio, 7] call acre_api_fnc_setRadioChannel; };
	};
};
Jos tehtävästandardeja / ohjeistusta on noudatettu oikeaoppisesti, ryhmille pitäisi olla asetettu init-kenttässä setGroupId-komennolla tunnus (esim. 'A3'), joita voi vastaavasti käyttää ylläolevan esimerkin mukaisesti. Muuta ei tarvita kuin ryhmätunnuksen, radiokanavan ja brieffistä viestiperusteiden saattaminen vastaamaan toisiaan.
Semper ubi sub ubi
Temppa
Posts: 699
Joined: 30 Jan 2014, 07:33

Re: ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post by Temppa »

Anatooli wrote:Alla esimerkkiä simppleistä skriptasta, jolla homman pitäisi hoitua yhtä lailla:

Code: Select all

if(!isDedicated) then {
	_grpId = groupId group player;

	waitUntil { ([] call acre_api_fnc_isInitialized) };
	sleep 2; //waitUntil not enough for some reason

	_radio = ["ACRE_PRC343"] call acre_api_fnc_getRadioByType;
	switch _grpId do {
		case 'A1': { [_radio, 1] call acre_api_fnc_setRadioChannel; };
		case 'A2': { [_radio, 2] call acre_api_fnc_setRadioChannel;};
		case 'A3': { [_radio, 3] call acre_api_fnc_setRadioChannel; };
		case 'A4': { [_radio, 4] call acre_api_fnc_setRadioChannel; };
		case 'A10': { [_radio, 5] call acre_api_fnc_setRadioChannel; };
		case 'V1': { [_radio, 6] call acre_api_fnc_setRadioChannel; };
		case 'V2': { [_radio, 7] call acre_api_fnc_setRadioChannel; };
	};
};
Jos tehtävästandardeja / ohjeistusta on noudatettu oikeaoppisesti, ryhmille pitäisi olla asetettu init-kenttässä setGroupId-komennolla tunnus (esim. 'A3'), joita voi vastaavasti käyttää ylläolevan esimerkin mukaisesti. Muuta ei tarvita kuin ryhmätunnuksen, radiokanavan ja brieffistä viestiperusteiden saattaminen vastaamaan toisiaan.

Toimii ok tuo, pitää olla vaan ryhmänjohtaja slotattu, muuten ei käännä kanavia automaattisesti.
Bummeri
Posts: 3009
Joined: 09 Nov 2013, 14:35

Re: ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post by Bummeri »

Ahteri wrote: Toimii ok tuo, pitää olla vaan ryhmänjohtaja slotattu, muuten ei käännä kanavia automaattisesti.
Olen huomannut että kannattaa laittaa johonkin toiseenkin slottiin ryhmässä se setgroupid niin ei tule ongelmia.
"Dataa on saatava." -DataNummi
"Toteutus on pilalla, pelkkää paskaa tilalla." -MyösNummi
Temppa
Posts: 699
Joined: 30 Jan 2014, 07:33

Re: ACRE2 - Company RTO Setup Script (Kanavat valmiiksi radioihin esim. Coopissa)

Post by Temppa »

Jatkoin tota scriptiä, tällä voi antaa niille kellä pitkä on eri kanavat:

Code: Select all

if(!isDedicated) then {
   _grpId = groupId group player;

   waitUntil { ([] call acre_api_fnc_isInitialized) };
   sleep 2; //waitUntil not enough for some reason

   _radio = ["ACRE_PRC343"] call acre_api_fnc_getRadioByType;
   switch _grpId do {
      case 'A1': { [_radio, 1] call acre_api_fnc_setRadioChannel; };
      case 'A2': { [_radio, 2] call acre_api_fnc_setRadioChannel;};
      case 'V1': { [_radio, 4] call acre_api_fnc_setRadioChannel; };
      case 'V2': { [_radio, 5] call acre_api_fnc_setRadioChannel; };
      case 'v3': { [_radio, 6] call acre_api_fnc_setRadioChannel;};
      case 'A10': { [_radio, 7] call acre_api_fnc_setRadioChannel; };
   };

_hasRadio = [(items player), "ACRE_PRC117F"] call acre_api_fnc_hasKindOfRadio;
if (_hasradio) then {
 _radio2 = ["ACRE_PRC117F"] call acre_api_fnc_getRadioByType;   
   
   switch _grpId do {
	
      case 'A1': { [_radio2, 2] call acre_api_fnc_setRadioChannel; };
      case 'A2': { [_radio2, 2] call acre_api_fnc_setRadioChannel;};
      case 'V1': { [_radio2, 2] call acre_api_fnc_setRadioChannel; };
      case 'V2': { [_radio2, 2] call acre_api_fnc_setRadioChannel; };
      case 'v3': { [_radio2, 2] call acre_api_fnc_setRadioChannel; };
      case 'A10': { [_radio2, 2] call acre_api_fnc_setRadioChannel; };

   };
  };

};
Post Reply