Geisel skript (Apex Protocol) - Wenn alle Geiseln befreit, dann Aufgabe erledigt

  • Multiplayer

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Geisel skript (Apex Protocol) - Wenn alle Geiseln befreit, dann Aufgabe erledigt

    Hallo Forum,

    da meine Skriptkenntnisse schlecht sind frage ich hier mal nach.

    Eine Aufgabe in der von mir erstellten Mission ist es mehrere Geiseln zu befreien. Die Aufgabe wird dann abgeschlossen, wenn alle Geiseln befreit worden sind.
    Das geisel Skript habe ich von der Apex Kampagne übernommen. Außerdem habe ich kleine Abänderungen vorgenommen und versucht für das Skript alle relevante Einträge aus der Mission ebenfalls zu übernehmen, damit das Skript auch funktioniert.

    Soweit bin ich auch gekommen. Die Geisel sitzt gefesselt auf dem Boden und lässt sich befreien.

    Aber wie muss das Skript geändert werden, damit mehrere Einheiten als Geisel fungieren und sich seperat befreien lassen und danach die dazugehörige Aufgabe erst erledigt wird, wenn alle lebenden Geiseln befreit worden sind?

    Hier die Dateien der Testmission:

    Spoiler anzeigen

    C-Quellcode: description.ext

    1. class CfgBriefing
    2. {
    3. };
    4. author = "JeckZeRippa";
    5. briefingName = "";
    6. onLoadName = "";
    7. onLoadMission = "";
    8. overviewText = "";
    9. overviewPicture = "";
    10. class CfgFunctions
    11. {
    12. class BIS
    13. {
    14. class EXP_m01
    15. {
    16. file = "functions";
    17. class EXP_m01_rescueCop {};
    18. };
    19. };
    20. };
    Alles anzeigen





    Spoiler anzeigen


    C-Quellcode: init.sqf

    1. // Handle police officer
    2. [] spawn BIS_fnc_EXP_m01_rescueCop;
    3. //CopAnim
    4. [BIS_cop1,"Acts_AidlPsitMstpSsurWnonDnon_loop"] remoteexec ['playMove'];




    Spoiler anzeigen


    C-Quellcode: initServer.sqf

    1. // Global mission variables
    2. BIS_copRescued = false;
    3. {publicVariable _x} forEach ["BIS_copRescued"];
    4. // Disable fleeing for all units
    5. {_x allowFleeing 0} forEach allUnits;




    Spoiler anzeigen


    C-Quellcode: Initline der Geisel im Editor

    1. BIS_cop1 = this; removeAllWeapons this; this setCaptive true; this setBehaviour "CARELESS"; {this disableAI _x} forEach ["AUTOCOMBAT", "AUTOTARGET", "MOVE", "TARGET"]; this enableMimics false;


    Ich hoffe, dass hier wer helfen kann

    MfG JeckZeRippa :)
  • setze 3 Variablen in der init.sqf

    Quellcode

    1. If (isServer) then {
    2. MissionNameSpace SetVariable ["frei_G1",false, true];
    3. .... ["frei_G2",false,true];
    4. .....


    Wie auch immer, entweder via Trigger bei der Geisel oder per Addaction schaltest du jede einzelne Variable auf true.
    MissionNameSpace SetVariable ["frei_G1",true,true]

    Dann erstellst du einen Trigger der abfragt ob die Variablen wahr sind. Also statt den this schreibst du
    frei_G1 && frei_G2 && frei_G3

    Bei Aktivierung lässt du den Task auf erfolgreich schalten.

    Wie man Task via Overhoul schaltet, Dazu habe ich hier eine Beispielmission hochgeladen.

    Gruß aus Spanien!
    Gehirn ist keine Seife. Es wird nicht weniger, wenn man es benutzt!

    Beste Band der Welt
  • Ja. Ist eine reine Testmission. Für die Mission an der Ich arbeite, pass ich das nochmal ein wenig an ^^

    z.B könnte man die Spieler unter Zeitdruck setzen dadurch, dass in einem bestimmten Zeitintervall jeweils eine Geisel umgelegt wird. Solange bis die letzte tot ist. Dann wird die Aufgabe als gescheitert angegeben und für jede tote Geisel gibt es Punktabzug. Eine von mehreren Ideen die mir so durch den Kopf geht :P .
  • Würde schon reichen, wenn du sie mit setCaptive bearbeitest oder sie der Spielergruppe beitreten lässt und anscließend zurück in die Base bringen lässt- Auf dem Rückweg warten natürlich hier und da ein paar Bösewichte, die die Geiseln und Spieler gleichermaßen unter Beschuss nehmen ...

    Das könnte zb. die Aufgabe sein. Nicht nur Befreien sondern auch noch die Geiseln heil irgendwo abliefern :D