Jump to content

[Tutorial] Clickable self-bloodbag with configurable limitations (Updated 02/21/2014)


adg

Recommended Posts

This is my first tutorial, so please bear with me. Any changes, improvements and comments are welcome.

 

 

It's so good, hard to believe it is your first! 

 

This is one beautiful tutorial. Color-coordinated, well-formatted, clear, and concise. I wish more people doing releases used your example.

Well put!

 

 

Thanks adg! It's installed on my server now...

Link to comment
Share on other sites

This script worked perfectly for me up until I upgraded to Epoch 105 today. I'm guessing (really guessing as I'm not technical) that it may have something to do with the change of '&&' and 'and' amongst other things.... 

 

I have no errors in my rpt, other right click functions are working fine just, nothing happens when I right click on the bloodbag.

 

Any help would be greatly appreciated..

Link to comment
Share on other sites

Add this to init.sqf in your mission file

 

My settings give 6000 blood, a 10 minute cooldown before you can bag again and a 10% chance of infection (I think!!)

DZE_selfTransfuse = true;
DZE_selfTransfuse_Values = [6000, 10, 600];
Link to comment
Share on other sites

1.0.5 has self bloodbag built-in.  look at the changelogs for how to activate it.

 

 

 

Add this to init.sqf in your mission file

 

My settings give 6000 blood, a 10 minute cooldown before you can bag again and a 10% chance of infection (I think!!)

DZE_selfTransfuse = true;
DZE_selfTransfuse_Values = [6000, 10, 600];

Done! Thanks guys. I'd noticed it in the change log but didn't think it would be right click so left if off. 

 

Have now changed to this and found out it's right click anyway... lol

 

Thanks again.

Link to comment
Share on other sites

  • 2 months later...

This is great for a fresh install, but it doesnt really shed any light where to put things if the directories have already been installed (Such as description.ext, UI_Selectslot, and Extra_rc.hpp)  Would be great if you could add in where/what using Examples ( like Custom/example.sqf in your script layout or something like that. )

 

also, after trying to get this to work, now my right clicks for any items wont work at all..  Before i tried to add this script, all my other ones worked perfect, So its not them :P

 

Extra_RC.hpp

class ExtraRc {
class ItemToolbox {
class BuildBike {
text = "Deploy Bike";
script = "['MMT_Civ'] execVM 'Scripts\EVD\EVD_deploy.sqf'";
};
class BuildMotorcycle {
text = "Deploy Motorcycle";
script = "['TT650_Civ'] execVM 'Scripts\EVD\EVD_deploy.sqf'";
};
class BuildMozzie {
text = "Deploy Mozzie";
script = "['CSJ_GyroC'] execVM 'Scripts\EVD\EVD_deploy.sqf'";
            };
};
      class ItemBloodbag {
            class Use {
            text = "Use Bloodbag";
            script = "execVM 'Scripts\SelfBB.sqf'";
            };
      };
};

UI_SelectSlot.sqf

private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
_control =  _this select 0;
_button = _this select 1;
_parent =  findDisplay 106;
 
