Short description :
The Problem
I want that drinking give's blood
I scripted it but it dosen't work
This is the drinking function
player_drink.sqf (drink works, giving blood dosen't work)
private["_hasFood","_item","_text","_key","_config","_sfx"];
disableserialization;
call gear_ui_init;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
if (_onLadder) exitWith {cutText [(localize "str_player_21") , "PLAIN DOWN"]};
if (vehicle player != player) exitWith {cutText ["You may not drink while in a vehicle", "PLAIN DOWN"]};
_item = _this;
_hasdrinkitem = _this in magazines player;
_config = configFile >> "CfgMagazines" >> _item;
_text = getText (_config >> "displayName");
_sfx = getText (_config >> "sfx");
_regen = getNumber (_config >> "bloodRegen");
if (!_hasdrinkitem) exitWith {cutText [format[(localize "str_player_31"),_text,"drink"] , "PLAIN DOWN"]};
player playActionNow "PutDown";
player removeMagazine _item;
sleep 1;
[player,_sfx,0,false] call dayz_zombieSpeak;
r_player_blood = r_player_blood + _regen;
if (r_player_blood > r_player_bloodTotal) then {
r_player_blood = r_player_bloodTotal;
};
if (_item == "ItemWaterbottle") then {
player addMagazine "ItemWaterbottleUnfilled";
};
player setVariable ["messing",[dayz_hunger,dayz_thirst],true];
player setVariable["USEC_BloodQty",r_player_blood,true];
/*
_update = player getVariable["updatePlayer",[false,false,false,false,false]];
_update set [4,true];
player setVariable["updatePlayer",_update,true];
*/
_id = [player,20,true,(getPosATL player)] spawn player_alertZombies;
dayz_lastDrink = time;
dayz_thirst = 0;
//Ensure Control is visible
_display = uiNamespace getVariable 'DAYZ_GUI_display';
_control = _display displayCtrl 1302;
_control ctrlShow true;
_bloodVal = r_player_blood / r_player_bloodTotal;
if (_bloodVal >= 0.2) then {
_ctrlBlood ctrlShow true;
};
cutText [format[(localize "str_player_consumed"),_text], "PLAIN DOWN"];
The Class :
config.cpp
class CfgMagazines {
class CA_Magazine; // External class reference
class FoodDrink : CA_Magazine
{
isWater = 1;
count = 1;
type = 256;
bloodRegen = 200;
class ItemActions
{
class Drink
{
text = "$STR_inet_drink";
script = "spawn player_eat;";
}; // class Drink
}; // class ItemActions
}; // class FoodDrink
class ItemSodaMdew : FoodDrink
{
scope = 2;
sfx = "soda";
displayName = "$STR_EQUIP_NAME_37";
model = "\dayz_equip\models\soda_mdew.p3d";
picture = "\dayz_equip\textures\equip_soda_mdew_ca.paa";
descriptionShort = "$STR_EQUIP_NAME_37";
bloodRegen = 6000;
}; // class ItemSodaMdew
};
compiles.sqf
player_drink = compile preprocessFileLineNumbers "\z\addons\inet_main\actions\player_drink.sqf";
my prefix is set to z\addons\inet_main
(Random question how does the init\compiles.sqf get executed ? Automatic like the config.cpp ?)