====== DCZ.dll (Open Alpha) ====== ~~NOCACHE~~ On this page you can download the latest Version of the 'DCZ server side implementation'. \\ This "plugin" for DCS is needed to get the proper results out of a DCS Mission. \\ The results are written as a file which can be uploaded to DCZ to further progress your DCZ game.\\ To install the 'DCZ server side implementation' simply unpack the following zip inside your DCS saved games folder on your DCS server. \\ For example into : C:\Users\yourWindowsName\Saved Games\DCS\ \\ This should result in the following file structure : \\ C:\Users\yourWindowsName\Saved Games\DCS\Scripts\DCZ.dll \\ C:\Users\yourWindowsName\Saved Games\DCS\Scripts\dkjson.lua \\ C:\Users\yourWindowsName\Saved Games\DCS\Scripts\Hooks\DCZGameGUI.lua \\ The following main features come with the server side implementation of DCZ : \\ - Special slot blocking System \\ - Mission-End report (JSON) containing the state of all participating units \\ - Specialized troop transporting system \\ - Counting system of troops in the trigger zones \\ - Dynamic AI Aircraft activation system for client slot groups \\ ==== How to trigger the dll ==== To get the dll running during a DCS mission the loaded mission file must contain a trigger zone called 'DCZMission' (without the single quotes). \\ The radius of the trigger zone is used as a parameter to determine the length of the mission. For example if the 'DCZMission' trigger zone has a radius of 7200m the dll will forcibly end the mission after 7200 seconds mission time (120 mins or 2 hours) and write the outcome file. After this the dll tries to load the next mission in the mission list of the server. ===== Special Slotblocking System ===== Shortly after the mission has started and the dll has been triggered by the proper trigger zone, DCZ.dll will scan the mission for all units. Every unit which is set to "client" will be treated by the dll in the following way. \\ \\ If no one has entered the slot and the group belonging to the unit has not been send away as AI, there will be a static unit representation of that unit on the designated parking slot. \\ If the static unit representation gets destroyed the corresponding unit is no longer part of the game. Hence the slot for this unit get blocked for the rest of the mission. \\ \\ Entering a slot of a unit will cause the static representation to disappear. If a player doesn't get killed/destroyed but leaves a client-slot, the corresponding static representation of the unit will reappear. Should a player get killed/destroyed while having a client-slot occupied, the player gets reassigned to the observer position and the units slot will be blocked for the rest of the mission. The unit is lost.\\ \\ ''Groups which consists of units where some are set to 'client' and others are not may result in unpredictable behaviour and is not supported by DCZ.dll. '' \\ ''The DCZ.dll behaviour for Units which have been set to 'client' but don't start as "from ramp cold" is unknown/untested.'' \\ ===== Dynamic AI Aircraft activation system for client slot groups ===== A group of units which have been set to "client" in the mission editor can be send away as AI group. Through the f10 radio menu every player being part of a coalition can dynamically start the whole group as AI. The static representations of these units disappear and AI units which immediately start their mission will be spawned instead. \\ Every slot behind units of a group which has been activated as AI units will be blocked for the rest of the mission. \\ AI units which get destroyed will not respawn and the slot behind the unit keeps being blocked of course. \\ ===== Mission-End report (JSON) ===== If either the time for this mission ends or both coalition have agreed to end the mission (through f10 radio menu) then the dll will generate an ending report in json ( https://en.wikipedia.org/wiki/JSON ) with the following structure : The root object consists of the properties 'events' , 'situation' and 'soldiersInZone'. \\ * 'events' is an array of objects which holds the basic events during the mission. (e.g. landing, starting, shot events, hit events, destruction events, etc.) \\ * 'situation' consists of 'transports' and 'units'. \\ * 'transports' is a list of all groups which were capable of transporting soldiers. Every entry shows the soldiers which were transported at the end of the mission. \\ * 'units' is a list of all units which participated during the mission. Every 'unit' entry consists of 'ammo', 'ammo2', 'fuelConsump', 'fuelRest', 'groupId', 'groupName', 'isAlive', 'name', 'sensors', 'sensors2', 'unitId', 'x', 'y'. \\ * 'ammo' : Holds all the ammunition of the unit at the end of the mission. \\ * 'ammo2' : Holds all the ammunition of the unit which were either fired or lost during the mission. \\ * 'fuelConsump' : \\ * For Aircrafts - Number represents 1/100 % of internal fuel consumed during the mission. e.g. 0.25 for MiG-21bis means that this unit had 0.25 * 2280 kg fuel = 570 kg fuel consumed during the mission.\\ * For non-Aircrafts - Total driven distance in meters. \\ * 'fuelRest' :\\ * For Aircrafts - Number represents 1/100 % of internal fuel. e.g. 0.25 for MiG-21bis means that this unit had 0.25 * 2280 kg fuel = 570 kg fuel at the end of the mission.\\ * For non-Aircrafts - Always 0. \\ * 'groupId' \\ * 'groupName' \\ * 'isAlive' : Either 'dead' or 'alive' depending of if the unit was killed/destroyed during the mission. \\ * 'name' \\ * 'sensors' : All sensors the unit carried at the end of the mission.\\ * 'sensors2' : All sensors which were lost during the mission.\\ * 'unitId' \\ * 'x' : Last known position x-component.\\ * 'y' : Last known position x-component. \\ * 'soldiersInZone' : See 'Counting system'. \\ ===== Specialized troop transporting system ===== Every group consisting of units which can carry troops, as indicated under https://www.digitalconflictzones.net/wiki/doku.php?id=blue-tech or https://www.digitalconflictzones.net/wiki/doku.php?id=red-tech, can carry units of the type 'soldier_mauser98', 'soldier_wwii_us', 'Soldier M4'or 'Infantry AK'. The maximum amount each unit can carry is described in the given tech-side pages as well. \\ This functionality can dynamically accessed through the f10 radio menu under 'F10'->'others'->'DCZMisc'->'Transport Groups'->'#(x)'->'Load Troops/Unload Troops'. \\ Every unit of that group tries then to either load or unload troops as long as that this unit is not faster then 10 kph and is not higher then 30 meters altitude tries to load soldiers in a radius of 100 meters or just unload them. \\ Additionaly the transported weight of aircrafts (if the transporter is an aircraft) gets changed by every trooper boarding or unboarding (with 120kg per soldier). \\ This affects human controlled aircrafts only currently. \\ ===== Counting system ===== At the end of the mission all soldiers of the types 'soldier_mauser98', 'soldier_wwii_us', 'Soldier M4'or 'Infantry AK' are counted in every trigger zone except the 'DCZMission' one. The result is separated for every zone as well as for red and blue in the outcome file (Mission-End report (JSON)). \\ ===== Download ===== Disclaimer (freeware) : Installing and using it is under your own risk.\\ Here you can download V0.1.0.89 \\ [[https://www.digitalconflictzones.net/downloads/DCZ_dll_noSocket.zip|DLL without socket]] - DLL without additional thread starting the tcp socket for communication with [[TCI|TCI]] clients. ( Does not open additional port on the server. )\\ [[https://www.digitalconflictzones.net/downloads/DCZ_dll_withSocket.zip|DLL with socket]] - DLL with additional thread starting the tcp socket for communication with [[TCI|TCI]] clients. ( Additionally opens port 2250 on the server. )\\ \\ \\ {{counter}} person(s) visited this page until now.\\