Tagchen auch euch allen zusammen
Nun da ein Problem erledigt ist habe ich ein neues/altes wobei es Hilfe bedarf.
Und zwar geht es darum das ich mittels vieler Tipps hier im Forum aus einem TUT die Funktion des Massenabbaus eingefügt habe.
Das funktioniert zwar soweit prima, man stellt sich aufs Feld und drückt WINDOWS und es wird gefarmt bis das Inventar voll ist.
Leider hat die Sache aber auch einen Hacken und zwar das man es nicht beenden kann ausser man rennt von der FarmZone weg
Das Geräusch des Abbaus hört man noch 1 Minute dannach wenn mann schon weit weg ist.
Hier ist eine fn_gather.sqf mit dem derzeitigen Inhalt, meine Frage nun, wie und wo baue ich eine Möglichkeit ein das zum Beispiel während dem Abbau eine Meldung im Bild steht "Derzeit bist du am Dauerfarmen - Zum Beenden drücke P"
Und wenn ich dann P drücke das Farmen auch beendet wird!?
#include "..\..\script_macros.hpp"
/*
File: fn_gather.sqf
Author: Devilfloh
Description:
Main functionality for gathering.
*/
private ["_maxGather","_resource","_amount","_maxGather","_requiredItem"];
if (life_action_inUse) exitWith {};
if !(isNull objectParent player) exitWith {};
if (player getVariable "restrained") exitWith {hint localize "STR_NOTF_isrestrained";};
if (player getVariable "playerSurrender") exitWith {hint localize "STR_NOTF_surrender";};
life_action_inUse = true;
_zone = "";
_requiredItem = "";
_exit = false;
_resourceCfg = missionConfigFile >> "CfgGather" >> "Resources";
for "_i" from 0 to count(_resourceCfg)-1 do {
_curConfig = _resourceCfg select _i;
_resource = configName _curConfig;
_maxGather = getNumber(_curConfig >> "amount");
_zoneSize = getNumber(_curConfig >> "zoneSize");
_resourceZones = getArray(_curConfig >> "zones");
_requiredItem = getText(_curConfig >> "item");
{
if ((player distance (getMarkerPos _x)) < _zoneSize) exitWith {_zone = _x;};
} forEach _resourceZones;
if (_zone != "") exitWith {};
};
if (_zone isEqualTo "") exitWith {life_action_inUse = false;};
if (_requiredItem != "") then {
_valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
if (_valItem < 1) exitWith {
switch (_requiredItem) do {
//Messages here
};
life_action_inUse = false;
_exit = true;
};
};
if (_exit) exitWith {life_action_inUse = false;};
while{true} do {
if(life_interrupted) exitWith {life_interrupted = false;};
_amount = round(random(_maxGather)) + 1;
_diff = [_resource,_amount,life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
if (_diff isEqualTo 0) exitWith {
hint localize "STR_NOTF_InvFull";
life_action_inUse = false;
};
switch (_requiredItem) do {
case "pickaxe": {player say3D "mining";};
default {player say3D "harvest";};
};
switch (_requiredItem) do {
case "schaufel": {player say3D "Shovel";};
default {player say3D "harvest";};
};
switch (_requiredItem) do {
case "sieb": {player say3D "Goldnuggets";};
default {player say3D "harvest";};
};
for "_i" from 0 to 4 do {
player playMoveNow "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
sleep 0.5;
};
if ([true,_resource,_diff] call life_fnc_handleInv) then {
_itemName = M_CONFIG(getText,"VirtualItems",_resource,"displayName");
titleText[format [localize "STR_NOTF_Gather_Success",(localize _itemName),_diff],"PLAIN"];
};
};
sleep 1;
life_action_inUse = false;
Alles anzeigen
Danke vielmals im Voraus für die Hilfe, LG