All pastes #414478 Raw Edit

Miscellany

public text v1 · immutable
#414478 ·published 2007-03-29 01:40 UTC
rendered paste body
LX Group Link 3 for ArmA
Version 1.052
The purpose of Group Link 3 is to analyze the situation on the battlefield, make groups perform maneuvers according to the situation, make the AI appear smarter, more difficult, and more interesting, and to add additional effects. Any squad can be initialized into GL3 and will dynamically react to all other GL3 squads.

Features:
AI routines roughly follow Sun Tzu's "The Art of War." Calculations measuring strength: Morale (strength, skill of leaders, backup, etc), Weather(bad weather affects things, like aircraft and munitions), Terrain (higher altitude versus enemy = tactical advantage), Skill (of leaders, backup, units), Amount of Reinforcements/Support (supplies, arty, air, nearby squads, etc). Flow like water: Flow to low places(fight weak squads), stay and watch slightly higher places(wait and see), run away from high places(fall back and find a weaker spot).
Squads scan through all other GL3 squads to collect information about known friendly and enemy forces.
Squads pass information about enemy squads to each other.
The strength of a squad is based on the number of armed units, type of vehicles, skill of units, skill of leader, and strength of nearby squads.
Infantry squads rush weaker enemies using bounding overwatch. Squads split up into teams and try to stay in a small group when they are rushing while the other teams are laying down. By rushing in a team it's more likely that one of them will get a shot off when they run into an enemy, where as if they were alone they could be picked off one by one.
Squads take cover when overmatched. If there are enterable buildings nearby infantry squads will garrison the building and use it's cover for a while. If the player is squad leader and enters a building with formation set to "Vee" then the player's squad will garrison the building. AI squads garrison nearby buildings at mission start. All buildings can be garrisoned from mission start but only buildings placed in the mission work for garrisoning after loading a save game.
Squads call for backup when they need reinforcements or support.
Squads retreat when they are severely outnumbered. They use bounding overwatch to perform an orderly withdrawl.
Squad radios for communications. Default radio is SINCGARS (SINgle Channel Ground and Air Radio System), each side can be set up to have their own type of radio but only the SINCGARS is included as default for all sides, some modern Russian manpack radios may look similar to the SINCGARS though. If someone in the squad has a radio and there are CoC artillery available then they will call in artillery when they come in contact with the enemy.
Groups shout out relevant commands while performing most actions and maneuvers.

