Oliv82
-
Content Count
2 -
Joined
-
Last visited
-
Medals
Posts posted by Oliv82
-
-
Hi all
I am a totaly noob at script coding but otherwise, I was managed to "re-done" a script by picking lines codes from some "real" coders,
so my coding skill is near to zero :)
I specify for Chernarus map and SINGLE PLAYER
So the goal of this script is to:
-1- spawn a "C130J" with a trigger activated only by the player
-2- "C130J" must fly above a "H invisible" target (my "H" invisible is called "drop1")
-3- "C130J" drop "Misc_cargo_cont_net2" attached with "chute" and "greensmoke"
-4- "C130J" fly a few moment and is deleted when far from player
-5- When "Misc_cargo_cont_net2" reach the ground, "chute" is deleted
-6- Delete "Misc_cargo_cont_net2" and recreate the same object
-7- Create another "greensmoke" at the same place of "Misc_cargo_cont_net2"
-8- Create "ClutterCutter" around "Misc_cargo_cont_net2"
-9- Create (ramdom 4) + 4 lootpiles around "Misc_cargo_cont_net2"
-10- Ramdomized loot table for the lootpiles
This script work but have 2 problems:
- When the player activate the trigger, there is 2/3 chances the C130J appear and imediatly do a 90° or avoid the target "drop1", and never approch (flying in circles then disappear)
- There is allways only 1 lootpile around the "Misc_cargo_cont_net2"
I setted the spawn chance "MedBox0" at 3 to be able to see all lootpiles locations but this item never spawn
only all others items on the table list respawn (weapons, food, etc..)
My trigger command is:
_nul=[getpos drop1,"Misc_cargo_cont_net2",120] execVM "dropspawn2.sqf";
Condition:
(vehicle player) in thislist;
dropspawn2.sqf:
_pos = _this select 0; _spawntype = _this select 1; _dir = _this select 2; _airtype = "C130J"; _type = "GUE_Soldier_Pilot"; mygroup = creategroup side player; _target = createVehicle ["testsphere2",[_pos select 0,_pos select 1,-10], [], 0, "FLY"]; _target setpos [_pos select 0,_pos select 1,200]; _target setDir _dir; _vdir = vectorDir _target; _target setpos [(_pos select 0) + (_vdir select 0) * 26, (_pos select 1) + (_vdir select 1) * 26,200]; _apos = getposasl _target; _npos = [(_pos select 0) + (_vdir select 0) * -1500, (_pos select 1) + (_vdir select 1) * -1500, 300]; _vehicle = createVehicle [_airtype,_npos, [], 0, "FLY"]; _vehicle setpos _npos; _vehicle setDir _dir; _vehicle setvelocity [(_vdir select 0)*50,(_vdir select 1)*50, 5]; _type createUnit [_npos, mygroup,"pilot=this;"]; _pilot = pilot; _pilot moveindriver _vehicle; _pilot reveal _target; _pilot doMove _npos; _pilot dotarget _target; _pilot dowatch _target; _pilot FlyInHeight 300; _vehicle FlyInHeight 300; //message titleText ["I hear a plane...","PLAIN DOWN"]; titleFadeOut 20; //while {_vehicle distance _target > 40} do { // sleep 0.5; sleep 25; // if(_vehicle distance _target < 600) then { // _pilot FlyInHeight 300; _pilot doMove _npos; // }; //}; _bpos = _vehicle ModelToWorld [0,-12,-5.5]; _bomb = _spawntype createVehicle _bpos; _bomb setpos _bpos; _bomb setDir direction _vehicle; _chute = "ParachuteMediumWest" createVehicle getpos _bomb; _chute setpos (_bomb ModelToWorld [0,0,3]); _bomb attachTo [_chute,[0,0,0]]; //Add SmokeShellgreen to _chute _smoke = "SmokeShellgreen" createVehicle getpos _bomb; _smoke setpos (_bomb ModelToWorld [0,0,4]); _smoke attachTo [_chute,[0,0.3,0]]; deletevehicle _target; sleep 0.05; //CODE FROM SBROS //Waiting of a landing of a ammo box waitUntil {((getPos _bomb) select 2) < 1}; //Unhitching of a box from a parachute detach _bomb; //Lifting the ammo box on the ground level _bomb setpos [(getpos _bomb select 0), (getpos _bomb select 1), 0]; //Create new ammo box _bam = "Misc_cargo_cont_net2" createVehicle [(getpos _bomb select 0),(getpos _bomb select 1),(getpos _bomb select 2)+0]; //Delete old ammo box deletevehicle _bomb; //Add SmokeShellgreen to _bam _smoke = "SmokeShellgreen" createVehicle getpos _bam; _smoke attachTo [_bam,[0,0,0]]; sleep 1; //CREATING LOOT CRATE //_crashModel = _bam //_pos = (getPos _bam) _lootRadius = 0.35; _lootTable = ["HeliCrash"] call BIS_fnc_selectRandom; _crashName = getText (configFile >> "CfgVehicles" >> _heliModel >> "displayName"); //Create ClutterCutter around _bam _crashcleaner = createVehicle ["ClutterCutter_EP1", (getPos _bam), [], 0, "CAN_COLLIDE"]; //Ramdom WeaponHolder quantity _num = round(random 4) + 4; _config = configFile >> "CfgBuildingLoot" >> _lootTable; _itemTypes = [ ["","trash"], ["","food"], ["","military"], ["SVD_Camo","weapon"], ["PK_DZ","weapon"], ["Sa58V_RCO_EP1","weapon"], ["Sa58V_CCO_EP1","weapon"], ["Remington870_lamp","weapon"], ["DMR","weapon"], ["kpfs_glock17SD","weapon"], ["KPFS_P220","weapon"], ["KPFS_MPi_KMKIX","weapon"], ["KPFS_MP5A3SD","weapon"], ["KPFS_G3SG1","weapon"], ["KPFS_G3DMR2","weapon"], ["AmmoBoxSmall_556","object"], ["NVGoggles","weapon"], ["MedBox0","object"] ]; _itemChance = [ 0.54, 0.30, 0.24, 0.06, 0.03, 0.08, 0.10, 0.09, 0.03, 0.08, 0.10, 0.06, 0.05, 0.04, 0.04, 0.02, 3.04 ]; _weights = []; _weights = [_itemType,_itemChance] call fnc_buildWeightedArray; _cntWeights = count _weights; _index = _weights call BIS_fnc_selectRandom; //Creating the Lootpiles outside of the _bam for "_x" from 1 to _num do { //Create loot _index = floor(random _cntWeights); _index = _weights select _index; _itemType = _itemTypes select _index; //Let the Loot spawn in a non-perfect circle around _bam //_lootPos = [(getPos _bam), ((random 4)+6), random 360] call BIS_fnc_relPos; _lootPos = [_bam, ((random 4)+6), random 360] call BIS_fnc_relPos; [_itemType select 0, _itemType select 1, _lootPos, 0] call spawn_loot; diag_log(format["CRASHSPAWNER: Loot spawn at '%1' with loot table '%2'", _lootPos, sizeOf(_bam)]); //ReammoBox is preferred parent class here, as WeaponHolder wouldn't match MedBox0 and other such items. //_nearby = (getPos _bam) nearObjects ["ReammoBox", sizeOf(_bam)]; _nearby = _bam nearObjects ["ReammoBox", sizeOf(_bam)]; { _x setVariable ["permaLoot",true]; } forEach _nearBy; }; //_plane FlyInHeight 300; sleep 1; _plane FlyInHeight 300; _pilot doMove [(_pos select 0) + (_vdir select 0) * 800, (_pos select 1) + (_vdir select 1) * 800, 500]; sleep 15; deletevehicle _vehicle; deletevehicle _pilot;Any help would be very appreciated ! thx in advance
Vehicle drop from C130
in ARMA 2 & OA : MISSIONS - Editing & Scripting
Posted · Edited by Oliv82
My re-write version:
I fixed the bad behaviour of the plane and added 1 greensmoke when the cargo reach the ground and 1 flare for night time
(the original had 1 greensmoke)
-Place a trigger to activate this script in your editor
-In "condition"
(vehicle player) in thislist;
-In "On act"
_nul=[getPos drop1,"UNBasicWeapons_EP1",getDir drop1] execVM "scripts\dropspawn.sqf";
-Place a "H"invisible called "drop1", it will be the place where the ac will drop the cargo, rotate the "H" to adjust the direction of the plane
dropspawn.sqf
_pos = _this select 0; _spawntype = _this select 1; _dir = _this select 2; _airtype = "An2_TK_EP1"; //_airtype = "C130J"; //_airtype = "UH60M_EP1"; _type = "GUE_Soldier_Pilot"; mygroup = creategroup side player; //_______________________________________________ _target = createVehicle ["testsphere2",[_pos select 0,_pos select 1,-10], [], 0, "FLY"]; _target setpos [_pos select 0,_pos select 1,200]; _target setDir _dir; _vdir = vectorDir _target; //26 _target setpos [(_pos select 0) + (_vdir select 0) * 30, (_pos select 1) + (_vdir select 1) * 30,200]; _apos = getposasl _target; //alt 300 _npos = [(_pos select 0) + (_vdir select 0) * -1600, (_pos select 1) + (_vdir select 1) * -1600, 200]; _vehicle = createVehicle [_airtype,_npos, [], 0, "FLY"]; _vehicle setpos _npos; _vehicle setDir _dir; _vehicle setvelocity [(_vdir select 0)*50,(_vdir select 1)*50, 5]; //_______________________________________________ _type createUnit [_npos, mygroup,"pilot=this;"]; _pilot = pilot; _pilot moveindriver _vehicle; _pilot reveal _target; _pilot setBehaviour "COMBAT"; _vehicle setBehaviour "COMBAT"; _vehicle setCombatMode "RED"; _pilot forceSpeed 200; _vehicle forceSpeed 200; //_______________________________________________ while {_vehicle distance _pos > 200} do { _pilot FlyInHeight 195; _vehicle FlyInHeight 195; _pilot doMove _pos; _vehicle doMove _pos; }; //_______________________________________________ _bpos = _vehicle ModelToWorld [0,-12,-5.5]; _bomb = _spawntype createVehicle _bpos; _bomb setpos _bpos; _bomb setDir direction _vehicle; _chute = "ParachuteMediumWest" createVehicle getpos _bomb; _chute setpos (_bomb ModelToWorld [0,0,3]); _bomb attachTo [_chute,[0,0,0]]; //Add SmokeShellgreen to _chute _smoke = "SmokeShellgreen" createVehicle getpos _bomb; _smoke setpos (_bomb ModelToWorld [0,0,4]); _smoke attachTo [_chute,[0,0,1]]; //Add Flare for night time to _chute if(daytime < 7 || daytime > 18) then { _flare = "F_40mm_White" createVehicle [getPos _chute select 0,getPos _chute select 1,+150]; _flare attachTo [_chute,[0,0,-4]]; }; sleep 0.5; //CODE FROM SBROS //Waiting of a landing of a ammo box waitUntil {((getPos _bomb) select 2) < 1}; //Unhitching of a box from a parachute detach _bomb; //Lifting the ammo box on the ground level _bomb setpos [(getpos _bomb select 0), (getpos _bomb select 1), 0]; //Create new ammo box _bam = "UNBasicWeapons_EP1" createVehicle [(getpos _bomb select 0),(getpos _bomb select 1),(getpos _bomb select 2)+0]; //Delete old ammo box deletevehicle _bomb; //Add SmokeShellgreen to _bam _smoke = "SmokeShellgreen" createVehicle getpos _bam; _smoke attachTo [_bam,[0,0,0]]; sleep 1; //FOR AMMOBOX_MODEL ONLY clearweaponcargo _bam; clearmagazinecargo _bam; //test------------------------------- _riffles = ["AKS_74_U","AK_74_GL","AK_74_GL"] call BIS_fnc_selectRandom; _riffles2 = ["AK_74_GL_kobra","AKS_74_pso"] call BIS_fnc_selectRandom; _rifflesmags = ["30Rnd_545x39_AK","30Rnd_545x39_AK"] call BIS_fnc_selectRandom; //_equip = ["NVGoggles","Binocular_Vector"] call BIS_fnc_selectRandom; _bam addWeaponCargo [_riffles,1]; _bam addWeaponCargo [_riffles2,1]; _bam addMagazineCargo [_rifflesmags,12]; //_bam addWeaponCargo [_equip,1]; //test------------------------------- sleep 8; _plane FlyInHeight 200; _pilot doMove [(_pos select 0) + (_vdir select 0) * 800, (_pos select 1) + (_vdir select 1) * 800, 500]; sleep 120; deletevehicle _target; deletevehicle _vehicle; deletevehicle _pilot;