Author: de minek
Date: 2018-05-04 08:40
This script - as the name suggests - is about cooperation. Players will form a group, and fight against the AI endlessly. This may not sound too exciting, so read the features below.
The downloadable zip contains the script files, and a few maps, that are prepared to use every capability of the script.
- Tactical user interface [TUI]: You can do many things here, such as open the encyclopedia, reveal deads, take command of the group, see the log, statistics, your equipment status, see your support objects and search in their cargo, see your connected UAV/UGV's status, and set it to follow you, and manage the tactical hud's settings.
- Tactical HUD: If you wear a tactical HUD capable glass, you will see three main things: 1. A small status report [healt, fatigue, direction, known enemies count, wind, vehicle armor, things like that] 2. A sorted list of known enemies in spotting range with their types, distances, and how old is this data 3. The main thing, you will see red dots on the screen where the enemies are known to be, and the same data as in the list. This information is the same as what you see when you open the map. The markers may be not precise, may be predicted, may be old, so you can't rely on them fully. This needs a little time to get used to. The data is collected from team members and connected UAVs/UGVs, so if you have an AR-2 above you, you will most likely see fresh information. [You will need a GPS/UAV terminal for showing enemies, rangefinder for showing distance, and a watch for showing time.]
- Support: The players have three kind of premanent support vehicles, a car, a helicopter, and a boat, plus a box. You can throw a green smoke grenade and request a drop of one of thoose. If you find an empty vehicle, you can extract it, by marking for extraction, or bringing it to an extraction point where it will be picked up if left behind. By doing this, you can collect many weapons and ammunition for later use. If you play only with one or two buddies like me, you can't carry weapons for all purpose. For example if you go to a place that has an enemy tank a helicopter and a plane, you just request your box that has all you need. If the original permanent vehicles or box doesn't suit your needs, you can mark any non-armed vehicle/box as permanent. You can also extract AI team members, and request them back when needed.
- Lifes: The players have limited lifes. If a player dies, a respawn point will be placed near his/her location, but only if the lifes counter is greater than zero. If it reaches zero, players can only respawn at predefined loactions. This gives a sort of a feeling, that your attack has been repelled, and the player's team aren't an infinite army.
- Score: The players receive credits for defeating enemies and completing events. You can spend it for lifes, support drop/extraction, and in the shops. Many things will specify how many credits you will receive for a kill, like distance, stance, speed, hit count, and the ammo used.
- Shop: There are shopping points where you can buy lifes, vehicles [almost all, ArmA has to offer], boxes, and equipment [magazines, optics, etc.]. You can also sell vehicles. Additionally you will see plenty of information of each vehicle/box on the buying screen, like cargo capacity, weaponry, pylons.
- Events: There are four kinds of different events so far. 1. Just enemies, 2. Reward armed vehicle, 3. Captive rescue, 4. Destroy object [vehicle or building]. They will be generated as you start the mission, and never run out.
- Equipment durability: Equipment is degrading as you use it. Weapons and accessories will wear out by firing; uniform, vest and helmet will wear out if they get shot. If an equipment has worn out, it will be lost, and its accessories/contents will be placed on the ground, or in the current vehicle. Medikit and toolkit will wear out after a couple uses. The equipment's durabilities are shown on the inventory screen as well as in the TUI.
- Magazine conversion and combining: You can convert different types of magazines of the same caliber, and you can combine non-full magazines together. A button is added to the inventory screen for this.
- Ammo recycling: Vehicles and boxes that have vehicle ammo storage capability, can strip the ammo of nearby vehicles, and fill others.
- Healing: You can fully heal yourself or a team member with a medikit. You can even use one from a team member's backpack.
- Repairing: You can repair a vehicle partially or fully using a toolkit, whether you have it in your backpack or it's in the vehicle to be fixed. By default, one repair action repairs only 50% of all parts of a vehicle.
- Fuel transfer: You can transfer fuel between vehicles using a toolkit.
- Vehicle loadout editing: You can modify the loadout of helicopters and planes in predefined areas. You can also set who can use a particular pylon [pilot/gunner].
- Surrendering: Enemies can surrender if they are fleeing, suppressed enough, and outnumbered. After surrendering, you can decide to accept it and become a member of your team, or just kill him.
- Ammo takeout: You can take out convertable ammo from vehicles, like 7.62x51 from Pawnee, or 40 mm HE Grenade from Hunter GMG.
- Search in the inventory: Yes, you can search in the inventory's left side. Pretty useful if you collected a few hundred things in a single box.
- Custom marker: You can place a clearly visible custom marker on the map, that you always see, even when you don't look at the map, or look at the opposite direction where the marker is. If you have a binocular that has a range finding capability, you will also see the distance.
- Swap equipment: With a single action you can swap all equipment with any AI team member. With this, arming a freed captive is much easier, or you can use this to quickly change to another role, like sniper. Connection to UAV/UGV will be handled, if any.
- Statistics: The script counts various things, like how many times a player died, killed an enemy, shot, playtime, etc.
- Log: Many things generate an entry in the log, like if you kill an enemy [gained credits, circumstances of the kill], if you buy something, if a team member dies, etc.
- UAV/UGV settings: In the TUI, you can see available drones, see connected drone status, you can set it to follow you [and it won't end up in an infinite spin] at certain range and height, and take control of it.
- Encyclopedia: You can browse vehicles and boxes, view their properties, buying and selling prices. [Latter only if you sit in one, or look at one.] Useful if you want to decide if a vehicle worth bringing to a shop for selling, or if you see an enemy vehicle, and don't remember their armament.
- Knifing: You can knife an enemy ! Although there is no animation, and you must go uncomfortably close, you can instantly kill any enemy.
- Equipment loosing: You may loss some equipment when you respawn after dying. Enemies also loss equipment upon dying, but more. [Yes, it can be interesting to see when you kill an enemy, and he gets almost naked.]
- Rotating planes: You can rotate planes in predefined areas, tipically in airports. It may help if you for example hit a pole and get stuck.
- Revealing deads: With a push of a button, corpses can be marked to aid in searching/looting.
- Releasing UAV/UGV controls: Now you can do that with a single push of a button.
- Parallel firing: If you have symmetric loadout on a vehicle, it will fire both sides when you use an ammo like DAR, and alternately if you use an ammo like Scaplel. Now you can turn this off, and deplete one side, then use the other.
- Visible artillery projectiles: If a friendly vehicle or mortar fires an artillery round, you will see its distance and the time elapsed since it was fired.
- Full auto pistol: Pretty self explanatory, you can switch it on or off in the TUI.
- Vehicle tossing: You can toss overturned vehicles, to get back on its feet. You can apply more force with teammates around. Of course you can't do a miracle with a T-100, as it's pretty heavy.
- Jump: You can jump ! Sometimes it's useful, but be careful, ArmA isn't prepared for like jumping on top of vehicles.
- Increased fuel consumption: Vehicles consume fuel faster than originally [except for drones], so fuel stations now have a purpose.
- Nights are shorter than days, but it's configurable.
- Automatic healing: Automatically heal body parts, that aren't injured more than a predefined value.
- Connected UAV/UGV low fuel warning.
Saving and loading:
I disabled the saving on the maps, and made my own saving and loading method. ArmA handles saving and loading a bit wierdly, like it won't record that you wear glasses, thus you loose it upon loading, but glasses play an important role in this script. Many other things broke, when i tried to save and load. Maybe part of it was my fault, maybe some of them where fixed by now, but no matter, you can't save the game's state in one map, and load it back on another. Yes, with this script, you can.
I think, one of the most important feature of this script, is that you can save your progress, close the game, update ArmA or the script, change mission/map, whaterver, then you can load it back to almost the exact same state as you saved.
How it works, how to use:
When you start the mission, the host must open the TUI, go to the general tab, hit the 'Game' button, then decide to start a new game, or load a previously saved. When starting a new one, each player will have a box to get armed, and a Hummingbird for quick traveling. Random events will start to generate, and you're good to go. When the host decides to save the current state of the game, he/she must go to the same window, and hit the save button. Then the script will collect the current state of almost everything, creates a long text, and copies to the host's clipboard. [Direct-to-file save is not available in SQF due to safety reasons.] To preserve this save, the host must paste it to a txt file, and save it. Loading back this saved state is pretty similar, the host has to restart the mission, open the same window, and paste the previously saved text to the input box above the load button, then hit it. The script will start to set everything according to the pasted text. This will take a couple of seconds.
- When you save the game's state, you can close ArmA, update it, or update the script then load back the save.
- If you want to play on another map, but you don't want to loose your progress, like support objects, freed captives, statistics, you just need to save, load the other map, and load back the save. Of course, the script will handle differently when you load back the same mission, and if you load another. [Positions will not be restored, used vehicles goes to support, etc.]
- If you don't have time to play, but your buddies have, you can send the last save to one of them, and they can continue. You won't loose anything, no matter how many times they loaded and saved, the script will take care of players, who aren't present.
- If you want to tinker with the save, you can, just turn off the compression before saving. [Yes, you can also mess it up, so be careful.]
- It's a little circumstantial to manually open a text file, paste the state, and save it. [I think i will solve this later with a dll, that can do this.]
- Although saved states are compressed somewhat, they can be pretty big. If you want to load a state that is larger than 90kb [not very likely to occur], do not paste it in the input box, because ArmA will freeze. You have to use this console command instead: <paste saved state here> call dmlg
Suggested keybindings [under custom controls section]:
1 Place custom marker with naked eye: left ctrl+middle mouse button [place marker on map: alt+left mouse button, but that can't be changed yet]
2 Jump: ctrl+space
3 Open TUI: f1 [set 'select unit 1' action to ctrl+f1]
4 Release UAV/UGV controls: v [same as 'get out' action]
Copy the contents of the script folder in the mission map you want to play, next to the mission.sqm, and that's it. Because how ArmA works, only the host has to do this.
- See config.sqf for all configuration options.
- The script won't work on a dedicated server.
- The script may not work on ArmA versions prior to indicated one in config.sqf.
- I haven't tested it yet, but it should work with non-official maps, if they are properly prepared.
- The script will put a little extra load on your CPU. If it is too much, ask a friend who has a better PC to be the host.
- Opening the buying window in the shop for the first time after the game has started may take 10 seconds or even more to generate the list, and it will put a high load on the host, so be patient, and don't do it in the middle of a fight.
- If there is enough interest for the script, i will write a detailed description.
Credits & Thanks:
Special thanks to Trooper and FeFe for ideas, testing and 'testing'.