Effects:
Suppressive fire on squads. Rate of fire is determined from any known enemy, so two rifle squads could suppress if they are all firing. A unit can suppress by quickly firing a weapon at an enemy squad.
Some unit types can be configured to create a CoC artillery platoon near them. The unit can be of any side but it must be manned. The default artillery creating units are the ammo trucks for each side.
Working smoke concealment. Smoke can not be seen through by AI's but can be walked and shot through.
APC's deploy smoke when infantry is disembarking in combat.
Tanks and APC's fire smoke grenades when attacked or injured to make them harder targets.
Wind affects aircraft and munitions. Aircraft flying with a headwind will slow down but get extra lift, flying with a tailwind gives more speed but can lose lift and drop in altitude. Wind speed is tied to the weather, so the more windy it is the more affected objects are. Flying in inclement weather can be dangerous, be careful of cross winds and wind shear. To tell how fast the wind is blowing and in which direction, watch for visual cues such as smoke or dust blowing in the wind.
Munition effects. Firing munitions creates effects such as smoke around the barrel, muzzle, and ejection port, a faint vapour trail along the munition's trajectory, tracers, munitions are affected by wind, hit effects with debris and dust, and riccochets. Smoke grenades create actual concealment, it takes a few seconds for the AI's to lose track of you if you're already in their sights, and don't shoot while depending on concealment or the AI's will fire at you. If the AI's are not targeting you then they will never see you if you stay behind the smoke. The smoke screen is affected by the wind, so if the wind changes the screen will move with it. Smoke is hazardous to breathe in for too long, and being in a confined space with smoke can be deadly. Firing a lot of tracers or explosives can set things on fire. Grass can be set on fire with machine gun tracers. Fire flows downwind, so you can plan for where it might go, but beware a change in wind direction sending the fire somewhere else. Uncontroled fires can cause widespread destruction. Launched grenades are not armed until they reach a safe distance of 14 to 27 meters, but unarmed grenades can still ricochet and hurt things that they hit. If you are using a weapon with good optics and the conditions are right you can see the "trace," or vapor trail, of the shot even if it's not a tracer round. You can use the trace to make corrections to your aim.
Vehicle damage. When a vehicle is damaged an effect will happen relevant to the amount and position of the damage. Vehicle damage effects include munitions malfunctions, fuel leaks, fire, tire blowouts, broken glass, main rotor damage, tail rotor failure, and temporary engine failure. For example, if a helicopter gets hit in the tail rotor casuing too much damage it will fail and start to go down. If a vehicle is hit in the engine, fuel tank, or body, it has a chance of starting a fuel leak. If a vehicle is leaking fuel it is vulnerable to catching on fire if it gets damaged again. The extent of the fire is based on the amount of damage the vehicle has, starting out as a small fire and eventually consuming the entire vehicle, then burning back down before extinguishing. The fire does damage to the vehicle and nearby things, ammunition cooks off while burning, and sometimes nearby things get set on fire. Fire can be put out by repairing the vehicle, submerging it in water, going over 400 kph, or if the fire is small enough you can try using the "put out fire" action (which has a somewhat random chance of working) until the fire goes out. People disembarking from a burning vehicle have a chance of catching fire proportional to the damage of the vehicle. They can put the fire out by getting healed or by keeping moving. People on fire will automatically crawl forward prone to keep moving, you can also try rolling on the ground to put the fire out if you are using a rolling mod such as DMA's. People sometimes burn up into charred body parts after they die and SLX Wounds is active. Helicopters with main rotor damage become more unstable the more damaged they are, eventually tearing themselves apart and crashing if they are too damaged. When a helicopter with main rotor damage crashes it throws up lots of dirt and dust as the blades are smashed apart on the ground.
People use SLX Wounds effects. See SLX Wounds readme for further details.
When getting in or out of tanks and APC's the crew will turn out and then turn in, to simulate having to open hatches to get in or out.
Commander machine guns on tanks that can shoot at low flying aircraft. Crew turns out when commander's gun is fired.
Vehicle lights are left on when ejecting from a moving vehicle.
AI's do not eject from damaged helicopters while in the air to increase AI survivability.

Installation:
Extract the @SLX mod folder into your ArmA directory or just put SLX_GL3.pbo in your ArmA addons folder. If you want to modify the GL3 addon script settings then you need the mod folder with the settings .sqf file. If the addon is in the mod folder addons then you need to run ArmA with "-mod=@SLX" in the command line.

Using GL3:
GL3 is a script addon, the scripts can be used directly from the addon, but they can also be used in missions. To use GL3 the init script has to be run on each unit that is to have effects or at least one unit from each squad that is to be added to the SLX_Groups array. When the init script is executed by a unit GL3 will be initialized if it is not started, the unit will be initialized into GL3, and the unit's group will be added to the SLX_Groups array.
To initialize a unit into GL3 using the scripts in the addon, put this in the unit's init line: " [this] exec "\SLX_GL3\SLX_Init_GL3.sqs " " without the quotes.
GL3 addon scripts can be configured by the SLX_GL3_Settings.sqf in the @SLX mod folder, but if that is not available, it will use the default settings in the addon.