//if ((time - dayzClickTime) < 1) exitWith {};
if (!DZE_SelfTransfuse && ((gearSlotData _control) == "ItemBloodBag")) exitWith {};
if (_button == 1) then {
//dayzClickTime = time;
_group = _parent displayCtrl 6902;
 
_pos =  ctrlPosition _group;
_pos set [0,((_this select 2) + 0.48)];
_pos set [1,((_this select 3) + 0.07)];
 
_item = gearSlotData _control;
 
_conf = configFile >> "cfgMagazines" >> _item;
if (!isClass _conf) then {
_conf = configFile >> "cfgWeapons" >> _item;
};
_name = getText(_conf >> "displayName");
 
_cfgActions = _conf >> "ItemActions";
_numActions = (count _cfgActions);
_height = 0;
 
//Populate Menu
for "_i" from 0 to (_numActions - 1) do 
{
_menu =  _parent displayCtrl (1600 + _i);
_menu ctrlShow true;
_config =  (_cfgActions select _i);
_type =  getText (_config >> "text");
_script =  getText (_config >> "script");
_outputOriented =  getNumber (_config >> "outputOriented") == 1;
_height = _height + (0.025 * safezoneH);
_compile =  format["_id = '%2' %1;",_script,_item];
uiNamespace setVariable ['uiControl', _control];
if (_outputOriented) then {
/*
This flag means that the action is output oriented
the output class will then be transferred to the script
&& the type used for the name
*/ 
_array =  getArray (_config >> "output");
_outputClass = _array select 0;
_outputType = _array select 1;
_name = getText (configFile >> _outputType >> _outputClass >> "displayName");
_compile =  format["_id = ['%2',%3] %1;",_script,_item,_array];
};
 
_menu ctrlSetText format[_type,_name];
_menu ctrlSetEventHandler ["ButtonClick",_compile];
};
};
// Add extra context menus
_erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
_erc_numActions = (count _erc_cfgActions);
if (isClass _erc_cfgActions) then {
    for "_j" from 0 to (_erc_numActions - 1) do 
    {
        _menu =  _parent displayCtrl (1600 + _j + _numActions);
        _menu ctrlShow true;
        _config =  (_erc_cfgActions select _j);
        _text =  getText (_config >> "text");
        _script =  getText (_config >> "script");
        _height = _height + (0.025 * safezoneH);
        uiNamespace setVariable ['uiControl', _control];
        _menu ctrlSetText _text;
        _menu ctrlSetEventHandler ["ButtonClick",_script];
    };
};
_pos set [3,_height];
//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos]; 
 
_group ctrlShow true;
ctrlSetFocus _group;
_group ctrlSetPosition _pos;
_group ctrlCommit 0;
};

 

Description.ext

respawn = "BASE";
respawndelay = 5;
onLoadMission= "SinneD Gaming Presents - DayZ Mod - OverPoch";
OnLoadIntro = "Please be Patient and wait for the Mission to Load entirely, Thank you!  wwww.sinnedgaming.com";
OnLoadIntroTime = False;
OnLoadMissionTime = False;
disabledAI = true;
disableChannels[]={0,2,6};
enableItemsDropping = 0;
 
briefing = 0;
debriefing = 0;
 
onPauseScript = "";
loadScreen = "Server Loading screen 7 low quality.jpg";
 
class Header
{
 gameType = COOP;            //DM, Team, Coop, ...
 minPlayers = 1;             //min # of players the mission supports
 maxPlayers = 100;            //Max # of players the mission supports
};
 
aiKills = 1;
diagRadio = 1;
diagHit = 1;
 
class RscText
{
type = 0;
idc = -1;
x = 0;
y = 0;
h = 0.037;
w = 0.3;
style = 0x100; 
font = Zeppelin32;
SizeEx = 0.03921;
colorText[] = {1,1,1,1};
colorBackground[] = {0, 0, 0, 0};
linespacing = 1;
};
class RscPicture
{
access=0;
type=0;
idc=-1;
style=48;
colorBackground[]={0,0,0,0};
colorText[]={1,1,1,1};
font="TahomaB";
sizeEx=0;
lineSpacing=0;
text="";
};
class RscLoadingText : RscText
{
style = 2;
x = 0.323532;
y = 0.666672;
w = 0.352944;
h = 0.039216;
sizeEx = 0.03921;
colorText[] = {0.543,0.5742,0.4102,1.0};
};
class RscProgress
{
x = 0.344;
y = 0.619;
w = 0.313726;
h = 0.0261438;
texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
colorFrame[] = {0,0,0,0};
colorBar[] = {1,1,1,1};
};
class RscProgressNotFreeze
{
idc = -1;
type = 45;
style = 0;
x = 0.022059;
y = 0.911772;
w = 0.029412;
h = 0.039216;
texture = "#(argb,8,8,3)color(0,0,0,0)";
};
//
// the loading screen itself
//
class DayZ_loadingScreen
{ 
idd = -1;
duration = 10e10;
fadein = 0;
fadeout = 0;
name = "loading screen";
class controlsBackground
{
class blackBG : RscText
{
x = safezoneX;
y = safezoneY;
w = safezoneW;
h = safezoneH;
text = "";
colorText[] = {0,0,0,0};
colorBackground[] = {0,0,0,1};
};
/*
class nicePic : RscPicture
{
style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO
x = safezoneX + safezoneW/2 - 0.25;
y = safezoneY + safezoneH/2 - 0.2;
w = 0.5;
h = 0.4;
text = "img\nicePic.paa";
};
*/
};
class controls
{
class Title1 : RscLoadingText
{
text = "$STR_LOADING"; // "Loading" text in the middle of the screen
};
class CA_Progress : RscProgress // progress bar, has to have idc 104
{
idc = 104;
type = 8; // CT_PROGRESS
style = 0; // ST_SINGLE
texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
};
class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
{
idc = 103;
};
class Name2: RscText // the text on the top-left
{
idc = 101;
x = 0.05;
y = 0.029412;
w = 0.9;
h = 0.04902;
text = "";
sizeEx = 0.05;
colorText[] = {0.543,0.5742,0.4102,1.0};
};
};
};
#include "Scripts\Extra_Rc.hpp"
#include "Scripts\snap_pro\snappoints.hpp"

 

