Surrender Animation bei Altis Life aktivieren

Aus Nitradopedia
Wechseln zu: Navigation, Suche
Arma3Altis header.png

Miete dir jetzt deinen eigenen prepaid ArmA 3 Altis Life Server auf nitrado.net

Dieser Artikel gilt für die Version: ArmA 3: Altis Life 3.1.2

In diesem Artikel wird erläutert, wie man eine "Surrender Animation" wie sie aus DayZ SA bekannt ist auf einem Arma3 Server einfügt. Somit ist es möglich sich zu "ergeben"

Hier findest du einen Download Link zu allen Dateien die du für dieses Script benötigst: http://customer.static.nistored.de/surrender.zip


  • Wichtiger Hinweis: Eine Sicherung / Bitte erstelle ein Backup aller Dateien du die verändern wirst
  • Gameserver stoppen
  • Lade dir das oben genannte Archiv herunter, entpacke es und lade den kompletten MPMissions Ordner auf deinen Altis Life Server in den Ordner /arma3 hoch.


1. Die Datei Functions.h aus dem Verzeichnis /arma3/MPMissions/Altis_Life.Altis öffnen

  • Folgende Zeile in der Datei suchen:
class Actions
    {


  • Diese Zeile an die vorhandenen Einträge anfügen:


class surrender {};
  • Der Abschnitt sollte nun folgendermaßen aussehen:


	class Actions
	{
		file = "core\actions";
		class buyLicense {};
		class chemlightUse {};
		class heal {};
		class healHospital {};
		class pushVehicle {};
		class repairTruck {};
		class serviceChopper {};
		class serviceTruck {};
		class catchFish {};
		class catchTurtle {};
		class dpFinish {};
		class dropFishingNet {};
		class gatherApples {};
		class gatherCannabis {};
		class gatherHeroin {};
		class gatherOil {};
		class getDPMission {};
		class postBail {};
		class processAction {};
		class robBankAction {};
		class sellOil {};
		class suicideBomb {};
		class arrestAction {};
		class escortAction {};
		class impoundAction {};
		class pulloutAction {};
		class putInCar {};
		class stopEscorting {};
		class restrainAction {};
		class searchAction {};
		class searchVehAction {};
		class unrestrain {};
		class pickupItem {};
		class pickupMoney {};
		class ticketAction {};
		class gatherPeaches {};
		class gatherCocaine {};
		class pumpRepair {};
		class packupSpikes {};
		class robFederal {};
		class storeVehicle {};
		class robAction {};
		class sellTurtle {};
		class surrender {};
	};
  • Die Datei Functions.h speichern.


2. Die Datei fn_keyHandler.sqf im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/core/functions öffnen

  • Sucht dort folgende Zeile:
	//Restraining (Shift + R)
  • Fügt unter dem Ende (Erkennbar am }; )des Abschnitts Restraining folgenden Code-Schnipsel ein:
	//surrender... shift + h
    case 35:
    {
        if(_shift) then {_handled = true;};

        if (_shift) then
        {
            if (vehicle player == player && !(player getVariable ["restrained", false]) && (animationState player) != "Incapacitated" && !life_istazed) then
            {
                if (player getVariable ["surrender", false]) then
                {
                    player setVariable ["surrender", false, true];
                } else
                {
                    [] spawn life_fnc_surrender;
                };
            };
        };
    };


  • Ingesamt sollte des ab dem Restraining dann so aussehen:
	//Restraining (Shift + R)
	case 19:
	{
		if(_shift) then {_handled = true;};
		if(_shift && playerSide == west && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && (side cursorTarget in [civilian,independent]) && alive cursorTarget && cursorTarget distance player < 3.5 && !(cursorTarget getVariable "Escorting") && !(cursorTarget getVariable "restrained") && speed cursorTarget < 1) then
		{
			[] call life_fnc_restrainAction;
		};
	};
	//surrender... shift + h
    case 35:
    {
        if(_shift) then {_handled = true;};

        if (_shift) then
        {
            if (vehicle player == player && !(player getVariable ["restrained", false]) && (animationState player) != "Incapacitated" && !life_istazed) then
            {
                if (player getVariable ["surrender", false]) then
                {
                    player setVariable ["surrender", false, true];
                } else
                {
                    [] spawn life_fnc_surrender;
                };
            };
        };
    };
	
	
  • Die Datei fn_keyHandler.sqf speichern.


  • In diesem Fall ist die Tastenkombination zum ergeben shift+h. Das "h" kann natürlich gegen eine andere nicht belegte Taste ausgetauscht werden.

