diwako 413 Posted April 19, 2018 This script adds an additional layer to ACRE2's signal calculation which allows to modify the output power and receive power of radios on the fly. With this script it is possible to either boost or jam a signal from any specific unit. The script will allow setting custom modifiers to units to modify the unit’s radios receiving and sending power. Just copy the script folder into your mission folder and edit your description.ext's CfgFunctions class like in the example. With this the custom signal calculation is active! You will not be able to boost your radio signal across the whole map with this! ACRE2's algorithm has some hard limits for radios! Dependencies ACRE2 CBA Media: Examples: Boost sending and receiving power player setVariable ["acre_send_power", 1000, true]; player setVariable ["acre_receive_power", 1000, true]; Make it impossible for the unit to receive any radio comms while still able to talk over comms player setVariable ["acre_send_power", 1, true]; player setVariable ["acre_receive_power", 0, true]; Make it impossible to talk over radio but still be able to hear radio comms player setVariable ["acre_send_power", 0, true]; player setVariable ["acre_receive_power", 1, true]; Degrade signal so badly that being 200 meters away is already completely garbled on the 343 player setVariable ["acre_send_power", 0.00001, true]; player setVariable ["acre_receive_power", 0.00001, true]; Using the signal jammer script designed to be used on radio tower objects, more information here: /* // example for setting up a radio jammer zone // Params: // 1: object which is jamming // 2: Jamming strength in mW // 3: Array of frequencies jammed, Array in array possible, notation is [start frequency, end frequency] // 4: Effective zone, distance to jammer which fully applies the full jamming strength // 5: Falloff zone, zone in which units are still affected, but the strengths gets linear worse of the jammer */ private _trigger = [antenna, 5000, [[0,9000],9002], 50, 10] call diw_acre_fnc_createRadioJammer; Download: https://github.com/diwako/ACRE2-Custom-Signal-Calculation 7 2 Share this post Link to post Share on other sites
diwako 413 Posted April 20, 2018 Seems it was too tired yesterday and actually forgot to include the link to the github page. Woops, it is added now. Share this post Link to post Share on other sites
Spoor 23 Posted April 20, 2018 Hi @diwako - noob here, will it be posible to activate the script(s) by trigger when a player enters an area/trigger - please to hear - thanks Share this post Link to post Share on other sites
diwako 413 Posted April 20, 2018 7 minutes ago, Spoor said: Hi @diwako - noob here, will it be posible to activate the script(s) by trigger when a player enters an area/trigger - please to hear - thanks Yep, the mission included has two examples. One for jamming the other for boosting signals. You do not really need to "activate" the script besides running it from the initPlayerLocal.sqf, you are just setting a variable to a unit and it will work. You just need to keep in mind that the variable has to be set globally, that is why the "true" is at the end of every setVariable. 1 Share this post Link to post Share on other sites
Guest Posted April 20, 2018 An Armaholic mirror is now available: ACRE2 Custom Signal Calculation v1.00 Share this post Link to post Share on other sites
computer 113 Posted April 23, 2018 Great stuff. Been looking for functionality like this. Share this post Link to post Share on other sites
diwako 413 Posted April 24, 2018 Here a video of it in action 1 1 Share this post Link to post Share on other sites
diwako 413 Posted April 29, 2018 Pushed an update to version 1.1 -Moved script compilation from initPlayerLocal.sqf to init.sqf -Added signal jamming script (see init.sqf for example and "radio frequencies and power.txt" for defaul radio information) -added a txt file for default radio frequency and power information I noticed, especially in the group I am playing with, that people people are excited for radio jamming in missions, but either lack skill or motivation to write their own jamming towers, so I am going to introduce a way to add jammers and still have signal boosting available. New script: Radio jammer Attaches a zone which jams comms to an object. Script has to be called from server! The jammer can be disabled by either killing/destroying the object that is supposed to jam radios or by setting the variable "jammer_active" at the trigger to false. The the jammer will have an effective area and a falloff area. Everyone inside the effective area is under full effect of the radio jamming. Everyone in the falloff area is affected to some extend. Here some illustration to make it hopefully clearer The jammer will have a set sending power and a set of given frequencies which will be affected. Which means it will be possible to block certain channels for certain radios if the mission maker desires. E.g.mission maker can set it up that only LRR channels are affected and others not. This also means it is possible to just block channel 1 for the PRC-343, but channel 2 is completely fine. The next thing is sending power. If a radio has more power then the tower, the radio will get a hit in sending range, but will still transmit and people will be able to hear it. Setting the jamming power way higher then any radio can send just means the falloff area will be way harsher! Signals sent from within a jamming area are already weakened, so if you are standing inside the same or another jamming area the signals will be weakened even further! That means people standing outside the jamming area will have an easier time hearing someone else then people standing inside the area. Script example /* // example for setting up a radio jammer zone // Params: // 1: object which is jamming // 2: Jamming strength in mW // 3: Array of frequencies jammed, Array in array possible, notation is [start frequency, end frequency] // 4: Effective zone, distance to jammer which fully applies the full jamming strength // 5: Falloff zone, zone in which units are still affected, but the strengths gets linear worse of the jammer */ private _trigger = [antenna, 5000, [[0,9000],9002], 50, 10] call diw_acre_fnc_createRadioJammer; Download: https://github.com/diwako/ACRE2-Custom-Signal-Calculation 2 Share this post Link to post Share on other sites
Guest Posted April 29, 2018 The Armaholic mirror has been updated with the new version: ACRE2 Custom Signal Calculation v1.1 Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted April 29, 2018 Thanks diwako for this nice script! Good work! Share this post Link to post Share on other sites
Spoor 23 Posted June 18, 2018 @diwako - thanks update could the tickers be replaced by vehicles for examble and be separated for Blu and Opfor ?? working on a large scale TvT (60/60) which should be in the air after the summer. On both sides players could place the vehicles (or antenna) somewhere on the map and jam the opposite party in a certain area but it shouldnt work for the faction that place the jamming vehicle in that particulair area - please to hear - thanks again. Testing yr new script now - thanks Share this post Link to post Share on other sites
diwako 413 Posted June 18, 2018 28 minutes ago, Spoor said: @diwako - thanks update could the tickers be replaced by vehicles for examble and be separated for Blu and Opfor ?? working on a large scale TvT (60/60) which should be in the air after the summer. On both sides players could place the vehicles (or antenna) somewhere on the map and jam the opposite party in a certain area but it shouldnt work for the faction that place the jamming vehicle in that particulair area - please to hear - thanks again. Testing yr new script now - thanks You can make any object as a jammer, they however will stay stationary. So moving objects are not supported. For the Blufor or Opfor range separation, the only way is pretty much splitting their comms to different radio channels or blocks for the 343. The Signal jamming towers are made to block frequencies and they do not really care who they are jamming. My recommendation is setting the players radios to the right frequencies/channels/blocks on mission start (acre offers such a function, somewhere) and note down which range is considered friendly. So players who are setting up towers know which frequencies they better not jam. Best also randomize the frequencies for each round and set up different default frequencies for the radios. For the default frequencies you can take a look inside the txt file. It has all default frequencies added. Edit: Taking a quick look at the code, the create jammer script returns the created trigger. You could just attach that to a vehicle and then it should work as mobile jammer. 1 Share this post Link to post Share on other sites
diwako 413 Posted March 29, 2021 Hey, its been a while. Just wanted to say I updated the custom signal calculation function to work with the current acre version. It is not a large change by itself but a small fix 🙂 Script version is now: 1.1.1 Share this post Link to post Share on other sites
NightIntruder 710 Posted March 29, 2021 Nevermind. I found the information I was looking for. Share this post Link to post Share on other sites
diwako 413 Posted March 29, 2021 7 minutes ago, NightIntruder said: Hey, diwako, perhaps you know the thing that bothers me - is it possible to get frequencies used by radios racked in a vehicle? I couldn't find information about that in the official ACRE documentation. I need to intercept the frequencies and show them on COMM displays in an aircraft via script. Cannot really test it myself, but i think it was like this private _txData = [_txRadioId, "getCurrentChannelData"] call ace_sys_data_fnc_dataEvent; private _txFreq = _txData getVariable "frequencyTX"; _txRadioId is the radio class with id. _txFreq is resulting frequency, but not channel. 1 Share this post Link to post Share on other sites
NightIntruder 710 Posted March 29, 2021 7 minutes ago, diwako said: Cannot really test it myself, but i think it was like this private _txData = [_txRadioId, "getCurrentChannelData"] call ace_sys_data_fnc_dataEvent; private _txFreq = _txData getVariable "frequencyTX"; _txRadioId is the radio class with id. _txFreq is resulting frequency, but not channel. Thanks, it's gonna make my life much easier 🙂 So, I guess the function [cursorTarget] call acre_api_fnc_getVehicleRacks will give me the radios in racks and their IDs, right? Share this post Link to post Share on other sites
diwako 413 Posted March 29, 2021 14 minutes ago, NightIntruder said: Thanks, it's gonna make my life much easier 🙂 So, I guess the function [cursorTarget] call acre_api_fnc_getVehicleRacks will give me the radios in racks and their IDs, right? More of a question to the acre devs 😉 A short look into the function and its documentation, seems it is returning a list of racks. Not sure what exactly is returned, but I can imagine it is a like of strings, each string being a rack class + id. 1 Share this post Link to post Share on other sites
NightIntruder 710 Posted March 29, 2021 I am gonna test it on my own, thanks a lot! PS. The function above returns the array of mounted radios, like ["acre_vrc103_id_1","acre_vrc103_id_1"] from which I can pick one and apply your code. It, however, returns: "any" instead of a frequency. The code I used in debug console was like this: while {alive (vehicle player)} do { private _txRadioId = [(vehicle player)] call acre_api_fnc_getVehicleRacks; private _txDataPri = [(_txRadioId select 0), "getCurrentChannelData"] call ace_sys_data_fnc_dataEvent; private _txFreqPri = _txDataPri getVariable "frequencyTX"; hint format ["Freq:,%1",_txFreqPri]; }; Because of this, I guess, the rest of my code doesn't show any numbers on comm displays, but no errors are returned either, tho. Not sure what I am doing wrong. Obviously player was inside the plane otherwise, an empty array of mounted radios is returned. Share this post Link to post Share on other sites
diwako 413 Posted October 16, 2021 I have refactored this to be easier to add to your mission. It still works the same as before. https://github.com/diwako/ACRE2-Custom-Signal-Calculation 1 Share this post Link to post Share on other sites
kromka 40 Posted June 17, 2022 @diwako How to stop jamming without destroying an object? I would like to add your jamming feature as a switch: jam on/off. Share this post Link to post Share on other sites
diwako 413 Posted June 18, 2022 10 hours ago, kromka said: @diwako How to stop jamming without destroying an object? I would like to add your jamming feature as a switch: jam on/off. When creating the jammer on server with function "diw_acre_fnc_createRadioJammer" it returns the trigger of it. That is the first way of getting the trigger. Second one is, the object the trigger is attached to has a reference to it as well. if you do _obj getVariable ["jammer_zone", objNull]; that is the second way to get the trigger. Then it is fairly easy. You do this and the jamming zone is deactivated. _trg setVariable ["jammer_active", false, true]; 1 Share this post Link to post Share on other sites
dennis159 0 Posted December 26, 2023 Hey, I know this topic is pretty old, but I have a question. Is it possible to jam only certain radios instead of frequencies? Just a quick explanation: We are currently building an AltisLife server (obviously modded), and would like to implement a 2-radio system for our state factions "authorities" (police / emergency services). We will distinguish between the (at least in Germany they are called that, in the rest of the world, no idea xD) "BOS digital radio" and the "2-meter-band analog radio". Like the cell phone network, BOS digital radio only works via radio/repeater stations. However, we simply want to represent this with the classic long-range radio and a range of 25 km. The "2-meter-band analog radio" should then be implemented with the short-range radios and a range of only 1.5km (we know how we do this in ACRE). However, the rebels will now have the opportunity to paralyze digital radio by hacking radio masts. We have already written a working script for this. In every ArmA3 1x1km mapgrid there is a radio mast which can be hacked. If the hack is successful, a script is to be executed which deactivates all radios from a certain array (our "BOS Digitalfunk" long range radios). And that in this specific affected map grid. This is where we came across your script. Unfortunately, we currently only see the possibility of a jammer for a certain radius and certain frequencies, OR to completely remove the player from hearing / speaking on the radio in general. Now, however, he should only be unable to hear/talk in long range radio, but be able to continue chatting unhindered and undisturbed in short range. How can we implement this with your script? Sorry for the long text, but I thought it would be easier to understand what we want if you can see what it's for. This is the code snippet we use to check if a player is in the affected map square: params ["_repeater"]; /* As long as the repeater is hacked (var GG_repeater_0501_hacked == true), the system checks every 5 seconds whether the player is in the map grid of the hacked repeater. If he is, his send- and recivepower is set to 0. This means he can neither hear nor speak on the radio. */ while { GG_repeater_0501_hacked } do { private _repeaterPosition = (_repeater splitString "_")#1; private _gridPosArrayPlayer = ((mapGridPosition player) splitString ""); private _1by1GridPlayer = _gridPosArrayPlayer#0 + _gridPosArrayPlayer#1 + _gridPosArrayPlayer#3 + _gridPosArrayPlayer#4; if(_1by1GridPlayer isEqualTo _repeaterPosition) then { player setVariable ["acre_send_power", 0, true]; player setVariable ["acre_receive_power", 0, true]; } else { player setVariable ["acre_send_power", 1, true]; player setVariable ["acre_receive_power", 1, true]; } sleep 5; } // Repeater back in function - therefore the While loop ends and everyone can transmit again. player setVariable ["acre_send_power", 1, true]; player setVariable ["acre_receive_power", 1, true]; This code snippet works very well. But it disables receiving and transmitting on ALL radios. But we want the script to block sending and receiving only on specific radios defined in an array. Share this post Link to post Share on other sites