Jump to content

Oliv82

Member
  • Content Count

    2
  • Joined

  • Last visited

  • Medals

Posts posted by Oliv82


  1. 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;
    


  2. 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

×