#include "\x\cba\addons\main\script_macros_common.hpp"
//versio 2.4.1
//Tehnyt Tuntematon
//Käynnistetään seuraavalla tapaa.
//[] execVM "merkit.sqf";
//
/*
Jos et halua että tämä scripti ajetaan tehtävässä. Laita inittiin seuraava.
AFI_Aloitus_Merkit = false;
Laita tämä RJ tai ajoneuvon slottiin jos et tahdo että sen kohdalle tehdään merkki.
this setVariable [""AFI_Ryhma_Merkki"",false,true];
Jos haluat vaihtaa ajoneuvo nimeä. Laita tämä sen inittiin.
this setVariable["displayName", "BATMOBIILI!"];
Jos et halua että liittolaisten alotuspaikat näkyvät. Laita inittiin seuraava.
AFI_Liittolaiseten_Merkit = True;
Jos haluat vaihtaa tehtävässä tekstit rallienganniksi. Laita seuraava muuttuja trueksi.
AFI_Merkit_Lontoo = true;
*/
//
private ["_pomo", "_boikotti", "_RyhmanPuoli", "_Ryhma", "_RyhmanSijainti", "_Merkinnimi", "_RyhmanGroup", "_RyhmanVari", "_osapuoli", "_RyhmanTyyppi", "_parametrit", "_vehje", "_VehkeenPuoliSTR", "_VehkeenPaikka", "_VehkeenSuunta", "_VehkeenTyyppi", "_VehkeenIconi", "_VehkeenTeksti", "_VehkeenRGBvari", "_merk", "_luuskanidc"];
if (isMultiplayer && !isServer) then
{
if (isNull player) then
{
waitUntil{(!isNull player)};
uiSleep 1;
};
if (time == 0) then {waitUntil {(!isNull findDisplay 53)};};
};
uiSleep 1;
//Servu tallentaa kaikki ryhmien ja rensselien infot. Ja jakaa ne pelaajille. Tämä siksi että voi JIP milloin vaan ja saa oikeat infot.
if (isServer) then
{
ISNILS(TUN_SERVU_VALMIS,false);
if (TUN_SERVU_VALMIS) exitwith {};
TUN_Ryhma_Parametrit = [];
TUN_Ajoneuvo_Parametrit = [];
//////////
//Ryhmät//
//////////
{
_pomo = leader (_x);
_boikotti = nil;
_boikotti = _pomo getVariable "AFI_Ryhma_Merkki";
ISNILS(_boikotti,true);
if (_boikotti) then
{
_osapuoli = switch (side _pomo) do
{
case west: { "b" };
case east: { "o" };
default { "n" }
};
if !(format ["%1", group _pomo] find "10" == -1) then
{
_RyhmanTyyppi = format ["%1_hq", _osapuoli]
}
else
{
_RyhmanTyyppi = format ["%1_inf", _osapuoli]
};
_parametrit = [
side _pomo, //ryhmän puoli
format ["%1", group _pomo], //Merkin nimi
getpos _pomo, // Ryhmän sijainti
_RyhmanTyyppi, //Johto vai normi ryhmä
[side _pomo, true ] call BIS_fnc_sideColor, //rymänväri
format ["%1", group _pomo] select [2] //ryhmän Groupid
];
TUN_Ryhma_Parametrit pushBack _parametrit;
};
} forEach allGroups;
///////////////////////////
//TUN_Ajoneuvomerkkien_ID//
///////////////////////////
_west = [0,0.3,0.6,1];
_east = [0.5,0,0,1];
_resi = [0,0.5,0,1];
_civi = [0.4,0,0.5,1];
{
_boikotti = nil;
_boikotti = _x getVariable "AFI_Ryhma_Merkki";
ISNILS(_boikotti,true);
_VehkeenPuoliSTR = toLower (_x getVariable "AFI_vehicle_gear");
if (_boikotti && !(isNil "_VehkeenPuoliSTR")) then
{
if (_x isKindof "LandVehicle" || _x isKindof "Air" || _x isKindOf "Ship" || _x isKindOf "Static" || _x isKindOf "thing") then
{
_VehkeenPaikka = getPos _x;
_VehkeenSuunta = getDir _x;
_VehkeenTyyppi = typeOf _x;
_VehkeenIconi = str(typeOf _x);
_VehkeenTeksti = str(_x getVariable "displayName");
_VehkeenRGBvari = switch (_VehkeenPuoliSTR) do
{
case "west": {_west};
case "east": {_east};
case "guer": {_resi};
default {_civi}
};
_VehkeenPuoli = switch (_VehkeenPuoliSTR) do
{
case "west": {west};
case "east": {east};
case "guer": {resistance};
default {civilian}
};
ISNILS(_VehkeenTeksti,str getText (configFile/"CfgVehicles"/_VehkeenTyyppi/"displayName"));
_parametrit = [_VehkeenPuoliSTR,_VehkeenPaikka,_VehkeenTyyppi,_VehkeenSuunta,_VehkeenIconi,_VehkeenTeksti,_VehkeenRGBvari,_VehkeenPuoli];
TUN_Ajoneuvo_Parametrit pushBack _parametrit;
};
};
} forEach vehicles;
TUN_SERVU_VALMIS = true;
publicVariable "TUN_Ajoneuvo_Parametrit";
publicVariable "TUN_Ryhma_Parametrit";
publicVariable "TUN_SERVU_VALMIS";
};
if (isDedicated && isServer) exitWith {};
//Servujutut ohi. Loput locaalia.
[{!isNull player && hasInterface && missionNamespace getVariable "TUN_SERVU_VALMIS" && !(typeOf player == "VirtualSpectator_F")},{ //CBA_fnc_waitUntilAndExecute. Siirtää scriptan unscheduled environmentiin.
ISNILS(TUN_Aloitus_Merkit,true);
ISNILS(TUN_Ajettuscripta,false);
ISNILS(AFI_Liittolaiseten_Merkit,true);
if (!(TUN_Aloitus_Merkit)) exitwith {};
if (TUN_Ajettuscripta) exitwith {player commandChat "Tehtävässä ajetaan aloituspaikan merkkaus scripta useampaan kerntaa. Ei aiheuta kuitenkaan ongelmia. T:Tuntematon"};
TUN_Display = 53;
TUN_Ryhma_Merkit_Paalla = True;
TUN_Ajoneuvo_Merkit_Paalla = True;
TUN_Teksti_Paalla = false;
TUN_Ajettuscripta = true;
TUN_Ajone_Merk_Koko = 30;
TUN_PelaajanSide = side player;
TUN_JV_Merkit = [];
TUN_Ajoneuvomerkkien_ID = [];
TUN_Ryhma_Parametrit = missionNamespace getVariable "TUN_Ryhma_Parametrit";
TUN_Ajoneuvo_Parametrit = missionNamespace getVariable "TUN_Ajoneuvo_Parametrit";
//////////
//Ryhmät//
//////////
{
_x call {
params ["_RyhmanPuoli","_Merkinnimi","_RyhmanSijainti","_RyhmanTyyppi","_RyhmanVari","_RyhmanGroup"];
_liittolainen = false;
if (AFI_Liittolaiseten_Merkit) then
{
_liittolainen = [TUN_PelaajanSide, _RyhmanPuoli] call BIS_fnc_sideIsFriendly;
};
if (TUN_PelaajanSide == _RyhmanPuoli || _liittolainen) then
{
TUN_JV_Merkit = TUN_JV_Merkit + [_Merkinnimi]; //JV Merkit talteen
_merk = createMarkerLocal [_Merkinnimi, _RyhmanSijainti];
_merk setMarkerShapeLocal "ICON";
_merk setMarkerTypeLocal _RyhmanTyyppi;
_merk setMarkerSizeLocal [0.7,0.7];
_merk setMarkerColorLocal _RyhmanVari;
_merk setMarkerTextLocal _RyhmanGroup;
};
};
} forEach TUN_Ryhma_Parametrit;
////////////////////////////////
//Tuntemattoman super functiot//
////////////////////////////////
TUN_fnc_Luuskine_Merkit = // Tehdään Ajoneuvo merkit
{
{
_x call
{
params ["_VehkeenPuoliSTR","_VehkeenPaikka","_VehkeenTyyppi","_VehkeenSuunta","_VehkeenIconi","_VehkeenTeksti","_VehkeenRGBvari","_VehkeenPuoli"];
_liittolainen = false;
if (AFI_Liittolaiseten_Merkit) then
{
_liittolainen = [TUN_PelaajanSide, _VehkeenPuoli] call BIS_fnc_sideIsFriendly;
};
if (str TUN_PelaajanSide == _VehkeenPuoliSTR || _liittolainen) then {
if !(TUN_Teksti_Paalla) then
{
_VehkeenTeksti = str" ";
};
_luuskanidc = findDisplay TUN_Display displayCtrl 51 ctrlAddEventHandler
["Draw",format ["_this select 0 drawIcon
[
getText (configFile/'CfgVehicles'/%3/'Icon'),
%4,
%1,
30,
30,
%2,
%5,
2
]",
_VehkeenPaikka,
_VehkeenSuunta,
_VehkeenIconi,
_VehkeenRGBvari,
_VehkeenTeksti
]
];
TUN_Ajoneuvomerkkien_ID = TUN_Ajoneuvomerkkien_ID + [_luuskanidc];
};
};
} forEach TUN_Ajoneuvo_Parametrit;
};
TUN_fnc_Peli_Alkoi = //Kun peli alkaa. Päivittää ajoneuvo merkit näkyviin. Koska Display id vaihtuu.
{
TUN_Display = 12;
[] call TUN_fnc_Ajoneuvo_Merkit_Pois;
[] call TUN_fnc_Ajoneuvo_Merkit_Paalle;
};
TUN_fnc_Merkit_Pois = //kutsuu merkkien poisto functiot
{
[] call TUN_fnc_Ajoneuvo_Merkit_Pois;
[] call TUN_fnc_RyhmaMerkit_Pois;
};
TUN_fnc_Merkit_Paalle = //kutsuu merkkien teko functiot
{
[] call TUN_fnc_Ajoneuvo_Merkit_Paalle;
[] call TUN_fnc_Ryhma_Merkit_Paalle;
};
TUN_fnc_RyhmaMerkit_Pois = //Poistaa ryhmämerkit
{
if (!(TUN_Ryhma_Merkit_Paalla)) exitwith {};
{_x setMarkerAlphaLocal 0;} forEach TUN_JV_Merkit;
TUN_Ryhma_Merkit_Paalla = false; //Merkkaa että merkit on pois päältä
};
TUN_fnc_Ryhma_Merkit_Paalle = // Tekee ryhmämerkit
{
if (TUN_Ryhma_Merkit_Paalla) exitwith {};
{_x setMarkerAlphaLocal 1;} forEach TUN_JV_Merkit;
TUN_Ryhma_Merkit_Paalla = true;
};
TUN_fnc_Ajoneuvo_Merkit_Pois = //Poistaa ajoneuvo merkit
{
if (!(TUN_Ajoneuvo_Merkit_Paalla)) exitwith {};
{findDisplay TUN_Display displayCtrl 51 ctrlRemoveEventHandler ["Draw", _x];} forEach TUN_Ajoneuvomerkkien_ID;
TUN_Ajoneuvo_Merkit_Paalla = false;
TUN_Ajoneuvomerkkien_ID = [];
};
TUN_fnc_Ajoneuvo_Merkit_Paalle = //Tekee ajoneuvo merkit
{
if (TUN_Ajoneuvo_Merkit_Paalla) exitwith {};
[] call TUN_fnc_Luuskine_Merkit;
TUN_Ajoneuvo_Merkit_Paalla = true;
};
TUN_fnc_Ajoneuvo_Merkien_Teksti_Pois = //Poistaa tekstin ajoneuvomerkeistä
{
if (!(TUN_Teksti_Paalla)) exitwith {};
TUN_Teksti_Paalla = false;
if (!(TUN_Ajoneuvo_Merkit_Paalla)) exitwith {};
{findDisplay TUN_Display displayCtrl 51 ctrlRemoveEventHandler ["Draw", _x];} forEach TUN_Ajoneuvomerkkien_ID;
[] call TUN_fnc_Luuskine_Merkit;
};
TUN_fnc_Ajoneuvo_Merkien_Teksti_Paalle = //Lisää tekstin ajoneuvo merkkeihin
{
if (TUN_Teksti_Paalla) exitwith {};
TUN_Teksti_Paalla = True;
if (!(TUN_Ajoneuvo_Merkit_Paalla)) exitwith {};
{findDisplay TUN_Display displayCtrl 51 ctrlRemoveEventHandler ["Draw", _x];} forEach TUN_Ajoneuvomerkkien_ID;
[] call TUN_fnc_Luuskine_Merkit;
};
//tehdään briiffiin täbi jossa voi säätää merkkien näkyvyyttä.
ISNILS(AFI_Merkit_Lontoo,false);
if (AFI_Merkit_Lontoo) then
{
player createDiarySubject ["Start Markers","Start Markers"];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "All Markers On"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "All Markers Off"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "Vehicle Markers On"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "Vehicle Markers Off"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "Group Markers On"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "Group Markers Off"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "Vehicle Marker Texts On"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "Vehicle Marker Texts Off"]];
player createDiaryRecord ["Start Markers",["Merkit ON/OF", "Made by Tuntematon @ ArmaFinland.fi
"]];
}
else
{
player createDiarySubject ["Aloitusmerkit","Aloitusmerkit"];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Kaikki Merkit Päälle"]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Kaikki Merkit Pois"]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Ajoneuvomerkit Päälle"]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Ajoneuvomerkit Pois"]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Ryhmämerkit Päälle"]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Ryhmämerkit Pois"]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Ajoneuvomerkkien Tekstit Päälle."]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Ajoneuvomerkkien Tekstit Pois."]];
player createDiaryRecord ["Aloitusmerkit",["Merkit ON/OF", "Tehnyt Tuntematon @ ArmaFinland.fi
"]];
player createDiaryRecord ["Diary",["Aloitusmerkit Scripti","Tehtävässä on käytössä . Voit muokata mitkä merkit näkyy valitsemalla ''Aloitus Merkit'' vasemmalta.
Merkit piiloitetaan safestartin jälkeen. Ne saa uudelleen näkyviin Aloitusmerkit valikosta."]];
};
[] call TUN_fnc_Luuskine_Merkit;
[{time > 1}, {[] call TUN_fnc_Peli_Alkoi;}] call CBA_fnc_waitUntilAndExecute; //vaihtaa kartan idc oikeaksti pelin alettua jotta ajoneuvo merkit näkyy.
[{time > 60*("afi_safeStart_duration" call BIS_fnc_getParamValue)}, {[] call TUN_fnc_Merkit_Pois;}] call CBA_fnc_waitUntilAndExecute; //piiloittaa merkit safestartin jälkeen. Jokainen voi laittaa ne kuitenkin päälle jos niin haluaa itse uudestaan.
}] call CBA_fnc_waitUntilAndExecute;
waitUntil {!isNil "TUN_fnc_Merkit_Pois"};
player addEventHandler ["killed",{[] call TUN_fnc_Merkit_Pois}];