Einzelnen Beitrag anzeigen
Alt 25.09.2010, 19:13   #2 (permalink)
Vienna
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Ich habe da nur ein Beispiel aus Arma1. Eine Kanone feuert in Richtung Ziel, danach wird der "Einschlag" erzeugt.

Code:
//Funktion Schussabgabe für ArtillerieHQ.sqf  ArmA ab 1.05  Vienna  03.01.2007
//
//Parameter: [<Objekt-Kanone>,[<Zielposition X,Y>],"<Munitionsname>",<Schussanzahl>,<MunitionsNummer(1-2)>]

Private ["_Kanone","_Muni","_anzahl","_xz","_yz","_s","_r"];

//Verzögerung des 1. Schusses
Sleep random 10 + 3;

_Kanone = _this select 0;
_Muni   = _this select 2;

//Schuß abfeuern. Dauer eines Schusses (Zielen, Feuern und Nachladen): 24 Sekunden.
_s=0;
while {_s < _this select 3}do
{

	//Streuung if:MuniNr=1? then:40m bei Panzer HE. else:100m bei Zeitbombe.
	if(_this select 4 == 1)then
		{
			_xz     = ((_this select 1) select 0)-20+Random 40;
			_yz     = ((_this select 1) select 1)-20+Random 40
		}
	else
		{
			_xz     = ((_this select 1) select 0)-50+Random 100;
			_yz     = ((_this select 1) select 1)-50+Random 100
		};
		
	_anzahl = _Kanone Ammo _Muni;
	
	//if: Munition vorhanden? then: Schuss. else: Defekt oder keine Munition.
	if(_anzahl > 0)then
		{
			_Kanone DoWatch [_xz,_yz,1000];
			sleep 3;
			_Kanone fire _Muni;
			//Explosion: warten bis Geschütz abgefeuert (max. 15 sekunden)
			_r=0;while{_r < 15}do{if(_anzahl > _Kanone Ammo _Muni)then{_r=30}else{_r=_r+1};sleep 1};
			if(_r == 30)then
				{
					sleep 4;
					//if:MuniNr=1? then:Panzer HE. else:Zeitbombe.
					if(_this select 4 == 1)then
						{
							_Granate = "Sh_122_HE" CreateVehicle [_xz,_yz];
							sleep 1;
							deleteVehicle _Granate
					  }
					else
						{
							_Granate = "bomb" createVehicle [_xz,_yz];
							_Granate setDamage 1;
							sleep 1;
							deleteVehicle _Granate
						}
				}
		}
	else
		{
			titleText["Artillerie defekt oder keine Munition!","Plain down"]
		};
	_s=_s+1;
	sleep 14 //Nachladezeit, wichtig für korrekte Animation!!

};
Vienna ist offline