///////////////////////////
// simple artillery script
// made by moerderhoschi
// armed-assault.de
// 27.12.2012
///////////////////////////
///////////////////////////////////////////////////////////////////////////////
// HIER WERDEN LOKALE VARIABLEN ZUM EINSTELLEN DES SCRIPTES DEFINIERT
///////////////////////////////////////////////////////////////////////////////
_mdh_arti_artilimit = 5;				// ANZAHL DER ARTILLERIESCHLAEGE
_mdh_arti_artiarrive = 10 + random 5;	// ZEIT IN SEK BIS DER ARILLERIESCHLAG EINTRIFT
_mdh_arti_frequenz = 3 + random 2;		// ZEIT IN SEK ZWISCHEN DEN EINZELNEN GRANATENEINSCHLAEGEN
_mdh_arti_artigranaten = 20;			// GRANATEN PRO ARTILLERIESCHLAG
_mdh_arti_artiflaeche = 100;			// RADIUS DER EINSCHLAGSFLAECHE
_mdh_arti_artiMinEntfernung = 150;		// MINDESTDISTANZ DES SPIELERS ZUM ZIEL UM ARTI RUFEN ZU KOENNEN
_mdh_arti_artiMaxEntfernung = 500;		// MAXIMALDISTANZ DES SPIELERS ZUM ZIEL UM ARTI RUFEN ZU KOENNEN


///////////////////////////////////////////////////////////////////////////////
// HIER WIRD GEPRUEFT OB DIE VARIABLE mdh_arti_artipos DEFINIERT IST UND SOMIT
// EIN ARTILLERIESCHLAG IM GANGE. FALLS JA DANN BEENDET SICH DAS SCRIPT MIT
// EINER MELDUNG.
///////////////////////////////////////////////////////////////////////////////
if (!isNil"mdh_arti_artipos") exitwith
{
	titletext ["Artillerieschlag wird bereits durchgefuehrt","plain"];
};


///////////////////////////////////////////////////////////////////////////////
// HIER WIRD GEPRUEFT OB DIE VARIABLE mdh_arti_artizaehler DEFINIERT IST. WENN
// NICHT WIRD DIE VARIABLE MIT 1 INITIALISIERT ANSONSTEN UM 1 NACH OBEN GEZAEHLT
///////////////////////////////////////////////////////////////////////////////
if (isNil"mdh_arti_artizaehler") then
{
	mdh_arti_artizaehler = 1;							// MIT 1 INITIALISIEREN
}
else
{
	mdh_arti_artizaehler = mdh_arti_artizaehler + 1;	// UM 1 NACH OBEN ZAEHLEN	
};


///////////////////////////////////////////////////////////////////////////////
// VARIABLE mdh_arti_artizaehler WIRD UEBER DAS NETZWERK VEROEFFENTLICHEN SODASS
// DIE BEGRENZUNG FUER ALLE SPIELER GILT UND NICHT NUR LOKAL AUSGEFUEHRT WIRD
///////////////////////////////////////////////////////////////////////////////
publicvariable "mdh_arti_artizaehler";