SelfBB.sqf

//------------------------------------------\\
// Clickable self bloodbag by adg \\
//  Version: 2.0 \\
// \\
//------------------------------------------\\
 
private ["_started","_finished","_animState","_isMedic","_num_removed","_lastUsed","_infectionChance","_disallowinVehicle","_bloodAmount","_useTime","_giveHumanity","_humanityAmount","_hospitalDistance","_ambulanceDistance","_hospitalEnable","_ambulanceEnable","_anywhereEnable"];
disableserialization;
 
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
// CONFIG START \\
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
_useTime = 180; //Time in seconds before being able to use again.
_bloodAmount = 4000; //Amount of blood the bloodbag gives to player (gets multiplied in hosp/ambulance, so 4000 = 8000 in hospital and 6000 near ambulance)
_infectionChance = 30; //Chance of getting infected while using the bloodbag (0 = disabled, 40 = 40%, 100 = 100% etc)
_disallowinVehicle = true; //Do not allow usage in a vehicle. true = cannot use, false = can use in vehicle
 
_giveHumanity = false; //Give players humanity for self bloodbag. true = give humanity, false = do not give
_humanityAmount = 50; //Amount of humanity to give, if _giveHumanity = true
 
_hospitalDistance = 21; //Max distance within Hospital
_ambulanceDistance = 5; // Max. distance from ambulance (medical hmmwv, medical vodnik or medic van)
_hospitalEnable = 1; // 1 enables SelfBloodbag in hospitals (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near hospital)
_ambulanceEnable = 1; // 1 enables SelfBloodbag near ambulances (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near med vehicles)
_anywhereEnable = 0; // 1 enables SelfBloodBag anywhere (turns automatically on if _hospitalEnable = 0 and _ambulanceEnable = 0;)
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
// CONFIG END \\
// Do not change below unless you know what you are doing!!! \\
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
 
if (dayz_combat == 1) exitwith { cutText [format["You are in combat and cannot perform that action!"], "PLAIN DOWN"]};
if (_disallowinVehicle && vehicle player != player) exitWith {cutText [format["You cannot use the bloodbag in a vehicle!"], "PLAIN DOWN"]};
if (r_player_blood == r_player_bloodTotal) exitwith {cutText ["You are not injured!","PLAIN DOWN"]};
 
