Hallo ich habe ein niederschlage und fessel skript dies geht aber nicht ... habt ihr ein neues, da ich glaube, dass es einfach nicht geht
Niederschlagen und festnehmen geht nicht mehr ?
-
skyracer2012 -
13. September 2016 um 15:25 -
Geschlossen -
Erledigt
-
-
...Wieso nimmst du nicht die Standart-Funktionen? Ist doch alles schon von Anfang an drin. Logs bitte (Client & Server!)
-
ja doch diese habe ich nichtmehr und ich weiss nicht wie ich die installiere
p.s. ich will auch, dass leute gefesselt werden -
Lad dir hier aus dem Forum einfach eine cleane AL Mission (4.4 in deinem Fall) runter und kopiere dir die betreffenden Einträge & Dateien raus, warum auch immer du das nicht hast, das musst du demnach ja gelöscht haben?!
-
Hey,
da wir hier einmal beim Thema festnehmen sind würde ich mich gerne mal anschließen.
Version 4.4R3
Ich habe Kabelbinder eingebaut, die kann man auch kaufen. Dabei bleibt es aber. Das fesseln als Rebelle klappt einfach nicht.
Keine Fehler im RPT.Wenn man als Rebelle Shift+R drückt und mehr als 2 Kabelbinder hat passiert einfach nichts. Keine Meldung, keine Fehler, keine Einträge......
Hat einer funktionierenden Code für das Fesseln mit Kabelbindern?
Das hier habe ich eingetragen:
Code: fn_Keyhandler.sqf
Alles anzeigen//Restraining (Shift + R) and Radio (R) case 19: { if(_shift) then {_handled = true;}; if (_shift && playerSide isEqualTo west && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { [] call life_fnc_restrainAction; } else { if !(license_civ_rebel) exitWith { hint "Du musst zuerst das Rebellentraining absolvieren um jemanden zu fesseln!"}; //if(_shift && playerSide isEqualTo civilian && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(currentWeapon player isEqualTo primaryWeapon player OR currentWeapon player isEqualTo handgunWeapon player)} && {currentWeapon player != ""} && {(isPlayer cursorObject)} && {alive cursorObject} && {cursorObject distance player < 3.5} && {animationState cursorObject isEqualTo "Incapacitated"} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then if (_shift && playerSide isEqualTo civilian && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { { if([false,"zipties",2] call life_fnc_handleInv) then { [] call life_fnc_restrainAction; [player,"uncuff"] call life_fnc_globalSound; hint "Person gefesselt"; } else { hint "Du hast keine Kabelbinder dabei!"; }; }; }; };
Code: fn_restrainAction.sqf
Alles anzeigenprivate["_unit"]; _unit = cursorObject; if (isNull _unit) exitWith {}; //Not valid if (player distance _unit > 3) exitWith {}; if (_unit getVariable "restrained") exitWith {}; if (side _unit isEqualTo west) exitWith {}; if (player isEqualTo _unit) exitWith {}; if (side player isEqualTo civilian) then { if (license_civ_rebel && playerSide isEqualTo civilian) exitWith { hint "Du benötigst das Rebellen training um jemanden zu fesseln"; }; if (life_inv_zipties < 2) exitWith { hint "Du hast keine Kabelbinder."; }; life_inv_zipties = life_inv_zipties - 1; hint "Sie entfuehren einen Zivilisten"; }; if (!isPlayer _unit) exitWith {}; //Broadcast! _unit setVariable["restrained",true,true]; [player] remoteExec ["life_fnc_restrain",_unit]; [0,"STR_NOTF_Restrained",true,[_unit getVariable["realname", name _unit], profileName]] remoteExecCall ["life_fnc_broadcast",west];
-
Ich seh da paar kleine Fehler,. ich schau heute Mittag nochmal genau nach
-
fn_restrainAction.sqf
C
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_restrainAction.sqf Author: Bryan "Tonic" Boardwine Modified by: blackfisch Description: Retrains the target. */ private["_unit"]; _unit = cursorObject; if (isNull _unit) exitWith {}; //Not valid if (player distance _unit > 3) exitWith {}; if (_unit getVariable "restrained") exitWith {}; if (side _unit isEqualTo west) exitWith {}; if (player isEqualTo _unit) exitWith {}; if (!isPlayer _unit) exitWith {}; if (playerSide isEqualTo civilian) then { if !(license_civ_rebel) exitWith { hint "Du benötigst das Rebellentraining um jemanden zu fesseln"; }; if (ITEM_VALUE("zipties") isEqualTo 0) exitWith { hint "Du hast keine Kabelbinder."; }; [false,"zipties",1] call life_fnc_handleInv; hint "Sie entfuehren einen Zivilisten"; _unit setVariable["restrained",true,true]; [player,"uncuff"] call life_fnc_globalSound; [player] remoteExec ["life_fnc_restrain",_unit]; } else { //Broadcast! _unit setVariable["restrained",true,true]; [player,"uncuff"] call life_fnc_globalSound; [player] remoteExec ["life_fnc_restrain",_unit]; [0,"STR_NOTF_Restrained",true,[_unit getVariable["realname", name _unit], profileName]] remoteExecCall ["life_fnc_broadcast",west]; };
fn_keyHandler.sqf (case 19)
C//Restraining (Shift + R) and Radio (R) case 19: { if (_shift && playerSide in [west,civilian] && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { [] call life_fnc_restrainAction; }; };
Damit sollte das jetzt wunderbar klappen. Warn son paar Kleinigkeiten, wie dass du in der Keyhandler abgefragt hast ob Civ - wenn ja nimm 2 Kabelbinder weg und in der restrainAction nochmal etc... Hab das mal etwas zusammengefasst. Bitte um Rückmeldung wenn es klappt/nicht klappt (aber dann bitte mit CLIENT und Server Logs, auf alle Fälle Client mitschicken!)
-
Wow vielen Dank, ich teste es gleich nach Feierabend sofort, ob es klappt!
-
PERFEKT! Genau so klappt es!
Blöde Frage....wie bekomme ich es jetzt hin, dass man mit der Windows-Taste ausrauben und entfesseln kann?
fn_restrainAction.sqf
C
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_restrainAction.sqf Author: Bryan "Tonic" Boardwine Modified by: blackfisch Description: Retrains the target. */ private["_unit"]; _unit = cursorObject; if (isNull _unit) exitWith {}; //Not valid if (player distance _unit > 3) exitWith {}; if (_unit getVariable "restrained") exitWith {}; if (side _unit isEqualTo west) exitWith {}; if (player isEqualTo _unit) exitWith {}; if (!isPlayer _unit) exitWith {}; if (playerSide isEqualTo civilian) then { if !(license_civ_rebel) exitWith { hint "Du benötigst das Rebellentraining um jemanden zu fesseln"; }; if (ITEM_VALUE("zipties") isEqualTo 0) exitWith { hint "Du hast keine Kabelbinder."; }; [false,"zipties",1] call life_fnc_handleInv; hint "Sie entfuehren einen Zivilisten"; _unit setVariable["restrained",true,true]; [player,"uncuff"] call life_fnc_globalSound; [player] remoteExec ["life_fnc_restrain",_unit]; } else { //Broadcast! _unit setVariable["restrained",true,true]; [player,"uncuff"] call life_fnc_globalSound; [player] remoteExec ["life_fnc_restrain",_unit]; [0,"STR_NOTF_Restrained",true,[_unit getVariable["realname", name _unit], profileName]] remoteExecCall ["life_fnc_broadcast",west]; };
fn_keyHandler.sqf (case 19)C//Restraining (Shift + R) and Radio (R) case 19: { if (_shift && playerSide in [west,civilian] && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { [] call life_fnc_restrainAction; }; };
Damit sollte das jetzt wunderbar klappen. Warn son paar Kleinigkeiten, wie dass du in der Keyhandler abgefragt hast ob Civ - wenn ja nimm 2 Kabelbinder weg und in der restrainAction nochmal etc... Hab das mal etwas zusammengefasst. Bitte um Rückmeldung wenn es klappt/nicht klappt (aber dann bitte mit CLIENT und Server Logs, auf alle Fälle Client mitschicken!)
-
Ich schreib dir gleich mal was
-
fn_actionKeyHandler.sqf (Z 90ff)
Cif ((_curObject getVariable ["restrained",false]) && !dialog && playerSide isEqualTo west) then { [_curObject] call life_fnc_copInteractionMenu; };
abändern zu:
Cif ((_curObject getVariable ["restrained",false]) && !dialog) then { switch (playerSide) do { case west: { [_curObject] call life_fnc_copInteractionMenu; }; case civilian: { [_curObject] call life_fnc_civInteractionMenu; }; case independent: { /*Hier könnte ein Medic Interaktionsmenü sein!*/ }; default {}; }; };
neue Datei fn_civInteractionMenu.sqf (im civilian Ordner) anlegen mit folgendem Inhalt:
C
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_civInteractionMenu.sqf Author: blackfisch Based on Content by: Bryan "Tonic" Boardwine Description: Replaces the mass addactions for various actions towards another player. */ #define Btn1 37450 #define Btn2 37451 #define Btn3 37452 #define Btn4 37453 #define Btn5 37454 #define Btn6 37455 #define Btn7 37456 #define Btn8 37457 #define Title 37401 private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7","_Btn8"]; disableSerialization; _curTarget = param [0,objNull,[objNull]]; if (player getVariable ["Escorting", false]) then { if (isNull _curTarget) exitWith {closeDialog 0;}; //Bad target if (!isPlayer _curTarget && side _curTarget isEqualTo civilian) exitWith {closeDialog 0;}; //Bad side check? if (player distance _curTarget > 4 ) exitWith {closeDialog 0;}; // Prevents menu accessing from far distances. }; if (!dialog) then { createDialog "pInteraction_Menu"; }; _display = findDisplay 37400; _Btn1 = _display displayCtrl Btn1; _Btn2 = _display displayCtrl Btn2; _Btn3 = _display displayCtrl Btn3; _Btn4 = _display displayCtrl Btn4; _Btn5 = _display displayCtrl Btn5; _Btn6 = _display displayCtrl Btn6; _Btn7 = _display displayCtrl Btn7; _Btn8 = _display displayCtrl Btn8; life_pInact_curTarget = _curTarget; if (player getVariable["isEscorting",false]) then { { _x ctrlShow false; } forEach [_Btn1,_Btn2,_Btn3,_Btn5,_Btn6,_Btn7,_Btn8]; }; //Set Unrestrain Button _Btn1 ctrlSetText localize "STR_pInAct_Unrestrain"; _Btn1 buttonSetAction "[life_pInact_curTarget] call life_fnc_unrestrain; closeDialog 0;"; //Set Check Licenses Button _Btn2 ctrlSetText localize "STR_pAct_RobPerson"; _Btn2 buttonSetAction "call life_fnc_robAction; closeDialog 0;"; //Set Escort Button if (player getVariable["isEscorting",false]) then { _Btn4 ctrlSetText localize "STR_pInAct_StopEscort"; _Btn4 buttonSetAction "[] call life_fnc_stopEscorting; closeDialog 0;"; } else { _Btn4 ctrlSetText localize "STR_pInAct_Escort"; _Btn4 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;"; }; //Put in car Button _Btn7 ctrlSetText localize "STR_pInAct_PutInCar"; _Btn7 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar; closeDialog 0;"; { _x ctrlShow false; } forEach [_Btn3,_Btn5,_Btn6,_Btn8];
Natürlich die Datei in der Functions.hpp eintragen:
In der fn_setupActions.sqf folgenden Teil löschen:
C//Rob person life_actions = life_actions + [player addAction[localize "STR_pAct_RobPerson",life_fnc_robAction,"",0,false,false,"",' !isNull cursorObject && player distance cursorObject < 3.5 && isPlayer cursorObject && animationState cursorObject == "Incapacitated" && !(cursorObject getVariable["robbed",FALSE]) ']];
-
MERCY!
Du wirst lachen, fast das gleiche habe ich mir grade auch selber gebastelt!
Geht gleich auf den Server zum Testen
-
Könnte man glatt als Tutorial durch gehen lassen
-
Och nö.... Ist mir zu aufwendig das jetzt zu formatieren... ich hab auch noch nen Root einzurichten heute oder morgen...
-
Steht doch alles super zusammengeschrieben hier!
Funktioniert übrigens alles perfekt! Danke -
Wie kann ich es einstellen das Civ´s auch Cops Fesseln können
-
in der fn_restrainAction.sqf folgende Zeile auskommentieren/löschen: if (side _unit isEqualTo west) exitWith {};
in der fn_keyHandler.sqf folgende Zeilen:
Codeif(_shift && playerSide == west && {!isNull cursorTarget} && {cursorTarget isKindOf "Man"} && {(isPlayer cursorTarget)} && {(side cursorTarget in [civilian,independent])} && {alive cursorTarget} && {cursorTarget distance player < 3.5} && {!(cursorTarget GVAR "Escorting")} && {!(cursorTarget GVAR "restrained")} && {speed cursorTarget < 1}) then { [] call life_fnc_restrainAction; };
abändern zu:
Codeif(_shift && playerSide == west && {!isNull cursorTarget} && {cursorTarget isKindOf "Man"} && {(isPlayer cursorTarget)} && {alive cursorTarget} && {cursorTarget distance player < 3.5} && {!(cursorTarget GVAR "Escorting")} && {!(cursorTarget GVAR "restrained")} && {speed cursorTarget < 1}) then { [] call life_fnc_restrainAction; };
-
Code
//Restraining (Shift + R) and Radio (R) case 19: { if (_shift && playerSide in [west,civilian] && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { [] call life_fnc_restrainAction; }; };
Also das Damit Ersetzen?
-
{(side cursorObject in [civilian,independent])}
das muss raus...
Code//Restraining (Shift + R) and Radio (R) case 19: { if (_shift && playerSide in [west,civilian] && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { [] call life_fnc_restrainAction; }; };