Einzelnen Beitrag anzeigen
Alt 20.02.2011, 16:49   #1 (permalink)
Anemia
500 Beiträge
 
Benutzerbild von Anemia
 
Registriert seit: 20.05.2009
Beiträge: 605
Standard Surrender/Kapitulieren - Script / Modul

Hallo zusammen,

ich würde für eine Mission gerne die möglichkeit haben das sich die Feinde ergeben, das ganze funktioniert soweit auch mit dem Surrender Modul, allerdings ist es noch nicht so ganz das was ich mir da vorgestellt habe und die BIS seite spuckt nicht gerade viel infos aus : Surrender - Bohemia Interactive Community
und auch die sachen die ich im BIS forum gefunden habe beschreiben nur Hostage situationen und führen nicht wirklich dazu das sich feinde ergeben.

Also muss wohl was eigenes her.....
Was ich bisher habe ist noch nicht viel aber funktioniert....

surrender.sqf
Code:
    // -----------------------------------------------
    // Author: Anemia
    // welcome to the jungle
    // -----------------------------------------------


hint "start surr";
_unit = _this select 0;

    if(alive _unit) then {
        sleep 5;
        _unit setpos getmarkerpos "jail";
        [_unit] joinSilent group prisoner;
        _unit allowdammage false;
        _unit setUnitPos "Up"; 
        dostop _unit;
        _unit playMoveNow "AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon";
        _unit disableAI "MOVE";
        _unit disableAI "ANIM";
    };
hint "end surr";
Durch die Surrender.sqf wird die zu verhaftende Person in das Gefängniss gebeamt.... führt die Animation aus .... fertig...

Derzeit wird die surrender.sqf über ein addaction eintrag in dem jeweiligen Gegner ausgelößt.

Code:
this addAction ["go in jail", "surrender\surrender.sqf"]
Was mir nun noch fehlt ...


Ich würde gerne in einem Bereich um den Spieler prüfen (ca. 30 m) ob feindliche Einheiten vorhanden sind, wenn ja dann soll diesen der addaction eintrag automatisch angehängt werden.

checkenemy.sqf
Code:
    // -----------------------------------------------
    // Author: Anemia
    // welcome to the jungle
    // -----------------------------------------------

hint "start check";

_suspect_ring=createTrigger["EmptyDetector",getPos player]; 
_suspect_ring triggerAttachVehicle [player];
_suspect_ring setTriggerArea[5,5,0,false];
_suspect_ring setTriggerActivation["EAST","PRESENT",false];
_suspect_ring setTriggerStatements["this", "this addAction ['go in jail', 'surrender\surrender.sqf' forEach list _suspect_ring]", "hint 'no enemy near'"];
sleep 2;
hint "trigger near done"; 
deleteVehicle _suspect_ring;

_no_suspect=createTrigger["EmptyDetector",getPos player]; 
_no_suspect triggerAttachVehicle [player];
_no_suspect setTriggerArea[5,5,0,false];
_no_suspect setTriggerActivation["EAST","NOT PRESENT",false];
_no_suspect setTriggerStatements["this", "hint 'no enemy near'", "hint 'no enemy near'"]; 
sleep 2;
hint "trigger no near done";
deleteVehicle _no_suspect;
Das will aber leider noch nicht so ganz funktionieren, der fehler liegt glaub ich in dieser zeile:
Code:
_suspect_ring setTriggerStatements["this", "this addAction ['go in  jail', 'surrender\surrender.sqf' forEach list _suspect_ring]", "hint 'no  enemy near'"];
Evtl. ist das mit dem Addaction aber auch totaler schwachsinn und es gibt eine viel bessere lösung das ganze zu bewerkstelligen ?!
Ziel soll es sein das alle Feindlichen einheiten auf der Karte nachher "verhaftet" werden können nachdem sie sich ergeben haben.

Bin für jede hilfe dankbar !

außerdem währen auch noch andere features super , zu dennen ich aber noch nicht gekommen bin. Vielleicht hat aber der ein oder andere neen guten vorschlag wie man da was bewerkstelligen kann...

Weitere Ideen:

Kapitulieren bei Gruppen dezimierung , wenn also die Gruppe mit 6 man startet und von diesen erledigt man 4, sollten sich die anderen 2 ergeben..evtl. Prozentual , wenn 70 % der gruppe ausgelöscht sind ergiebt sich der rest der gruppe....

mir schwirren auch noch weitere ideen im kopf rum , aber das soll erstmal reichen.... denke mal man kann da noch eine menge machen
Anemia ist offline