johnnyboy 3793 Posted May 20, 2016 Here's another script that is a byproduct of my Property of Mabunga mission. If you've tried that mission, please rate and comment on Steam. I'm hoping to get enough ratings to merit "stars" on steam before Apex/Tanoa is released (once Tanoa is released, Altis missions will get less attention). This script adds a KilledEventHandler to units that will have them fall out of vehicles when killed. It is intended to be used only on vehicles with positions that look vulnerable to falling: Hummingbird bench seats 2 guys in back of offroads without tailgates, and offroad passenger if door is missing. 2 guys laying on sides of zodiacs You get bonus points if you spot the Easter Egg in the video (its more noticeable in full-screen)! B) If you are using this on Offroads, then put this code in the vehicle init to remove doors and tailgates (otherwise it would look dumb to fall out of vehicle with doors): {this animate [_x,1] ;} foreach ["HideDoor1","HideDoor2","HideDoor3"] ; //Remove driver door, passenger door, and tailgate To execute for all crew in a vehicle, put this in vehicle's init: {dummy = [_x] execVM "Scripts\JBOY_addEHFallFromVehicle.sqf";} foreach crew vehicle this; Or put this in an individual unit's init: [this] execVM "Scripts\JBOY_addEHFallFromVehicle.sqf"; Create a file called JBOY_addEHFallFromVehicle.sqf in your mission directory, and put the following code in it: ////////////////////////////////////////////////////////// // JBOY_addEHFallFromVehicle.sqf // By: johnnyboy // dummy = [dude] execVM "Scripts\JBOY_addEHFallFromVehicle.sqf"; // Put this in vehicle's init (if passengers all in the vehicle): // {dummy = [_x] execVM "Scripts\JBOY_addEHFallFromVehicle.sqf";} foreach crew vehicle this; // When killed, units in certain vehicle positions fall out. Use for offroads, hummingbirds and zodiacs. // This effect only occurs if helicopter is in air, and if offroads/zodiacs are moving. ////////////////////////////////////////////////////////// _unit = _this select 0; _unit addMPEventHandler ["MPKilled", { params ["_cvictim", "_ckiller"]; [_cvictim] spawn { _cvictim = _this select 0; _veh = vehicle _cvictim; // We only execute the FallFromVehicle code for certain positions in certain vehicles if ((typeof _veh in ["B_Heli_Light_01_F"] and (_veh getCargoIndex _cvictim in [2,3,4,5])) or // In hummingbird, only guys on benches fall (_veh isKindOf "Offroad_01_base_F" and ((_veh getCargoIndex _cvictim in [0,1,2]) or (driver _veh) == _cvictim) and speed _veh >5) or // In Offroad, only driver, front passenger, and 2 rear guys near tailgate (_veh isKindOf "Rubber_duck_base_F" and (_veh getCargoIndex _cvictim in [1,0]) and speed _veh >5) // On zodiac, only 2 guys on sides of boat fall out ) then { _cargoIndex = _veh getCargoIndex _cvictim; _grp = createGroup CIVILIAN; _invisibleDude = objnull; _invisibleDude = _grp createUnit ["C_man_polo_2_F_afro",[100,0,0],[],0,"NONE"]; hideObjectGlobal _invisibleDude; _invisibleDude allowDamage False; _invisibleDude setCaptive True; sleep .35; // allow time to see death animation in vehicle, then boot him out _invisibleDude moveInCargo [_veh, _cargoIndex]; _pos = getpos _invisibleDude; deleteVehicle _invisibleDude; // say3d doesn't work on dead AI, so create an object to say3d from _obj = "Land_Screwdriver_V2_F" createVehicle _pos; if (_pos select 2 > 13) then { // falling dude randomly screams. Scream comes from falling screwdriver object since dead units don't work as say3d source. // NOTE: Not sure when/if I'll publish JBOY_say3d function below, so you can comment out this code and replace with your // own say3D statements to add screams. _rand = floor(random 6); switch ( _rand ) do { case 0: { nul = [_obj,0,"scream","Arrrrgghhhh","sidechat","say3d" ] call JBOY_say3d; }; case 1: { nul = [_obj,0,"scream2","Arrrrgghhhh","sidechat","say3d" ] call JBOY_say3d; }; case 2: { nul = [_obj,0,"scream","Arrrrgghhhh","sidechat","say3d" ] call JBOY_say3d; }; default { }; }; nul=[_obj] spawn {_obj = _this select 0; sleep 4; deleteVehicle _obj;}; } else { _pos2 = getpos _cvictim; // position falling dead dude close to original sitting position if (_veh isKindOf "Rubber_duck_base_F") then { _cvictim setpos [_pos2 select 0, (_pos2 select 1)+1, (_pos2 select 2) + .5]; sleep .2; // bullet to create splash effect when body hits water _splashBullet = "B_408_Ball" createVehicle [10,10000,0]; _splashBullet enableCollisionWith _cvictim; _splashBullet setmass 50; _splashBullet setpos (_cvictim modelToWorld [0,.1,.2]); _splashBullet setvelocity [0,0,-1000]; }; if (_veh isKindOf "Offroad_01_base_F") then { _cvictim setpos [_pos2 select 0, (_pos2 select 1)-1, (_pos2 select 2) + .6]; sleep .2; // bullet to create dust effect when body hits ground _splashBullet = "B_408_Ball" createVehicle [10,10000,0]; _splashBullet enableCollisionWith _cvictim; _splashBullet setmass 50; _splashBullet setpos (_cvictim modelToWorld [0,.1,.2]); _splashBullet setvelocity [0,0,-1000]; }; }; }; }; }]; I hope you find this useful. Johnnyboy out 5 1 Share this post Link to post Share on other sites
davidoss 552 Posted May 20, 2016 Very cool Johnnyboy, great job. Share this post Link to post Share on other sites
johnnyboy 3793 Posted May 20, 2016 Thanks davidoss, I enjoyed making it. The key to it was noticing that when player enters a vehicle in a positiion where a dead unit it is, the dead unit is bumped out to the ground with his weapon. So this script creates an invisible unit, moves the invisible unit into dead guys's position, thus bumping out the dead guy. Invisible unit is then deleted. Share this post Link to post Share on other sites
davidoss 552 Posted May 20, 2016 Yeah i read that from your script. Very clever solution 1 Share this post Link to post Share on other sites
EO 11275 Posted May 20, 2016 Very cool JB.....awesome script, would love to see this as a mod. ......I see it must be the time of year for bird migration....... ;) 1 Share this post Link to post Share on other sites
johnnyboy 3793 Posted May 20, 2016 ......I see it must be the time of year for bird migration....... ;) And the bonus points winner is.....Evil Organ! :party: 1 Share this post Link to post Share on other sites
EO 11275 Posted May 20, 2016 And the bonus points winner is.....Evil Organ! :party: Can I cash in bonus points for a script to mod conversion......this should be a standard feature in A3. Share this post Link to post Share on other sites
johnnyboy 3793 Posted May 20, 2016 Can I cash in bonus points for a script to mod conversion......this should be a standard feature in A3. Sorry bro, doing mods ain't my thing. I spend too much time on this hobby already, so I'm only gonna do the things I like doing. However, I give full permission to anybody to take any of my scripts and use them anyway they want, including putting into a mod. A credit mention is all I ask. 1 Share this post Link to post Share on other sites
EO 11275 Posted May 20, 2016 However, I give full permission to anybody to take any of my scripts and use them anyway they want, including putting into a mod. A credit mention is all I ask. Awesome! ;) Share this post Link to post Share on other sites
kylania 568 Posted May 20, 2016 Looks like you're using a JBOY_say3d function for the screams but that code isn't included in the script above. Share this post Link to post Share on other sites
bad benson 1733 Posted May 20, 2016 loving everything you put out so far. you set the bar really high. will be really hard to keep raising it lol. seriously though. all of these are such cool little additions. inspiring stuff. 1 Share this post Link to post Share on other sites
johnnyboy 3793 Posted May 20, 2016 Hi Kylania. Yeah, the JBOY_say3d function isn't there. I haven't published those because they're not as clean as I would like. It uses old PublicVariable method for saying sound files on multiple clients, and requires code in your init file. As you probablly know, the new cleaner way (and alot less code) would be to use remoteExec. But I don't know when I will get around to cleaning that up. So folks can comment out my calls to JBOY_say3d for now, and add in their own say3D lines. Share this post Link to post Share on other sites
reyhard 2082 Posted May 20, 2016 concerning mod - couldn't you use ejectDeadGunner=1 param for that? 1 Share this post Link to post Share on other sites
johnnyboy 3793 Posted May 20, 2016 concerning mod - couldn't you use ejectDeadGunner=1 param for that? Interesting option reyhard...I never heard of this before. So I googled it and see cfgVehicles has these in it: ejectDeadGunner = false; ejectDeadCargo = false; ejectDeadDriver = false; ejectDeadCommander = false; So that is an excellent head start if someone wants to create a mod. Thanks. That would appear to remove the need for my script for a mod solution. However, I think my scripted solution will look better, because the vanilla Arma eject effect teleports the guy immediately to the ground (or water) for offroads and zodiacs. My script improved on this vanilla effect by: Setting position of dead guy closer to original vehicle position so he looks like he "falls" out (rather than teleporting to ground immediately). I spawned a bullet below falling body to give dust or splash effect for body impact. If falling from chopper, falling guy screams. Share this post Link to post Share on other sites
davidoss 552 Posted May 20, 2016 Basically if you cant hold your self on-board you are dead or unconscious. In that case you shouldn't be able to scream as well. The fall in water or on the ground effect are very immerse and most welcome. Share this post Link to post Share on other sites
EO 11275 Posted May 20, 2016 Basically if you cant hold your self on-board you are dead or unconscious. In that case you shouldn't be able to scream as well.. I like to suspend my disbelief for a while...... :D Share this post Link to post Share on other sites
jshock 513 Posted May 20, 2016 Sorry bro, doing mods ain't my thing. I spend too much time on this hobby already, so I'm only gonna do the things I like doing. However, I give full permission to anybody to take any of my scripts and use them anyway they want, including putting into a mod. A credit mention is all I ask. Here is the addon version, I haven't gone in and tested it so let me know if there are any issues. Added a function for removing offroad doors, added respawn functionality for the standard function. Removing offroad doors: [my_offroad] call JBOY_ffv_fnc_hideOffroadDoors; Add FFV function to a unit: [my_unit] call JBOY_ffv_fnc_addFFV; Download 3 Share this post Link to post Share on other sites
johnnyboy 3793 Posted May 20, 2016 Basically if you cant hold your self on-board you are dead or unconscious. In that case you shouldn't be able to scream as well. The fall in water or on the ground effect are very immerse and most welcome. True. As arma scripters we know the guy is technically dead, but for a player in a firefight, why can't his bullets wound the guy and sever his seat belt? That's why its better to watch movies, than to know how they're made! :) And anyone who uses this script any way they choose (with screams, no screams, screams only occur X% of the time). Share this post Link to post Share on other sites
johnnyboy 3793 Posted May 20, 2016 Here is the addon version, I haven't gone in and tested it so let me know if there are any issues. Wow, Jshock, you the man! That was amazingly fast. I'll download it later and take it for a spin. Thanks alot! Share this post Link to post Share on other sites
jshock 513 Posted May 20, 2016 Wow, Jshock, you the man! That was amazingly fast. I'll download it later and take it for a spin. Thanks alot! Yep, no problem, it's relatively simple, hardest thing to do is the reformat into the function library :p. Share this post Link to post Share on other sites