Dies geht folgendermaßen: Das case 35 steht für die Taste "H" auf der Tastatur Für die Taste "K" ist es z.B: case 37. Ganz unten in diesem Tutorial steht welche Taste welcher "case" ist.


2. Die Datei fn_setupActions.sqf im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/core öffnen

  • Folgende Zeile suchen


life_actions = life_actions + [player addAction["Rob Person",life_fnc_robAction,"",0,false,false,"",'
        !isNull cursorTarget && player distance cursorTarget < 3.5 && isPlayer cursorTarget && animationState cursorTarget == "Incapacitated" && !(cursorTarget getVariable["robbed",FALSE]) ']];
  • Ersetzt nun diese 2 Zeilen durch die folgenden
life_actions = life_actions + [player addAction["Rob Person",life_fnc_robAction,"",0,false,false,"",'
        !isNull cursorTarget && player distance cursorTarget < 3.5 && isPlayer cursorTarget && animationState cursorTarget in ["Incapacitated","amovpercmstpsnonwnondnon_amovpercmstpssurwnondnon"] && !(cursorTarget getVariable["robbed",FALSE]) ']];
  • Die Datei fn_setupActions.sqf speichern


3. Die Datei fn_restrain.sqf im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/core/cop öffnen

  • Folgende Zeile suchen


titleText[format["You have been restrained by %1",name _cop],"PLAIN"];
  • Direkt über dieser Zeile musst du folgenden Code-Schnipsel einfügen
if((player getVariable["surrender",FALSE])) then { player setVariable["surrender",FALSE,TRUE]; player switchMove ""; };


  • Die Datei fn_restrain.sqf speichern


Wenn du diese Schritte befolgt habt sollte nun das "Ergeben" auf dem Server möglich sein. Zum Abschluss noch die erwähnten cases:

ESC =1
F1 =59
F2 =60
F3 =61
F4 =62
F5 =63
F6 =64
F7 =65
F8 =66
F9 =67
F10 =68
F11 =87
F12 =88
PRINT =183
SCROLL =70
PAUSE =197^=411=22=33=44=55=66=77=88=99=100=11ß=12´=13Ü=26Ö=39Ä=40# = 43<=86,=51.=52-=53+= NOT DEFINED
POS1 =199
TAB =15
ENTER =28
DELETE =211
BACKSPACE =14
INSERT =210END=207
PAGEUP =201
PAGEDOWN =209
CAPS =58
A =30
B =48
C =46
D =32
E =18
F =33
G =34
H =35
I =23
J =36
K =37
L =38
M =50
N =49
O =24
P =25
Q =16
U =22
R =19
S =31
T =20
V =47
W =17
X =45
Y =44
Z =21
SHIFTL =42
SHIFTR =54
UP =200
DOWN =208
LEFT =203
RIGHT =205
NUM_0 =82
NUM_1 =79
NUM_2 =80
NUM_3 =81
NUM_4 =75
NUM_5 =76
NUM_6 =77
NUM_7 =71
NUM_8 =72
NUM_9 =73
NUM_+=78
NUM =69
NUM_/=181
NUM_*=55
NUM_-=74
NUM_,=83
NUM_ENTER =156
STRGL =29
STRGR =157
WINL =220
WINR =219
ALT =56
SPACE =57
ALTGR =184
APP =221