Search the Community
Showing results for tags 'spectrum'.
Found 2 results
-
Hello, so I spent last 4 days reverse engineering and studying the new contact functions and scripting systems. I have figured out almost everything and I will update this thread as I figure out rest of what's left unexplored. Spectrum Device / EM / Radios This one was really tough to solve. The internal system is quite big and chaotic a little bit. The most important functions tend to be descripted, but the rest of the system are "unorganized" chunks of codes. [string: Antenna ID,object: Owner,int: Antenna Type] call BIN_fnc_setAntenna; This function is easy to use. You just think of some unique ID for the antenna, object that will hold the antenna and you define the type of antenna (2 -> transceiver = both receives and transmits signal) Antenna ID is also looked up in the config for predefined values. Check CfgContact >> Antennas Example: ["AlienTracker",bin_drone,2] call BIN_fnc_setAntenna; [string: Antenna ID,string: Signal classname] call BIN_fnc_addSignal; This function is easy to use too. It gives the antenna sounds (signals) we want to play on it. The signals are defined in the config CfgContact >> Signals Signals can be looped. Example: ["AlienTracker","EM_Drone_01_Tracking_01"] call BIN_fnc_addSignal; [string: Antenna ID, string: Name] call BIN_fnc_setAntennaName; Set's the visible name of the antena ie. when used on squad, instead of "Unknown squad" displays the second param Example: ["AlienTracker","Ligma ET"] call BIN_fnc_setAntennaName; [object: UGV class UAV] spawn BIN_fnc_initUGV; This sets up all the EM functionality for UGVs UGVs emit UAV Telemetry signals and listens for jamming and hacking Hold action is added to the UGV for it's destruction. All UGVs set by this functions are on the same frequency, think of that when planning placements Example in editor init: [this] spawn BIN_fnc_initUGV; [object: unit, string: Company, string: Squad] spawn BIN_fnc_initAISquad; This one is the party popper. This is the one used on unit groups. It is initialized on any unit in the group Company is string in format "C0?" where ? stands for a number from 1 to 9 (but it really just reads entries from config CfgContact >> Antennas It is C-zero-one not C-O-one Squad is a single lowercase letter from "a" to "h" and "q" which is the base (not used in this function) This function looks for units that have a radio backpack on them in the whole group, uses them as target unit if found Example in editor init: [this, "C01", "a"] spawn BIN_fnc_initAISquad; The EM system for AI Base is created automaticaly from script initAISquad, which checks if the base is already ready or not. There are missionNamespace scripted eventHandlers for signal listening and custom scripting but I didn't test these enough to tell you about them properly. Alien Drone The small alien drone can be easily placed in editor (best practice as side east) and has two types of behaviour - Aggresive and Passive. You can read about the setup on the wiki https://community.bistudio.com/wiki?title=Arma_3_Alien_Entity_Behavior Official variable naming of the drone is bin_drone There are some uncovered script functions however (please note, I didn't yet properly test all behaviour branches so information I provide may be misleading anyhow) [object: Drone,int: Max signals,int: Jamming time,array: ?next puzzle?,int: number of repetitions] call bin_fnc_puzzle_mole; This function creates what is called a puzzle - numerous signals for player to jam with their signal detector. Max signals defines how many concurent signals are visible on the spectrum at the same time Jamming time defines how long it takes to jam one signal successfuly Next puzzle is something I didn't mess up with yet, so I can't provide much information Number of repetitions define how many times a new signal emerges when one is jammed There is a scripted eventHandler for you to listen, that fires when the puzzle is completed [missionNamespace, "puzzleCompleted",{/*codehere*/}] call bis_fnc_addScriptedEventHandler; There are other event handler (self-explanatory): puzzleReset, puzzleStepCompleted, puzzleTerminated There is a lot of functions puzzle-related.. I am messing with them now, so I will fill this list when I create more robust information Example: [bin_drone,1,1,[],3] call bin_fnc_puzzle_mole; [object: Drone,int: Radius m,int: Speed m/s,int: Delay] call bin_fnc_setGravityPulse; Shield's effect is made using light entity nad sound effect (when hit, PP is also used) Shield eats away stamina and stops the player for a second when near the source. Shield shakes the player's camera and creates deep sounds when felt from far. Speed is the speed, the gravity shield reaches the Radius distance from the drone Radius define the distance from the drone the shield will reach This one creates pulsing shield around the Drone once every Delay seconds Example: [bin_drone,300,100,3] call bin_fnc_setGravityPulse; [object: AFO] call BIN_fnc_initMothershipLights; Powers up the big AFO (it's lights) CBRN There are some CBRN functions not explained in the wiki (specialized on the chemical warfare), but are tagged as incomplete or "not robust" so I will be experimenting with them and when something is proved to be working I will list it here Other There are few useful scripts for unit enhancement, you can find more of these on the wiki: https://community.bistudio.com/wiki/Arma_3_CBRN But there are some hidden ones: [object: Unit, bool: Attach/detach] spawn bin_fnc_attachChemlight; Attaches a blue glowstick on the shoulder of the unit the same way as it is seen in campaign. Best practice is to mark only soldiers with radios that can be messed up with signal detector. Example: [this, true] spawn bin_fnc_attachChemlight; [object: Ball, int: Time to decompose] spawn BIN_fnc_matterBallEffects; Effects used for the matter balls (yellow blobs the alien leaves behind) Adds lights, refraction particles and animates the ball to decompose itself Example: [this, 100] spawn bin_fnc_matterBallEffects [object: Vehicle] call BIN_fnc_empVehicle; Tunes the vehicle so it's more post-EMP Can be reverted by setting second parameter bool (destruction of the engine) Example: [this] call BIN_fnc_empVehicle; [object: Unit, vector: Force] call BIN_fnc_setRagdoll; Ragdolls the unit with the directional force Example: [player,[0,100,0]] call BIN_fnc_setRagdoll; [classname: Vision type] spawn BIN_fnc_showVision; The hallucination effect from the campaign when player completed the drone's puzzles Takes the data from config CfgContact >> VisionSequences [bool: Shown] call BIN_fnc_showHorizontalCompass; Shows or hides the horizontal compass at the top of the screen Example: [true] call BIN_fnc_showHorizontalCompass; So that's it, at least for now.. I will update this thread as I discover and study more scripts and functions the Contact DLC has to offer. Trust me, there is a lot of unused things (chemical detector for example) and I've created a lot of custom scripts to complement these features. Just take a look at this sneak peak: If there is anyone that wants to study these things with me, you just need the Functions and Config viewers. I tried to take a peak inside campaign init files, but there are mostly empty or contains unrelevant logic. The hard-way is sometimes the only way, at least for now 😄
- 31 replies
-
- 31
-
Hey all, I thought I'll just showcase one thing that I came up with and built last week. Any thoughts on that? Do you reckon it could be useful?