#include "\x\cba\addons\main\script_macros_common.hpp"
//versio 2.4
//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;
*/
//
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_Ryhma_Merkit_Pois;
};
TUN_fnc_Merkit_Paalle = //kutsuu merkkien teko functiot
{
[] call TUN_fnc_Ajoneuvo_Merkit_Paalle;
[] call TUN_fnc_Ryhma_Merkit_Paalle;
};
TUN_fnc_Ryhma_Merkit_Pois = //Poistaa ryhmämerkit
{
if (!(TUN_Ryhma_Merkit_Paalla)) exitwith {player commandChat "Ryhmä merkit on jo pois päältä."}; //Tarkisaa onko ryhmämerkit pois.
{_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 {player commandChat "Ryhmä merkit on jo päällä."};
{_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 {player commandChat "Ajoneuvo merkit on jo pois päältä."};
{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 {player commandChat "Ajoneuvo merkit on jo päällä."};
[] call TUN_fnc_Luuskine_Merkit;
TUN_Ajoneuvo_Merkit_Paalla = true;
};
TUN_fnc_Ajoneuvo_Merkien_Teksti_Pois = //Poistaa tekstin ajoneuvomerkeistä
{
if (!(TUN_Teksti_Paalla)) exitwith {player commandChat "Tekstit on jo pois."};
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 {player commandChat "Tekstit on jo Päällä."};
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ä.
player createDiarySubject ["Aloitus Merkit","Aloitus Merkit"];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Kaikki Merkit Päälle"]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Kaikki Merkit Pois"]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Ajoneuvo Merkit Päälle"]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Ajoneuvo Merkit Pois"]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Ryhmä Merkit Päälle"]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Ryhmä Merkit Pois"]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Ajoneuvo Merkkien Tekstit Päälle."]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Ajoneuvo Merkkien Tekstit Pois."]];
player createDiaryRecord ["Aloitus Merkit",["Merkit ON/OF", "Tehnyt Tuntematon @ ArmaFinland.fi
"]];
player createDiaryRecord ["Diary",["Aloitusmerkit Scripti","Tehtävässä on käytössä testissä oleva scripti joka merkkaa aloitus paikat kartalle. 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}];