diff --git a/addons/briefing/$PBOPREFIX$ b/addons/briefing/$PBOPREFIX$
new file mode 100644
index 0000000..93ad11b
--- /dev/null
+++ b/addons/briefing/$PBOPREFIX$
@@ -0,0 +1 @@
+z\afsk\addons\briefing
\ No newline at end of file
diff --git a/addons/briefing/CfgEventHandlers.hpp b/addons/briefing/CfgEventHandlers.hpp
new file mode 100644
index 0000000..e90bed4
--- /dev/null
+++ b/addons/briefing/CfgEventHandlers.hpp
@@ -0,0 +1,15 @@
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+class Extended_PreInit_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preInit));
+ };
+};
+class Extended_PostInit_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_postInit));
+ };
+};
diff --git a/addons/briefing/XEH_PREP.hpp b/addons/briefing/XEH_PREP.hpp
new file mode 100644
index 0000000..496ce84
--- /dev/null
+++ b/addons/briefing/XEH_PREP.hpp
@@ -0,0 +1 @@
+PREP(createRules);
diff --git a/addons/briefing/XEH_postInit.sqf b/addons/briefing/XEH_postInit.sqf
new file mode 100644
index 0000000..9aa84cc
--- /dev/null
+++ b/addons/briefing/XEH_postInit.sqf
@@ -0,0 +1,10 @@
+#include "script_component.hpp"
+
+// Killswitch
+if (!EGVAR(common,enabled)) exitWith {};
+
+if (hasInterface) then {
+ if (GVAR(rulesEnabled)) then {
+ call FUNC(createRules);
+ };
+};
diff --git a/addons/briefing/XEH_preInit.sqf b/addons/briefing/XEH_preInit.sqf
new file mode 100644
index 0000000..8cf778f
--- /dev/null
+++ b/addons/briefing/XEH_preInit.sqf
@@ -0,0 +1,10 @@
+#include "script_component.hpp"
+ADDON = false;
+#include "XEH_PREP.hpp"
+
+#include "initSettings.inc.sqf"
+
+// Killswitch
+if (!EGVAR(common,enabled)) exitWith {};
+
+ADDON = true;
diff --git a/addons/briefing/XEH_preStart.sqf b/addons/briefing/XEH_preStart.sqf
new file mode 100644
index 0000000..a51262a
--- /dev/null
+++ b/addons/briefing/XEH_preStart.sqf
@@ -0,0 +1,2 @@
+#include "script_component.hpp"
+#include "XEH_PREP.hpp"
diff --git a/addons/briefing/config.cpp b/addons/briefing/config.cpp
new file mode 100644
index 0000000..d96fb9a
--- /dev/null
+++ b/addons/briefing/config.cpp
@@ -0,0 +1,18 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class ADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "afsk_common"
+ };
+ author = "ArmaForces";
+ VERSION_CONFIG;
+ };
+};
+
+
+#include "CfgEventHandlers.hpp"
diff --git a/addons/briefing/functions/fnc_createRules.sqf b/addons/briefing/functions/fnc_createRules.sqf
new file mode 100644
index 0000000..60cbef1
--- /dev/null
+++ b/addons/briefing/functions/fnc_createRules.sqf
@@ -0,0 +1,36 @@
+#include "script_component.hpp"
+/*
+ * Author: 3Mydlo3
+ *
+ * Creates rules briefing.
+ *
+ * Arguments:
+ * None
+ *
+ * Return Value:
+ * None
+ *
+ * Public: No
+ */
+
+#define DIARY_NAME "skDiary"
+
+params [["_unit", player]];
+
+_unit createDiarySubject [DIARY_NAME, LELSTRING(main,Category)];
+
+private _listSeparator = "
- ";
+private _generalRulesList = [
+ LLSTRING(Rules_1),
+ LLSTRING(Rules_2),
+ LLSTRING(Rules_3),
+ LLSTRING(Rules_4),
+ LLSTRING(Rules_5),
+ LLSTRING(Rules_6),
+ LLSTRING(Rules_7),
+ LLSTRING(Rules_8)
+] joinString _listSeparator;
+
+private _generalRulesText = format ["%1%2%3", LLSTRING(Rules), _listSeparator, _generalRulesList];
+
+_unit createDiaryRecord [DIARY_NAME, [LLSTRING(Rules), _generalRulesText]];
diff --git a/addons/briefing/functions/script_component.hpp b/addons/briefing/functions/script_component.hpp
new file mode 100644
index 0000000..02397ac
--- /dev/null
+++ b/addons/briefing/functions/script_component.hpp
@@ -0,0 +1 @@
+#include "\z\afsk\addons\briefing\script_component.hpp"
diff --git a/addons/briefing/initSettings.inc.sqf b/addons/briefing/initSettings.inc.sqf
new file mode 100644
index 0000000..0afa515
--- /dev/null
+++ b/addons/briefing/initSettings.inc.sqf
@@ -0,0 +1,10 @@
+[
+ QGVAR(rulesEnabled),
+ "CHECKBOX",
+ [LSTRING(RulesEnabled), LSTRING(RulesEnabled_Description)],
+ [LSTRING(DisplayName)],
+ true,
+ true,
+ {},
+ true
+] call CBA_fnc_addSetting;
diff --git a/addons/briefing/script_component.hpp b/addons/briefing/script_component.hpp
new file mode 100644
index 0000000..b07bd3d
--- /dev/null
+++ b/addons/briefing/script_component.hpp
@@ -0,0 +1,14 @@
+#define COMPONENT briefing
+#include "\z\afsk\addons\main\script_mod.hpp"
+
+// #define DEBUG_MODE_FULL
+// #define DISABLE_COMPILE_CACHE
+
+#ifdef DEBUG_ENABLED_BRIEFING
+ #define DEBUG_MODE_FULL
+#endif
+ #ifdef DEBUG_SETTINGS_BRIEFING
+ #define DEBUG_SETTINGS DEBUG_SETTINGS_BRIEFING
+#endif
+
+#include "\z\afsk\addons\main\script_macros.hpp"
diff --git a/addons/briefing/stringtable.xml b/addons/briefing/stringtable.xml
new file mode 100644
index 0000000..fd229ee
--- /dev/null
+++ b/addons/briefing/stringtable.xml
@@ -0,0 +1,53 @@
+
+
+
+
+ SerialKillers - Briefing
+ SerialKillers - Odprawa
+
+
+ Enable rules
+ Włącz zasady
+
+
+ If enabled, suggested rules will be visible on the map in "SerialKillers" briefing section.
+ Jeżeli włączone, proponowane zasady będą widoczne na odprawnie na mapie w zakładce "SerialKillers".
+
+
+ Rules
+ Zasady
+
+
+ Cops are not allowed to use terrorist stashes/weapons. They may only use radios they find after neutralizing a terrorist.
+ Policjanci nie mogą używać broni terrorystów ani skrytek z bronią. Mogą używać jedynie radia, które znajdą przy zneutralizowanym terroryście.
+
+
+ Cops are not allowed to kill, hurt or harm civilians in any other way without certainty that this is a terrorist. They may not use civilian vehicles either.
+ Policjanci nie mogą zabijać ani krzywdzić cywili w żaden sposób bez pewności, że to terrorysta. Nie mogą również używać cywilnych pojazdów.
+
+
+ Cops are not allowed to sit in jail nor obstruct it in any way. They may only check if a prisoner is there, without moving him, they must leave immediately afterwards.
+ Policjanci nie mogą siedzieć w więzieniu ani blokować wejścia do niego. Mogą jedynie sprawdzić czy więzień tam jest, bez przemieszczania go i muszą opuścić więzienie natychmiast po sprawdzeniu.
+
+
+ Only 1 police helicopter is allowed, with the same dedicated crew.
+ Tylko 1 policyjny helikopter jest dozwolony, z tą samą dedykowaną załogą.
+
+
+ Terrorists should not use any cops-dedicated functionalities within police stations.
+ Terroryści nie powinni używać funkcjonalności przeznaczonych dla policjantów w obrębie komisariatów.
+
+
+ Terrorists are responsible for everyone's fun. Make it so the police doesn't die of boredom.
+ Terroryści są odpowiedzialni za zabawę wszystkich grających. Grajcie tak, żeby policja nie umarła z nudów.
+
+
+ Driving off-road is allowed only when having off-road vehicle. Despite that, do not hide in forests/remote areas on purpose, as it's not fun.
+ Jeżdżenie poza drogami (off-road) jest dozwolone tylko w pojazdach terenowych. Nie ukrywaj się po lasach i odległych miejscach, to nie jest fajna zabawa.
+
+
+ Using vehicles as kamikaze kinetic projectiles is strictly forbidden due to how arma works, and it's not fun anyway.
+ Używanie pojazdów jako pocisków kinetycznych do kamikadze jest zabronione ze względu na to jak działa arma, do tego nie jest to fajna zabawa.
+
+
+