kannst du auch auf den ts kommen morgen oder heute vieleicht noch aber auch nur wen es geht
Beiträge von Deathman
-
-
Ich probier das doch klei mal aus
-
Ja ein Bissel schon, ich habe eine Config_Achievment gemacht das steht dan sowas drin
Spoiler anzeigen
So jetzt zu der Variable Das Ungefähr so(das mit den X wer und den anderen gack verstehe ich noch net so sehr ganz bissel nachhilfe wehre gut)
Spoiler anzeigen
Code
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_getAchievement.sqf Author: Deathman Description: Es ist jeden untersagt diese Files zu verwenden zu Verbreiten auf Forum oder ... . */ private ["_type","_varName","_displayName","_sideFlag","_price"]; _type = _this select 3; if (!isClass (missionConfigFile >> "Achievement" >> _type)) exitWith {}; //Bad entry? _displayName = M_CONFIG(getText,"Achievement",_type,"displayName"); _sideFlag = M_CONFIG(getText,"Achievement",_type,"side"); _varName = ACHIEVEMENT_VARNAME(_type,_sideFlag); _countermax = 100; <------ [0] call SOCK_fnc_updatePartial; titleText[format [localize "STR_NOTF_Achievement_1", localize _displayName,call life_fnc_numberText],"PLAIN"]; missionNamespace setVariable [_varName,true]; hint format ["Du Hast %1/100 Besondern Orten Indekt"count _displayName]; [8] call SOCK_fnc_updatePartial; player say3D "Achievement";
-
Hallo ich bins wieder Deathman,
Ich Komme Gleich zur Sache
Ich habe ein Achievment System mir zusammen gesbastelt das Funktioniert alles gut.
So Jetzt Möchte ich aber Das die Achievments auch noch gezählt werden Bsp. 1/100 ; 20/100 ; ..... .
Jetzt Habe ich schon mal den Anfang gemacht hier mit ich weiß das , dass falsch sein wird aber ich habe es einfach mal so Kopiert
Spoiler anzeigen
Code: fn_getAchievement.sqf
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_getAchievement.sqf Author: Deathman Description: Es ist jeden untersagt diese Files zu verwenden zu Verbreiten auf Forum oder ... . */ private ["_type","_varName","_displayName","_sideFlag","_price"]; _type = _this select 3; if (!isClass (missionConfigFile >> "Achievement" >> _type)) exitWith {}; //Bad entry? _displayName = M_CONFIG(getText,"Achievement",_type,"displayName"); _sideFlag = M_CONFIG(getText,"Achievement",_type,"side"); _varName = ACHIEVEMENT_VARNAME(_type,_sideFlag); [0] call SOCK_fnc_updatePartial; titleText[format [localize "STR_NOTF_Achievement_1", localize _displayName,call life_fnc_numberText],"PLAIN"]; missionNamespace setVariable [_varName,true]; hint format ["Du Hast %1/100 Besondern Orten Indekt"count _displayName]; <----- [8] call SOCK_fnc_updatePartial; player say3D "Achievement";
Ich Denke mal das Count ist schon richtig aber der Rest
Als Anmerkung dieser Count soll dan auch später in der Datenbank Abgespeichert werden Bsp. 10 ; 30 ; 70 ; .....
Gruß Deathman
-
Ok Hat sich geklärt habe es selber gefixt haber Danke trozedem nox Bitte schließen
-
ist ja kein Problem
-
Ersetzt mal bitte fn_marketSell.sqf Code mit diesem
Spoiler anzeigen
Code: fn_marketSell.sqf
Alles anzeigen/* Sell [SHORTNAME, AMOUNT, israw, send?] */ private["_shortname","_amount","_price","_modifier","_globalprice","_min","_dir","_israw","_arr_resource","_arr_price","_modifier","_send","_relamount","_max"]; _shortname = _this select 0; _amount = _this select 1; _israw = [_this, 2, false] call BIS_fnc_param; _send = [_this, 3, true] call BIS_fnc_param; //Get all necessary arrays _arr_resource = [_shortname] call life_fnc_marketGetRow; _arr_price = [_shortname] call life_fnc_marketGetPriceRow; //Calculate the new price of the product _price = _arr_price select 1; //current price _globalprice = _arr_price select 2; //current change rate _modifier = (_amount * (_arr_resource select 4)); //calculate modifier _price = _price - _modifier; _globalprice = _globalprice - _modifier; //Check borders if(_price < 0) then {_price = 0;}; _min = _arr_resource select 2; if( _price < _min)then {_price = _min;}; _max = _arr_resource select 3; if( _price > _max)then {_price = _max;}; //insert into new array [_shortname, [_shortname,_price,_globalprice,-(_modifier)], false ] call life_fnc_marketSetPriceRow; //dont broadcast! /////Change related prices if(!_israw) then { { if((count _x) == 2) then { _relamount = ceil (_amount * (_x select 1)); if(_relamount > 0) then { [_x select 0, _relamount, true, false] call life_fnc_marketBuy; //Make prices higher, no broadcast! } else { _relamount = -(_relamount); [_x select 0, _relamount, true, false] call life_fnc_marketSell; //Make prices higher, no broadcast! }; } else { }; } foreach (_arr_resource select 6); //in change array }; //Broadcast now if can send if(_send) then {publicVariable "life_market_prices";};
-
Sry, bin am Handy und hab die gar nicht gesehen
Kein Ding kann man ja mal übersehen
-
es ist alles Nötige da über die life Server
-
Hey ich heiße Deathman aka Tobias für die Personen die mich noch nicht kennen.
Nun zu meinen Problem
Ich habe ein kleines Achievement System Geschrieben als Vorlage habe ich die Lizenzen benutzt.
Also erstmal es gibt keine Fehler, es wird alles in der Datenbank Abgespeichert nur nicht in der von mir definiert Struktur in der Player in diesem falle die --> civ_Achievement
Statdesen sieht es so aus dazu ein 2 Bilder.
1. Ist die civ_Achievement
2. Ist die civ_licenses
So das ist das was ich nicht so kapiere.
Ind den Folgende Life_Server Datein würden sachen verändert hier zu die Datein im Anhang
fn_insertRequest.sqf fn_queryRequest.sqf fn_updatePartial.sqf fn_updateRequest.sqf
Falls ich mich scheiße Ausgedrückt habe oder ich was falsche Erklärt habe bitte seit NachtragendGruße Deathman
-
Ne danns kannst du gerne machen wie du willst
Hier habe ich einfach mal par Bsp.
-
Hallo Liebe NN Community ich bin’s wieder Deathman mit einem neuen TUT.
Ich habe mich mal mit der Player Interaktion Menü befasst und habe diese umgeschrieben so dass sie wenigstens bissel übersichtlicher ist, ich habe zusätzlich anstatt Text in den Buttons Bilder genommen.
Dieses TUT ist vom Aufbau her das gleiche wie mein Fahrzeug Interactions Menu von mir.
!!ACHTUNG BITTE BEACHTEN!!
Ich habe die Standard Datei von Altis Life 5.0 bearbeitet, wenn jemand mehr hinzufügen will der schreibt mich per Steam (Steam Account im Anhang) an oder Schreibt mir eine Privat Nachricht bei Native Network.
Nun fangen wir an.
Schritt 1.Geht in die core\pmenu\ und erstellt dort folgende Datei --> fn_pInteractionMenu.sqf und Kopiert folgenden Inhalt hinein.
Spoiler anzeigen
Code: fn_pInteractionMenu.sqf
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_pInteractionMenu.sqf Author: Deathman & Maxos Steam Konto Link Deathman: https://steamcommunity.com/id/deathman2002/ Description: Player Interaction Menu */ private ["_display","_curTarget","_seizeRank","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7","_Btn8","_Btn9"]; 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 { switch (playerside) do { case west: {createDialog "p_interaction_menu_9";}; //case independent: {createDialog "";}; //case civilian: {createDialog "";}; }; }; _display = findDisplay 8000; _background = _display displayCtrl 8001; _background ctrlSetFade 0; _background ctrlCommit 5; _btn1 = _display displayCtrl 8002; _btn2 = _display displayCtrl 8003; _btn3 = _display displayCtrl 8004; _btn4 = _display displayCtrl 8005; _btn5 = _display displayCtrl 8006; _btn6 = _display displayCtrl 8007; _btn7 = _display displayCtrl 8008; _btn8 = _display displayCtrl 8009; _btn9 = _display displayCtrl 8010; life_pInact_curTarget = _curTarget; switch (playerside) do { case west: { if (player getVariable ["isEscorting",false]) then { { _x ctrlShow false; } forEach [_btn1,_btn2,_btn3,_btn4,_btn6,_btn7,_btn8,_btn9]; }; _Btn1 ctrlShow false; _Btn2 ctrlShow false; _Btn3 ctrlShow false; _Btn4 ctrlShow false; _Btn5 ctrlShow false; _Btn6 ctrlShow false; _Btn7 ctrlShow false; _Btn8 ctrlShow false; _Btn9 ctrlShow false; _btn1 ctrlSetText "textures\interaction\Player\icon_close.paa"; _btn1 ctrlSetToolTip "Menü Schließen"; _btn1 buttonSetAction "closeDialog 0;"; _btn2 ctrlSetText "textures\interaction\Player\icon_unrestrain.paa"; _btn2 ctrlSetToolTip "Freilassen"; _btn2 buttonSetAction "closeDialog 0; [life_pInact_curTarget] call life_fnc_unrestrain;"; _btn3 ctrlSetText "textures\interaction\Player\icon_checklicens.paa"; _btn3 ctrlSetToolTip "Lizenzen Überprüfen"; _btn3 buttonSetAction "closeDialog 0; [player] remoteExecCall [""life_fnc_licenseCheck"",life_pInact_curTarget];"; _btn4 ctrlSetText "textures\interaction\Player\icon_searchplayer.paa"; _btn4 ctrlSetToolTip "Spieler Durchsuchen"; _btn4 buttonSetAction "closeDialog 0; [life_pInact_curTarget] spawn life_fnc_searchAction;"; if (player getVariable ["isEscorting",false]) then { _btn5 ctrlSetText "textures\interaction\Player\icon_StopEscorting.paa"; _btn5 ctrlSetToolTip "Eskortieren stoppen"; _btn5 buttonSetAction "closeDialog 0; [] call life_fnc_stopEscorting;"; _btn5 ctrlEnable true; } else { _btn5 ctrlSetText "textures\interaction\Player\icon_Escorting.paa"; _btn5 ctrlSetToolTip "Eskortieren"; _btn5 buttonSetAction "closeDialog 0; [life_pInact_curTarget] call life_fnc_escortAction;"; _btn5 ctrlEnable true; }; _btn6 ctrlSetText "textures\interaction\Player\icon_ticket.paa"; _btn6 ctrlSetToolTip "Strafzettel ausstellen"; _btn6 buttonSetAction "closeDialog 0; [life_pInact_curTarget] call life_fnc_ticketAction;"; _btn7 ctrlSetText "textures\interaction\Player\icon_PutinJail.paa"; _btn7 ctrlSetToolTip "Ins Gefängnis stecken"; _btn7 buttonSetAction "closeDialog 0; [life_pInact_curTarget] call life_fnc_arrestAction;"; _btn8 ctrlSetText "textures\interaction\Player\icon_PutInTheCar.paa"; _btn8 ctrlSetToolTip "Ins Fahrzeug setzen"; _btn8 buttonSetAction "closeDialog 0; [life_pInact_curTarget] call life_fnc_putInCar;"; _btn9 ctrlSetText "textures\interaction\Player\icon_weapons.paa"; _btn9 ctrlSetToolTip "Waffen beschlagnahmen"; _btn9 buttonSetAction "closeDialog 0; [life_pInact_curTarget] spawn life_fnc_seizePlayerAction;"; if (FETCH_CONST(life_coplevel) < _seizeRank) then {_btn9 ctrlEnable false;}; { if ((player distance (getMarkerPos _x) <30)) exitWith { _btn7 ctrlEnable true;}; } forEach LIFE_SETTINGS(getArray,"sendtoJail_locations"); { _x ctrlSetFade 0; _x ctrlCommit 3; _x ctrlShow true; } forEach [_Btn1,_Btn2,_Btn3,_Btn4,_Btn5,_Btn6,_Btn7,_Btn8,_Btn9]; }; /* case independent: { //Hier Kann noch was Kommen(Selbst Anpassbar). //Hier bei bin ich gerne Behilflich schreibt mir auf steam oder auf native-network Privat //Mein Steam Konto Verlinke ich oben }; case civilian { //Hier Kann noch was Kommen(Selbst Anpassbar). //Hier bei bin ich gerne Behilflich schreibt mir auf steam oder auf native-network Privat //Mein Steam Konto Verlinke ich oben }; */ };
Schritt 2.Geht in die core\functions\ und öffnet dort die --> fn_actionKeyHandler.sqf und sucht [] call life_fnc_copInteractionMenu; und ersetzt es durch [] call life_fnc_pInteractionMenu; .
Schritt 3. Geht in den Dialog Ordner und erstellt dort folgende Datei --> PlayerInteraction.hpp und Kopiert folgenden Inhalt hinein.
Spoiler anzeigen
Code: PlayerInteraction.hpp
Alles anzeigenclass p_interaction_menu_9 { idd = 8000; name = "p_interaction_menu_9"; movingenable = false; enablesimulation = true; class controlsBackground { class Life_RscTitleBackground : Life_RscText { colorbackground[] = {0, 0, 0, 0.7}; idc = 8001; x = 0.445833333333334 * safezoneW + safezoneX; y = 0.829315481986369 * safezoneH + safezoneY; w = 0.1609375 * safezoneW; h = 0.14342064264849 * safezoneH; }; class Life_RscStructuredText : Life_RscStructuredText { x = 0.446614583333333 * safezoneW + safezoneX; y = 0.795520934761441 * safezoneH + safezoneY; h = 0.0268646543330088 * safezoneH; w = 0.161458333333333 * safezoneW; text = "Spieler Interaction Menü"; idc = 78987; class Attributes { font = "PuristaBold"; align = "center"; valign = "middle"; }; }; class Life_RscTitleBackgroundText : Life_RscText { colorbackground[] = {0, 0, 0, 0.7}; idc = -1; x = 0.446614583333333 * safezoneW + safezoneX; y = 0.795520934761441 * safezoneH + safezoneY; w = 0.1609375 * safezoneW; h = 0.0272638753651412 * safezoneH; }; }; class controls { class close_pic : Life_RscPictureButton { idc = 8002; x = 0.6061805 * safezoneW + safezoneX; y = 0.827078870496592 * safezoneH + safezoneY; w = 0.0206316 * safezoneW; h = 0.033 * safezoneH; }; class pic_1 : Life_RscPictureButton { idc = 8003; x = 0.452100666666667 * safezoneW + safezoneX; y = 0.835446932814022 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; class pic_2 : Life_RscPictureButton { idc = 8004; x = 0.490034666666667 * safezoneW + safezoneX; y = 0.835446932814022 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; class pic_3 : Life_RscPictureButton { idc = 8005; x = 0.528142333333334 * safezoneW + safezoneX; y = 0.835446932814022 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; class pic_4 : Life_RscPictureButton { idc = 8006; x = 0.452100666666667 * safezoneW + safezoneX; y = 0.905554040895813 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; class pic_5 : Life_RscPictureButton { idc = 8007; x = 0.490034666666667 * safezoneW + safezoneX; y = 0.905554040895813 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; class pic_6 : Life_RscPictureButton { idc = 8008; x = 0.528142333333334 * safezoneW + safezoneX; y = 0.905554040895813 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; class pic_7 : Life_RscPictureButton { idc = 8009; x = 0.566726583333333 * safezoneW + safezoneX; y = 0.835446932814022 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; class pic_8 : Life_RscPictureButton { idc = 8010; x = 0.566726583333333 * safezoneW + safezoneX; y = 0.905554040895813 * safezoneH + safezoneY; w = 0.0332135 * safezoneW; h = 0.0574449853943525 * safezoneH; }; }; };
Schritt 4. Geht in den Dialog Ordner und öffnet die --> common.hpp und fügt folgendes dort ein (Falls dies schon vorhanden ist könnt ihr diesen Schritt Überspringen).
Spoiler anzeigen
Code: common.hpp
Alles anzeigenclass Life_RscPictureButton { idc = -1; type = 11; style = 48; animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; colorBackground[] = {1,1,1,0.8}; colorBackgroundFocused[] = {1,1,1,1}; colorBackground2[] = {0.75,0.75,0.75,1}; color[] = {1,1,1,0.7}; colorActive[] = {1,1,1,1}; colorFocused[] = {0,0,0,1}; color2[] = {0,0,0,1}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.25}; period = 1.2; periodFocus = 1.2; periodOver = 1.2; borderSize = 0.0; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; font = "PuristaMedium"; soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1}; soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1}; soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; soundEscape[] ={"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; x = 0; y = 0; w = 0.095589; h = 0.039216; text = ""; };
Schritt 5. Geht in den Dialog Ordner und öffnet die --> MasterHandler.hpp und schreibt am Ende folgendes rein #include "PlayerInteraction.hpp" .
Schritt 6. Geht in eure --> Functions.hpp und fügt bei dem Class Player_Menu folgendes ein class pInteractionMenu {}; , nun geht ihr hoch zur class Cop und entfernt dort class copInteractionMenu {}; .
Schritt 7. Nun nur noch die Icons einfügen unter textures\interaction\Player <--- dieser Pfad ist keine Pflicht, die Icons findest du unten im Anhang
Natürlich gibt es auch ein Bild
So jetzt sind wir Fertig
Bei Fehlern an mich eine Nachricht oder in die Kommentare
Gruß Deathman
-
In der Zeile 137 mit diesem Code { "I_Heli_light_03_unarmed_F", "call life_coplevel >= 4" }<---- da fehtl ein comma
jetzt sollte es wieder Funktioniren
-
Schick mal bitte deine Config_Vehicles.hpp hier rein
-
Denn Fehler bitte fixen Warning Message: File mpmissions\Altis_Life.Altis\config\Config_Vehicles.hpp, line 127: Config: '{' encountered instead of ','
-
ok dann sollte es funktionieren außer das Lied ist zu Leise. Ich henge dir einfach mal unsere Outro Lied an.
-
Hast du das playSound über 1 fadeSpeech 0;hingeschrieben oder woanders.
-
Wie lang ist das Lied was du rein gemacht hast wie viele Sekunden
-
Ich habe das TUT noch mal überarbeitet weil mir dabei ein kleiner Fehler unterlaufen ist.
-
und lade mal bitte die VInteraction mit hoch