///////////////////////////////////////////////////////////////////////////////
// ABFRAGE OB NOCH ARTIELLERIESCHLAEGE ZU VERFUEGUNG STEHEN. FALLS NICHT
// WIRD EINE MELDUNG AUSGEGEBEN UND DER ACTIONMENUEEINTRAG ENTFERNT
///////////////////////////////////////////////////////////////////////////////
if (mdh_arti_artizaehler <= _mdh_arti_artilimit) then
{
	mdh_arti_artipos = 1;
	titletext ["Oeffne die Karte und klicke an die Stelle wo der Artillerieschlag erfolgen soll","PLAIN"];
	

///////////////////////////////////////////////////////////////////////////////
// MIT ONMAPSINGLECLICK WIRD BEIM KLICK AUF DIE KARTE DER CODE IN DEN ""
// AUSGEFUEHRT. IN DIESEM FALL WIRD ONMAPSINGLECLICK 'DEAKTIVIERT' UND DIE
// MAPKLICKPOSITION IN DIE VARIABLE mdh_arti_artipos KOPIERT SODASS BEI ERNEUTEN
// KLICKEN AUF DIE KARTE DIE POSITION NICHT UEBERSCHRIEBEN WIRD
///////////////////////////////////////////////////////////////////////////////
	onmapsingleclick
	"
	onmapsingleclick '';
	mdh_arti_artipos = _pos;
	";


///////////////////////////////////////////////////////////////////////////////
// HIER WIRD GEWARTET BIS DER SPIELER AUF DIE KARTE GEKLICKT HAT UND SOMIT DIE
// GEWUNSCHTE POSITION IN DIE VARIABLE mdh_arti_artipos KOPIERT WURDE
///////////////////////////////////////////////////////////////////////////////
	waituntil {typename mdh_arti_artipos == "ARRAY"};
	

///////////////////////////////////////////////////////////////////////////////
// HIER WIRD GEPRUEFT OB DIE ENTFERNUNG ZWISCHEN SPIELER UND MARKIERTER POSITION
// VIA MAPKLICK HOECHSTENS 500 METER BETRAEGT ANSONSTEN WIRD EINE MELDUNG
// AUSGEGEBEN DASS DIE ENTFERNUNG VERRINGERT WERDEN MUSS
///////////////////////////////////////////////////////////////////////////////
	if (player distance [mdh_arti_artipos select 0, mdh_arti_artipos select 1, 0] > _mdh_arti_artiMaxEntfernung) then
	{
		mdh_arti_artizaehler = mdh_arti_artizaehler - 1;
		
		
///////////////////////////////////////////////////////////////////////////////
// VARIABLE mdh_arti_artizaehler WIRD UEBER DAS NETZWERK VEROEFFENTLICHEN SODASS
// DIE BEGRENZUNG FUER ALLE SPIELER GILT UND NICHT NUR LOKAL AUSGEFUEHRT WIRD
///////////////////////////////////////////////////////////////////////////////		
		publicvariable "mdh_arti_artizaehler";
		
		titletext [format ['Entfernung zum Ziel zu gross naehern Sie sich dem Ziel bis auf %1 Meter',_mdh_arti_artiMaxEntfernung],'PLAIN'];		
	}
	else
	{	
		if (player distance [mdh_arti_artipos select 0, mdh_arti_artipos select 1, 0] < _mdh_arti_artiMinEntfernung) then
		{
			mdh_arti_artizaehler = mdh_arti_artizaehler - 1;
			publicvariable "mdh_arti_artizaehler";
			titletext ['Entfernung zum Ziel zu gering, eigene Einheit in Gefahrenzone','PLAIN'];		
		}
		else
		{
		
			titletext ['Artillerieschlag wurde gerufen, Granaten werden abgefeuert','PLAIN'];


///////////////////////////////////////////////////////////////////////////////
// x SEKUNDEN PAUSE BEVOR DIE ERSTE GRANATE GESPAWNT WIRD
///////////////////////////////////////////////////////////////////////////////
			sleep _mdh_arti_artiarrive;


///////////////////////////////////////////////////////////////////////////////
// HIER WERDEN DIE x ARITLLERIEGRANATEN MIT RANDOMPOSITION UEBER DEM ZIELGEBIET
// ERSTELLT.
///////////////////////////////////////////////////////////////////////////////
			for '_x' from 1 to _mdh_arti_artigranaten do
			{
				_granate = createVehicle ['ARTY_Sh_82_HE', 
				[
				(mdh_arti_artipos select 0)+(random _mdh_arti_artiflaeche - random _mdh_arti_artiflaeche),
				(mdh_arti_artipos select 1)+(random _mdh_arti_artiflaeche - random _mdh_arti_artiflaeche),
				100
				],
				[], 0, 'FLY'];
	
				sleep _mdh_arti_frequenz;
			};
		};
	};
	mdh_arti_artipos = nil;
}
else
{


///////////////////////////////////////////////////////////////////////////////
// TEXTMELDUNG UND ENTFERNUNG DES ACTIONMENUEEINTRAGES FUER ARTILLERIESCHLAG
///////////////////////////////////////////////////////////////////////////////		
	titletext ["Artillerieschlaege aufgebraucht!","PLAIN"];
	player removeaction mdh_arti_ArtiRufen;
};