Guten Abend allen zusammen,
ich sitze seid ca. 2 Tagen an einigen Umsetzungsproblemen. Ich hoffe nicht das es in der Art schon ein Thread gibt, den keinen in der Art hat mir geholfen.
Kommen wir dazu was ich machen möchte. Ich habe vor das die Zivis und die Medics ganz normal wie die Polizisten ein Player Interaktionsmenü haben. Dies habe ich wie folgt umgesetzt bisher:
#define BGX 0.35
#define BGY 0.2
#define BGW 0.46
class pmedInteraction_Menu {
idd = 37400;
movingEnable = 0;
enableSimulation = 1;
class controlsBackground {
class MainBackground: life_RscPicture {
idc = -1;
text = "textures\Interaction Menu\InteractionMedPerson.paa";
x = 0.350469 * safezoneW + safezoneX;
y = 0.236 * safezoneH + safezoneY;
w = 0.278437 * safezoneW;
h = 0.484 * safezoneH;
};
};
class controls {
class ButtonClose: Life_RscButtonMenu {
idc = -1;
//shortcuts[] = {0x00050000 + 2};
onButtonClick = "closeDialog 0;";
x = 0.478344 * safezoneW + safezoneX;
y = 0.6518 * safezoneH + safezoneY;
w = 0.0237189 * safezoneW;
h = 0.044 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class ausweis: RscButtonMenu {
idc = 2400;
x = 0.369031 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.116531 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
/*
class behandlung: RscButtonMenu {
idc = 2401;
x = 0.36903 * safezoneW + safezoneX;
y = 0.4208 * safezoneH + safezoneY;
w = 0.116531 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
class rechnung: Life_RscButtonMenu {
idc = 2402;
x = 0.36903 * safezoneW + safezoneX;
y = 0.5 * safezoneH + safezoneY;
w = 0.116531 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class augenbinde: RscButtonMenu {
idc = 2402;
x = 0.36903 * safezoneW + safezoneX;
y = 0.4208 * safezoneH + safezoneY;
w = 0.116527 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
class reinsetzen: Life_RscButtonMenu {
idc = 37456;
x = 0.493813 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class eskortieren: Life_RscButtonMenu {
idc = 37453;
x = 0.493813 * safezoneW + safezoneX;
y = 0.3416 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class störsender: RscButtonMenu {
idc = 2405;
x = 0.493811 * safezoneW + safezoneX;
y = 0.4208 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
};
};
class pcivInteraction_Menu {
idd = 37400;
movingEnable = 0;
enableSimulation = 1;
class controlsBackground {
class MainBackground: life_RscPicture {
idc = -1;
text = "textures\Interaction Menu\InteractionZivPerson.paa";
x = 0.350469 * safezoneW + safezoneX;
y = 0.236 * safezoneH + safezoneY;
w = 0.278437 * safezoneW;
h = 0.484 * safezoneH;
};
};
class controls {
class ButtonClose: Life_RscButtonMenu {
idc = -1;
//shortcuts[] = {0x00050000 + 2};
onButtonClick = "closeDialog 0;";
x = 0.478344 * safezoneW + safezoneX;
y = 0.654 * safezoneH + safezoneY;
w = 0.0226879 * safezoneW;
h = 0.0418 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class ausweis: RscButtonMenu {
idc = 2400;
x = 0.369032 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.116527 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
class fesseln: Life_RscButtonMenu {
idc = 37450;
x = 0.36903 * safezoneW + safezoneX;
y = 0.3438 * safezoneH + safezoneY;
w = 0.116527 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class augenbinde: RscButtonMenu {
idc = 2402;
x = 0.36903 * safezoneW + safezoneX;
y = 0.4208 * safezoneH + safezoneY;
w = 0.116527 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
class reinsetzen: Life_RscButtonMenu {
idc = 37456;
x = 0.493813 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class eskortieren: Life_RscButtonMenu {
idc = 37453;
x = 0.493813 * safezoneW + safezoneX;
y = 0.3416 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class störsender: RscButtonMenu {
idc = 2405;
x = 0.493811 * safezoneW + safezoneX;
y = 0.4208 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
};
};
class pInteraction_Menu {
idd = 37400;
movingEnable = 0;
enableSimulation = 1;
class controlsBackground {
class MainBackground: life_RscPicture {
idc = -1;
text = "textures\Interaction Menu\InteractionCopPerson.paa";
x = 0.350469 * safezoneW + safezoneX;
y = 0.236 * safezoneH + safezoneY;
w = 0.278437 * safezoneW;
h = 0.484 * safezoneH;
};
};
class controls {
class ButtonClose: Life_RscButtonMenu {
idc = -1;
//shortcuts[] = {0x00050000 + 2};
onButtonClick = "closeDialog 0;";
x = 0.478341 * safezoneW + safezoneX;
y = 0.654 * safezoneH + safezoneY;
w = 0.022688 * safezoneW;
h = 0.0418 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class ausweis: Life_RscButtonMenu {
idc = 2400;
x = 0.369031 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
class fesseln: Life_RscButtonMenu {
idc = 37450;
x = 0.36903 * safezoneW + safezoneX;
y = 0.3438 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class lizenzen: Life_RscButtonMenu {
idc = 37451;
x = 0.369032 * safezoneW + safezoneX;
y = 0.4208 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class strafzettel: Life_RscButtonMenu {
idc = 37454;
x = 0.369032 * safezoneW + safezoneX;
y = 0.5 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0638 * safezoneH;
colorText[] = {-1,-1,-1,0};
colorBackground[] = {-1,-1,-1,0};
colorActive[] = {-1,-1,-1,0};
};
class inhaftieren: Life_RscButtonMenu {
idc = 37455;
x = 0.367998 * safezoneW + safezoneX;
y = 0.577 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class reinsetzen: Life_RscButtonMenu {
idc = 37456;
x = 0.493814 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class eskortieren: Life_RscButtonMenu {
idc = 37453;
x = 0.493813 * safezoneW + safezoneX;
y = 0.3416 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class durchsuchen: Life_RscButtonMenu {
idc = 37457;
x = 0.493813 * safezoneW + safezoneX;
y = 0.4208 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class fahndung: RscButtonMenu {
idc = 2408;
x = 0.493811 * safezoneW + safezoneX;
y = 0.5 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class marke: RscButtonMenu {
idc = 2409;
x = 0.493814 * safezoneW + safezoneX;
y = 0.577 * safezoneH + safezoneY;
w = 0.117562 * safezoneW;
h = 0.0638 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
};
};
class vInteraction_Menu {
idd = 37400;
movingEnable = 0;
enableSimulation = 1;
class controlsBackground {
class MainBackground: life_RscPicture {
idc = -1;
text = "textures\Interaction Menu\InteractionCopVehicle.paa";
x = 0.340156 * safezoneW + safezoneX;
y = 0.236 * safezoneH + safezoneY;
w = 0.28875 * safezoneW;
h = 0.506 * safezoneH;
};
};
class controls {
class ButtonClose: Life_RscButtonMenu {
idc = -1;
//shortcuts[] = {0x00050000 + 2};
onButtonClick = "closeDialog 0;";
x = 0.472156 * safezoneW + safezoneX;
y = 0.6716 * safezoneH + safezoneY;
w = 0.0237188 * safezoneW;
h = 0.0418 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class reparien: Life_RscButtonMenu {
idc = 37450;
x = 0.35975 * safezoneW + safezoneX;
y = 0.2668 * safezoneH + safezoneY;
w = 0.120656 * safezoneW;
h = 0.066 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class rausziehen: Life_RscButtonMenu {
idc = 37453;
x = 0.35975 * safezoneW + safezoneX;
y = 0.3482 * safezoneH + safezoneY;
w = 0.121688 * safezoneW;
h = 0.066 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class bezitzer: Life_RscButtonMenu {
idc = 37451;
x = 0.35975 * safezoneW + safezoneX;
y = 0.4296 * safezoneH + safezoneY;
w = 0.120656 * safezoneW;
h = 0.066 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class druchsuchen: Life_RscButtonMenu {
idc = 37452;
x = 0.35975 * safezoneW + safezoneX;
y = 0.511 * safezoneH + safezoneY;
w = 0.120656 * safezoneW;
h = 0.066 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class umdrehen: Life_RscButtonMenu {
idc = 37455;
x = 0.489687 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.120656 * safezoneW;
h = 0.066 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class aufbrechen: RscButtonMenu {
idc = 2405;
x = 0.489687 * safezoneW + safezoneX;
y = 0.346 * safezoneH + safezoneY;
w = 0.120656 * safezoneW;
h = 0.0682 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
class abschleppen: Life_RscButtonMenu {
idc = 37454;
x = 0.489687 * safezoneW + safezoneX;
y = 0.4296 * safezoneH + safezoneY;
w = 0.120656 * safezoneW;
h = 0.066 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
};
};
class vcivInteraction_Menu {
idd = 37400;
movingEnable = 0;
enableSimulation = 1;
class controlsBackground {
class MainBackground: life_RscPicture {
idc = -1;
text = "textures\Interaction Menu\InteractionZivVehicle.paa";
x = 0.350469 * safezoneW + safezoneX;
y = 0.236 * safezoneH + safezoneY;
w = 0.278437 * safezoneW;
h = 0.484 * safezoneH;
};
};
class controls {
class ButtonClose: Life_RscButtonMenu {
idc = -1;
//shortcuts[] = {0x00050000 + 2};
onButtonClick = "closeDialog 0;";
x = 0.476279 * safezoneW + safezoneX;
y = 0.654 * safezoneH + safezoneY;
w = 0.0278441 * safezoneW;
h = 0.0396 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class reparieren: Life_RscButtonMenu {
idc = 37450;
x = 0.36903 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.116527 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class rausziehen: Life_RscButtonMenu {
idc = 37453;
x = 0.36903 * safezoneW + safezoneX;
y = 0.3438 * safezoneH + safezoneY;
w = 0.116527 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
class umdrehen: Life_RscButtonMenu {
idc = 37455;
x = 0.493813 * safezoneW + safezoneX;
y = 0.2646 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
/*
class aufbrechen: RscButtonMenu {
idc = 2403;
x = 0.493811 * safezoneW + safezoneX;
y = 0.3438 * safezoneH + safezoneY;
w = 0.117558 * safezoneW;
h = 0.0616 * safezoneH;
colorBackground[] = {-1,-1,-1,0};
};
*/
};
};
Alles anzeigen
Definierung für die Classes damit Ihr durchblickt:
Polizei Interaction: pinteraction
Medic: pmedinteraction
Civs: pcivinteraction
Anschließend habe ich wie das copinteractionmenu.sqf jeweils alles noch für Medic und Zivis eingefügt.
core/medical
#include "..\..\script_macros.hpp"
/*
File: fn_civInteractionMenu.sqf
Author: Bryan "Tonic" Boardwine
Description:
Replaces the mass addactions for various cop 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","_seizeRank","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7","_Btn8"];
disableSerialization;
_curTarget = param [0,objNull,[objNull]];
_seizeRank = LIFE_SETTINGS(getNumber,"seize_minimum_rank");
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 "pmedInteraction_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;
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 buttonSetAction "[life_pInact_curTarget] call life_fnc_unrestrain; closeDialog 0;";
//Set Escort Button
if (player getVariable["isEscorting",false]) then {
_Btn4 buttonSetAction "[] call life_fnc_stopEscorting; closeDialog 0;";
} else {
_Btn4 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;";
};
//Set Ticket Button
_Btn5 buttonSetAction "[life_pInact_curTarget] call life_fnc_ticketAction;";
_Btn7 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar; closeDialog 0;";
if (FETCH_CONST(life_coplevel) < _seizeRank) then {_Btn8 ctrlEnable false;};
{
if ((player distance (getMarkerPos _x) <30)) exitWith { _Btn6 ctrlEnable true;};
} forEach LIFE_SETTINGS(getArray,"sendtoJail_locations");
Alles anzeigen
Anschließend habe ich genau wie bei den Cops es jeweils in der functions.hpp zum ausführen angegeben.
Functions.hpp
Unter medical: fn_medInteractionMenu.sqf
Unter cop: fn_copInteractionMenu.sqf
Unter civilian: fn_civInteractionMenu.sqf
Und natürlich sind die Dateien in den dazu entsprechenden Ordnern drinnen. Also das medicinteraktionmenu unter core/medical und das civinteraktionmenu unter core/civilian
ShowError Scripts haut keine Fehler raus.
RPT haut keine Fehler raus.
Ich vermute mal das ich was vergessen habe oder mir ein richtig dummer Fehler unterlaufen ist.
Ich hoffe ich habe das ausführlich genug beschrieben das Ihr mir folgen könnt.
Schöne Grüße