Using GL3 scripts in a mission:
If you are using GL3 in a mission and you want the scripts to work differently than they do in the addon you can customize them in your mission. To customize GL3 for use in missions copy the scripts into a folder in your mission directory. Then in the mission init.sqs copy and set up the settings from SLX_GL3_Settings.sqf, set SLX_GL3_Path to your mission's GL3 folder. Then when you exec the init script on units in your mission simply change the line " "\SLX_GL3\SLX_Init_GL3.sqs " " to point to where your GL3 scripts are. For example, your GL3 scripts are in your mission folder in a folder called "GL3". Copy the contents from SLX_GL3_Settings.sqf into your init.sqs and set " SLX_GL3_Path = "GL3\" ". Then in each unit's init put " [this] exec "GL3\SLX_Init_GL3.sqs" ".
To initialize many already placed units into GL3 place a trigger in the mission and set the radius to cover all of the units you want to initialize, such as 50000 by 50000 for the whole island, and set "Trigger by:" to "Anybody" and "Type:" to "Present" and in the "On Activiation" line put " {[_x] exec "\SLX_GL3\SLX_Init_GL3.sqs "} ForEach thislist " without the quotes. Make sure you change the exec if you are using scripts from a different folder.
An example mission is included to show how to use these features.

Addon dependancies/extra features:
Several features require additional addons to work correctly. SLX_GL3.pbo is required for the scripts to work, but could be modified to be independent in a mission.
COC Unified Artillery: Required for artillery creating/calling.
SLX_Cloud: Dirt debris and dust model required for munition hit effects.
SLX_GL3: SINCGARS radio, vehicle damage effects, tank commander machine guns, tank/APC smoke grenades, SLX_Marker(requires script editing to disable, replace with "HeliHEmpty").
SLX_Wounds: Required for wounding effects on people.
To disable addon dependancies go to the SLX_GL3_Settings.sqf in the @SLX mod folder and modify the following settings to disable the required addon:
COC Unified Artillery:
SLX_ArtyVeh = [];
SLX_Cloud.pbo:
SLX_ShotFX = 0;
SLX_GL3.pbo(requires additional changes to scripts to remove entirely):
SLX_NoDmg = 1;
SLX_NoSmoke = 1;
SLX_NoVeh = 1;
SLX_WestRadios = [];
SLX_EastRadios = [];
SLX_ResRadios = [];
SLX_Wounds.pbo:
SLX_Wounds_Path = {};

Major planned\wanted features. GL3 might be worked on more so here are some possible improvements in future major releases:
MP compatibility.
Change settings format to use only a few global variable arrays like ECP.
Squads work together in platoons to perform maneuvers(flanking, etc.).
Broken squads in combat join together when they are all overmatched, the person with the most skill takes command.
AI's organize medevac landing zones for dead and wounded. AI's move wounded to LZ's. Medevac choppers evacuate dead and wounded to field hospitals.
Extend bounding overwatch script so it can be used by all vehicle types(range, direction, take vehicle behaviour into account).
Calculate priority of backup. Set speed, formation, behaviour, and combat mode of backup based on likelyhood of being attacked, urgency, type of backup needed. Use bounding overwatch if nessisary(if group needing help is destroyed then enemy contact is likely so use bounding overwatch).
Calculate makeup, type, and effective range for groups and determine appropriate maneuvers and ranges to use(for example fixed wing aircraft attack from further than infantry).
Better tactical coordination with artillery fire.
Find a way to let addons run GL3 if it is installed, but not have an error if it's not.
Make shout comments use ECP DSAI comments if ECP is running.
Make AI's take cover faster, possibly make some of them stand up to run to cover.
Increase accuracy of AI artillery calling, calculate enemies movement speed and artillery time to fall on estimated position.
Add high velocity aircraft crash.
Add fragments flying off of helicopter blades on helicopter crash.
Change tail rotor failure effects.
Make tail rotor damage script.
Implement changes to helicopter flight model.
Clean up scripts and add comments.
Change rotor wash effect.
Change aircraft hit water effect.
Go through 1985 campaign and find radio voices to use.
Make radio communications play from all manpack radios and in vehicles.
Possibly hunting and eating animals.
Shot effects script:
Make bullets properly affected by air resistance/drag to fit ballistics data.
Hand grenade simulation with bouncing/rolling, timing, fast low wide dust explosion, and fragments with compounded concussion/blast pressure effects.
Change supersonic bullet sound to sound correct.
Projectile pitch calculations for tracers, grenade arming, etc.
Possibly implement unarmed launched grenade pitch.
Possibly implement rocket\missile arming distance.
Implement basic bullet penetration.
Infrequent jamming based on skill and rate of fire.

