Ich bin gerade am Handy und kann deswegen keine Codebeispiele bringen. Dennoch weiß ich dass die Conditions über den Aufruf life_fnc_levelcheck getestet werden. Und mit diesem levelcheck kann man sämtliche Statements prüfen und bekommt true/false zurück.
Beiträge von B4v4r!4n_Str!k3r
-
-
Marius1773 wie kommst du auf deine Behauptung, dass die Condition nur Lizenzen prüft?
-
Kein Problem.
Also du erstellst mit dem Editor einen Marker in deiner Mission und gibst diesem einen Namen (Variablennamen).
Als nächstes fügst du in deine mission/core/init.sqf vor
Code
Alles anzeigenswitch (playerSide) do { case west: { _handle = [] spawn life_fnc_initCop; waitUntil {scriptDone _handle}; }; case civilian: { //Initialize Civilian Settings _handle = [] spawn life_fnc_initCiv; waitUntil {scriptDone _handle}; }; case independent: { //Initialize Medics and blah _handle = [] spawn life_fnc_initMedic; waitUntil {scriptDone _handle}; }; };
das
Codeif (call life_donorlevel < 1) then { { deleteMarkerLocal _x; } forEach ["MARKERNAME1","MARKERNAME2"]; };
ein und dann sollten nur VIPs die Marker sehen.
-
Naja du hast den Befehl https://community.bistudio.com/wiki/deleteMarkerLocal und mit einer forEach kannst du dann alle Marker, die in einem Feld sind löschen.
und diesen Code Snippet musst du dann am Anfang in die init einfügen bzw. mit einer Funktion ausführen bevor das Spawnmenü aufgerufen wird.
Edit: Es muss noch eine if Schleife gebaut werden, damit die Marker für VIPs nicht gelöscht werden.
Das Ganze geht aber mit Skins genauso:
Code{ "Digi Green", "reb", { "\a3\air_f\Heli_Light_01\Data\heli_light_01_ext_indp_co.paa" }, "call life_donorlevel >= 1" },
Das steht in der Vehicle_Config.cpp alles in der Beschreibung:
Spoiler anzeigen
/*
* Vehicle Configs (Contains textures and other stuff)
*
* "price" is the price before any multipliers set in Master_Config are applied.
*
* Default Multiplier Values & Calculations:
* Civilian [Purchase, Sell]: [1.0, 0.5]
* Cop [Purchase, Sell]: [0.5, 0.5]
* Medic [Purchase, Sell]: [0.75, 0.5]
* ChopShop: Payout = price * 0.25
* GarageSell: Payout = price * [0.5, 0.5, 0.5, -1]
* Cop Impound: Payout = price * 0.1
* Pull Vehicle from Garage: Cost = price * [1, 0.5, 0.75, -1] * [0.5, 0.5, 0.5, -1]
* -- Pull Vehicle & GarageSell Array Explanation = [civ,cop,medic,east]
*
* 1: STRING (Condition)
* Textures config follows { Texture Name, side, {texture(s)path}, Condition}
* Texture(s)path follows this format:
* INDEX 0: Texture Layer 0
* INDEX 1: Texture Layer 1
* INDEX 2: Texture Layer 2
* etc etc etc
*
*/
-
Das ist nicht die Standarddatei.
Probiers mal so:
Code: fn_hudUpdate.sqf
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_hudUpdate.sqf Author: Daniel Stuart Description: Updates the HUD when it needs to. */ disableSerialization; if (isNull LIFEdisplay) then {[] call life_fnc_hudSetup;}; LIFEctrl(2200) progressSetPosition (life_hunger / 100); LIFEctrl(2201) progressSetPosition (1 - (damage player)); LIFEctrl(2202) progressSetPosition (life_thirst / 100);
Normal düfte es dann gehen
-
Hast du hier (Marker nur mit Lizenz) schon nachgeschaut? -> SuFu verwenden
Und für die Fahrzeuge ist sogar in der standard Config ein Beispiel:
{ "C_Hatchback_01_sport_F", "call life_coplevel >= 1" },
-
mission/core/functions/fn_hudUpdate.sqf
-
Einfach in der statusBar.hpp color = "#FFFFFF"; ändern.
-
Indem du abfragst ob sich der Spieler in einem Fahrzeug befindet, bzw. ob das "Fahrzeug des Spielers" der Spieler selbst ist.
https://community.bistudio.com/wiki/vehicle
{ if((player distance _x < 50) && {_x in life_known_Players} && {_x isEqualTo vehicle _x}) then {_units pushBack _x};} foreach playableUnits;
-
Unter dem Tutorial das du gepostet hast steht zu 90 % dass es nicht richtig bzw. gar nicht funktioniert. Viele haben anscheinend versucht es zu fixen aber nicht hin bekommen.
Auf der letzten Seite ist dann ein Hinweis dass es ein neues Tutorial gibt: https://www.altisliferpg.com/topic/1521-tut…and-blindfolds/
Hast du diese aktualisierte Version schon ausprobiert?
-
hmm schaut alles ok aus. Mir fällt hier nichts mehr ein woran das Problem liegen könnte.
-
wie sieht dann deine fn_playerSkins.sqf aus?
-
Ist der Befehl
[] call life_fnc_playerSkins;
am Ende der Datei fn_copLoadout.sqf vorhanden?
Was mich außerdem auch wundert ist, dass sie angeblich erst nach "mehrmaligen" aufheben/neukaufen wieder sichtbar wird. Normal sollte sie sofort sichtbar werden.
-
Frage:Wie kann man das Beschlagnahmen beschleunigen?
Code: fn_impoundAction.sqf
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_impoundAction.sqf Author: Bryan "Tonic" Boardwine Description: Impounds the vehicle */ private ["_vehicle","_type","_time","_value","_vehicleData","_upp","_ui","_progress","_pgText","_cP","_filters","_impoundValue","_price","_impoundMultiplier"]; _vehicle = param [0,objNull,[objNull]]; _filters = ["Car","Air","Ship"]; if (!((KINDOF_ARRAY(_vehicle,_filters)))) exitWith {}; if (player distance cursorObject > 10) exitWith {}; if (_vehicle getVariable "NPC") exitWith {hint localize "STR_NPC_Protected"}; _vehicleData = _vehicle getVariable ["vehicle_info_owners",[]]; if (_vehicleData isEqualTo 0) exitWith {deleteVehicle _vehicle}; //Bad vehicle. _vehicleName = FETCH_CONFIG2(getText,"CfgVehicles",(typeOf _vehicle),"displayName"); _price = M_CONFIG(getNumber,"LifeCfgVehicles",(typeOf _vehicle),"price"); [0,"STR_NOTF_BeingImpounded",true,[((_vehicleData select 0) select 1),_vehicleName]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; life_action_inUse = true; _upp = localize "STR_NOTF_Impounding"; //Setup our progress bar. disableSerialization; "progressBar" cutRsc ["life_progress","PLAIN"]; _ui = uiNamespace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format ["%2 (1%1)...","%",_upp]; _progress progressSetPosition 0.01; _cP = 0.01; for "_i" from 0 to 1 step 0 do { uiSleep 0.09; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format ["%3 (%1%2)...",round(_cP * 100),"%",_upp]; if (_cP >= 1) exitWith {}; if (player distance _vehicle > 10) exitWith {}; if (!alive player) exitWith {}; }; "progressBar" cutText ["","PLAIN"]; if (player distance _vehicle > 10) exitWith {hint localize "STR_NOTF_ImpoundingCancelled"; life_action_inUse = false;}; if (!alive player) exitWith {life_action_inUse = false;}; if (count crew _vehicle isEqualTo 0) then { if (!(KINDOF_ARRAY(_vehicle,_filters))) exitWith {life_action_inUse = false;}; _type = FETCH_CONFIG2(getText,"CfgVehicles",(typeOf _vehicle),"displayName"); life_impound_inuse = true; if (life_HC_isActive) then { [_vehicle,true,player] remoteExec ["HC_fnc_vehicleStore",HC_Life]; } else { [_vehicle,true,player] remoteExec ["TON_fnc_vehicleStore",RSERV]; }; waitUntil {!life_impound_inuse}; if (playerSide isEqualTo west) then { _impoundMultiplier = LIFE_SETTINGS(getNumber,"vehicle_cop_impound_multiplier"); _value = _price * _impoundMultiplier; [0,"STR_NOTF_HasImpounded",true,[profileName,((_vehicleData select 0) select 1),_vehicleName]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; if (_vehicle in life_vehicles) then { hint format [localize "STR_NOTF_OwnImpounded",[_value] call life_fnc_numberText,_type]; BANK = BANK - _value; } else { hint format [localize "STR_NOTF_Impounded",_type,[_value] call life_fnc_numberText]; BANK = BANK + _value; }; if (BANK < 0) then {BANK = 0;}; [1] call SOCK_fnc_updatePartial; }; } else { hint localize "STR_NOTF_ImpoundingCancelled"; }; life_action_inUse = false;
Zeile 36 0.01 zu etwas größerem abändern.
Zum Problem:
(nach mehreren Versuchen) "reloaden"
Was heißt bei dir reloaden? Neu kaufen, neu einloggen, aufheben?
-
Sehr schöner Ansatz, über so etwas habe ich auch schon oft nachgedacht. Mir fehlt aber genau wie dir die Zeit zur Umsetzung
-
so weit ich weiß kann man einem Button kein Bild zuweisen.
Code
Alles anzeigenclass ButtonSyncData: life_RscButtonMenu { idc = 24453; text = "images\tablet\speichern.paa"; x = 0.1991 * safezoneW + safezoneX; y = 0.76 * safezoneH + safezoneY; w = 0.049748 * safezoneW; h = 0.085081 * safezoneH; onButtonClick = "[] call SOCK_fnc_syncData;"; tooltip = "Daten Speichern"; animtexturenormal = "#(argb,8,8,3)color(1,1,1,0)"; animtexturedisabled = "#(argb,8,8,3)color(1,1,1,0)"; animtextureover = "#(argb,8,8,3)color(1,1,1,0)"; animtexturefocused = "#(argb,8,8,3)color(1,1,1,0)"; animtexturepressed = "#(argb,8,8,3)color(1,1,1,0)"; animtexturedefault = "#(argb,8,8,3)color(1,1,1,0)"; colorbackground[] = {0,0,0,0}; colorbackgroundfocused[] = {1,1,1,0}; colorbackground2[] = {0.75,0.75,0.75,0}; color[] = {1,1,1,0}; colorfocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colortext[] = {1,1,1,0}; colordisabled[] = {1,1,1,0}; bordersize = 0; };
Also müsstest du quasi ein life_RscPicture verwenden und dann nochmals einen Button darüber legen
-
-
-
-
das hast du das Problem glaube ich..
Nope das dürfte schon passen:
Codeclass spikeStrip { variable = "spikeStrip"; displayName = "STR_Item_SpikeStrip"; weight = 15; buyPrice = 2500; sellPrice = 1200; illegal = true; edible = -1; icon = "icons\ico_spikeStrip.paa"; };
Ich verstehe aber gerade selbst nicht wo sonst der Fehler herkommen sollte.