Script ist bei mir nicht funktionsfähig. Wenn ich die Toolbox am Punktmarker "autoteile" benutze passiert nichts. Tutorial habe ich befolgt oder habe ich die Toolbox vielleicht falsch in die fn_useItem eingebunden? Habe ich auf jeden Fall schon geprüft und der Name stimmt auch mit der der vItems Config überein.
Code: fn_useItem.sqf
#include "..\..\script_macros.hpp"
/*
File: fn_useItem.sqf
Author: Bryan "Tonic" Boardwine
Description:
Main function for item effects and functionality through the player menu.
*/
private "_item";
disableSerialization;
if ((lbCurSel 2005) isEqualTo -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";};
_item = CONTROL_DATA(2005);
switch (true) do {
case (_item in ["waterBottle","coffee","redgull"]): {
if ([false,_item,1] call life_fnc_handleInv) then {
life_thirst = 100;
if (LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1) then {player setFatigue 0;};
if (_item isEqualTo "redgull" && {LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1}) then {
[] spawn {
life_redgull_effect = time;
titleText[localize "STR_ISTR_RedGullEffect","PLAIN"];
player enableFatigue false;
waitUntil {!alive player || ((time - life_redgull_effect) > (3 * 60))};
player enableFatigue true;
};
};
};
};
case (_item isEqualTo "boltcutter"): {
[cursorObject] spawn life_fnc_boltcutter;
closeDialog 0;
};
case (_item isEqualTo "blastingcharge"): {
player reveal fed_bank;
(group player) reveal fed_bank;
[cursorObject] spawn life_fnc_blastingCharge;
closeDialog 0;
};
case (_item isEqualTo "defusekit"): {
[cursorObject] spawn life_fnc_defuseKit;
closeDialog 0;
};
case (_item isEqualTo "storagesmall"): {
[false] call life_fnc_storageBox;
};
case (_item isEqualTo "storagebig"): {
[true] call life_fnc_storageBox;
};
case (_item isEqualTo "spikeStrip"): {
if (!isNull life_spikestrip) exitWith {hint localize "STR_ISTR_SpikesDeployment"; closeDialog 0};
if ([false,_item,1] call life_fnc_handleInv) then {
[] spawn life_fnc_spikeStrip;
closeDialog 0;
};
};
case (_item isEqualTo "fuelFull"): {
if !(isNull objectParent player) exitWith {hint localize "STR_ISTR_RefuelInVehicle"};
[] spawn life_fnc_jerryRefuel;
closeDialog 0;
};
case (_item isEqualTo "fuelEmpty"): {
[] spawn life_fnc_jerryCanRefuel;
closeDialog 0;
};
case (_item isEqualTo "lockpick"): {
[] spawn life_fnc_lockpick;
closeDialog 0;
};
case (_item in ["apple","rabbit","salema","ornate","mackerel","tuna","mullet","catshark","turtle_soup","hen","rooster","sheep","goat","donuts","tbacon","peach"]): {
if (!(M_CONFIG(getNumber,"VirtualItems",_item,"edible") isEqualTo -1)) then {
if ([false,_item,1] call life_fnc_handleInv) then {
_val = M_CONFIG(getNumber,"VirtualItems",_item,"edible");
_sum = life_hunger + _val;
switch (true) do {
case (_val < 0 && _sum < 1): {life_hunger = 5;}; //This adds the ability to set the entry edible to a negative value and decrease the hunger without death
case (_sum > 100): {life_hunger = 100;};
default {life_hunger = _sum;};
};
};
};
};
case (EQUAL(_item,"toolbox")): {
[] spawn life_fnc_toolbox;
};
default {
hint localize "STR_ISTR_NotUsable";
};
};
[] call life_fnc_p_updateMenu;
[] call life_fnc_hudUpdate;
Alles anzeigen
Die Class Civilian meiner Functions.hpp sieht bei mir so aus
Code: Functions.hpp
class Civilian {
file = "core\civilian";
class civLoadout {};
class civMarkers {};
class demoChargeTimer {};
class freezePlayer {};
class jail {};
class jailMe {};
class knockedOut {};
class knockoutAction {};
class removeLicenses {};
class robPerson {};
class robReceive {};
class tazed {};
class toolbox {};
class loot {};
};
Alles anzeigen
Update: Die Logs hatten erst keine Fehler zu dem Error ausgeworfen. Irgendwann nach mehrmaligem probieren wurden Fehler ausgespuckt. Das ändern von GVAR in getVariable machte das Script nun schlussendlich lauffähig.