ihatetn931
Well-Known Member
Will someone be kind enough to tell me what is wrong with this script? I tried to combine a refuel and repair script together but i can't get it, after hours of messing with it i just got fustrated with it
I think it has to do with but i haven't quite figure out how it selects from the other script
kh_actions.sqf
kh_refuel_repair.sqf
I think it has to do with but i haven't quite figure out how it selects from the other script
Code:
_target = _this select 0;
_caller = _this select 1;
_vehicle_refuel_id = _this select 2;
_vehicle_repair_id = _this select 3;
_argsRefuel = _this select 3;
_argsRepair = _this select 4;
__fuelAmount = _argsRefuel select 0;
__repairAmount = _argsRepair select 0;
kh_actions.sqf
Code:
private ["_refuelVehicle","_repairVehicle","_vehicle_refuel_id","_vehicle_repair_id"];
//Awesomely Edited by Seven, Then modified by Muddr
_refuelVehicle = objNull;
_repairVehicle = objNull;
diag_log "Running ""kh_actions"".";
_distance = 15; // Distance from object to display Refuel Message
_fuelAmount = 0.02; // Amount of fuel to add per loop. Default was 0.005
_damageAmount = 0.02; // Amount of damage to remove per loop.
while {true} do
{
if (!isNull player) then {
private ["_vehicleRefuel","_vehicleRepair", "_isNearFeed", "_countFuel","_isNearRepair","_countDamage"];
_vehicleRefuel = vehicle player;
_countFuel = (count ((position _vehicleRefuel) nearObjects ["Land_Fuel_tank_big", _distance]));
_countFuel = _countFuel + (count ((position _vehicleRefuel) nearObjects ["Land_A_FuelStation_Feed", _distance]));
_countFuel = _countFuel + (count ((position _vehicleRefuel) nearObjects ["Land_Ind_TankSmall", _distance]));
_countFuel = _countFuel + (count ((position _vehicleRefuel) nearObjects ["Land_Ind_TankSmall2", _distance]));
_countFuel = _countFuel + (count ((position _vehicleRefuel) nearObjects ["Land_Ind_TankSmall2_EP1", _distance]));
_countFuel = _countFuel + (count ((position _vehicleRefuel) nearObjects ["Land_fuel_tank_stairs", _distance]));
_countFuel = _countFuel + (count ((position _vehicleRefuel) nearObjects ["UralRefuel_INS", _distance]));
_isNearFeed = _countFuel > 0;
_vehicleRepair = vehicle player;
_countDamage = (count ((position _vehicleRepair) nearObjects ["UralRepair_CDF", _distance]));
_isNearRepair = _countDamage > 0;
if (_refuelVehicle != _vehicleRefuel) then {
if (!isNull _refuelVehicle) then {
_refuelVehicle removeAction _vehicle_refuel_id;
_refuelVehicle = objNull;
};
if (_vehicleRefuel != player && _isNearFeed && !(_vehicleRefuel isKindof "Bicycle")) then {
_refuelVehicle = _vehicleRefuel;
_vehicle_refuel_id = _refuelVehicle addAction ["Refuel", "Scripts\Repair_Refuel\kh_refuel_repair.sqf", [_refuelAmount], -1, false, true, "", "vehicle _this == _target && local _target"];
};
};
if (_repairVehicle != _vehicleRepair) then {
if (!isNull _repairVehicle) then {
_repairVehicle removeAction _vehicle_repair_id;
_repairVehicle = objNull;
};
if (_vehicleRepair != player && _isNearRepair && !(_vehicleRepair isKindof "Bicycle")) then {
_repairVehicle = _vehicleRepair;
_vehicle_repair_id = _repairVehicle addAction ["Repair", "Scripts\Repair_Refuel\kh_refuel_repair.sqf", [_repairAmount], -1, false, true, "", "vehicle _this == _target && local _target"];
};
};
if (!_isNearFeed) then {
_refuelVehicle removeAction _vehicle_refuel_id;
_refuelVehicle = objNull;
};
if (!_isNearRepair) then {
_repairVehicle removeAction _vehicle_repair_id;
_repairVehicle = objNull;
};
};
sleep 2;
}
kh_refuel_repair.sqf
Code:
private ["_target", "_caller", "_vehicle_refuel_id","_vehicle_repair_id"];
_target = _this select 0;
_caller = _this select 1;
_vehicle_refuel_id = _this select 2;
_vehicle_repair_id = _this select 3;
_argsRefuel = _this select 3;
_argsRepair = _this select 4;
__fuelAmount = _argsRefuel select 0;
__repairAmount = _argsRepair select 0;
if (isNil "ib_refueling_in_progress") then { ib_refueling_in_progress = false; };
if (isNil "ib_repairing_in_progress") then { ib_reparing_in_progress = false; };
if (!ib_refueling_in_progress) then {
ib_refueling_in_progress = true;
titleText ["Refueling", "PLAIN DOWN", 3];
while {(vehicle _caller == _target) and (local _target)} do {
private ["_velocity", "_cfcustRefuel"];
_velocity = velocity _target;
_cfcustRefuel = fuel _target;
if ((_velocity select 0 > 1) or (_velocity select 1 > 1) or (_velocity select 2 > 1)) exitWith {
titleText ["Refueling Stopped", "PLAIN DOWN", 3];
};
if (_cfcustRefuel >= 1.0) exitWith {
titleText ["Done Refueling", "PLAIN DOWN", 3];
};
sleep 0.5;
_cfcustRefuel = _cfcustRefuel + _fuelAmount;
if (_cfcustRefuel >= 1.0) then { _cfcustRefuel = 1.0; };
_target setFuel _cfcustRefuel;
};
titleFadeOut 1;
ib_refueling_in_progress = false;
};
if (!ib_reparing_in_progress) then {
ib_reparing_in_progress = true;
titleText ["Reparing", "PLAIN DOWN", 3];
while {(vehicle _caller == _target) and (local _target)} do {
private ["_velocity", "_cfcustRepair"];
_velocity = velocity _target;
_cfcustRepair = damage _target;
if ((_velocity select 0 > 1) or (_velocity select 1 > 1) or (_velocity select 2 > 1)) exitWith {
titleText ["Reparing Stopped", "PLAIN DOWN", 3];
};
if (_cfcustRepair == 0) exitWith {
titleText ["Done Reparing", "PLAIN DOWN", 3];
};
sleep 0.5;
_cfcustRepair = _cfcustRepair - _repairAmount;
if (_cfcustRepair == 0) then { _cfcustRepair = 0; };
_target setDamage _cfcustRepair;
};
titleFadeOut 1;
ib_reparing_in_progress = false;
};