Posts by Greni

    Mache es mal mit dem Eventhandler killed bzw mpkiled und hefte das an jeden Spieler

    Bin mir nicht ganz sicher, aber es gibt einen Befehl um das ganze Equiqment eines Spielers zu beziehen


    _getAmmoOfPlayer = getUnitLoadout player;


    In _getAmmoOfPlayer wäre dann alles drin

    Nun 8),

    nach der Demo und der Fahrt durch den Hamburger Hafen (hoher Wiedererkennungswert, war hier echt überrascht) nach Travemünde hat das Game mich nun da gepackt.


    Grundgame für 4,99 € war ja nun dazu auch verlockend :evil:

    Gibt es da Tipps und Tricks zur Fahrzeugaufwertung und Fracht, welche man wissen sollte um schneller an Kohle zukommen? :saint:

    Intension

    Immersion und ein dazugehörige Bereich eines Briefingrooms gehört für mich immer dazu.

    In diesem Fall trifft es die USS Liberty. Nichts ist schöner als von dem Deck mit dem Heli seine Operationen zu starten und auch wieder heimzukehren ;)


    Herausforderung

    Um nicht zu jeder Mission alles wieder hinzustellen um einen Briefingroom darzustellen, habe ich mich hier auf das nötigste begrenzt und alles statisch positioniert.

    • Tisch fürs Briefing-Laptop
    • 2 Monitore ausgerichtet auf die Sitzplätze
    • Stühle in Sitzgruppen vor die Monitore bzw. dem Tisch fürs Briefing
    • Lampen zum Ausleuchten bei Nachteinsatz


    In dem vorliegenden Skript bedarfs nur der genannten Gegenstände mit entsprechenden Variablenbenennung, wie im Skript angegeben.

    So kann man, wenn es einmal auf der Map platziert wurde in jede beliebige Mission kopieren. Das Skript nicht vergessen ;)

    Es baut sich alles automatisch wieder entsprechend und wie gewohnt auf.



    loading.jpg


    Auch wäre es möglich das Skript auf ein Hangar bzw. größere Lagerhalle anzuwenden. Dazu müsste lediglich der Tisch (Variablenname table) in dem Hangar positioniert werden und die anderen Gegenstände im Skript dazu angepasst werden.


    Anbei natürlich auch eine Demoansicht als Mission. Benötigt wird nur Arma.



    Im Editor kann man sich die Mission auch anschauen.

    Für den MP Bereich habe ich Gruppen platziert, sowie den Respawnpoint auf der Liberty hinter den Briefingbereich gesetzt.


    Anbei die Demo zum Briefingroom

    btw. wenn Du schon die Skripte offen ablegst, solltest Du auch den Inhalt zumindest zu einem Teil verstehen.

    Der nachfolgende Skriptfetzen beinhaltet Deine Antwort zur Frage, weils in der hochgeladenen .sqf bereits steht


    Ich habe den Auszug etwas modifiziert

    Einfügen solltest Du es dann, wann Du es planst einzusetzen.

    Löschen des Objekts würde ich Dir auf jeden Fall empfehlen, da es früher oder später Dich Deine Serverperformance kostet

    Intension:

    Ich liebe es ja die Spieler bzw. Gruppen durch kleine Effekte immer wieder unter Druck zusetzen. Nachdem ich bei der Suche nach einem Skript mit Heli und Suchscheinwerfer entweder nix gescheites fand oder meinen Ansprüchen nicht entsprach, habe ich mit Hilfe von älteren Scripten doch etwas zusammen schustern können.


    Herausforderung

    Die Suchevom Heli nach den Spielern soll keinem festen Suchmuster entsprechen sondern zufällig wirken

    Der Heli soll nicht nur einen plumpen Suchscheinwerfer angeklebt bekommen sondern auch ein Suchkegel soll am Boden wahrgenommen werden

    Glücklicherweise hat Arma doch tatsächlich einen mit Suchscheinwerfer, so das es nur noch um den Kegel am Boden ansich ging.


    pasted-from-clipboard.png



    Der Heli wird jedoch per Skript gespawnt und nicht auf der Map platziert und das Skript wird per Trigger dann gestartet


    Über diverse Wegpunkte anhand der Position des ausgewählten Spieler, fliegt der Heli so seine Kreise


    Anbei das Heli-Skript

    SearchHeli.sqf

    Hinweis: In diesem Skriptbeispiel wäre GM erforderlich und ist sicherlich mit entsprechender Kenntnis auch mit anderen Fahrzeugen, Effekt- und Soundfiles abbildbar!


    Intention zum Skript

    Ausgelöster Alarm soll feindliche Zusatzkräfte auf Spieler ansetzen, nciht nur visuell, sondern auch durch einen Soundeffekt untermalt werden. In meinem Fall sollen dies durch die GM Polizeifahrzeuge abgebildet werden.


    Herausforderungen :

    Es soll ein der Spieler als Ziel ausgewählt werden, welcher dem eigentlichen Missionziel am nächsten ist. Indiesem Fall dem Marker mission_1

    Es sollen beide Fahrzeuge zufällig gewählt eingesetzt werden

    Es gibt 2 unterschiedliche Fahrzeuge mit unterschiedlichen 4 & 8 Sitzplätzen (Classnames gm_ge_pol_w123 & gm_ge_pol_typ253)

    Spawnbereich für das Fahrzeug soll um den Spieler an einer Strasse sein


    Es soll das Blaulicht während des Einsatzes natürlich leuchten und Soundtechnisch musste natürlich der Sound der damailgem Vopo das untermalen ;)

    Dieser Sound setzt erst ein, wenn das Fahrzeug unter 900m an dem Spieler ist

    Die Besatzung soll aussteigen, falls der Fahrer bei der Annäherung getötet wurde oder sie sich mit dem Fahrzeug unter 150m am Spieler befinden

    Sollte die Besatzung den Spieler ausschalten, soll der nächste gewählt werden


    Hinweis:

    Ich arbeite meistens mit denunbewaffneten OPFOR (CSAT) Einheiten und ziehe diese im Script um, damit Spezialeinheiten oder Polizei die Ausrüstung mitführt, welche ich dafür vorgesehen habe.

    In diesem Beispiel ist es gewöhnliche Vanilla Ausrüstung.


    Anbei Skript u. Vopo Soundfile

    Policecar.sqf

    Voposound

    Das Skript stammt aus der GT Form CTF. Anstatt der Fäser , war es bei uns eine Flagge, die man erobern musste, damit der Marker auch die Farbe ändert und freundliche AI zur Unterstützung spawnt


    Ansonsten könntest Du "Deine Städte" aber da mit einbringen, wenn Du folgenden Code dazu einführst


    _location1 = createLocation [ "NameVillage" , [13083.5,8468.41,0], 300, 300];// Gross Twülstedt

    _location2 = createLocation [ "NameVillage" , [5052.16,18774.2,0], 300, 300];// Velpke


    Hier wären es Positionen, welche ich zur Korrektur der eigentlichen Stadtmitte verwendet habe, da das reguläre Stadtzentrum mir zu weit aus der Mitte war. Mit anderen Worten, ich wollte das Schlachtzentrum in der Mitte der Stadt konzentrieren. Her war der generierte Trigger zu weit ausserhalb.



    Zu den Kanistern...da wirst Du dann mit ModelToWorld arbreiten müssten anstatt createVehicle, vermute ich mal. Frage mich nicht, warum ein Fass nun als Vehicle gesehen wird, keine Ahnung -> Bohemia Denke halt ;)

    Also, Du hast mich ein bisl angepiekst mit den Fässern in Verbindung mit PVP 8)


    Die nachfolgende Beispielmission ist auf Altis.

    Um den mir unbekannten PVP Faktor der Spieleranzahl steht in der initServer.sqf neben der Explosions Funktion auch ein Skripteil, welcher Städte mit einem Marker markiert. Aktuell nur auf ein paar benannte Städte umd die PVP Anzahl auf ein Kampfgebiet auf Altis zu begrenzen.

    Code
    1. _prestigeTowns = ["Chalkeia","Dorida","Charkia","Rodopoli","Paros", "Kalochori", "Nifi","Pyrgos"];
    2. if (_town in _prestigeTowns)then{ // weiterer Code folgt


    Diese Marker sind daher auch mit einem Trigger versehen, welcher den Marker farblich ändert

    - rot (Unter Kontrolle EAST)

    - blau (Unter Kontrolle BLUEFOR)

    - lila (Zivil - Neutral)

    - gelb (Bluefor & OPfOR im Marker)


    In jeder dieser Städte sind mind. 3 Fässer eines zufälligen Typ, ebenfalls zufällig im Markerbereich platziert. Auch in Gebäuden möglich!

    Die Sprengwirkung ist ebenfalls zufällig je nach zugeordnetem Spengmittel


    Der Aufruf im Skript


    Hier sind es also 6 verschiedene Fasstypen, welche im benannten Stadtbereich verteilt werden

    Jedem Fass wird die Function zugeordnet.

    Anmerkung: Es muss nicht zwingen ein Fass sein und kann durch eine andere Klasse ersetzt werden


    In der Function wird dann ein zufälliges Sprenmittel dem Fass zugeordnet.

    Bei dem geringsten Treffer wird die Explosion herbeigeführt.


    Code
    1. G_fnc_BarrelExplode = {
    2. private _target = _this select 0;
    3. private _pos = getPos _target;
    4. _randomExplosions = selectRandom ["Bo_Mk82","Bomb_04_F","Rocket_04_HE_F","DemoCharge_Remote_Ammo","grenadeHand"];
    5. bomb = _randomExplosions createVehicle _pos;
    6. bomb setDamage 1;
    7. deleteVehicle _target;
    8. };


    Mission hängt dran 8)

    Was soll das bewirken bzw. wie sollen die Fässer eingesetzt werden?

    Werden die abgeworfen, stehen die rum?

    Wie stark soll die Explosion sein?

    Im Moment erscheint mir das Skript erstmal zu groß und hätte hier einen eventhandler "hit" eingesetzt

    Code
    1. actionID = laptop addAction ["<t color='#33cc33'>Starten</t>",{laptop removeAction actionID;execVM "laptop_grabbed.sqf; "},[],1,false,true,"","_this distance _target < 5"];}


    grabLaptop.sqf

    Code
    1. laptopGrabbed = true;
    2. publicVariable "laptopGrabbed";
    3. player setVariable ["hasLaptop",1,true];

    Hier kannst Du dann dem Spieler das Laptop in den Rucksack dann packen oder auch bereits in der addaction oder auch die Codezeilten komplett da einfügen, dann brauchst Du die sqf nicht


    Wie es dann weitergeht kann ich nur erahnen ... Laptop muss irgendwo abgegeben werden?


    das würde ich dann über einen Trigger im Zielbereich lösen ...


    Wiederholbar


    Bedingung

    vehicle player in thisList && laptopGrabbed


    Bei Aktivierung

    Code
    1. {
    2. if (isPlayer _X) {
    3. private _gotLaptop = _X getvariable "hasLaptop";
    4. if(isNil "_gotLaptop")then
    5. {
    6. //Mission complete?Dem Auftraggeber das Teil auf den Tisch knallen? ;)
    7. }
    8. }
    9. } foreach thisList

    _hasLaptop = [player, "Laptop_Closed"] call BIS_fnc_hasItem;


    if (_hasLaptop) then {

    hint format ["Wert = %1",_hasLaptop]; //sollte dann Wert = true ausgeben

    }else{

    //nur für Debug

    hint format ["Wert = %1",_hasLaptop]; //sollte dann Wert = false ausgeben

    };



    Probiere es mal :)

    Moin Saint,


    interessanter Ansatz.

    Wie hast Du denn das Laptop in das Inventory der Einheit bekommen?

    Ich kenne das nur, wenn es sich über typische Items handelt mit denen der Spieler auch arbeiten kann


    Das Laptop wäre ansich ein Objekt, was so eigentlich nicht in der Unitorm, Weste oder Rucksack vorgesehen


    Um das Inventory zu prüfen

    _items = items player; //Hier entsteht ein Array, welches alle Gegenstände des Spielers enthält

    -> in items // in der if Abfrage wird das Array nach dem genannten Gegenstand durchsucht und geht nur dann weiter, wenn der Gegenstand auch gefunden wird -> also true

    Wenn es nicht gefunden wird, wird die if Abfrage übersprungen


    if ("Laptop_Closed" in _items) then {

    // hier würde dann das als Skript folgen, was immer dann passieren soll

    };


    Falls Du uns mitteilst, warum das Laptop zwingend in Unitorm, Weste oder Rucksack soll, könnte man weiter ansetzen oder Alternativen vorschlagen umd das abzufragen