bl2ck dog 80 Posted August 7, 2013 (edited) B2 Weapon Restriction Script NEW! Tired of diver-sniper-antitank-Rambos ruining your server realistic gameplay? Here's simple solution. This script allows to restrict weapons to certain soldier classes. It also restricts 2 levels down the classtree, so you don't have to add all the scope variants to the list. Be careful with the classnames, they are case sensitive. Works with units and weapons added with mods. Example (put in mission's init.sqf): 0 = [["B_soldier_AT_F","B_soldier_LAT_F"],["launch_NLAW_F","launch_RPG32_F","launch_Titan_base","launch_Titan_short_base"]] execVM "scripts\b2_restrictions.sqf"; 0 = [["B_recon_M_F","B_sniper_F"],["srifle_GM6_F","srifle_LRR_F"]] execVM "scripts\b2_restrictions.sqf"; 0 = [["B_recon_M_F","B_recon_JTAC_F","B_soldier_M_F","B_sniper_F"],["srifle_EBR_F","arifle_MXM_F"]] execVM "scripts\b2_restrictions.sqf"; 0 = [["B_soldier_AR_F"],["LMG_Mk200_F","LMG_Zafir_F"]] execVM "scripts\b2_restrictions.sqf"; 0 = [["B_diver_TL_F","B_diver_F"],["arifle_SDAR_F"]] execVM "scripts\b2_restrictions.sqf"; This restrict ATs, sniper and marksman rifles, LMGs and underwater weapons to respective classes. scripts\b2_restrictions.sqf /////////////////////////////////////////////////////////////////////////////////////////////////// // B2 Weapon Restriction Script v1.01 // // Execute from mission init.sqf // // [classesArray,weaponsArray] execVM "scripts\b2_restrictions.sqf"; // // 0 = [["B_recon_M_F"],["srifle_GM6_F","srifle_LRR_F"]] execVM "scripts\b2_restrictions.sqf"; // /////////////////////////////////////////////////////////////////////////////////////////////////// if (isDedicated) exitWith {}; private ["_r_class","_r_weap","_p_weap","_p_weap_base","_p_weap_base2","_p_weap_name","_s_weap","_s_weap_base","_s_weap_base2","_s_weap_name"]; while {true} do { sleep 1; _r_class = _this select 0; _r_weap = _this select 1; _p_weap = primaryWeapon player; _p_weap_base = configName(inheritsFrom (configFile >> "CfgWeapons" >> _p_weap)); _p_weap_base2 = configName(inheritsFrom (configFile >> "CfgWeapons" >> _p_weap_base)); _p_weap_name = getText(configFile >> "CfgWeapons" >>_p_weap >> "displayName"); _s_weap = secondaryWeapon player; _s_weap_base = configName(inheritsFrom (configFile >> "CfgWeapons" >> _s_weap)); _s_weap_base2 = configName(inheritsFrom (configFile >> "CfgWeapons" >> _s_weap_base)); _s_weap_name = getText(configFile >> "CfgWeapons" >>_s_weap >> "displayName"); if (((_p_weap in _r_weap) || (_p_weap_base in _r_weap) || (_p_weap_base2 in _r_weap)) && !(typeOf player in _r_class)) then { player removeWeapon _p_weap; hint format ["RESTRICTED WEAPON\n\nYou are not qualified\nto use %1",_p_weap_name]; }; if (((_s_weap in _r_weap) || (_s_weap_base in _r_weap) || (_s_weap_base2 in _r_weap)) && !(typeOf player in _r_class)) then { player removeWeapon _s_weap; hint format ["RESTRICTED WEAPON\n\nYou are not qualified\nto use %1",_s_weap_name]; }; } forEach allUnits; B2 Check Pilot and Check Gunner Scripts Made this two scritps for my missions, by combining them you can easily control vehicle restrictions. CheckPilot works for any actual drivers/pilots/copilots in any vehicle, CheckGunner - for any gunners. Example (put in mission's init.sqf): ["Helicopter","B_Helipilot_F"] execVM "scripts\b2_checkPilot.sqf"; ["Heli_Attack_01_base_F","B_Helipilot_F"] execVM "scripts\b2_checkGunner.sqf"; ["Heli_Attack_02_base_F","B_Helipilot_F"] execVM "scripts\b2_checkGunner.sqf"; This allows only Bluefor pilots to fly all helicopters and man gunner positions in Attack helis, but also won't restrict anyone from using turrets in Transport helis (I don't think you need 2 years in flight school to handle minigun). Same way it can be used for any other vehicles. scripts\b2_checkPilot.sqf /////////////////////////////////////////////////////////////////////////////////////////////////// // B2 Check Pilot Script v1.07 // // Execute from mission init.sqf // // [class,vehicleType] execVM "scripts\b2_checkPilot.sqf"; // // ["Helicopter","B_Helipilot_F"] execVM "scripts\b2_checkPilot.sqf"; // // ["Wheeled_APC_F","B_Crew_F"] execVM "scripts\b2_checkPilot.sqf"; // /////////////////////////////////////////////////////////////////////////////////////////////////// if (isDedicated) exitWith {}; private ["_vehType","_crewType","_crewTypeName","_veh","_seats"]; while {(true)} do { _vehType = _this select 0; _crewType = _this select 1; _crewTypeName = getText(configFile >> "CfgVehicles" >> _crewType >> "displayName"); if (typeOf player != _crewType) then { waitUntil {vehicle player != player}; _veh = vehicle player; if (_veh isKindOf _vehType && !(_veh isKindOf "ParachuteBase")) then { _seats = [driver _veh]; if (_veh isKindOf "Helicopter") then {_seats = _seats + [_veh turretUnit [0]];}; if (player in _seats) then { player action ["GetOut",_veh]; waitUntil {vehicle player == player}; hint format ["RESTRICTED VEHICLE\n\nRequired class: %1",_crewTypeName]; if (isEngineOn _veh) then {_veh engineOn false}; }; }; }; }; scripts\b2_checkGunner.sqf /////////////////////////////////////////////////////////////////////////////////////////////////// // B2 Check Gunner Script v1.07 // // Execute from mission init.sqf // // [class,vehicleType] execVM "scripts\b2_checkGunner.sqf"; // // ["Heli_Attack_01_base_F","B_Helipilot_F"] execVM "scripts\b2_checkGunner.sqf"; // // ["Wheeled_APC_F","B_Crew_F"] execVM "scripts\b2_checkGunner.sqf"; // /////////////////////////////////////////////////////////////////////////////////////////////////// if (isDedicated) exitWith {}; private ["_vehType","_crewType","_crewTypeName","_veh","_seats"]; while {(true)} do { _vehType = _this select 0; _crewType = _this select 1; _crewTypeName = getText(configFile >> "CfgVehicles" >> _crewType >> "displayName"); if (typeOf player != _crewType) then { waitUntil {vehicle player != player}; _veh = vehicle player; if (_veh isKindof _vehType && !(_veh isKindOf "ParachuteBase")) then { _seats = [gunner _veh]; if (_veh isKindOf "Tank") then {_seats = _seats + [_veh turretUnit [0]]; }; if (_veh isKindOf "Heli_Transport_01_base_F") then {_seats = _seats + [_veh turretUnit [2]];}; if (player in _seats) then { player action ["GetOut",_veh]; waitUntil {vehicle player == player}; hint format ["RESTRICTED VEHICLE\n\nRequired class: %1",_crewTypeName]; }; }; }; }; B2 Keep Gunner Script Redone script from scratch with completely different principle. Now it spawns co-pilot and gunners in designated number of turrets. Useful, if you don't like seeing Transport helicopters flying defenceless just because nobody wants to sit by the minigun whole time. Don't use for playable slots - players won't be able to leave the turret. Execute from any vehicle init: 0 = [vehicle,crewSide(opt),crewNum(opt),crewInit(opt)] execVM "scripts\b2_keepGunner.sqf"; 0 = [this] execVM "scripts\b2_keepGunner.sqf"; - will spawn 1 bluefor crewman, crewSide: west (default), east, independent crewNum: 1 (default), 2, 3 (default for Ghosthawks) crewInit: init string for each crew member, default - empty scripts\b2_keepGunner.sqf /////////////////////////////////////////////////////////////////////////////////////////////////// // B2 Keep Gunner Script v1.06 // // Exec from any vehicle init: // // 0 = [vehicle,crewSide(opt),crewNum(opt),crewInit(opt)] execVM "scripts\b2_keepGunner.sqf"; // // crewSide: west (default), east, independent // // crewNum: 1 (default), 2, 3 (default for Ghosthawks) // // crewInit: init string for each crew member, default - empty // // 0 = [this,west,3] execVM "scripts\b2_keepGunner.sqf"; // /////////////////////////////////////////////////////////////////////////////////////////////////// if (!isServer) exitWith {}; private ["_veh","_crewSide","_crewNum","_crewInit","_crewType","_crewHelm","_crewGrp","_crew"]; _veh = _this select 0; _crewSide = if (count _this > 1) then {_this select 1;} else {west}; _crewNum = if (count _this > 2) then {_this select 2;} else { if (_veh isKindOf "Heli_Transport_01_base_F") then {3} else {1}; }; _crewInit = if (count _this > 3) then {_this select 3;} else {""}; /////////////////////////////////////////////////////////////////////////////// //Selecting type if (_veh isKindOf "Helicopter") then { switch (_crewSide) do { case west: {_crewType = "B_Helipilot_F"; _crewHelm = "H_CrewHelmetHeli_B";}; case east: {_crewType = "O_Helipilot_F"; _crewHelm = "H_CrewHelmetHeli_O";}; case independent: {_crewType = "I_Helipilot_F"; _crewHelm = "H_CrewHelmetHeli_I";}; }; } else { switch (_crewSide) do { case west: {_crewType = "B_Crew_F";}; case east: {_crewType = "O_Crew_F";}; case independent: {_crewType = "I_Crew_F";}; }; }; /////////////////////////////////////////////////////////////////////////////// //Spawning crew _crewGrp = createGroup _crewSide; for "_i" from 1 to _crewNum do { _crewType createUnit [getPos _veh,_crewGrp,_crewInit]; _crew = (units _crewGrp); }; //Adding helmets sleep 0.1; if (_veh isKindOf "Helicopter") then { {_x addHeadgear _crewHelm;} forEach _crew; }; //Starting cycle while {alive _veh} do { for "_i" from 0 to (_crewNum-1) do { { _x moveInTurret [_veh,[_i]]; _x lock true; //[_x] joinSilent (driver _veh); //if (isNull (driver _veh)) then {[_x] joinSilent _crewGrp}; } forEach _crew; }; sleep 1; }; //Clearing group, deleting bodies deleteGroup _crewGrp; {deleteVehicle _x} forEach _crew; B2 Heli Door Script Another simple script, that automatically opens GhostHawk doors while it's altitude is less then 8m and speed is less then 45 km/h. Works pretty much same way as the landing gears. To maintain door functionality after respawn - see example mission - Simple Vehicle Respawn Script works like a charm. Inspired by Heli Door Open Script by Delta 1 Actual http://www.armaholic.com/page.php?id=21969 CH-49 and Mi-48 support by DJPorterNZ scripts\b2_heliDoor.sqf //////////////////////////////////////////////////////////////////////////////// // B2 Heli Door Script v1.06 // // Execute from any compatible Helicopter init field: // // 0 = [this] execVM "scripts\b2_heliDoors.sqf"; // // // // Credits: // // Delta 1 Actual for his Heli Door Open Script // // DJPorterNZ for CH-49 and Mi-48 fix // // // // Compatible Aircraft: // // UH-80 Ghost Hawk // // CH-49 Mohawk // // Mi-48 Kajman // //////////////////////////////////////////////////////////////////////////////// if (!isServer) exitWith {}; private ["_veh","_alt","_speed"]; _veh = _this select 0; switch (typeof _veh) do { // UH-80 Ghost Hawk case "B_Heli_Transport_01_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; // UH-80 Ghost Hawk (Camo) case "B_Heli_Transport_01_camo_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; // CH-49 Mohawk case "I_Heli_Transport_02_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_back_R',1]; _veh animateDoor ['door_back_L',1]; _veh animate ['CargoRamp_Open',1]; } else { _veh animateDoor ['door_back_R',0]; _veh animateDoor ['door_back_L',0]; _veh animate ['CargoRamp_Open',0]; }; }; }; // Mi-48 Kajman case "O_Heli_Attack_02_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; // Mi-48 Kajman (Black) case "O_Heli_Attack_02_black_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; }; B2 PMC Offroad and ATV Script NEW! Simple script that turns any civillian offroad into PMC offroad: white, with push bar, roll bar and some backpacks attached to sides. For ATV it simply makes it black. Put this into any civillian offroad or any ATV init: 0 = [this] execVM "scripts\b2_pmcVeh.sqf"; scripts\b2_pmcVeh.sqf /////////////////////////////////////////////////////////////////////////////////////////////////// // B2 PMC Offroad and ATV Script v1.01 // // Put in civilian offroad init // // 0 = [this] execVM "scripts\b2_pmcVeh.sqf"; // /////////////////////////////////////////////////////////////////////////////////////////////////// if (!isServer) exitWith {}; private ["_veh"]; _veh = _this select 0; if (_veh isKindOf "Offroad_01_base_F") then { _veh = _this select 0; _veh animate ["HideConstruction", 0]; _veh animate ["HideBackpacks", 0]; _veh animate ["HideBumper1", 1]; _veh animate ["HideBumper2", 0]; _veh animate ["HideDoor1", 0]; _veh animate ["HideDoor2", 0]; _veh animate ["HideDoor3", 0]; _veh animate ["HideGlass1", 1]; _veh animate ["HideGlass2", 1]; //_veh setObjectTexture [0, "\A3\soft_F\Offroad_01\Data\Offroad_01_ext_BASE01_CO.paa"]; //Sand //_veh setObjectTexture [1, "\A3\soft_F\Offroad_01\Data\Offroad_01_ext_BASE01_CO.paa"]; //Sand _veh setObjectTexture [0, "\A3\soft_F\Offroad_01\Data\Offroad_01_ext_BASE02_CO.paa"]; //White _veh setObjectTexture [1, "\A3\soft_F\Offroad_01\Data\Offroad_01_ext_BASE02_CO.paa"]; //White //_veh setObjectTexture [0, "\A3\soft_F\Offroad_01\Data\Offroad_01_ext_ti_ca.paa"]; //Black //_veh setObjectTexture [1, "\A3\soft_F\Offroad_01\Data\Offroad_01_ext_ti_ca.paa"]; //Black }; if (_veh isKindOf "Quadbike_01_base_F") then { _veh setObjectTexture [0, "A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_CIV_BLACK_CO.paa"]; _veh setObjectTexture [1, "A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_wheel_CIVBLACK_CO.paa"]; }; B2 Loadout Script NEW! Ok, here's the big one. This script simply gives preset loadout to any unit. It could be BLUEFOR medic carrying GREENFOR LMG and OPFOR uniform, or OPFOR soldier in PG Services clothes carrying RH Mk18. It consist of two major parts: First, "Armies", where you can set types of weapons and gear used by each particular army. Second, "Loadouts", which sets weapon, camo, backpack and amount of ammunition that will be carried by each class of any army. Current version works with this addons: NATO SF and Russian Spetsnaz Weapons UK Special Forces PG Services - Private Military Company Addons support works this way: Server should have same addons as players to have proper ammo in vehicles and boxes - default ammo will be loaded otherwise. If player connects with supported mods, he will have mod stuff loaded. If player connects with no mods, he will have preset loadout with BIS weapons. He won't see modded weapons or camo, but at least he won't be kicked straight away as if placed units or ammobox from mod in editor. Execute from unit's init: 0 = [unit,class,army,silencers] execVM "scripts\b2_loadouts.sqf"; 0 = [this,"grenadier","uksf",1] execVM "scripts\b2_loadouts.sqf"; - UKSF grenadier's loadout with silenced weapon 0 = [this,"medic","pmc"] execVM "scripts\b2_loadouts.sqf"; - PMC medic's loadout 0 = [this,"officer"] execVM "scripts\b2_loadouts.sqf"; - default army officer's loadout 0 = [this] execVM "scripts\b2_loadouts.sqf"; - default army/default loadout (soldier without backpack) Currently there are one default-"oops-something-gone-wrong" army and two example armies: "uksf" - United Kingdom Special Forces (supports massi's NATO Weapons and UK SFTG) "pmc" - Private Military Contractors (supports massi's NATO Weapons and PG Services) Classes: "officer" "grenadier" "eod" "lmg_gunner" "marksman" "rifleman_at" "medic" "sniper" "spotter" "pilot" "crewman" "diver" "hunter" - for vehicles Feel free to adjust "armies", individual loadouts and implemented mods to your particular unit's needs. scripts\b2_loadouts.sqf B2 Interactive Whiteboard Script WIP! Well, name says it all. See example mission, to find out how it works. It's based on this script from A2: http://www.armaholic.com/page.php?id=15289 [X] in trigger exec field ( 0 = [X] execVM "intel\init.sqf"; ) controls board rotation. 0 means board will be facing south, while 90 - facing east. It still has couple unsolved issues: only first player who joins the server able to control the Whiteboard, placing and rotation could be simplified, board flickering while loading next texture, lightsource not visible to other players etc. SAMPLE MISSION 1 (LOADOUTS, WEAPONS RESTRICTIONS AND PMC OFFROADS) >DOWNLOAD< SAMPLE MISSION 2 (OTHER SCRIPTS) >DOWNLOAD< Edited September 6, 2013 by Bl2ck Dog 1 Share this post Link to post Share on other sites
eXpouk 10 Posted August 7, 2013 They look good, thanks for your work! Share this post Link to post Share on other sites
bl2ck dog 80 Posted August 9, 2013 Added Simple Heli Door Script. Share this post Link to post Share on other sites
Guest Posted August 10, 2013 Thanks for informing us about the release :cool: Release frontpaged on the Armaholic homepage. B2 Scripts [bETA] =================================================== We have also "connected" these pages to your account on Armaholic. This means in the future you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have. When you have any questions already feel free to PM or email me! Share this post Link to post Share on other sites
ToM666 1 Posted August 11, 2013 Heli Door script works and looks great but is lost after Heli respawn. Is there a way to rectify this? Share this post Link to post Share on other sites
bl2ck dog 80 Posted August 12, 2013 Heli Door script works and looks great but is lost after Heli respawn.Is there a way to rectify this? My bad. Should be fixed now. Share this post Link to post Share on other sites
ToM666 1 Posted August 12, 2013 My bad. Should be fixed now. Thanks mate. I've just been looking through the script to try and see what you changed and to my inexperienced eyes it still looks the same LOL? Now I'm starting to wonder if I haven't set this up right. I am only using the heli door script so reference the script below I haven't included any of this in my description.ext. Should I be using the code below in the code box? // JIP Check (This code should be placed first line of init.sqf file) if (!isServer && isNull player) then {isJIP=true;} else {isJIP=false;}; if (!isDedicated) then {waitUntil {!isNull player && isPlayer player};}; {_x setvariable ["BIS_noCoreConversations", true, true]} foreach allunits; enableSaving [false, false]; [] execVM "ca\Modules\MP\data\scripts\MPFramework.sqf"; Also this code below. Will that improve the graphics quality at distance? setViewDistance 2000; setTerrainGrid 50; 0 =["Helicopter","B_Helipilot_F"] execVM "scripts\b2_checkPilot.sqf"; 0 =["Heli_Attack_01_base_F","B_Helipilot_F"] execVM "scripts\b2_checkGunner.sqf"; 0 =["Heli_Attack_02_base_F","B_Helipilot_F"] execVM "scripts\b2_checkGunner.sqf"; 0 =["Tank","B_Crew_F"] execVM "scripts\b2_checkPilot.sqf"; 0 = ["Tank","B_Crew_F"] execVM "scripts\b2_checkGunner.sqf"; 0 = ["Wheeled_APC_F","B_Crew_F"] execVM "scripts\b2_checkPilot.sqf"; Share this post Link to post Share on other sites
bl2ck dog 80 Posted August 12, 2013 Well, the only change is: was while {(alive _heli)} do { became while {(true)} do { This makes script to run continuously, without checking is heli still alive or not. // JIP Check (This code should be placed first line of init.sqf file) if (!isServer && isNull player) then {isJIP=true;} else {isJIP=false;}; if (!isDedicated) then {waitUntil {!isNull player && isPlayer player};}; {_x setvariable ["BIS_noCoreConversations", true, true]} foreach allunits; enableSaving [false, false]; That's not really needed, just part of "standard stuff" for my missions, disables AI chatter and saving. [] execVM "ca\Modules\MP\data\scripts\MPFramework.sqf"; This one (along with CA folder) is only needed if you use Interactive Whiteboard script. setViewDistance 2000; setTerrainGrid 50; That simply sets default viewdistance and grass setting for MP (in SP it overridden by configuration settings). In this case: 2000m and grass is disabled. 0 =["Helicopter","B_Helipilot_F"] execVM "scripts\b2_checkPilot.sqf"; 0 =["Heli_Attack_01_base_F","B_Helipilot_F"] execVM "scripts\b2_checkGunner.sqf"; 0 =["Heli_Attack_02_base_F","B_Helipilot_F"] execVM "scripts\b2_checkGunner.sqf"; 0 =["Tank","B_Crew_F"] execVM "scripts\b2_checkPilot.sqf"; 0 = ["Tank","B_Crew_F"] execVM "scripts\b2_checkGunner.sqf"; 0 = ["Wheeled_APC_F","B_Crew_F"] execVM "scripts\b2_checkPilot.sqf"; That's examples of CheckPilot and CheckGunner scripts usage, don't need these if not using those scripts. Share this post Link to post Share on other sites
ToM666 1 Posted August 12, 2013 (edited) Couldn't ask for a clearer more concise answer that :) Just as a quick heads up. The script I was looking at I downloaded from armaholics this evening and it doesn't reflect the change. I didn't look at the one above so apologies for that. Thanks mate and thanks for the script. I think it adds a really nice touch to the ghosthawkes that adds to the emersive game play. Edited August 12, 2013 by ToM666 Share this post Link to post Share on other sites
bl2ck dog 80 Posted August 13, 2013 (edited) ToM666, check latest sample mission (bottom of the first post) - there's example how to keep those doors operational after respawn. Also, redone Keep Gunner Script from scratch with completele different principle. Edited August 14, 2013 by Bl2ck Dog Share this post Link to post Share on other sites
Delta 1 Actual 10 Posted August 15, 2013 hey buddy, looks great and thanks for crediting me :) your check pilot/gunner script sort of reminds me of domination :) and adds that extra bit of realism, very nice work Share this post Link to post Share on other sites
djporternz 27 Posted August 24, 2013 (edited) A brilliant set of scripts there. Really like the interactive whiteboard. Had a quick play with the heli door script to see what/how it was doing it's magic, and got out my big hammer and adapted it to also handle the other helos with doors. Code is probably not optimised as much as it could be, but feel free to use it or adapt it as you see fit. //////////////////////////////////////////////////////////////////////////////// // Simple Heli Door Script v1.03 // // Execute from any compatible Helicopter init field: // // 0 = [this] execVM "scripts\b2_heliDoors.sqf"; // // // // Inspired by Heli Door Open Script by Delta 1 Actual // // http://www.armaholic.com/page.php?id=21969 // // // // Compatible Aircraft // // UH-80 Ghost Hawk // // CH-49 Mohawk // // Mi-48 Kajman // //////////////////////////////////////////////////////////////////////////////// private ["_veh","_alt","_speed"]; _veh = _this select 0; if (!isServer) exitWith {}; switch (typeof _veh) do { // UH-80 Ghost Hawk case "B_Heli_Transport_01_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; // UH-80 Ghost Hawk (Camo) case "B_Heli_Transport_01_camo_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; // CH-49 Mohawk case "I_Heli_Transport_02_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_back_R',1]; _veh animateDoor ['door_back_L',1]; _veh animate ['CargoRamp_Open',1]; } else { _veh animateDoor ['door_back_R',0]; _veh animateDoor ['door_back_L',0]; _veh animate ['CargoRamp_Open',0]; }; }; }; // Mi-48 Kajman case "O_Heli_Attack_02_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; // Mi-48 Kajman (Black) case "O_Heli_Attack_02_black_F": { while {alive _veh} do { sleep 0.5; _alt = getPos _veh select 2; _speed = (sqrt ((velocity _veh select 0)^2 + (velocity _veh select 1)^2 + (velocity _veh select 2)^2)); if ((_alt < 8) && (_speed < 12)) then { _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; } else { _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; }; }; }; }; Edited August 24, 2013 by DJPorterNZ Share this post Link to post Share on other sites
Jazzman 10 Posted August 31, 2013 Hi Bl2ck Dog! since i am new to ArmA 3 and the scripting or implementing of scripts, i am in need of some direction, on how to make your Class Restriction script work. I did copy your example as you wrote in the missions init.sqf but were should i put the rest of the php code? When i follow the downloadlink i only get a pbo for stratis. Is this needed to be put into my arma root or on the server or in the missionfolder? Would be great if you or someone else could help to enlighten me, so i can learn more and get it running. Share this post Link to post Share on other sites
bl2ck dog 80 Posted September 3, 2013 Hey, lads. Sorry for late reply. DJPorterNZ, thanks for your support, appreciate the work you've done! Jazzman, mate, check updated sample missions, I've made .rar archives that could be viewed in editor. Simply unpack them into folders at Documents\Arma 3\missions. Also, check new Weapon Restriction and Loadout Scripts! Share this post Link to post Share on other sites
kremator 1065 Posted September 3, 2013 Nice set of scripts. Thankyou. Possible to add heli door as an little addon instead of a script please? Share this post Link to post Share on other sites
bl2ck dog 80 Posted September 3, 2013 At the moment have no idea how to do that, but I'll look into it. Share this post Link to post Share on other sites
kbone1341 10 Posted September 6, 2013 Great set of scripts; however, I am having an issue with the vehicle restrictions. When I am a rifleman then switch classes, to a crewman, I still cannot crew a tank or apc. Is this because even though I switched classes the server remembers me as something else, or is the scripts caching this somehow? Thanks, Share this post Link to post Share on other sites
bl2ck dog 80 Posted September 6, 2013 Tnx for reply, kbone1341. I've made fixed version, which shouldn't have this problem. Here's link for sample mission https://dl.dropboxusercontent.com/u/14037059/b2_scripts.Stratis.rar Share this post Link to post Share on other sites
Blitzer134 1 Posted September 6, 2013 nice work been looking for something like this for better organised game's thanks Bl2ck Dog Share this post Link to post Share on other sites
Pedro_Hizzo 10 Posted September 21, 2013 Hey Bl2ck Dog maybe you could help me out. I am trying to use your script to take away the ability for people to use Thermal optics. I am using your script in conjunction with Tonics Virtual Ammo System. I have removed the scopes that I don't want players to use from the VAS but unfortunately due to the nature of Tonics script a player can spawn in gear from a saved loadout. How would I go about using your script to stop anyone on my server from having these specific scopes? Thanks in advance! Share this post Link to post Share on other sites
kylania 568 Posted September 22, 2013 You can limit what players can spawn in from within VAS itself I believe, even if they have a saved profile with something. Share this post Link to post Share on other sites
Pedro_Hizzo 10 Posted September 22, 2013 You can limit what players can spawn in from within VAS itself I believe, even if they have a saved profile with something. Hmm, I didn't think it worked that way. When I was setting up the VAS i remember reading a line that gave me the impression that saved loadouts would override what is actually available from the VAS //If limiting weapons its probably best to set this to true so people aren't loading custom loadouts with restricted gear. Share this post Link to post Share on other sites
surfer 42 Posted June 24, 2014 (edited) Tnx for reply, kbone1341. I've made fixed version, which shouldn't have this problem.Here's link for sample mission https://dl.dropboxusercontent.com/u/14037059/b2_scripts.Stratis.rar Hey Bl2ck Dog, thanks so much for your scripts! I'm currently using the vehicle restrictor of the above file and I still only get it to work as long as I spawn as a pilot. Once I spawn as rifleman and switch to an AI helipilot I can't fly the helicopter. Any idea how to fix the issue? Edited June 26, 2014 by Surfer Share this post Link to post Share on other sites
migueldarius 10 Posted December 15, 2014 someone can help me with the Restriction Script? is that I want restrict a UAV Backpack, but i don't know how to do. Share this post Link to post Share on other sites
jshock 513 Posted December 16, 2014 (edited) someone can help me with the Restriction Script? is that I want restrict a UAV Backpack, but i don't know how to do. His restriction script won't help you, as it's for weapons: This script allows to restrict weapons to certain soldier classes. And I would venture to say this thread is dead as well, the author hasn't posted here in over a year. Edited December 16, 2014 by JShock Share this post Link to post Share on other sites