SHOW:
|
|
- or go back to the newest paste.
| 1 | #include "..\..\script_macros.hpp" | |
| 2 | /* | |
| 3 | File: fn_useItem.sqf | |
| 4 | Author: Bryan "Tonic" Boardwine | |
| 5 | ||
| 6 | Description: | |
| 7 | Main function for item effects and functionality through the player menu. | |
| 8 | */ | |
| 9 | private "_item"; | |
| 10 | disableSerialization; | |
| 11 | if ((lbCurSel 2005) isEqualTo -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";};
| |
| 12 | _item = CONTROL_DATA(2005); | |
| 13 | #include "..\..\The-Programmer\Plants\scripts\useItemSelect.sqf" | |
| 14 | ||
| 15 | switch (true) do {
| |
| 16 | #include "..\..\The-Programmer\EffetsEcran\scripts\useItemSelect.sqf" | |
| 17 | case (_item in ["waterBottle","coffee","redgull","humelscola","fanta_litchi","coca","fanta","icetea","sprite"]): {
| |
| 18 | if ([false,_item,1] call life_fnc_handleInv) then {
| |
| 19 | life_thirst = 100; | |
| 20 | if (LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1) then {player setFatigue 0;};
| |
| 21 | if (_item in ["redgull"] && {LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1}) then {
| |
| 22 | [] spawn {
| |
| 23 | life_redgull_effect = time; | |
| 24 | titleText[localize "STR_ISTR_RedGullEffect","PLAIN"]; | |
| 25 | player enableFatigue false; | |
| 26 | waitUntil {!alive player || ((time - life_redgull_effect) > (3 * 60))};
| |
| 27 | player enableFatigue true; | |
| 28 | }; | |
| 29 | }; | |
| 30 | if (_item in ["autre_redgull"] && {LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1}) then {
| |
| 31 | [] spawn {
| |
| 32 | life_redgull_effect = time; | |
| 33 | titleText[localize "STR_ISTR_RedGullEffect","PLAIN"]; | |
| 34 | player enableFatigue false; | |
| 35 | waitUntil {!alive player || ((time - life_redgull_effect) > (9 * 60))};
| |
| 36 | player enableFatigue true; | |
| 37 | }; | |
| 38 | }; | |
| 39 | }; | |
| 40 | }; | |
| 41 | ||
| 42 | case (_item isEqualTo "gpstracker"): { // added
| |
| 43 | [cursorTarget] spawn life_fnc_gpsTracker; | |
| 44 | }; | |
| 45 | ||
| 46 | case (_item isEqualTo "bombe_peinture"): { // added
| |
| 47 | [cursorTarget] spawn max_immat_fnc_maskPlate; | |
| 48 | }; | |
| 49 | ||
| 50 | case (_item isEqualTo "boltcutter"): {
| |
| 51 | [cursorObject] spawn life_fnc_boltcutter; | |
| 52 | closeDialog 0; | |
| 53 | }; | |
| 54 | ||
| 55 | case (_item isEqualTo "blastingcharge"): {
| |
| 56 | player reveal fed_bank; | |
| 57 | (group player) reveal fed_bank; | |
| 58 | [cursorObject] spawn life_fnc_blastingCharge; | |
| 59 | closeDialog 0; | |
| 60 | }; | |
| 61 | ||
| 62 | case (_item isEqualTo "cone"): | |
| 63 | {
| |
| 64 | if(!isNull life_table || !isNull life_chair || !isNull life_djturntable || !isNull life_spikestrip || !isNull life_barrier || !isNull largeBarrier || !isNull life_cone || !isNull life_sandbag || !isNull life_sandbagr) exitWith {hint "Vous avez déjà un objet à poser en main !"};
| |
| 65 | if(([false,_item,1] call life_fnc_handleInv)) then | |
| 66 | {
| |
| 67 | [] spawn life_fnc_cone; | |
| 68 | closeDialog 0; | |
| 69 | }; | |
| 70 | }; | |
| 71 | case (_item isEqualTo "barrier"): | |
| 72 | {
| |
| 73 | if(!isNull life_table || !isNull life_chair || !isNull life_djturntable || !isNull life_spikestrip || !isNull life_barrier || !isNull largeBarrier || !isNull life_cone || !isNull life_sandbag || !isNull life_sandbagr) exitWith {hint "Vous avez déjà un objet à poser en main !"};
| |
| 74 | if(([false,_item,1] call life_fnc_handleInv)) then | |
| 75 | {
| |
| 76 | [] spawn life_fnc_barrier; | |
| 77 | closeDialog 0; | |
| 78 | }; | |
| 79 | }; | |
| 80 | ||
| 81 | case (_item isEqualTo "chaise"): | |
| 82 | {
| |
| 83 | if(!isNull life_table || !isNull life_chair || !isNull life_djturntable || !isNull life_spikestrip || !isNull life_barrier || !isNull largeBarrier || !isNull life_cone || !isNull life_sandbag || !isNull life_sandbagr) exitWith {hint "Vous avez déjà un objet à poser en main !"};
| |
| 84 | if(([false,_item,1] call life_fnc_handleInv)) then | |
| 85 | {
| |
| 86 | [] spawn life_fnc_chaise; | |
| 87 | closeDialog 0; | |
| 88 | }; | |
| 89 | }; | |
| 90 | ||
| 91 | case (_item isEqualTo "largeBarrier"): | |
| 92 | {
| |
| 93 | if(!isNull life_table || !isNull life_chair || !isNull life_djturntable || !isNull life_spikestrip || !isNull life_barrier || !isNull largeBarrier || !isNull life_cone || !isNull life_sandbag || !isNull life_sandbagr) exitWith {hint "Vous avez déjà un objet à poser en main !"};
| |
| 94 | if(([false,_item,1] call life_fnc_handleInv)) then | |
| 95 | {
| |
| 96 | [] spawn life_fnc_largeBarrier; | |
| 97 | closeDialog 0; | |
| 98 | }; | |
| 99 | }; | |
| 100 | case (_item isEqualTo "sandbag"): | |
| 101 | {
| |
| 102 | if(!isNull life_table || !isNull life_chair || !isNull life_djturntable || !isNull life_spikestrip || !isNull life_barrier || !isNull largeBarrier || !isNull life_cone || !isNull life_sandbag || !isNull life_sandbagr) exitWith {hint "Vous avez déjà un objet à poser en main !"};
| |
| 103 | if(([false,_item,1] call life_fnc_handleInv)) then | |
| 104 | {
| |
| 105 | [] spawn life_fnc_sandbag; | |
| 106 | closeDialog 0; | |
| 107 | }; | |
| 108 | }; | |
| 109 | ||
| 110 | case (_item isEqualTo "sandbagr"): | |
| 111 | {
| |
| 112 | if(!isNull life_table || !isNull life_chair || !isNull life_djturntable || !isNull life_spikestrip || !isNull life_barrier || !isNull largeBarrier || !isNull life_cone || !isNull life_sandbag || !isNull life_sandbagr) exitWith {hint "Vous avez déjà un objet à poser en main !"};
| |
| 113 | if(([false,_item,1] call life_fnc_handleInv)) then | |
| 114 | {
| |
| 115 | [] spawn life_fnc_sandbagr; | |
| 116 | closeDialog 0; | |
| 117 | }; | |
| 118 | }; | |
| 119 | ||
| 120 | case (_item isEqualTo "defusekit"): {
| |
| 121 | [cursorObject] spawn life_fnc_defuseKit; | |
| 122 | closeDialog 0; | |
| 123 | }; | |
| 124 | ||
| 125 | case (_item isEqualTo "storagesmall"): {
| |
| 126 | [false] call life_fnc_storageBox; | |
| 127 | }; | |
| 128 | ||
| 129 | case (_item isEqualTo "storagebig"): {
| |
| 130 | [true] call life_fnc_storageBox; | |
| 131 | }; | |
| 132 | ||
| 133 | case (_item isEqualTo "spikeStrip"): {
| |
| 134 | if(!isNull life_table || !isNull life_chair || !isNull life_djturntable || !isNull life_spikestrip || !isNull life_barrier || !isNull largeBarrier || !isNull life_cone || !isNull life_sandbag || !isNull life_sandbagr) exitWith {hint "Vous avez déjà un objet à poser en main !"};
| |
| 135 | if ([false,_item,1] call life_fnc_handleInv) then {
| |
| 136 | [] spawn life_fnc_spikeStrip; | |
| 137 | closeDialog 0; | |
| 138 | }; | |
| 139 | }; | |
| 140 | ||
| 141 | case (_item isEqualTo "fuelFull"): {
| |
| 142 | if (vehicle player != player) exitWith {hint localize "STR_ISTR_RefuelInVehicle"};
| |
| 143 | [] spawn life_fnc_jerryRefuel; | |
| 144 | closeDialog 0; | |
| 145 | }; | |
| 146 | ||
| 147 | case (_item isEqualTo "fuelEmpty"): {
| |
| 148 | [] spawn life_fnc_jerrycanRefuel; | |
| 149 | closeDialog 0; | |
| 150 | }; | |
| 151 | ||
| 152 | case (_item isEqualTo "lockpick"): {
| |
| 153 | [] spawn life_fnc_lockpick; | |
| 154 | closeDialog 0; | |
| 155 | }; | |
| 156 | ||
| 157 | case (_item in ["apple","rabbit","salema","ornate","mackerel","tuna","mullet","catshark","turtle_soup","hen","rooster","sheep","goat","donuts","tbacon","peach","banane", "chocobon", "fromage", "gateau", "mandarine", "saucisson", "raisin","cacao","yalla","chat_minou","nem_crevette","kebab_blanche","kebab_samurai","kebab_marocaine","kebab_space","kebab_ketshup","kebab_mayo","kebab_falefels","frite","pizza_saisons","pizza_fromage","pizza_marguerite","pizza_orientale","burger","tacos","bolderis","pain"]): | |
| 158 | {
| |
| 159 | if (!(M_CONFIG(getNumber,"VirtualItems",_item,"edible") isEqualTo -1)) then {
| |
| 160 | if ([false,_item,1] call life_fnc_handleInv) then {
| |
| 161 | _val = M_CONFIG(getNumber,"VirtualItems",_item,"edible"); | |
| 162 | _sum = life_hunger + _val; | |
| 163 | switch (true) do {
| |
| 164 | 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
| |
| 165 | case (_sum > 100): {life_hunger = 100;};
| |
| 166 | default {life_hunger = _sum;};
| |
| 167 | }; | |
| 168 | }; | |
| 169 | }; | |
| 170 | }; | |
| 171 | ||
| 172 | default {
| |
| 173 | hint localize "STR_ISTR_NotUsable"; | |
| 174 | }; | |
| 175 | }; | |
| 176 | ||
| 177 | [] call life_fnc_p_updateMenu; | |
| 178 | [] call life_fnc_hudUpdate; |