private ["_nearHospital","_bloodMultiplier","_infectionMultiplier","_decke","_hospitalFound","_ambulanceFound","_display"];
_nearHospital = false;
_bloodMultiplier = 1; // Blood amount multiplier (Anywhere 1, Hospital 2, Ambulance 1.5, The Multiplier for Ambulance and Hospital get set later)
_infectionMultiplier = 1; // Multiplier for infectionchance. Anywhere 1, Hospital 0.5, Ambulance 0.75 (the formula is _infenctionChance * _infectionMultiplier so lower multiplier = lower chance)
if (_hospitalEnable == 0 && _ambulanceEnable == 0) then { // Check if _hospitalEnable & _ambulanceEnable disabled
    _anywhereEnable = 1;
};
if (_anywhereEnable == 1) then {
    _nearHospital = true;
}; 
if (_hospitalEnable == 1)  then { // if Hospital enabled
    _playerASL1 = getPosASL player;
    _playerASLx = _playerASL1  select 0;
    _playerASLy = _playerASL1  select 1;
    _playerASLz = _playerASL1  select 2;
    _playerASLz2 = _playerASLz + 40;
    _playerASL2 = [_playerASLx,_playerASLy,_playerASLz2];
    _decke = lineIntersects[_playerASL1,_playerASL2];
    _hospitalFound = count nearestObjects[player,["Land_A_Hospital"],_hospitalDistance]; //can add desired buildings here
    if (_hospitalFound > 0 && _decke) then {
        _nearHospital = true;
        _bloodMultiplier = 2; // multiplier to Bloodamount
        _infectionMultiplier = 0.5; //multiplier to Infectionchance
    };
}; 
if (_ambulanceEnable == 1)  then {
    _ambulanceFound = count nearestObjects[player,["GAZ_Vodnik_MedEvac","HMMWV_Ambulance","S1203_ambulance_EP1"],_ambulanceDistance]; //can add desired vehicles here
    if (_ambulanceFound > 0 ) then {
        _nearHospital = true;
        _bloodMultiplier = 1.5; // multiplier to Bloodamount
_infectionMultiplier = 0.75; //multiplier to Infectionchance
    }; 
};
_bloodAmount = _bloodAmount * _bloodMultiplier; // Calculate bloodamount & Infectionchance with the multiplier
_infectionChance = _infectionChance * _infectionMultiplier;
 
if(!_nearHospital) exitWith { // Abort messegas if Conditions not met
    if (_hospitalEnable == 1 && _ambulanceEnable == 0) then {
        cutText [format["You need to be inside a hospital to do this!"], "PLAIN DOWN"];
    };
    if (_hospitalEnable == 0 && _ambulanceEnable == 1) then {
        cutText [format["You need to be near a medical vehicle to do this!"], "PLAIN DOWN"];
    };
    if (_hospitalEnable == 1 && _ambulanceEnable == 1) then {
        cutText [format["You need to be inside a hospital or near a medical vehicle to do this!"], "PLAIN DOWN"];
    };
};
 
if (isNil 'lastUsed') then {lastUsed = time};
if (time - lastUsed < _useTime && time - lastUsed != 0) exitwith {cutText [format["Not so fast! You can use bloodbag again in %1 seconds",(ceil(_useTime - (time - lastUsed)))],"PLAIN DOWN"]};
 
call fnc_usec_medic_removeActions;
r_action = false;
[1,1] call dayz_HungerThirst;
if (vehicle player == player) then {
//not in a vehicle
player playActionNow "Medic";
};
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
if (vehicle player != player) then {
sleep 3;
r_doLoop = false;
_finished = true;
};
sleep 0.1;
};
r_doLoop = false;
 
if (_finished) then {
_num_removed = ([player,"ItemBloodbag"] call BIS_fnc_invRemove);
if(_num_removed == 1) then {
lastUsed = time;
if (vehicle player != player) then {
_display = findDisplay 106;
_display closeDisplay 0;
};
r_player_lowblood = false;
r_player_blood = r_player_blood + _bloodAmount; //set players LOCAL blood to a certain ammount
 
if(r_player_blood > r_player_bloodTotal) then {
r_player_blood = r_player_bloodTotal; // If players blood is greater then max amount allowed set it to max allowed (this check keeps an error at bay)
};
player setVariable["USEC_BloodQty",r_player_blood,true]; //save this blood ammount to the database
//Restore player sound + vision
10 fadeSound 1;
"dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5;
"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1],  [1, 1, 1, 1]];"colorCorrections" ppEffectCommit 5;
 
if (floor(random(100)+1) <= _infectionChance) then { //Infection chance
r_player_infected = true; //set client to show infection
player setVariable["USEC_infected",true,true]; //tell server that player is infected
cutText [format["You gave yourself blood, but got infected in the process!"], "PLAIN DOWN"]; //display text at bottom center of screen if infected
} else {
cutText [format["You successfully gave yourself some blood!"], "PLAIN DOWN"];
}; 
if(_giveHumanity) then { //humanity check
[player,_humanityAmount] call player_humanityChange;
};
};
} else {
r_interrupt = false;
player switchMove "";
player playActionNow "stop";
cutText [format["Giving yourself blood was interrupted!"], "PLAIN DOWN"];
};

 

