Vorstellung:
Ich stelle euch heute das Skript Sperrelemente im Z Menü vor. Dieses Tutorial ist nicht von mir sondern von altisliferpg.com hier nochmal der Link zum dem Tutorial: http://www.altisliferpg.com/topic/11132-re…cement-dialogs/
Ich übersetze es nur!
Die Verbreitung ohne meiner Erlaubnis von diesem Tutorial verbiete ich jedoch wenn ihr eine Erlaubnis einholt so dürft ihr dies gerne in anderen Foren verteilen!
Author dieses Skript ist Maximum
Version:
Das Skript basiert auf der Version 3.1.4.8 und auf der 4.4R3, jedoch auch auf anderen Versionen
Funktionen:
Man kann über diesem Dialog Absperrungen platzieren.
Mehr will ich euch nicht verraten findet es selbst dann raus.
Ein Screen kommt am Abend sobald ich Zuhause bin
Nun legen wir los!
Schritt 1:
Zuerst geht ihr in die functions.h in eurer Mission und fügt unter class Cop
das hier ein:
class CopPlaceables
{
file = "core\cop\placeables";
class placeablesInit {};
class placeablesMenu {};
class placeablesRemoveAll {};
class placeablePlace {};
class placeableCancel {};
class placeablesPlaceComplete {};
};
speichert die ab und nun könnt ihr die functions.h schließen!
Schritt 2:
Dann geht ihr in den core/cop und erstellt dort einen Ordner mit dem Namens placeables
Schritt 3:
In diesem Ordner erstellt ihr eine fn_placeablesInit.sqf mit folgendem Inhalt:
/*
Author: Maximum
Description: Placeables for the cop side.
Das Skript stammt von altisliferpg.com hier der folgende Link: http://www.altisliferpg.com/topic/11132-release-copsmedics-barrier-placeables-road-conebarrier-placement-dialogs/
Das Skript wurde von mir in Deutsch übersetzt dennoch ist das Verbreiten des Tutorials in anderen Forum ohne meiner Erlaubnis nicht erlaubt!
Editiert von: powerafro2
Version: 3.1.4.8
*/
life_barrier_active = false;
life_barrier_activeObj = ObjNull;
life_placeables =
[
[
"Huetchen",
"RoadCone_F"
],
[
"Huetchen Leuchtend",
"RoadCone_L_F"
],
[
"Strassenschild",
"SignAd_Sponsor_F"
],
[
"Schranke",
"Land_BarGate_F"
],
[
"Sicherheitsbarriere",
"Land_Crash_barrier_F"
],
[
"Plastik Absperrung Orange",
"PlasticBarrier_03_orange_F"
],
[
"Plastik Absperrung Orange",
"PlasticBarrier_02_yellow_F"
],
[
"Tragbares Licht",
"Land_PortableLight_single_F"
],
[
"Tragbares Licht(Doppelt)",
"Land_PortableLight_double_F"
],
[
"UK flag pole",
"Flag_UK_F"
]
];
life_bar_limit = 2500;
life_bar_placey = [];
Alles anzeigen
Schritt 4:
Erstellt ebenfalls im Ordner eine fn_placeablesMenu.sqf mit folgendem Inhalt:
/*
Author: Maximum
Description: Placeables for the cop side.
Das Skript stammt von altisliferpg.com hier der folgende Link: http://www.altisliferpg.com/topic/11132-release-copsmedics-barrier-placeables-road-conebarrier-placement-dialogs/
Das Skript wurde von mir in Deutsch übersetzt dennoch ist das Verbreiten des Tutorials in anderen Forum ohne meiner Erlaubnis nicht erlaubt!
Editiert von: powerafro2
Version: 3.1.4.8
*/
disableSerialization;
createDialog "life_cop_placeables";
waitUntil { !isNull(findDisplay 20000) };
_display = findDisplay 20000;
_placeables = _display displayCtrl 20001;
lbClear _placeables;
{
_name = _x select 0;
_className = _x select 1;
_placeables lbAdd _name;
_placeables lbSetData [(lbSize _placeables) - 1, _className];
} foreach (life_placeables);
Alles anzeigen
Schritt 4:
Erstellt ebenfalls im Ordner eine fn_placeablesRemoveAll.sqf mit folgendem Inhalt:
/*
Author: Maximum
Description: Placeables for the cop side.
Das Skript stammt von altisliferpg.com hier der folgende Link: http://www.altisliferpg.com/topic/11132-release-copsmedics-barrier-placeables-road-conebarrier-placement-dialogs/
Das Skript wurde von mir in Deutsch übersetzt dennoch ist das Verbreiten des Tutorials in anderen Forum ohne meiner Erlaubnis nicht erlaubt!
Editiert von: powerafro2
Version: 3.1.4.8
*/
{
deleteVehicle _x;
} forEach (life_bar_placey);
Alles anzeigen
Schritt 5:
Erstellt ebenfalls im Ordner eine fn_placeablePlace.sqf mit folgendem Inhalt:
/*
Author: Maximum
Description: Placeables for the cop side.
Das Skript stammt von altisliferpg.com hier der folgende Link: http://www.altisliferpg.com/topic/11132-release-copsmedics-barrier-placeables-road-conebarrier-placement-dialogs/
Das Skript wurde von mir in Deutsch übersetzt dennoch ist das Verbreiten des Tutorials in anderen Forum ohne meiner Erlaubnis nicht erlaubt!
Editiert von: powerafro2
Version: 3.1.4.8
*/
disableSerialization;
if (count life_bar_placey >= life_bar_limit) exitWith { hint "Sie haben das Limit der Absperrung errungen"; };
_display = findDisplay 20000;
_placeables = _display displayCtrl 20001;
_className = lbData[20001, lbCurSel (20001)];
closeDialog 0;
life_barrier_active = true;
_allowMoveDistance = 50;
_object = _className createVehicle (position player);
life_barrier_activeObj = _object;
_attachPos = [0, 3, 0.5];
_object attachTo[player, _attachPos];
_object enableSimulationGlobal false;
_originalPos = position _object;
_playerOriginalPos = position player;
waitUntil
{
if (life_barrier_activeObj distance _originalPos > _allowMoveDistance || player distance _playerOriginalPos > _allowMoveDistance) then {
[true] call life_fnc_placeableCancel;
};
sleep 1;
!life_barrier_active;
};
Alles anzeigen
Schritt 6:
Erstellt ebenfalls im Ordner eine fn_placeableCancel.sqf mit folgendem Inhalt:
/*
Author: Maximum
Description: Placeables for the cop side.
Das Skript stammt von altisliferpg.com hier der folgende Link: http://www.altisliferpg.com/topic/11132-release-copsmedics-barrier-placeables-road-conebarrier-placement-dialogs/
Das Skript wurde von mir in Deutsch übersetzt dennoch ist das Verbreiten des Tutorials in anderen Forum ohne meiner Erlaubnis nicht erlaubt!
Editiert von: powerafro2
Version: 3.1.4.8
*/
if (!life_barrier_active) exitWith {};
deleteVehicle life_barrier_activeObj;
life_barrier_active = false;
life_barrier_activeObj = ObjNull;
Alles anzeigen
Schritt 7:
Zuletzt in diesem Ordner erstellen wir die Letzte .sqf Namens: fn_placeablesPlaceComplete.sqf mit folgendem Inhalt:
/*
Author: Maximum
Description: Placeables for the cop side.
Das Skript stammt von altisliferpg.com hier der folgende Link: http://www.altisliferpg.com/topic/11132-release-copsmedics-barrier-placeables-road-conebarrier-placement-dialogs/
Das Skript wurde von mir in Deutsch übersetzt dennoch ist das Verbreiten des Tutorials in anderen Forum ohne meiner Erlaubnis nicht erlaubt!
Editiert von: powerafro2
Version: 3.1.4.8
*/
disableSerialization;
if (!life_barrier_active) exitWith {};
if (life_barrier_activeObj == ObjNull) exitWith {};
_currentPos = getPosATL life_barrier_activeObj;
detach life_barrier_activeObj;
life_barrier_activeObj setPos[(getPos life_barrier_activeObj select 0), (getPos life_barrier_activeObj select 1), 0];
life_barrier_activeObj enableSimulationGlobal true;
life_bar_placey pushBack life_barrier_activeObj;
life_barrier_active = false;
life_barrier_activeObj = ObjNull;
Alles anzeigen
Schritt 8:
Danach gehen wir in die Masterhandler.h im dialog Ordner:
Schritt 9:
Erstellt ebenfalls im dialog Ordner eine .hpp mit dem Namen placeables.hpp mit folgenden Inhalt:
/*
Author: Maximum
Description: Placeables for the cop side.
Das Skript stammt von altisliferpg.com hier der folgende Link: http://www.altisliferpg.com/topic/11132-release-copsmedics-barrier-placeables-road-conebarrier-placement-dialogs/
Das Skript wurde von mir in Deutsch übersetzt dennoch ist das Verbreiten des Tutorials in anderen Forum ohne meiner Erlaubnis nicht erlaubt!
Editiert von: powerafro2
Version: 3.1.4.8
*/
class Life_Cop_Placeables {
idd = 20000;
name= "life_cop_placeables";
movingEnable = false;
enableSimulation = true;
onLoad = "";
class controlsBackground {
class Life_RscTitleBackground:Life_RscText {
colorBackground[] = {"(profilenamespace getvariable [‘GUI_BCG_RGB_R’,0.3843])", "(profilenamespace getvariable [‘GUI_BCG_RGB_G’,0.7019])", "(profilenamespace getvariable [‘GUI_BCG_RGB_B’,0.8862])", "(profilenamespace getvariable [‘GUI_BCG_RGB_A’,0.7])"};
idc = -1;
x = 0.1;
y = 0.2;
w = 0.6;
h = (1 / 25);
};
class MainBackground:Life_RscText {
colorBackground[] = {0, 0, 0, 0.7};
idc = -1;
x = 0.1;
y = 0.2 + (11 / 250);
w = 0.6;
h = 0.6 - (22 / 250);
};
};
class controls {
class Title : Life_RscTitle {
colorBackground[] = {0, 0, 0, 0};
idc = -1;
text = "Elemente Absperrmenü";
x = 0.1;
y = 0.2;
w = 0.6;
h = (1 / 25);
};
class PlaceablesList : Life_RscListBox
{
idc = 20001;
text = "";
sizeEx = 0.035;
x = 0.12; y = 0.26;
w = 0.56; h = 0.370;
};
class CloseButtonKey : Life_RscButtonMenu {
idc = -1;
text = "$STR_Global_Close";
onButtonClick = "closeDialog 0;";
x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.8 - (1 / 25);
w = (6.25 / 40);
h = (1 / 25);
};
class RemoveAll : life_RscButtonMenu {
idc = -1;
text = "LoeschenALL";
onButtonClick = "[] call life_fnc_placeablesRemoveAll";
x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.8 - (1 / 25);
w = (6.25 / 40);
h = (1 / 25);
};
class Place : Life_RscButtonMenu {
idc = -1;
text = "Platzieren";
colorBackground[] = {"(profilenamespace getvariable [‘GUI_BCG_RGB_R’,0.3843])", "(profilenamespace getvariable [‘GUI_BCG_RGB_G’,0.7019])", "(profilenamespace getvariable [‘GUI_BCG_RGB_B’,0.8862])", 0.5};
onButtonClick = "[] spawn life_fnc_placeablePlace;";
x = 0.32;
y = 0.69;
w = (6.25 / 40);
h = (1 / 25);
};
};
};
Alles anzeigen
Schritt 10:
Geht in eure player_inv.hpp ebenfalls im dialog Ordner und fügt folgendes ein:
class ButtonPlaceables : Life_RscButtonMenu {
idc = 20003;
text = "Elemente platz.";
onButtonClick = "[] spawn life_fnc_placeablesMenu; closeDialog 0;";
//x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
y = 0.805;
w = (6.25 / 40);
h = (1 / 25);
};
ACHTUNG! ich habe dieses statt dem Markt System von Black Lagoon wenn ihr dieses ändern wollt schreibt die Koordinaten um! Ich schau die Tage das ich das anders hin kriege! Ich update das dann nochmal!
Schritt 11:
Geht in eure fn_p_openMenu.sqf in eurem core/pmenu Ordner und fügt diese Zeile unter case civilian:
Das heißt das der Button für Zivis nicht sichtbar ist wenn ihr bei den independent´s oder bei der East Seite diesen Button auch nicht haben wollt schreibt einfach die Zeile rein.
Schritt 12:
Geht in euren core Ordner und geht in die fn_initCop.sqf und fügt diesen Code am Ende ein:
Wenn ihr dieses bei den independent machen wollt müsst ihr in die fn_initMedic.sqf und das auch am Ende einfügen gleich wie bei der East Seite.
Schritt 13: Letzter Schritt
Geht in euren core/functions Ordner in die fn_keyHandler.sqf
Ich habe dieses platzieren wenn man die Absperrung in der Hand hat auf V gelegt ihr könnt dieses umlegen hier der Link zu den Nummern: Keyhandler Case Nummern
if (life_barrier_active) then {
switch (_code) do {
case 47: //V Taste
{
[] spawn life_fnc_placeablesPlaceComplete;
};
};
true;
};
Das war es von meiner Seite
Wenn ihr das Limit der Sperren ändern wollt geht in eure fn_placeablesInit.sqf in eurem placeables Ordner und ändert folgendes um bsp. life_bar_limit = 50; nur die Zahlen ändern!
Wenn ihr hilfe benötigt so postet die .rpt Log und die Client Log nachdem ihr dieses ausgeführt habt. Somit kann ich euch schneller helfen.
Wenn ihr Fehler gefunden habt so postet die sofort und ich versuche sie im Tutorial zu verändern/korrigieren.
mfg power