Code
/*
File: fn_gather.sqf
Author: Bryan "Tonic" Boardwine
Description:
Main functionality for gathering.
*/
if(isNil "life_action_gathering") then {life_action_gathering = false;};
private["_gather","_itemWeight","_diff","_itemName","_val","_resourceZones","_zone","_chance"];
_resourceZones = ["moebel_1","apple_1","uran_1","apple_2","apple_3","apple_4","peaches_1","peaches_2","peaches_3","peaches_4","heroin_1","cocaine_2","weed_1","uran_1","amphe_2_1","raps_1"];
_zone = "";
if(life_action_gathering) exitWith {}; //Action is in use, exit to prevent spamming.
life_action_gathering = true;
//Find out what zone we're near
{
if(player distance (getMarkerPos _x) < 30) exitWith {_zone = _x;};
} foreach _resourceZones;
if(_zone == "") exitWith {
life_action_inUse = false;
};
_chance = round(random(100));
//Get the resource that will be gathered from the zone name...
switch(true) do {
case (_zone in ["apple_1","apple_2","apple_3","apple_4"]): {_gather = "apple"; _val = round(random(10));};
case (_zone in ["peaches_1","peaches_2","peaches_3","peaches_4"]): {_gather = "peach"; _val = round(random(10));};
case (_zone in ["heroin_1"]): {_gather = "heroinu"; _val = round(random(10));};
case (_zone in ["cocaine_2"]): {_gather = "cocaine"; _val = round(random(10));};
case (_zone in ["weed_1"]): {_gather = "cannabis"; _val = round(random(10));};
case (_zone in ["amphe_2_1"]): {_gather = "methu"; _val = round(random(10));};
case (_zone in ["raps_1"]): {_gather = "rapsu"; _val = round(random(10));};
case (_zone in ["uran_1"]): {_gather = "uranu"; _val = round(random(10));};
case (_zone in ["moebel_1"]): {_gather = "moebelu"; _val = round(random(10));};
default {""};
};
//gather check??
if(vehicle player != player) exitWith {};
if(_chance < 50 && _gather == "Deins") then {
_gather = "DasNeue";
_val = round(random(10));
}else{
_gather = "DasAlte";
_val = round(random(10));
};
_diff = [_gather,_val,life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
if(_diff == 0) exitWith {hintSilent localize "STR_NOTF_InvFull"};
life_action_inUse = true;
for "_i" from 0 to 2 do
{
player playMove "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
sleep 2.5;
};
if(([true,_gather,_diff] call life_fnc_handleInv)) then
{
_itemName = [([_gather,0] call life_fnc_varHandle)] call life_fnc_varToStr;
titleText[format[localize "STR_NOTF_Gather_Success",_itemName,_diff],"PLAIN"];
};
life_action_inUse = false;
Alles anzeigen
Ka obs so geht einfach mal testen.