Jump to content

GSGBen

Member
  • Posts

    40
  • Joined

  • Last visited

Posts posted by GSGBen

  1. fn_selfactions.sqf 

    scriptName "Functions\misc\fn_selfActions.sqf";
    /***********************************************************
    	ADD ACTIONS FOR SELF
    	- Function
    	- [] call fnc_usec_selfActions;
    ************************************************************/
    private ["_mags","_hastinitem","_canPickLight","_text","_driver","_hasRawMeat","_isFuel","_menu","_isHarvested","_isVehicle","_isVehicletype","_isMan","_ownerID","_isAnimal","_isZombie","_isDestructable","_isTent","_isStash","_isMediumStash","_hasFuel20","_hasFuel5","_isAlive","_canmove","_isPlant","_rawmeat","_vehicle","_inVehicle","_hasFuelE20","_hasFuelE5","_cursorTarget","_hasbottleitem","_primaryWeapon","_currentWeapon","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canDo"];
    
    _vehicle = vehicle player;
    _inVehicle = (_vehicle != player);
    //_bag = unitBackpack player;
    //_classbag = typeOf _bag;
    //_isWater = (surfaceIsWater (getPosATL player)) or dayz_isSwimming;
    //_hasAntiB = "ItemAntibiotic" in magazines player;
    _hasFuelE20 = "ItemJerrycanEmpty" in magazines player;
    _hasFuelE5 = "ItemFuelcanEmpty" in magazines player;
    _cursorTarget = cursorTarget;
    //boiled Water
    _hasbottleitem = "ItemWaterbottle" in magazines player;
    _hastinitem = false;
    _primaryWeapon = primaryWeapon player;
    _currentWeapon = currentWeapon player;
    {
        if (_x in magazines player) then {
            _hastinitem = true;
        };
    
    } forEach boil_tin_cans;
    
    _hasKnife = "ItemKnife" in items player;
    _hasToolbox = "ItemToolbox" in items player;
    //_hasTent = "ItemTent" in items player;
    _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
    _nearLight = nearestObject [player,"LitObject"];
    _canPickLight = false;
    
    if (!isNull _nearLight) then {
    	if (_nearLight distance player < 4) then {
    		_canPickLight = isNull (_nearLight getVariable ["owner",objNull]);
    	};
    };
    _canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder);
    
    // ------------------------------------------------------------------------Krixes Self Bloodbag Start------------------------------------------------------------------------
    	_mags = magazines player;
    	
    	// Krixes Self Bloodbag
    	if ("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>"),"Scripts\player_selfbloodbag.sqf","",5,false,true,"", ""];
    		};
    	} else {
    		player removeAction s_player_selfBloodbag;
    		s_player_selfBloodbag = -1;
    	};
    // ------------------------------------------------------------------------Krixes Self Bloodbag End------------------------------------------------------------------------
    //Grab Flare
    if (_canPickLight and !dayz_hasLight) 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 (dayz_onBack != "" && !dayz_onBackActive && !_inVehicle && !_onLadder && !r_player_unconscious) then {
    	if (s_player_equip_carry < 0) then {
    		_text = getText (configFile >> "CfgWeapons" >> dayz_onBack >> "displayName");
    		s_player_equip_carry = player addAction [format[localize "STR_ACTIONS_WEAPON", _text], "\z\addons\dayz_code\actions\player_switchWeapon.sqf", "action", 0.5, false, true];
    	};
    } else {
    	player removeAction s_player_equip_carry;
    	s_player_equip_carry = -1;
    };
    
    //fishing
    if ((_currentWeapon in Dayz_fishingItems) && !dayz_fishingInprogress && !_inVehicle) then {
    	if (s_player_fishing < 0) then {
    		s_player_fishing = player addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf","action", 0.5, false, true];
    	};
    } else {
    	player removeAction s_player_fishing;
    	s_player_fishing = -1;
    };
    
    if (_inVehicle) then {
    	//_assignedRole = assignedVehicleRole player;
    	_driver = driver (vehicle player);
    	if ((_primaryWeapon in Dayz_fishingItems) && !dayz_fishingInprogress && (_vehicle isKindOf "Ship") && (_driver != player)) then {
    		if (s_player_fishing_veh < 0) then {
    			s_player_fishing_veh = _vehicle addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf","action", 0.5, false, true];
    		};
    	} else {
    		player removeAction s_player_fishing_veh;
    		s_player_fishing_veh = -1;
    	};
    } else {
    	player removeAction s_player_fishing_veh;
    	s_player_fishing_veh = -1;
    };	
    
    if (!isNull _cursorTarget and !_inVehicle and (player distance _cursorTarget < 4)) then { //Has some kind of target
    	_isHarvested = _cursorTarget getVariable["meatHarvested",false];
    	_isVehicle = _cursorTarget isKindOf "AllVehicles";
    	_isVehicletype = typeOf _cursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
    	_isMan = _cursorTarget isKindOf "Man";
    	_ownerID = _cursorTarget getVariable ["characterID","0"];
    	_isAnimal = _cursorTarget isKindOf "Animal";
    	_isZombie = _cursorTarget isKindOf "zZombie_base";
    	_isDestructable = _cursorTarget isKindOf "BuiltItems";
    	_isTent = _cursorTarget isKindOf "TentStorage";
    	_isStash = _cursorTarget isKindOf "StashSmall";
    	_isMediumStash = _cursorTarget isKindOf "StashMedium";
    	_isFuel = false;
    	_hasFuel20 = "ItemJerrycan" in magazines player;
    	_hasFuel5 = "ItemFuelcan" in magazines player;
    	_isAlive = alive _cursorTarget;
    	_canmove = canmove _cursorTarget;
    	_text = getText (configFile >> "CfgVehicles" >> typeOf _cursorTarget >> "displayName");
    	_isPlant = typeOf _cursorTarget in Dayz_plants;
    
    	_rawmeat = meatraw;
    	_hasRawMeat = false;
    		{
    			if (_x in magazines player) then {
    				_hasRawMeat = true;
    			};
    		} forEach _rawmeat;
    
    	//gather
    	if(_isPlant and _canDo) then {
    		if (s_player_gather < 0) then {
    			_text = getText (configFile >> "CfgVehicles" >> typeOf _cursorTarget >> "displayName");
    			s_player_gather = player addAction [format[localize "str_actions_gather",_text], "\z\addons\dayz_code\actions\player_gather.sqf",_cursorTarget, 1, true, true, "", ""];
    		};
    	} else {
    		player removeAction s_player_gather;
    		s_player_gather = -1;
    	};
    	if (_hasFuelE20 or _hasFuelE5) then {
    		_isFuel = (_cursorTarget isKindOf "Land_Ind_TankSmall") or (_cursorTarget isKindOf "Land_fuel_tank_big") or (_cursorTarget isKindOf "Land_fuel_tank_stairs") or (_cursorTarget isKindOf "Land_wagon_tanker");
    	};
    	//diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID));
    
    	//Allow player to delete objects
    	if(_isDestructable and _hasToolbox and _canDo) 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 player to force save
    	if((_isVehicle or _isTent or _isStash or _isMediumStash) and _canDo and !_isMan and (damage _cursorTarget < 1)) 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;
    	};
    
    	//flip vehicle
    	if ((_isVehicletype) and !_canmove and _isAlive and (player distance _cursorTarget >= 2) and (count (crew _cursorTarget))== 0 and ((vectorUp _cursorTarget) select 2) < 0.5) 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 Fuel can
    	if((_hasFuelE20 or _hasFuelE5) and _isFuel and _canDo and !a_player_jerryfilling) 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;
    	};
    
    	//Allow player to fill vehilce 20L
    	if(_hasFuel20 and _canDo and _isVehicle and (fuel _cursorTarget < 1)) then {
    		if (s_player_fillfuel20 < 0) then {
    			s_player_fillfuel20 = player addAction [format[localize "str_actions_medical_10",_text,"20"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemJerrycan"], 0, true, true, "", "'ItemJerrycan' in magazines player"];
    		};
    	} else {
    		player removeAction s_player_fillfuel20;
    		s_player_fillfuel20 = -1;
    	};
    
    	//Allow player to fill vehilce 5L
    	if(_hasFuel5 and _canDo and _isVehicle and (fuel _cursorTarget < 1)) then {
    		if (s_player_fillfuel5 < 0) then {
    			s_player_fillfuel5 = player addAction [format[localize "str_actions_medical_10",_text,"5"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelcan"], 0, true, true, "", "'ItemFuelcan' in magazines player"];
    		};
    	} else {
    		player removeAction s_player_fillfuel5;
    		s_player_fillfuel5 = -1;
    	};
    
    	//Allow player to spihon vehicles
    	if ((_hasFuelE20 or _hasFuelE5) and _isVehicle and _canDo and !a_player_jerryfilling and (fuel _cursorTarget > 0)) then {
    		if (s_player_siphonfuel < 0) then {
    			s_player_siphonfuel = player addAction [format[localize "str_siphon_start"], "\z\addons\dayz_code\actions\siphonFuel.sqf",_cursorTarget, 0, true, true, "", ""];
    		};
    	} else {
    		player removeAction s_player_siphonfuel;
    		s_player_siphonfuel = -1;
    	};
    
    	//Harvested
    	if (!alive _cursorTarget and _isAnimal and _hasKnife and !_isHarvested and _canDo) then {
    		if (s_player_butcher < 0) then {
    			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;
    	};
    
    	//Fireplace Actions check
    	if (inflamed _cursorTarget and _hasRawMeat and _canDo and !a_player_cooking) 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;
    	};
    	if (inflamed _cursorTarget and (_hasbottleitem and _hastinitem) and _canDo and !a_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 and _canDo) 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 tent
    	if(_cursorTarget isKindOf "TentStorage" and _canDo 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;
    		};
    	//Sleep
    	if(_cursorTarget isKindOf "TentStorage" and _canDo 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", "\z\addons\dayz_code\actions\player_sleep.sqf",_cursorTarget, 0, false, true, "",""];
    		};
    	} else {
    		player removeAction s_player_sleep;
    		s_player_sleep = -1;
    	};
    	//Repairing Vehicles
    	if ((dayz_myCursorTarget != _cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage _cursorTarget < 1)) then {
    		if (s_player_repair_crtl < 0) then {
    			dayz_myCursorTarget = _cursorTarget;
    			_menu = dayz_myCursorTarget addAction [localize "str_actions_rapairveh", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
    			//_menu1 = dayz_myCursorTarget addAction [localize "str_actions_salvageveh", "\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;
    		};
    	};
    	
    	/*
    	if (_isMan and !_isAlive) then {
    		if (s_player_dragbody < 0) then {
    			s_player_dragbody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\drag_body.sqf",_cursorTarget, 0, false, true, "",""];
    		};
    		} else {
    		player removeAction s_player_dragbody;
    		s_player_dragbody = -1;
    	};
    	*/
    	if (_isMan and !_isAlive and !_isZombie) then {
    		if (s_player_studybody < 0) then {
    			s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""];
    		};
    	} else {
    		player removeAction s_player_studybody;
    		s_player_studybody = -1;
    	};
    } else {
    	//Engineering
    	{dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;s_player_repairActions = [];
    	player removeAction s_player_repair_crtl;
    	s_player_repair_crtl = -1;
    	dayz_myCursorTarget = objNull;
    	//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;
    	/*
    	//Drag Body
    	player removeAction s_player_dragbody;
    	s_player_dragbody = -1;
    	*/
    	//fuel
    	player removeAction s_player_fillfuel20;
    	s_player_fillfuel20 = -1;
    	player removeAction s_player_fillfuel5;
    	s_player_fillfuel5 = -1;
    
    	//Allow player to spihon vehicle fuel
    	player removeAction s_player_siphonfuel;
    	s_player_siphonfuel = -1;
    	
    	//Allow player to gather
    	player removeAction s_player_gather;
    	s_player_gather = -1;
    };
    

    And here is the 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","_incombat","_timeout"];
    
    
    
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 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;
    _timeout = player getVariable["combattimeout", 0];
    _inCombat = if (_timeout >= diag_tickTime) then { true } else { false };
    
    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 (_inCombat) 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 blood
    	while {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 still
    		if (_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 ammount
    		
    		if(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 infected
    		if (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 on
    			if(_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 false
    				10 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 false
    			10 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 on
    		if(_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
    	};
    };
    
  2. Something that would be really cool for the next update, would be some more missions. At the moment there's around 7 different ones, what would be really cool if there were around 20 and it ran up to 2-3 missions at once!

     

    Also loving the AI in this more and more, they're 100x better than Sarge AI!!!!!

  3. This tutorial will be a short little explanation on how to disable the annoying new addition to Epoch 1.0.3 which requires you to have a plot pole in place to build.

     

    I'm not going to explain unpacking server pbo's, at this point I hope you know how if not check another tutorial, but in this you will need your dayz_code.pbo and your mission pbo.

     

    Before you start, get a copy of your dayz_code.pbo

     

    Start by unpacking and opening your Dayz_code.pbo and go into the actions folder and remove the player_build.sqf file, set this aside for later.

     

    Next your going to open the init folder within the Dayz_code.pbo and remove the compiles.sqf and set it aside. You are now done with your copy of the Dayz_code.pbo

     

    In the root of your mission pbo now create a new directory called scripts, now open it.

     

    Go back to the files you removed from your dayz_code.pbo

     

    Open up your player_build.sqf

    Around line 102, you should see

    _requireplot = 1;

    set this to

    _requireplot = 0;

    Close and Save this file for later.

     

    Open up your compiles.sqf

    Around line 102 again, you are going to see

    ​player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";

    Replace this line with

    player_build = compile preprocessFileLineNumbers "Scripts\player_build.sqf";

    Save both of these files into the scripts directory you created earlier.

     

    Now go to your init.sqf file in the root of your mission pbo.

    Around line 54 you will see,

    progressLoadingScreen 0.4;
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";

    replace the bottom line with the following

    call compile preprocessFileLineNumbers "Scripts\compiles.sqf";

    Save this and repack your pbo.

     

    Update the files on your server, and restart. Now you are no longer required to place a plot pole to build.

  4. Copy the compiles.sqf and player_build.sqf from the DayZ code into your mission in a folder of your choice. (For me custom2) Change in the player_build.sqf "_requireplot = 1;" to "_requireplot = 0;" Then change the line in the compiles.sqf "player_build = compile preprocessFileLineNumbers "\ z \ addons \ dayz_code \ actions \ player_build.sqf";" to "player_build = compile preprocessFileLineNumbers "custom2 \ player_build.sqf";" Then go into your mission init.sqf and change the line "call compile preprocessFileLineNumbers "\ z \ addons \ dayz_code \ init \ compiles.sqf";" to "call compile preprocessFileLineNumbers "custom2 \ compiles.sqf";" Done!

    I took the above post and put it into a more readable format.

     

    Copy the compiles.sqf and player_build.sqf from the DayZ code into your mission in a folder of your choice. (Ex. Scripts)

     

    Change in the player_build.sqf

    _requireplot = 1;

     to

    _requireplot = 0;

    Then change the line in the compiles.sqf 

    ​player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";

    to

    player_build = compile preprocessFileLineNumbers "scripts\player_build.sqf";

    Then go into your mission init.sqf and change the line

    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";

    to

    call compile preprocessFileLineNumbers "Scripts\compiles.sqf";
  5. I alway felt the bigger issue is that it allows a solo player to quickly grab vehicles (especially with lifting) for quick sale.  It kind of breaks IMO the way its supposed to work.

     

    Similar to autorefuel.  it basically negates the need for fuel pumps and generators, which i think is a fun part of epoch.

    You seem to be misusing the term, 'Game Breaking.' This is where the confusion is coming from, its not that the scripts make it so the game isn't playable. It causes the issue that it becomes slightly too easy for your taste.

×
×
  • Create New...