#include "\x\cba\addons\main\script_macros_common.hpp"
//versio 2.3
//Tehnyt Tuntematon
//Käynnistetään seuraavalla tapaa.
//[] execVM "merkit.sqf";
//
/*
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.
TUN_Liittolaiset_Pois = 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
{
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
{
_RyhmanPuoli = side _pomo;
_Ryhma = group _pomo;
_RyhmanSijainti = getpos _pomo;
_Merkinnimi = format ["%1", _Ryhma];
_Ryhma = format ["%1", _Ryhma] find "10";
_RyhmanGroup = _Merkinnimi select [2];
_RyhmanVari = [_RyhmanPuoli, true ] call BIS_fnc_sideColor;
_osapuoli = switch (_RyhmanPuoli) do
{
case west: { "b" };
case east: { "o" };
default { "n" }
};
if !(_Ryhma == -1) then
{
_RyhmanTyyppi = format ["%1_hq", _osapuoli]
}
else
{
_RyhmanTyyppi = format ["%1_inf", _osapuoli]
};
_parametrit = [_RyhmanPuoli,_Merkinnimi,_RyhmanSijainti,_RyhmanTyyppi,_RyhmanVari,_RyhmanGroup];
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 = _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 (isServer) exitWith {};
//Servujutut ohi. Loput locaalia.
[{!isNull player && hasInterface && missionNamespace getVariable "TUN_SERVU_VALMIS"},{ //CBA_fnc_waitUntilAndExecute. Siirtää scriptan unscheduled environmentiin.
ISNILS(TUN_Aloitus_Merkit,true);
ISNILS(TUN_Ajettuscripta,false);
ISNILS(TUN_Liittolaiset_Pois,false);
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 !(TUN_Liittolaiset_Pois) 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 !(TUN_Liittolaiset_Pois) 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 ["Aloitus Merkit",["Merkit ON/OF", "Scripti on vielä keskeneräinen. Massakäyttöön ottoa ei suositella vielä."]];
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."]];
[] call TUN_fnc_Luuskine_Merkit;
[{time > 1}, {[] call TUN_fnc_Peli_Alkoi;}] call CBA_fnc_waitUntilAndExecute;
}] call CBA_fnc_waitUntilAndExecute;