Moin Moin ihr flöten hier auch wieder was wo man sein saft dazu geben kann und sich das vielleicht auch für sein Project so übernehmen kann
wenns dann so klappt.
Folgendes: Wenn man isst scaliert das ja mit dem "edible".
Beim trinken bekommt man immer 100 Trinken so das es voll ist.
Das ganze mal so fix durchgeschaut und in der ""5.0"" ist es wie folgt:
in der fn_survival steht nur das wenn das trinken zu wenig ist dann kneift man den arsch zu das ist dort unter _fnc_water = {....
dort wird dann der player setDamage auf 1 gesetzt. Vielleicht könnte man da auch sowas in die richtung set damage 0.1 -> sleep -> set damage 0.2 usw.
das man net sofort den arsch zukneift sondern langsam dan verdurstet aber das ist auch wieder was anderes und interesiert nicht.
Also im fn_hudUpdate ist noch der progessSetPosition kram
auch unwichtig.
fn_requstReceived steht nur der stats kram drin
in der fn_Update steht der _array pushBack für hunger und durst und so
auch net das wonach ich suche in der Configurations.sqf ist auch nichts relevantes und in fn_respawned und fn_onPlayerKilled siht nur das es auf 100 gesetzt wird.
ansonsten falls noch vorhanden spyglass müll.
so Also zum wichtigen teil:
der fn_useitem:
Hier wird man fündig:
Habs mal extra bissel "Rasiert" damit das übersichtlich bleibt:
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 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;};
};
};
};
};
default {
hint localize "STR_ISTR_NotUsable";
};
};
[] call life_fnc_p_updateMenu;
[] call life_fnc_hudUpdate;
Alles anzeigen
Hier ist also das system hier noch etwas mehr rasiert damit man den überblick bekommt:
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;};
};
};
};
Hier wird gesagt : "Wenn item = wasser caffee oder redbull dann wird 1x das item abgezogen und durst wird auf 100 gesetzt. und den noch son ausdauer müll was aber so erstma nicht interesiert.
Beim Essen stark runter gebrochen:
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;};
};
};
};
};
Alles anzeigen
Hier wird gesagt : "wenn item = apfel,hase usw. und edible ist nicht wegen dem (!) davor was aus dem == -1 eine art doppelte verneinung macht dann wird wieder das item 1 mal aus dem inventar genommen und _val = value (wert) also der wert der in der "M_CONFIG die nummer vom dem _item in der zuweisung "Edible" : also hier:
//Food
class apple {
variable = "apple";
displayName = "STR_Item_Apple";
weight = 2;
buyPrice = 6;
sellPrice = 2;
illegal = false;
edible = 10; <----------------------HIER
icon = "icons\ico_apple.paa";
};
Alles anzeigen
in der Config_Vitems.
dort wird der edible festgelegt also der wert wie viel die _val (value/wert) ist.
und durch:
_sum = life_hunger + _val; wird gesagt das _Sum (summe) bedeutet Hunger + val (Value/wert) der in der Config_Vitems festgelegt wird.
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;};
Hier gehts dann weiter hier wird quasi das essbare berechnet und wie viel hinzugefügt wird und dort habe ich rumgewurschtelt und habe eigentlich was zusammen gebastelt.
das sah am ende denn so aus:
switch (true) do {
case (_item in ["waterBottle","coffee","redgull"]): {
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_thrist + _val;
switch (true) do {
case (_val < 0 && _sum < 1): {life_thirst = 5;};
case (_sum > 100): {life_thirst = 100;};
default {life_thirst = _sum;};
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;
};
};
};
};
};
};
Alles anzeigen
Es ist zwar benutzbar füllt aber die leiste nicht auf...
jemand ne idee?