Also My server gives me these error codes in the console when i load in, dont know what it means but it wasn't doing it before this script.. and it does it about 8 times per second.

12:44:50 Message not sent - error 0, message ID = ffffffff, to 322266401 (MooTactics #SiN)
12:44:50 NetServer: trying to send too large non-guaranteed message (3107 bytes long, max 1348 allowed)
12:44:50 Message not sent - error 0, message ID = ffffffff, to 322266401 (MooTactics #SiN)
12:44:50 NetServer: trying to send too large non-guaranteed message (3107 bytes long, max 1348 allowed)
12:44:50 Message not sent - error 0, message ID = ffffffff, to 322266401 (MooTactics #SiN)
12:44:50 NetServer: trying to send too large non-guaranteed message (3166 bytes long, max 1348 allowed)
12:44:50 Message not sent - error 0, message ID = ffffffff, to 322266401 (MooTactics #SiN)
12:44:50 NetServer: trying to send too large non-guaranteed message (3166 bytes long, max 1348 allowed)
12:44:50 Message not sent - error 0, message ID = ffffffff, to 322266401 (MooTactics #SiN)
12:44:50 NetServer: trying to send too large non-guaranteed message (3166 bytes long, max 1348 allowed)
12:44:50 Message not sent - error 0, message ID = ffffffff, to 322266401 (MooTactics #SiN)
12:44:50 NetServer: trying to send too large non-guaranteed message (3166 bytes long, max 1348 allowed)
12:44:50 Message not sent - error 0, message ID = ffffffff, to 322266401 (MooTactics #SiN)

Link to comment
Share on other sites

I stopped using this because players were reporting when the first login they can't use a bloodbag because of the time wait for continuous uses and as i had my time set to like 30 mins or so to stop rehealing constantly it was a pain for the players who wanted to heal up first time after joining

Link to comment
Share on other sites

  • 2 months later...

Hi,

 

I still get the message that you must be in a hospital to use the bloodbag, my script looks like this

 

//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
// CONFIG START \\
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
_useTime = 50; //Time in seconds before being able to use again.
_bloodAmount = 4000; //Amount of blood the bloodbag gives to player (gets multiplied in hosp/ambulance, so 4000 = 8000 in hospital and 6000 near ambulance)
_infectionChance = 30; //Chance of getting infected while using the bloodbag (0 = disabled, 40 = 40%, 100 = 100% etc)
_disallowinVehicle = true; //Do not allow usage in a vehicle. true = cannot use, false = can use in vehicle
 
_giveHumanity = false; //Give players humanity for self bloodbag. true = give humanity, false = do not give
_humanityAmount = 50; //Amount of humanity to give, if _giveHumanity = true
 
_hospitalDistance = 21; //Max distance within Hospital
_ambulanceDistance = 5; // Max. distance from ambulance (medical hmmwv, medical vodnik or medic van)
_hospitalEnable = 1; // 1 enables SelfBloodbag in hospitals (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near hospital)
_ambulanceEnable = 1; // 1 enables SelfBloodbag near ambulances (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near med vehicles)
_anywhereEnable = 1; // 1 enables SelfBloodBag anywhere (turns automatically on if _hospitalEnable = 0 and _ambulanceEnable = 0;)
 
 
I also tried setting it as
 
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
// CONFIG START \\
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
_useTime = 50; //Time in seconds before being able to use again.
_bloodAmount = 4000; //Amount of blood the bloodbag gives to player (gets multiplied in hosp/ambulance, so 4000 = 8000 in hospital and 6000 near ambulance)
_infectionChance = 30; //Chance of getting infected while using the bloodbag (0 = disabled, 40 = 40%, 100 = 100% etc)
_disallowinVehicle = true; //Do not allow usage in a vehicle. true = cannot use, false = can use in vehicle
 
_giveHumanity = false; //Give players humanity for self bloodbag. true = give humanity, false = do not give
_humanityAmount = 50; //Amount of humanity to give, if _giveHumanity = true
 
_hospitalDistance = 21; //Max distance within Hospital
_ambulanceDistance = 5; // Max. distance from ambulance (medical hmmwv, medical vodnik or medic van)
_hospitalEnable = 0; // 1 enables SelfBloodbag in hospitals (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near hospital)
_ambulanceEnable = 0; // 1 enables SelfBloodbag near ambulances (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near med vehicles)
_anywhereEnable = 1; // 1 enables SelfBloodBag anywhere (turns automatically on if _hospitalEnable = 0 and _ambulanceEnable = 0;)
 
Any ideas? What if I change my distance to something really high like 10000. That will probably be silly to do, I don't know really what to do
 
Thanks
Dave
 

 

Link to comment
Share on other sites

 

Hi,

 

I still get the message that you must be in a hospital to use the bloodbag, my script looks like this

 

//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
// CONFIG START \\
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
_useTime = 50; //Time in seconds before being able to use again.
_bloodAmount = 4000; //Amount of blood the bloodbag gives to player (gets multiplied in hosp/ambulance, so 4000 = 8000 in hospital and 6000 near ambulance)
_infectionChance = 30; //Chance of getting infected while using the bloodbag (0 = disabled, 40 = 40%, 100 = 100% etc)
_disallowinVehicle = true; //Do not allow usage in a vehicle. true = cannot use, false = can use in vehicle
 
_giveHumanity = false; //Give players humanity for self bloodbag. true = give humanity, false = do not give
_humanityAmount = 50; //Amount of humanity to give, if _giveHumanity = true
 
_hospitalDistance = 21; //Max distance within Hospital
_ambulanceDistance = 5; // Max. distance from ambulance (medical hmmwv, medical vodnik or medic van)
_hospitalEnable = 1; // 1 enables SelfBloodbag in hospitals (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near hospital)
_ambulanceEnable = 1; // 1 enables SelfBloodbag near ambulances (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near med vehicles)
_anywhereEnable = 1; // 1 enables SelfBloodBag anywhere (turns automatically on if _hospitalEnable = 0 and _ambulanceEnable = 0;)
 
 
I also tried setting it as
 
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
// CONFIG START \\
//------------------------------------------------------------------------------------------------------------------------------------------------------------------\\
_useTime = 50; //Time in seconds before being able to use again.
_bloodAmount = 4000; //Amount of blood the bloodbag gives to player (gets multiplied in hosp/ambulance, so 4000 = 8000 in hospital and 6000 near ambulance)
_infectionChance = 30; //Chance of getting infected while using the bloodbag (0 = disabled, 40 = 40%, 100 = 100% etc)
_disallowinVehicle = true; //Do not allow usage in a vehicle. true = cannot use, false = can use in vehicle
 
_giveHumanity = false; //Give players humanity for self bloodbag. true = give humanity, false = do not give
_humanityAmount = 50; //Amount of humanity to give, if _giveHumanity = true
 
_hospitalDistance = 21; //Max distance within Hospital
_ambulanceDistance = 5; // Max. distance from ambulance (medical hmmwv, medical vodnik or medic van)
_hospitalEnable = 0; // 1 enables SelfBloodbag in hospitals (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near hospital)
_ambulanceEnable = 0; // 1 enables SelfBloodbag near ambulances (leave as 1 if you have _anywhereEnable = 1; and want to get bonuses near med vehicles)
_anywhereEnable = 1; // 1 enables SelfBloodBag anywhere (turns automatically on if _hospitalEnable = 0 and _ambulanceEnable = 0;)
 

Any ideas? What if I change my distance to something really high like 10000. That will probably be silly to do, I don't know really what to do
 
Thanks
Dave
 

 

 

Hi, if you are running Epoch version 1.0.5+, you can turn your script off now as self bloodbag was integrated in vanilla epoch.

 

All you need to do is add these lines below to your mission init.sqf in the section that starts with // DayZ Epoch config:

// DayZ Epoch config
DZE_SelfTransfuse = true;
DZE_selfTransfuse_Values = [4000, 20, 180];

You can then adjust the values to what you want. 4000 is the amount of blood received from the bloodbag, 20 is the % chance of infection and 180 is the cooldown time in seconds before a player can self BB again.

 

Hope this helps :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...