I use self blood bag script. It can use. But i can't building.
fn_selfActions.sqf
scriptName "Functions\misc\fn_selfActions.sqf";/***********************************************************
ADD ACTIONS FOR SELF
- Function
- [] call fnc_usec_selfActions;
************************************************************/private["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE"];if(TradeInprogress) exitWith {};// Do not allow if any script is running.
_vehicle = vehicle player;
_isPZombie = player isKindOf "PZombie_VB";
_inVehicle =(_vehicle != player);
_onLadder =(getNumber (configFile >>"CfgMovesMaleSdr">>"States">>(animationState player)>>"onLadder"))==1;
_canDo =(!r_drag_sqf and!r_player_unconscious and!_onLadder);// ---------------------------------------Krixes Self Bloodbag Start------------------------------------
_mags = magazines player;// Krixes Self Bloodbagif("ItemBloodbag"in _mags)then{
hasBagItem =true;}else{ hasBagItem =false;};if((speed player <=1)&& hasBagItem && _canDo)then{if(s_player_selfBloodbag <0)then{
s_player_selfBloodbag = player addaction[("<t color=""#c70000"">"+("Self Bloodbag")+"</t>"),"custom\player_selfbloodbag.sqf","",5,false,true,"",""];};}else{
player removeAction s_player_selfBloodbag;
s_player_selfBloodbag =-1;};// ---------------------------------------Krixes Self Bloodbag End------------------------------------
_nearLight = nearestObject [player,"LitObject"];
_canPickLight =false;if(!isNull _nearLight)then{if(_nearLight distance player <4)then{
_canPickLight = isNull (_nearLight getVariable ["owner",objNull]);};};//Grab Flareif(_canPickLight and!dayz_hasLight and!_isPZombie)then{if(s_player_grabflare <0)then{
_text = getText (configFile >>"CfgAmmo">>(typeOf _nearLight)>>"displayName");
s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text],"\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight,1,false,true,"",""];
s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text],"\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight,1,false,true,"",""];};}else{
player removeAction s_player_grabflare;
player removeAction s_player_removeflare;
s_player_grabflare =-1;
s_player_removeflare =-1;};if(_isPZombie)then{if(s_player_callzombies <0)then{
s_player_callzombies = player addAction ["Raise Horde","\z\addons\dayz_code\actions\call_zombies.sqf",player,5,true,false,"",""];};if(s_player_pzombiesattack <0)then{
s_player_pzombiesattack = player addAction ["Attack","\z\addons\dayz_code\actions\pzombie\pz_attack.sqf",cursorTarget,6,true,false,"",""];};if(s_player_pzombiesvision <0)then{
s_player_pzombiesvision = player addAction ["Night Vision","\z\addons\dayz_code\actions\pzombie\pz_vision.sqf",[],4,false,true,"nightVision","_this == _target"];};if(!isNull cursorTarget and(player distance cursorTarget <3))then{//Has some kind of target
_isAnimal = cursorTarget isKindOf "Animal";
_isZombie = cursorTarget isKindOf "zZombie_base";
_isHarvested = cursorTarget getVariable["meatHarvested",false];
_isMan = cursorTarget isKindOf "Man";// Pzombie Gut human corpse or animalif(!alive cursorTarget and(_isAnimal or _isMan)and!_isZombie and!_isHarvested)then{if(s_player_pzombiesfeed <0)then{
s_player_pzombiesfeed = player addAction ["Feed","\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget,3,true,false,"",""];};}else{
player removeAction s_player_pzombiesfeed;
s_player_pzombiesfeed =-1;};}else{
player removeAction s_player_pzombiesfeed;
s_player_pzombiesfeed =-1;};};// Increase distance only if AIR OR SHIP
_allowedDistance =4;
_isAir = cursorTarget isKindOf "Air";
_isShip = cursorTarget isKindOf "Ship";if(_isAir or _isShip)then{
_allowedDistance =6;};if(!isNull cursorTarget and!_inVehicle and!_isPZombie and(player distance cursorTarget < _allowedDistance)and _canDo)then{//Has some kind of target// set cursortarget to variable
_cursorTarget = cursorTarget;// get typeof cursortarget once
_typeOfCursorTarget = typeOf _cursorTarget;// hintsilent _typeOfCursorTarget;
_isVehicle = _cursorTarget isKindOf "AllVehicles";
_isVehicletype = _typeOfCursorTarget in["ATV_US_EP1","ATV_CZ_EP1"];
_isnewstorage = _typeOfCursorTarget in DZE_isNewStorage;// get items and magazines only once
_magazinesPlayer = magazines player;//boiled Water
_hasbottleitem ="ItemWaterbottle"in _magazinesPlayer;
_hastinitem =false;{if(_x in _magazinesPlayer)then{
_hastinitem =true;};} forEach boil_tin_cans;
_hasFuelE ="ItemJerrycanEmpty"in _magazinesPlayer;
_hasFuelBarrelE ="ItemFuelBarrelEmpty"in _magazinesPlayer;
_itemsPlayer = items player;
_temp_keys =[];// find available keys
_key_colors =["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"];{if(configName(inheritsFrom(configFile >>"CfgWeapons">> _x))in _key_colors)then{
_ownerKeyId = getNumber(configFile >>"CfgWeapons">> _x >>"keyid");
_temp_keys set[count _temp_keys,str(_ownerKeyId)];};} forEach _itemsPlayer;
_hasKnife ="ItemKnife"in _itemsPlayer;
_hasToolbox ="ItemToolbox"in _itemsPlayer;
_isMan = _cursorTarget isKindOf "Man";
_traderType = _typeOfCursorTarget;
_ownerID = _cursorTarget getVariable ["CharacterID","0"];
_isAnimal = _cursorTarget isKindOf "Animal";
_isDog =(_cursorTarget isKindOf "DZ_Pastor"|| _cursorTarget isKindOf "DZ_Fin");
_isZombie = _cursorTarget isKindOf "zZombie_base";
_isDestructable = _cursorTarget isKindOf "BuiltItems";
_isWreck = _typeOfCursorTarget in DZE_isWreck;
_isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding;
_isRemovable = _typeOfCursorTarget in DZE_isRemovable;
_isDisallowRepair = _typeOfCursorTarget in["M240Nest_DZ"];
_isTent = _cursorTarget isKindOf "TentStorage";
_isAlive = alive _cursorTarget;
_text = getText (configFile >>"CfgVehicles">> _typeOfCursorTarget >>"displayName");
_rawmeat = meatraw;
_hasRawMeat =false;{if(_x in _magazinesPlayer)then{
_hasRawMeat =true;};} forEach _rawmeat;
_isFuel =false;if(_hasFuelE or _hasFuelBarrelE)then{{if(_cursorTarget isKindOf _x) exitWith {_isFuel =true;};} forEach dayz_fuelsources;};// diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID));// logic vars
_player_flipveh =false;
_player_deleteBuild =false;
_player_lockUnlock_crtl =false;// CURSOR TARGET ALIVEif(_isAlive)then{//Allow player to delete objectsif(_isDestructable or _isWreck or _isRemovable or _isWreckBuilding)then{if(_hasToolbox and"ItemCrowbar"in _itemsPlayer)then{
_player_deleteBuild =true;};};// CURSOR TARGET VEHICLEif(_isVehicle)then{//flip vehicle small vehicles by your self and all other vehicles with help nearbyif(!(canmove _cursorTarget)and(player distance _cursorTarget >=2)and(count (crew _cursorTarget))==0and((vectorUp _cursorTarget)select2)<0.5)then{
_playersNear ={isPlayer _x} count (player nearEntities ["CAManBase",6]);if(_isVehicletype or(_playersNear >=2))then{
_player_flipveh =true;};};if(!_isMan and _ownerID !="0")then{
_player_lockUnlock_crtl =true;};};};if(_player_deleteBuild)then{if(s_player_deleteBuild <0)then{
s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text],"\z\addons\dayz_code\actions\remove.sqf",_cursorTarget,1,true,true,"",""];};}else{
player removeAction s_player_deleteBuild;
s_player_deleteBuild =-1;};// Allow Owner to lock and unlock vehicle if(_player_lockUnlock_crtl)then{if(s_player_lockUnlock_crtl <0)then{
_hasKey = _ownerID in _temp_keys;
_oldOwner =(_ownerID == dayz_playerUID);if(locked _cursorTarget)then{if(_hasKey or _oldOwner)then{_Unlock= player addAction [format["Unlock %1",_text],"\z\addons\dayz_code\actions\unlock_veh.sqf",_cursorTarget,2,true,true,"",""];
s_player_lockunlock set[count s_player_lockunlock,_Unlock];
s_player_lockUnlock_crtl =1;}else{_Unlock= player addAction ["<t color='#ff0000'>Vehicle Locked</t>","",_cursorTarget,2,true,true,"",""];
s_player_lockunlock set[count s_player_lockunlock,_Unlock];
s_player_lockUnlock_crtl =1;};}else{if(_hasKey or _oldOwner)then{
_lock = player addAction [format["Lock %1",_text],"\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget,1,true,true,"",""];
s_player_lockunlock set[count s_player_lockunlock,_lock];
s_player_lockUnlock_crtl =1;};};};}else{{player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock =[];
s_player_lockUnlock_crtl =-1;};if(DZE_AllowForceSave)then{//Allow player to force saveif((_isVehicle or _isTent)and!_isMan)then{if(s_player_forceSave <0)then{
s_player_forceSave = player addAction [format[localize "str_actions_save",_text],"\z\addons\dayz_code\actions\forcesave.sqf",_cursorTarget,1,true,true,"",""];};}else{
player removeAction s_player_forceSave;
s_player_forceSave =-1;};};If(DZE_AllowCargoCheck)then{if((_isVehicle or _isTent or _isnewstorage)and _isAlive and!_isMan)then{if(s_player_checkGear <0)then{
s_player_checkGear = player addAction ["Cargo Check","\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget,1,true,true,"",""];};}else{
player removeAction s_player_checkGear;
s_player_checkGear =-1;};};//flip vehicle small vehicles by your self and all other vehicles with help nearbyif(_player_flipveh)then{if(s_player_flipveh <0)then{
s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text],"\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget,1,true,true,"",""];};}else{
player removeAction s_player_flipveh;
s_player_flipveh =-1;};//Allow player to fill jerrycanif((_hasFuelE or _hasFuelBarrelE)and _isFuel)then{if(s_player_fillfuel <0)then{
s_player_fillfuel = player addAction [localize "str_actions_self_10","\z\addons\dayz_code\actions\jerry_fill.sqf",[],1,false,true,"",""];};}else{
player removeAction s_player_fillfuel;
s_player_fillfuel =-1;};// logic vars for addactions
_player_butcher =false;
_player_studybody =false;// CURSOR TARGET NOT ALIVEif(!_isAlive)then{// Gut animal/zedif((_isAnimal or _isZombie)and _hasKnife)then{
_isHarvested = _cursorTarget getVariable["meatHarvested",false];if(!_isHarvested)then{
_player_butcher =true;};};// Study bodyif(_isMan and!_isZombie)then{
_player_studybody =true;}};// Human Gut animal or zombieif(_player_butcher)then{if(s_player_butcher <0)then{if(_isZombie)then{
s_player_butcher = player addAction ["Gut Zombie","\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget,3,true,true,"",""];}else{
s_player_butcher = player addAction [localize "str_actions_self_04","\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget,3,true,true,"",""];};};}else{
player removeAction s_player_butcher;
s_player_butcher =-1;};// Study Bodyif(_player_studybody)then{if(s_player_studybody <0)then{
s_player_studybody = player addAction [localize "str_action_studybody","custom\study_body.sqf",_cursorTarget,0,false,true,"",""];};}else{
player removeAction s_player_studybody;
s_player_studybody =-1;};if(_isMan and!_isAlive and!_isZombie and!_isAnimal)then{if(s_clothes <0)then{
s_clothes = player addAction [("<t color=""#FF0000"">"+("Take Skin")+"</t>"),"custom\clothes.sqf",cursorTarget,1,false,true,"",""];};}else{
player removeAction s_clothes;
s_clothes =-1;};// logic vars
_player_cook =false;
_player_boil =false;// CURSOR TARGET IS FIREif(inflamed _cursorTarget)then{//Fireplace Actions checkif(_hasRawMeat)then{
_player_cook =true;};// Boil waterif(_hasbottleitem and _hastinitem)then{
_player_boil =true;};};//Fireplace Actions checkif(_player_cook)then{if(s_player_cook <0)then{
s_player_cook = player addAction [localize "str_actions_self_05","\z\addons\dayz_code\actions\cook.sqf",_cursorTarget,3,true,true,"",""];};}else{
player removeAction s_player_cook;
s_player_cook =-1;};// Boil waterif(_player_boil)then{if(s_player_boil <0)then{
s_player_boil = player addAction [localize "str_actions_boilwater","\z\addons\dayz_code\actions\boil.sqf",_cursorTarget,3,true,true,"",""];};}else{
player removeAction s_player_boil;
s_player_boil =-1;};if(_cursorTarget == dayz_hasFire)then{if((s_player_fireout <0)and!(inflamed _cursorTarget)and(player distance _cursorTarget <3))then{
s_player_fireout = player addAction [localize "str_actions_self_06","\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget,0,false,true,"",""];};}else{
player removeAction s_player_fireout;
s_player_fireout =-1;};//Packing my tentif(_isTent and _ownerID == dayz_characterID)then{if((s_player_packtent <0)and(player distance _cursorTarget <3))then{
s_player_packtent = player addAction [localize "str_actions_self_07","\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget,0,false,true,"",""];};}else{
player removeAction s_player_packtent;
s_player_packtent =-1;};//Allow owner to unlock vaultif((_typeOfCursorTarget in DZE_LockableStorage)and _ownerID !="0"and(player distance _cursorTarget <3))then{if(s_player_unlockvault <0)then{if(_typeOfCursorTarget in DZE_LockedStorage)then{if(_ownerID == dayz_combination or _ownerID == dayz_playerUID)then{
_combi = player addAction [format["Open %1",_text],"\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget,0,false,true,"",""];}else{
_combi = player addAction [format["Unlock %1",_text],"\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget,0,false,true,"",""];};
s_player_combi set[count s_player_combi,_combi];
s_player_unlockvault =1;}else{if(_ownerID != dayz_combination and _ownerID != dayz_playerUID)then{
_combi = player addAction ["Re-Enter Combination","\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget,0,false,true,"",""];
s_player_combi set[count s_player_combi,_combi];
s_player_unlockvault =1;};};};}else{{player removeAction _x} forEach s_player_combi;s_player_combi =[];
s_player_unlockvault =-1;};//Allow owner to pack vaultif(_typeOfCursorTarget in DZE_UnLockedStorage and _ownerID !="0"and(player distance _cursorTarget <3))then{if(s_player_lockvault <0)then{if(_ownerID == dayz_combination or _ownerID == dayz_playerUID)then{
s_player_lockvault = player addAction [format["Lock %1",_text],"\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget,0,false,true,"",""];};};if(s_player_packvault <0and(_ownerID == dayz_combination or _ownerID == dayz_playerUID))then{
s_player_packvault = player addAction [format["<t color='#ff0000'>Pack %1</t>",_text],"\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget,0,false,true,"",""];};}else{
player removeAction s_player_packvault;
s_player_packvault =-1;
player removeAction s_player_lockvault;
s_player_lockvault =-1;};//Player Deathsif(_typeOfCursorTarget =="Info_Board_EP1")then{if(s_player_information <0)then{
s_player_information = player addAction ["Recent Murders","\z\addons\dayz_code\actions\list_playerDeaths.sqf",[],0,false,true,"",""];};}else{
player removeAction s_player_information;
s_player_information =-1;};//Fuel Pumpif(_typeOfCursorTarget in dayz_fuelpumparray)then{if(s_player_fuelauto <0)then{// check if Generator_DZ is running within 30 meters
_findNearestGens = nearestObjects [player,["Generator_DZ"],30];
_findNearestGen =[];{if(alive _x and(_x getVariable ["GeneratorRunning",false]))then{
_findNearestGen set[(count _findNearestGen),_x];};}foreach _findNearestGens;_IsNearRunningGen= count (_findNearestGen);// show that pump needs power if no generator nearby.if(_IsNearRunningGen>0)then{
s_player_fuelauto = player addAction ["Fill Vehicle","\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull,0,false,true,"",""];}else{
s_player_fuelauto = player addAction ["<t color='#ff0000'>Needs Power</t>","",[],0,false,true,"",""];};};}else{
player removeAction s_player_fuelauto;
s_player_fuelauto =-1;};//Fuel Pump on truckif(_typeOfCursorTarget in DZE_fueltruckarray and alive _cursorTarget)then{if(s_player_fuelauto2 <0)then{// show that fuel truck pump needs power.if(isEngineOn _cursorTarget)then{
s_player_fuelauto2 = player addAction ["Fill Vehicle","\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget,0,false,true,"",""];}else{
s_player_fuelauto2 = player addAction ["<t color='#ff0000'>Needs Power</t>","",[],0,false,true,"",""];};};}else{
player removeAction s_player_fuelauto2;
s_player_fuelauto2 =-1;};if((_cursorTarget isKindOf "ModularItems")or(_cursorTarget isKindOf "Land_DZE_WoodDoor_Base")or(_cursorTarget isKindOf "CinderWallDoor_DZ_Base"))then{if((s_player_lastTarget select0)!= _cursorTarget)then{if(s_player_upgrade_build >0)then{
player removeAction s_player_upgrade_build;
s_player_upgrade_build =-1;};};if(s_player_upgrade_build <0)then{// s_player_lastTarget = _cursorTarget;
s_player_lastTarget set[0,_cursorTarget];
s_player_upgrade_build = player addAction [format["Upgrade %1",_text],"\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget,-1,false,true,"",""];};}else{
player removeAction s_player_upgrade_build;
s_player_upgrade_build =-1;};// inplace maintenance toolif((_isDestructable or _cursorTarget isKindOf "ModularItems"or _cursorTarget isKindOf "DZE_Housebase"))then{if((s_player_lastTarget select1)!= _cursorTarget)then{if(s_player_maint_build >0)then{
player removeAction s_player_maint_build;
s_player_maint_build =-1;};};if(s_player_maint_build <0)then{
s_player_lastTarget set[1,_cursorTarget];
s_player_maint_build = player addAction [format["Maintain %1",_text],"\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget,-2,false,true,"",""];};}else{
player removeAction s_player_maint_build;
s_player_maint_build =-1;};//Start Generatorif(_cursorTarget isKindOf "Generator_DZ")then{if(s_player_fillgen <0)then{// check if not running if((_cursorTarget getVariable ["GeneratorRunning",false]))then{
s_player_fillgen = player addAction ["Stop Generator","\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget,0,false,true,"",""];}else{// check if not filled and player has jerry.if((_cursorTarget getVariable ["GeneratorFilled",false]))then{
s_player_fillgen = player addAction ["Start Generator","\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget,0,false,true,"",""];}else{if("ItemJerrycan"in _magazinesPlayer)then{
s_player_fillgen = player addAction ["Fill and Start Generator","\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget,0,false,true,"",""];};};};};}else{
player removeAction s_player_fillgen;
s_player_fillgen =-1;};//Towing with tow truckif(_typeOfCursorTarget =="VIL_asistvan_DZE")then{if(s_player_towing <0)then{if(!(_cursorTarget getVariable ["DZEinTow",false]))then{
s_player_towing = player addAction ["Attach Straps","\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget,0,false,true,"",""];}else{
s_player_towing = player addAction ["Detach Straps","\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget,0,false,true,"",""];};};}else{
player removeAction s_player_towing;
s_player_towing =-1;};//Sleepif(_isTent and _ownerID == dayz_characterID)then{if((s_player_sleep <0)and(player distance _cursorTarget <3))then{
s_player_sleep = player addAction [localize "str_actions_self_sleep","custom\player_sleep.sqf",_cursorTarget,0,false,true,"",""];};}else{
player removeAction s_player_sleep;
s_player_sleep =-1;};//Repairing Vehiclesif((dayz_myCursorTarget != _cursorTarget)and _isVehicle and!_isMan and _hasToolbox and(damage _cursorTarget <1)and!_isDisallowRepair)then{if(s_player_repair_crtl <0)then{
dayz_myCursorTarget = _cursorTarget;
_menu = dayz_myCursorTarget addAction ["Repair Vehicle","\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget,0,true,false,"",""];
_menu1 = dayz_myCursorTarget addAction ["Salvage Vehicle","\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget,0,true,false,"",""];
s_player_repairActions set[count s_player_repairActions,_menu];
s_player_repairActions set[count s_player_repairActions,_menu1];
s_player_repair_crtl =1;}else{{dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;s_player_repairActions =[];
s_player_repair_crtl =-1;};};// All Tradersif(_isMan and!_isPZombie and _traderType in serverTraders)then{if(s_player_parts_crtl <0)then{// get humanity
_humanity = player getVariable ["humanity",0];
_traderMenu = call compile format["menu_%1;",_traderType];// diag_log ("TRADER = " + str(_traderMenu));
_low_high ="low";
_humanity_logic =false;if((_traderMenu select2)=="friendly")then{
_humanity_logic =(_humanity <-5000);};if((_traderMenu select2)=="hostile")then{
_low_high ="high";
_humanity_logic =(_humanity >-5000);};if((_traderMenu select2)=="hero")then{
_humanity_logic =(_humanity <5000);};if(_humanity_logic)then{
_cancel = player addAction [format["Your humanity is too %1 this trader refuses to talk to you.",_low_high],"\z\addons\dayz_code\actions\trade_cancel.sqf",["na"],0,true,false,"",""];
s_player_parts set[count s_player_parts,_cancel];}else{// Static Menu{//diag_log format["DEBUG TRADER: %1", _x];
_buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select3),(_x select5),(_x select2),(_x select6)],"\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select0),(_x select1),(_x select2),(_x select3),(_x select4),(_x select5),(_x select6)],(_x select7),true,true,"",""];
s_player_parts set[count s_player_parts,_buy];} forEach (_traderMenu select1);// Database menu
_buy = player addAction ["Trader Menu","\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select0),99,true,false,"",""];
s_player_parts set[count s_player_parts,_buy];// Add static metals trader options under sub menu
_metals_trader = player addAction ["Trade Metals","\z\addons\dayz_code\actions\trade_metals.sqf",["na"],0,true,false,"",""];
s_player_parts set[count s_player_parts,_metals_trader];};
s_player_parts_crtl =1;};}else{{player removeAction _x} forEach s_player_parts;s_player_parts =[];
s_player_parts_crtl =-1;};if(dayz_tameDogs)then{//Dogif(_isDog and _isAlive and(_hasRawMeat)and _ownerID =="0"and player getVariable ["dogID",0]==0)then{if(s_player_tamedog <0)then{
s_player_tamedog = player addAction [localize "str_actions_tamedog","\z\addons\dayz_code\actions\tame_dog.sqf", _cursorTarget,1,false,true,"",""];};}else{
player removeAction s_player_tamedog;
s_player_tamedog =-1;};if(_isDog and _ownerID == dayz_characterID and _isAlive)then{
_dogHandle = player getVariable ["dogID",0];if(s_player_feeddog <0and _hasRawMeat)then{
s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0],0,false,true,"",""];};if(s_player_waterdog <0and"ItemWaterbottle"in _magazinesPlayer)then{
s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1],0,false,true,"",""];};if(s_player_staydog <0)then{
_lieDown = _dogHandle getFSMVariable "_actionLieDown";if(_lieDown)then{ _text ="str_actions_liedog";}else{ _text ="str_actions_sitdog";};
s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle,5,false,true,"",""];};if(s_player_trackdog <0)then{
s_player_trackdog = player addAction [localize "str_actions_trackdog","\z\addons\dayz_code\actions\dog\track.sqf", _dogHandle,4,false,true,"",""];};if(s_player_barkdog <0)then{
s_player_barkdog = player addAction [localize "str_actions_barkdog","\z\addons\dayz_code\actions\dog\speak.sqf", _cursorTarget,3,false,true,"",""];};if(s_player_warndog <0)then{
_warn = _dogHandle getFSMVariable "_watchDog";if(_warn)then{ _text ="Quiet"; _warn =false;}else{ _text ="Alert"; _warn =true;};
s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn],2,false,true,"",""];};if(s_player_followdog <0)then{
s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true],6,false,true,"",""];};}else{
player removeAction s_player_feeddog;
s_player_feeddog =-1;
player removeAction s_player_waterdog;
s_player_waterdog =-1;
player removeAction s_player_staydog;
s_player_staydog =-1;
player removeAction s_player_trackdog;
s_player_trackdog =-1;
player removeAction s_player_barkdog;
s_player_barkdog =-1;
player removeAction s_player_warndog;
s_player_warndog =-1;
player removeAction s_player_followdog;
s_player_followdog =-1;};};}else{//Engineering{dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;s_player_repairActions =[];
s_player_repair_crtl =-1;{player removeAction _x} forEach s_player_combi;s_player_combi =[];
dayz_myCursorTarget = objNull;
s_player_lastTarget =[objNull,objNull,objNull,objNull,objNull];{player removeAction _x} forEach s_player_parts;s_player_parts =[];
s_player_parts_crtl =-1;{player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock =[];
s_player_lockUnlock_crtl =-1;
player removeAction s_player_checkGear;
s_player_checkGear =-1;//Others
player removeAction s_player_forceSave;
s_player_forceSave =-1;
player removeAction s_player_flipveh;
s_player_flipveh =-1;
player removeAction s_player_sleep;
s_player_sleep =-1;
player removeAction s_player_deleteBuild;
s_player_deleteBuild =-1;
player removeAction s_player_butcher;
s_player_butcher =-1;
player removeAction s_player_cook;
s_player_cook =-1;
player removeAction s_player_boil;
s_player_boil =-1;
player removeAction s_player_fireout;
s_player_fireout =-1;
player removeAction s_player_packtent;
s_player_packtent =-1;
player removeAction s_player_fillfuel;
s_player_fillfuel =-1;
player removeAction s_player_studybody;
s_player_studybody =-1;
player removeAction s_clothes;
s_clothes =-1;//Dog
player removeAction s_player_tamedog;
s_player_tamedog =-1;
player removeAction s_player_feeddog;
s_player_feeddog =-1;
player removeAction s_player_waterdog;
s_player_waterdog =-1;
player removeAction s_player_staydog;
s_player_staydog =-1;
player removeAction s_player_trackdog;
s_player_trackdog =-1;
player removeAction s_player_barkdog;
s_player_barkdog =-1;
player removeAction s_player_warndog;
s_player_warndog =-1;
player removeAction s_player_followdog;
s_player_followdog =-1;// vault
player removeAction s_player_unlockvault;
s_player_unlockvault =-1;
player removeAction s_player_packvault;
s_player_packvault =-1;
player removeAction s_player_lockvault;
s_player_lockvault =-1;
player removeAction s_player_information;
s_player_information =-1;
player removeAction s_player_fillgen;
s_player_fillgen =-1;
player removeAction s_player_upgrade_build;
s_player_upgrade_build =-1;
player removeAction s_player_maint_build;
s_player_maint_build =-1;
player removeAction s_player_towing;
s_player_towing =-1;
player removeAction s_player_fuelauto;
s_player_fuelauto =-1;
player removeAction s_player_fuelauto2;
s_player_fuelauto2 =-1;};//Dog actions on player self
_dogHandle = player getVariable ["dogID",0];if(_dogHandle >0)then{
_dog = _dogHandle getFSMVariable "_dog";
_ownerID ="0";if(!isNull cursorTarget)then{ _ownerID = cursorTarget getVariable ["CharacterID","0"];};if(_canDo and!_inVehicle and alive _dog and _ownerID != dayz_characterID)then{if(s_player_movedog <0)then{
s_player_movedog = player addAction [localize "str_actions_movedog","\z\addons\dayz_code\actions\dog\move.sqf", player getVariable ["dogID",0],1,false,true,"",""];};if(s_player_speeddog <0)then{
_text ="Walk";
_speed =0;if(_dog getVariable ["currentSpeed",1]==0)then{ _speed =1; _text ="Run";};
s_player_speeddog = player addAction [format[localize "str_actions_speeddog", _text],"\z\addons\dayz_code\actions\dog\speed.sqf",[player getVariable ["dogID",0],_speed],0,false,true,"",""];};if(s_player_calldog <0)then{
s_player_calldog = player addAction [localize "str_actions_calldog","\z\addons\dayz_code\actions\dog\follow.sqf",[player getVariable ["dogID",0],true],2,false,true,"",""];};};}else{
player removeAction s_player_movedog;
s_player_movedog =-1;
player removeAction s_player_speeddog;
s_player_speeddog =-1;
player removeAction s_player_calldog;
s_player_calldog =-1;};
and player_selfbloodbag.sqf
//////////////////////////////////////////////////////////////////////////////////////////////// Script writen by Krixes //// Infection chance and some comments added by Player2 //// Combat check added by istealth //// //// Version 1.4 //// //// Change Log: //// 1: Added bloodbag use timer //// 2: Added a timer for the amount of time before player can use self bloodbag again ////////////////////////////////////////////////////////////////////////////////////////////////private["_bloodAmount","_humanityBool","_infectionChance","_humanityNegBool","_humanityNegAmount","_humanityAmount","_infectedLifeLost","_infectedLifeBool","_lastBloodbag","_bloodbagLastUsedTime","_bloodbagTime","_bloodbagUseTime","_bloodbagUsageTime"];////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Config Start-----------------------------------------------------------------------------------------------------------------------//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
_bloodAmount =4000;// Amount of blood to give to player
_bloodbagUseTime =30;// Amount of time it takes in second for the player to use the self bloodbag
_bloodbagLastUsedTime =60;// Amount of time in seconds before player can use self bloodbag again after a succesful use
_infectionChance =10;// Percent chance of player infection on self bloodbag (10 = 10% | 2 = 50% | 1 = 100%)
_infectedLifeBool =true;// Whether the player can loose life if infected (True = On | False = off)
_infectedLifeLost =1000;// Amount of life to loose in becomes infected
_humanityBool =false;// Whether the player can get humanity from giving self a bloodbag (True = On | False = off)
_humanityAmount =50;// Amount of humanity to give player if _humanityBool is true (250 is default for normal bloodbags)////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Config End-------------------------------------------------------------------------------------------------------------------------/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Everything below need not be modified unless you know what you are doing! /////////////////////////////////////////////////////////////////////////////////
_bloodbagTime = time - lastBloodbag;// Variable used for easy reference in determining the self bloodbag cooldown
_bloodbagUsageTime = time;if(_bloodbagTime < _bloodbagLastUsedTime) exitWith {// If cooldown is not done then exit script
cutText [format["You may not use Self Bloodbag this soon please wait %1!",(_bloodbagTime - _bloodbagLastUsedTime)],"PLAIN DOWN"];//display text at bottom center of screen when players cooldown is not done};if(dayz_combat ==1)then{// Check if in combat
cutText [format["You are in Combat and cannot give yourself a Bloodbag"],"PLAIN DOWN"];//display text at bottom center of screen when in combat}else{
player removeAction s_player_selfBloodbag;//remove the action from users scroll menu
player playActionNow "Medic";//play bloodbag animation////////////////////////////////////////////////// Fancy cancel if interrupted addition start //////////////////////////////////////////////////
r_interrupt =false;// public interuppt variable
_animState = animationState player;// get the animation state of the player
r_doLoop =true;// while true sets whether to continue self bloodbagging
_started =false;// this starts as false as a check
_finished =false;// this starts as false and when true later sets players bloodwhile{r_doLoop}do{
_animState = animationState player;// keep checking to make sure player is in correct animation
_isMedic =["medic",_animState] call fnc_inString;// checking to make sure the animstate is the medic animation stillif(_isMedic)then{
_started =true;// this is a check to make sure everything is still ok};if(!_isMedic &&!r_interrupt &&(time - _bloodbagUsageTime)< _bloodbagUseTime)then{
player playActionNow "Medic";//play bloodbag animation
_isMedic =true;};if(_started &&!_isMedic &&(time - _bloodbagUsageTime)> _bloodbagUseTime)then{
r_doLoop =false;// turns off the loop
_finished =true;// set finished to true to finish the self bloodbag and give player health/humanity
lastBloodbag = time;// the last self bloodbag time};if(r_interrupt)then{
r_doLoop =false;// if interuppted turns loop off early so _finished is never true};
sleep 0.1;};
r_doLoop =false;// make sure loop is off on successful self bloodbag///////////////////////////////////////////////// Fancy cancel if interrupted addition end ////////////////////////////////////////////////if(_finished)then{
player removeMagazine "ItemBloodbag";//remove the used bloodbag from inventory
r_player_blood = r_player_blood + _bloodAmount;//set players LOCAL blood to a certain ammountif(r_player_blood >12000)then{
r_player_blood =12000;// If players blood is greater then max amount allowed set it to max allowed (this check keeps an error at bay)};// check if infectedif(random(_infectionChance)<1)then{
r_player_infected =true;//set players client to show infection
player setVariable["USEC_infected",true,true];//tell the server the player is infected
cutText [format["You have used a bloodbag on yourself but the bloodbag was infected!"],"PLAIN DOWN"];//display text at bottom center of screen if infected// check for if loosing life on infection is turned onif(_infectedLifeBool)then{
r_player_blood = r_player_blood - _infectedLifeLost;//set players LOCAL blood to a certain ammount
player setVariable["USEC_BloodQty",r_player_blood,true];//save this blood ammount to the database}else{// if loosing life is turned off
r_player_lowblood =false;//set lowblood setting to false10 fadeSound 1;//slowly fade their volume back to maximum"dynamicBlur" ppEffectAdjust [0];"dynamicBlur" ppEffectCommit 5;//disable post processing blur effect"colorCorrections" ppEffectAdjust [1,1,0,[1,1,1,0.0],[1,1,1,1],[1,1,1,1]];"colorCorrections" ppEffectCommit 5;//give them their colour back
r_player_lowblood =false;//just double checking their blood isnt low
player setVariable["USEC_BloodQty",r_player_blood,true];//save this blood ammount to the database};}else{// if not infected
r_player_lowblood =false;//set lowblood setting to false10 fadeSound 1;//slowly fade their volume back to maximum"dynamicBlur" ppEffectAdjust [0];"dynamicBlur" ppEffectCommit 5;//disable post processing blur effect"colorCorrections" ppEffectAdjust [1,1,0,[1,1,1,0.0],[1,1,1,1],[1,1,1,1]];"colorCorrections" ppEffectCommit 5;//give them their colour back
r_player_lowblood =false;//just double checking their blood isnt low
player setVariable["USEC_BloodQty",r_player_blood,true];//save this blood ammount to the database
cutText [format["You have used a bloodbag on yourself!"],"PLAIN DOWN"];//display text at bottom center of screen on succesful self bloodbag};// check if giving player humanity is onif(_humanityBool)then{[player,_humanityAmount] call player_humanityChange;// Set players humanity based on amount listed in config area};}else{// this is for handling if interrupted
r_interrupt =false;
player switchMove "";
player playActionNow "stop";
cutText [format["You have interrupted giving yourself a bloodbag!"],"PLAIN DOWN"];//display text at bottom center of screen on interrupt};};
Question
asremix
I use self blood bag script. It can use. But i can't building.
fn_selfActions.sqf
and player_selfbloodbag.sqf
Have some body see my script.
Where is wrong.
I'm bad en . Sorry
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now