Einzelnen Beitrag anzeigen
Alt 25.04.2013, 16:22   #12 (permalink)
PlatinOps
50 Beiträge
 
Registriert seit: 16.02.2013
Alter: 26
Beiträge: 80
PlatinOps eine Nachricht über Skype™ schicken
Standard

Code:
//Artilleriefeuer über Map-Click.
//  Das Skript wird über einen Auslöser auf allen PCs gestartet!    [Vienna 25.04.2013]
// 
//Benötigt im Editor ein Logic-Objekt mit Namen: EinschlagsMarker2
//================================================================
//
//Aufruf: temp = [Position, 3, 25,"ARTY_Sh_81_HE",200] execVM "artillerie_einschlag2.sqf";
//
//Für Mapklick in Verbindung mit Auslöser
//=======================================
//           Aufruf des Map-Click: onMapSingleClick "EinschlagPosition2=_pos; publicVariable 'EinschlagPosition2' ";
//     Bedingung für den Auslöser: not isNil "EinschlagPosition2"
//       Aufrufzeile im Ausllöser: temp = [EinschlagPosition2, 3, 25,'ARTY_Sh_81_HE',200] execVM "artillerie_einschlag2.sqf"
//
// Die beiden Testinfo-Zeilen sind nach dem Funktions-Test zu entfernen!
 
waitUntil {isNil "ViennasArtillerieAktiv2"}; //Verhindert gleichzeitigen Ablauf des Skripts
ViennasArtillerieAktiv2 = true;

onMapSingleClick ""; //Mapklick entfernen

private ["_zentrum","_runden","_schuss","_bombe","_posX","_sounds","_einschlag","_bereich"];

_zentrum = _this select 0; //Position für das Artilleriefeuer
_runden  = _this select 1; //Anzahl der Runden
_schuss  = _this select 2; //Anzahl der Bomben pro Runde
_bombe   = _this select 3; //Name der Bombe in Anführungszeichen
_bereich = _this select 4; //"Radius" für den Granaten-Bereich

_posX = floor(getPos EinschlagsMarker2 select 0);//jede neue Position des EinschlagsMarker2 löst den Sound aus 
_sounds = ["mortar1","mortar2","mortar3","mortar4","mortar5","mortar6"];//unterschiedliche Geschoss-Sounds, werden für jede Bombe zufällig ausgewählt 

for "_i" from 1 to _runden do   //Anzahl der Runden
 {
  player groupChat format["Runde %1. Noch 10 Sekunden bis 1. Einschlag!",_i]; //>>>>>> Info nur zum Testen <<<<<<<
  sleep 10;                     // Pause bis zum ersten Feuern und zwischen den Runden
  for "_j" from 1 to _schuss do //Anzahl der Schüsse pro Runde
   {
    if (isServer)then           //nur für den Server/Host
     {
      _einschlag = [(_zentrum select 0)-_bereich+random _bereich*2,(_zentrum select 1)-_bereich+random _bereich*2];//zufällige Einschlagposition festlegen (Radius gem. Parameter)
      EinschlagsMarker2 setPos _einschlag; //EinschlagsMarker2 auf die Einschlagposition setzen
     };
    waitUntil {floor(getPos EinschlagsMarker2 select 0) != _posX}; //warten bis EinschlagsMarker2 auf neuer Position
    EinschlagsMarker2 say [_sounds select(floor(random(count _sounds))),150];//Geschoss-Sound beim EinschlagsMarker2 abspielen   
    hint format ["Runde:%1 Schuss:%2",_i,_j]; //>>>>>> Info nur zum Testen <<<<<<<
    if (isServer)then //nur für den Server/Host
     {
      sleep 1.1;      //Soundlänge abwarten (alle Sounds haben eine Länge von 1,1 Sekunden)
      _bombe createVehicle _einschlag; //Bombe beim EinschlagsMarker2 zünden
      sleep (2*0.66 + random(2*0.33))  //Pause zwischen den Bomben
     };
    _posX = floor(getPos EinschlagsMarker2 select 0) //Position für Vergleich bei waitUntil speichern
   }
 };
ViennasArtillerieAktiv2 = nil;
EinschlagPosition2      = nil
Wie kann ich den das einstellung das ich in den Parametern einstellen kann wie groß die Streuung sein soll?
PlatinOps ist offline