diff --git a/SQF/dayz_code/configVariables.sqf b/SQF/dayz_code/configVariables.sqf index 7a415749e..4b52d7395 100644 --- a/SQF/dayz_code/configVariables.sqf +++ b/SQF/dayz_code/configVariables.sqf @@ -10,7 +10,6 @@ dayz_waterBottleBreaking = false; // Water bottles have a chance to break when b dayz_tameDogs = false; // Allow taming dogs with raw meat dayz_townGenerator = false; // Spawn vanilla map junk instead of Epoch DynamicDebris. Currently only compatible with Chernarus. dayz_townGeneratorBlackList = []; // Town generator will not spawn junk within 150m of these positions. Example for Chernarus trader cities: [[4053,11668,0],[11463,11349,0],[6344,7806,0],[1606,7803,0],[12944,12766,0],[5075,9733,0],[12060,12638,0]] -dayz_transfuseCoolDown = 120; // Cooldown in seconds before a player can transfuse another player. DZE_NoVehicleExplosions = false; //Disable vehicle explosions to prevent damage to objects by ramming - doesn't work with amphibious pook which you should not use due to other issues DZE_TempVars = [7, 15, 4, 4, 2, 6, 3, 2, 0.25, 0.75, 0.5]; //[vehicle, fire, building, moving, sun, heatpack, water, standing, rain, wind, night] water, standing, rain, wind and night factors have a negative impact on temperature, the greater they are the quicker the player gets cold DZE_WeatherVariables = [10, 20, 5, 10, 0, 0.2, 0, 0.7, 0, 0.6, 0, 8, 25, 30, 0, false]; //See DynamicWeatherEffects.sqf for info on these values diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index f643c5dca..43d5a5365 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -607,6 +607,7 @@ if (!isDedicated) then { dayz_temperaturmin = 27; //TeeChange //player special variables + dayz_bloodBagHumanity = 300; dayz_lastDamageSourceNull = false; dayz_lastDamageSource = "none"; dayz_lastDamageTime = 0; @@ -615,7 +616,7 @@ if (!isDedicated) then { dayz_lastClothesChange = 0; dayZ_lastPlayerUpdate = 0; dayz_lastSelfTransfusion = -(DZE_selfTransfuse_Values select 2); - dayz_lastTransfusion = -(dayz_transfuseCoolDown); + dayz_lastTransfusion = 0; dayz_playerName = "unknown"; dayz_hunger = 0; dayz_thirst = 0; diff --git a/SQF/dayz_code/medical/transfusion.sqf b/SQF/dayz_code/medical/transfusion.sqf index 8101ad91d..40cb576d6 100644 --- a/SQF/dayz_code/medical/transfusion.sqf +++ b/SQF/dayz_code/medical/transfusion.sqf @@ -2,9 +2,9 @@ private ["_bloodAmount","_unit","_blood","_lowBlood","_injured","_inPain","_hasT //Get receving unit _unit = (_this select 3) select 0; -if (time - dayz_lastTransfusion <= dayz_transfuseCoolDown) exitWith {localize "str_actions_medical_18" call dayz_rollingMessages;}; //Does the player have a transfusionKit //_hasTransfusionKit = "transfusionKit" in magazines player; +if (time - dayz_lastTransfusion > 120) then {dayz_bloodBagHumanity = 300;}; //Reset humanity reward to full value after two minutes //Get receving units blood value _blood = _unit getVariable ["USEC_BloodQty", 0]; @@ -165,8 +165,8 @@ while {r_doLoop} do { // 25 points to be givin upto a maximum of 300 points if the player stays for the full duration //This should be better this way to keep calculus simple and prevent people getting points for giving blood transfusions to healthy players (and less humanity for only very small amounts of blood) //Pulled from pullrequest from ILoveBeans - if ( _humanityAwarded < 300 ) then { - _humanityAwarded = _humanityAwarded + 25 ; + if (_humanityAwarded < dayz_bloodBagHumanity) then { + _humanityAwarded = _humanityAwarded + 25; }; }; } else { @@ -193,6 +193,7 @@ while {r_doLoop} do { if (_blood >= r_player_bloodTotal or _bloodAmount == 0) then { diag_log format ["TRANSFUSION: completed blood transfusion successfully (_i = %1)", _i]; localize "str_actions_medical_transfusion_successful" call dayz_rollingMessages; + dayz_bloodBagHumanity = dayz_bloodBagHumanity / 2; //Diminish humanity reward for subsequent bloodbags. Resets to full reward after two minutes. dayz_lastTransfusion = time; //see Note 1 //[player,_unit,"loc",rTITLETEXT,localize "str_actions_medical_transfusion_successful","PLAIN DOWN"] call RE;