Change log:
1.0 @ 14-11-06 Initial release
1.01 @ 16-11-06
Changes:
Modifications and optimizations to SLX_ShotFX.sqs. Firefights should have slightly higher FPS in general, at the cost of hit effect accuracy. Only tracer shots ricochet.
Aircraft don't keep flying when players eject.
1.02 @ 17-11-06
Changes:
More optimizations to SLX_ShotFX. Firefights are much smoother now. Almost no excessive lag. Hit effect should be more accurate than first release.
Tank grenades changed. They have launched grenade model, noise sound, and SLX smoke.
Added basic "embers" effect to fire, as a visual aid for why fire spreads.
Made burning dropped weapons have a smaller fire.
1.03 @ 21-11-06
Changes:
Fixed windage on shots and aircraft. Further optimized shot effects and raised hit effect estimate accuracy.
Changed tail rotor failure effects to have different smoke and add sparks and metal fragments flying off.
Removed objects used by scripts from being visible in editor. Thanks Matt Rochelle!
Made tracers more visible.
Included example mission.
Updated readme to reflect current status and make sure everything works.
Fixed munitions freezing in mid air in MP.
Fixed WGL claymores and satchel charges unable to be laid or seen on the ground in multiplayer also any items placed down to be picked up from your backpack dissapeared. Thanks ONI.au!
1.04 @ 29-11-06
Changes:
Many small changes to various things.
Fixed slowdown on fuel leak script.
Suppressive fire makes units getting shot at go prone and lowers their stamina which makes their aim become more shaky. Lower skilled units suffer more stamina loss.
1.05 @ 06-1-07
Changes:
Adjusted munitions windage and size and speed of hit effects.
Made suppressive fire have a chance of affecting units according to their skill.
Made squads suppress enemies when there are no visible targets. Invisible targets are placed at the last spotted position of enemy units and the AI's will shoot at them if there are no actual enemies visible, resulting in suppressive fire being used against hiding enemies. Thanks to Terox and BAS for invisible targets examples!
Made tracers appear every 4 rounds and made options to always have tracers.
Made shot effect play supersonic sounds and make the trace when a projectile is traveling at supersonic speeds. Thanks to Dslyecxi for the sounds!
Added checks to see if player is leader before all combat mode and group behaviour changes.
Made units garrisoning buildings not stop when inside, which might have fixed the bug where squads won't return to their waypoints after garrisoning a building.
Made vehicles with engines off have a chance of catching on fire when damaged.
Added basic helicopter rotor wash effect to aircraft wind script.
Added basic aircraft crashing into water effect.
Rocket deviation and flying with wind.
RPG flight characteristics, flying into wind.
Made helicopters rate less than tanks so they will try to fly away so they don't get torn apart by commander machine guns so often. They might also sometimes engage from standoff ranges with missiles.
Made withdrawing AI's less likely to keep shooting.
Revealing enemy units to known allies and backup groups should work now. Enemies are revealed to all air units to aid engagement.
Made groups call for backup more often. If a squad is withdrawing they will call for backup if their ally will help match the enemies strength. If the squad's strength is about equal to the enemy they will call for backup only if their ally will help overmatch the enemy. The called backup had to always overmatch the enemy in previous versions.
Give melee script makes units with binoculars have them as the first item so the melee weapon or NVG's won't show up when using binoculars.
Added rocket\missile backblast and smoke.
Added ejected empty casings effect for vehicle fired bullets.
Added launched smoke grenade effect.
Basic AI join feature\squad join feature.
Basic surrendering. Chance of a squad fleeing based on enemy strength. Squads surrender when they are fleeing with a chance based on leader's skill.
Added variations to the height of smoke columns and fires from similar objects.
ArmA Compatability.
1.051 @ 11-1-07
Squads no longer suppress the opposite direction of the enemy while withdrawing. Also refined the bounding overwatch script a bit so bounding might be a little faster and more reliable.
1.052 @ 19-1-07
Fixed bug with calling backup and disabled set fleeing probability by default. Squads should flee less often and call for backup more.
Changed some vehicle ratings so helicopters will be called in against tanks.
Changes to the suppressive fire script so excessive numbers of enemy position markers aren't created.
Changes to the bounding overwatch script so running AI teams are split off to be given orders. ArmA AI squad leaders shouldn't constantly shout orders for each unit anymore. Also made move order have a range around the objective so AI's don't keep saying "Can't get there!" The attacking suppressive fire object is now the side of the enemy group so the defenders won't suppress their own positions anymore and the attackers should suppress the objective.
Changed scripts using ArmA formating to make them easily compatible with ArmA GL3.

