Guten Tag zusammen,
ich möchte euch ein kleines tut vorstellen das den Spieler heilt wenn er volles "Wasser" und Volles "Essen" hat.
Die Idee dahinter ist, das der Körper in einer gewissen zeit selbstheilungsfähigkeiten hat. Natürlich nur wenn alle Vitalsyteme ausreichend versorgt sind =).
Zu bearbeitende Dateien fn_survival.sqf (unter core/ )
1. geht in die fn_survival.sqf
sucht nach
private ["_healtime", "_fnc_heal","_healvalue", "_damageplayer", "_fnc_food","_fnc_water","_foodTime","_waterTime","_bp","_walkDis","_lastPos","_curPos"];
und ergänzt zwischen den [] um folgende Variabeln
"_healtime",
"_fnc_heal",
"_healvalue",
"_damageplayer",
2. in der selbigen Datei fügt ihr bitte diesen Code unter dem _fnc_water ein
_fnc_heal = {
if (_damageplayer > 0) then
{
if (life_hunger isEqualTo 100 && life_thirst isEqualTo 100) then
{
if (_damageplayer < _healvalue ) then
{
player setDamage 0;
[] call life_fnc_hudUpdate;
}else{
player setDamage (_damageplayer - _healvalue);
[] call life_fnc_hudUpdate;
};
};
};
};
Alles anzeigen
das ganze müsste dann so aussehen
_fnc_water = {
if (life_thirst < 2) then {player setDamage 1; hint localize "STR_NOTF_DrinkMSG_Death";}
else
{
life_thirst = life_thirst - 10;
[] call life_fnc_hudUpdate;
if (life_thirst < 2) then {player setDamage 1; hint localize "STR_NOTF_DrinkMSG_Death";};
switch (life_thirst) do {
case 30: {hint localize "STR_NOTF_DrinkMSG_1";};
case 20: {
hint localize "STR_NOTF_DrinkMSG_2";
if (LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1) then {player setFatigue 1;};
};
case 10: {
hint localize "STR_NOTF_DrinkMSG_3";
if (LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1) then {player setFatigue 1;};
};
};
};
};
_fnc_heal = {
if (_damageplayer > 0) then
{
if (life_hunger isEqualTo 100 && life_thirst isEqualTo 100) then
{
if (_damageplayer < _healvalue ) then
{
player setDamage 0;
[] call life_fnc_hudUpdate;
}else{
player setDamage (_damageplayer - _healvalue);
[] call life_fnc_hudUpdate;
};
};
};
};
Alles anzeigen
3 sucht nach
_foodTime = time;
_waterTime = time;
_walkDis = 0;
_bp = "";
_lastPos = visiblePosition player;
_lastPos = (_lastPos select 0) + (_lastPos select 1);
_lastState = vehicle player;
und ergänzt dort um folgende Variablen
_healvalue = 0.1;
_damageplayer = getDammage player;
_healtime = time;
4. direkt darunter gibt es die zeile for "_i" from 0 to 1 step 0 do {
und tragt direkt darunter und über if ((time - _waterTime) > 600 && {!life_god}) then {[] call _fnc_water; _waterTime = time;};
diese Codezeile ein --> if ((time - _healtime) > 60 && {!life_god}) then {[] call _fnc_heal; _healtime = time;};
und das war es auch schon =)
Hinweis :
unter dem wert _healvalue = 0.1; könnt ihr den Wert verändern dieser bestimmt um "wieviel" ihr geheilt werden sollt. ps. Arma geht hier von 0 - 1 wobei 0 kein damage ist und 1 tod =)
unter der Codezeile if ((time - _healtime) > 60 && {!life_god}) then {[] call _fnc_heal; _healtime = time;};
könnt ihr bestimmen nach wie viel Sekunden (hier 60) der wert _healvalue angewandt werden soll. d.h. in diesem falle alle 60 Sekunden wird euer schaden um 0.1 reduziert.
Und wie gesagt das ganze funktioniert nur wenn euer "Wasser" und "Essen" auf 100% ist. =)
Viel Spass
MFG
TITANFALL-LIFE