Future additions\fixes in updates:
Fixes:
Make sure aircraft continue on waypoints and pilots never disembark.
Tweak suppressive fire script to have more conditions for checking if the auto prone should happen.
Check supersonic bullet sound for anything that might cause glitches.
Make sure AI squad leaders never stop and always continue on their waypoints.
Take into account situations in the ArmA campaign that the GL3 maneuvers might break.
Use new ArmA scripting abilities to optimize shot effects script and others.

CTD's to fix:
Crash on MP mission intro in WGL.
Possible crash on WGL 5.1 or 5.12 dedicated server startup. Seemed fine when tested though.
Several CTDs in MP.
Client crash after helo shot down in MP.
Possible crash on save.
Possible crash on tanks when getting in while getting fired at by m113 in MP server environement. Possibly releated to another crash. Possibly fixed.
Possible crash on tank hit by missile. Possibly releated to smoke script or SLX Wounds.

Disclaimer:
This is an unofficial addon, and is in no way connected with Bohemia Interactive or Codemasters. The maker of this software is not responsible for any harm that comes to anything resulting in the use of this software. All SLX releases are provided "as is" with no warranty or guarantee of support of any kind. All content in this addon made by SLX may be modified and used in any way with or without credit. All content copyright by it's respective author(s).

Credits and Thanks to:
BIS for making OFP, Oxygen, TexView, the Flashpoint1985 forums, all content from OFP and OFP: Resistance, ARMA, and all kinds of great stuff
Toadlife and KeyCat for Group Link, and Group Link 2
ECP for making a great mod and init and wind ideas
DKM for tank smoke script and model
Dslyecxi for sounds and inspiration
General Barron for some scripting and all kinds of interesting stuff that he's made and all his contributions to the flashpoint community
Chain of Command for making CoC Artillery and BINview
Vektorboson and Franze for tail rotor failure script
Sanctuary for his animations and inspiration
bn880 for tracer ideas and examples
Call of Duty for tracer textures
GL2 credits: Kriegerdaemon, Kegetys, BAS, Amalfi, Suchey & Earl, Silola, KTottE
BIS, Flashpoint1985 forums, OFPEC, OFP.info, PMC, many forums, Wikipedia, YouTube, Google, and the flashpoint community
Programs, teams, and people in no particular order: PBOX, ODOL Explorer, WRPtool, Irfanview, OFPanim, WinPBO, Suma, txtpathswap, cpbo, Dslyecxi, ECP, WGL, BergHoff, a-lone-wolf, BINView, and many more
Forumites, mission makers, addon makers, island makers, texture makers, modelers, animators, innovators, mod teams, and OFP players
Thanks to everyone that has posted in the Flashpoint1985 forums SLX release thread and everyone who has commented on the SLX releases!