Jump to content

Feenx sama

Member
  • Content Count

    17
  • Joined

  • Last visited

  • Medals

Posts posted by Feenx sama


  1. Is there a tutorial or more in depth documentation on artillery? I'm not trying to disable the computer but I do want to enable ammunition handling and I'm having a hard time finding any examples on this. Generally I want the M252 and the M119 to have ammunition handling enabled.


  2. On 7/30/2019 at 10:08 AM, Feenx sama said:

    (1) no camera shake when being shot and

     

    I've figure out this one after some experimenting  with setCamShakeParams to the code. However, I'm still stick on number 2. If I happen to figure it out I'll edit this post but any help is still welcomed.

     

    I've figured out the second half. Turns out it was as simple as defining a variable.


  3. Can anyone help me figure out how to  modify this code to include (1) no camera shake when being shot and (2) apply this to a specific unit only (two to be exact) via it's variable name or class name.

     

    params[ "_unit" ];
    
    // Damage reduction from https://forums.bistudio.com/forums/topic/198136-reducing-player-damage/
    
    // Exit if we are a player and not local
    // Otherwise add EH for AI every where just in case their locality
    // changes due to moving into a players group
    // the EH will only fire where the AI is local
    if ( isPlayer _unit && { !local _unit } ) exitWith {};
    
    if ( isPlayer _unit ) then {
    	_unit removeAllEventHandlers 'HandleDamage';
    };
    
    // Only damage from last applied handleDamage EH is taken into consideration by the engine
    // Apply a new EH so as we can override the damage applied
    _unit addEventHandler [ "HandleDamage", {
    	params ["_unit", "_hitSelection", "_damage","_source","_projectile","_hitPartIndex", "_instigator", "_hitPoint"];
    
    	// Damage multipliers.  The damage of each projectile will be multiplied by this number.
    	private _damageMultiplierHead = 0.3;
    	private _damageMultiplierBody = 0.25;
    	private _damageMultiplierLimbs = 0.15;
    	private _damageMultiplierOverall = 0.25;
    
    	// Damage limits.  Each projectile will be limited to a max of this much damage.
    	private _limitHead = 1.0;
    	private _limitBody = 0.25;
    	private _limitLimbs = 0.1;
    	private _limitOverall = 0.25;
    
    	private _oldDamage = 0;
    	if (_hitSelection isEqualTo "") then {_oldDamage = damage _unit} else {_oldDamage = _unit getHit _hitSelection};
    	private _newDamage = _damage - _oldDamage max 0;
    	private _incomingDamage = _newDamage;
    	private _playerHealth = damage _unit;
    
    	// Infantry selections
    	// Keep in mind that if revive is enabled then incapacitation may occur at around 0.7 damage.
    	// "": The overall damage that determines the damage value of the unit. Unit dies at damage equal to or above 1
    	// "face_hub": Unit dies at damage equal to or above 1
    	// "neck": Unit dies at damage equal to or above 1
    	// "head": Unit dies at damage equal to or above 1
    	// "pelvis": Unit dies at damage equal to or above 1
    	// "spine1": Unit dies at damage equal to or above 1
    	// "spine2": Unit dies at damage equal to or above 1
    	// "spine3": Unit dies at damage equal to or above 1
    	// "body": Unit dies at damage equal to or above 1
    	// "arms": Unit doesn't die with damage to this part
    	// "hands": Unit doesn't die with damage to this part
    	// "legs": Unit doesn't die with damage to this part
    
    	// Do any other damage calculations here
    	// _damage is the previous damage plus any new damage and will be applied
    	// as the total damage the unit has for this selection once this EH returns
    
    	// Only modify damage if it is a known projectile (leave falling damage etc alone)
    	if (_newDamage > 0 && !(_projectile isEqualTo "")) then {
    		// Reduce damage by damage multiplier
    		private _damageMultiplier = _damageMultiplierBody;
    		private _upperLimit = _limitBody;
    		switch (_hitSelection) do {
    			case "face_hub";
    			case "head": {
    				_damageMultiplier = _damageMultiplierHead;
    				_upperLimit = _limitHead;
    			};
    			case "arms";
    			case "hands";
    			case "legs": {
    				_damageMultiplier = _damageMultiplierLimbs;
    				_upperLimit = _limitLimbs;
    			};
    			case "": {
    				_damageMultiplier = _damageMultiplierOverall;
    				_upperLimit = _limitOverall;
    			};
    			default { 
    				_damageMultiplier = _damageMultiplierBody;
    				_upperLimit = _limitBody;
    			};
    		};
    		_newDamage = _newDamage * _damageMultiplier;
    
    		// Place an upper limit on projectile damage done at once
    		if (_newDamage > _upperLimit) then {
    			_newDamage = _upperLimit;
    		};
    
    		_damage = _oldDamage + _newDamage;
    	};
    	
    	// For players ignore damage if they are incapacitated and pass damage to bis revive handler
    	if ( isPlayer _unit ) then {
    		if ( lifeState _unit == "INCAPACITATED" ) then {
    			//if we are incapacitated take no additional damage
    			_damage = _oldDamage;
    		} else {
    			_this set[ 2, _damage ];
    			//Call BI REVIVE HandleDamage EH passing new _damage value
    			_damage = _this call bis_fnc_reviveEhHandleDamage;
    		};
    	};
    
    	systemChat format[ "pHealth: %1 selection: %2 oldTotal: %3 newTotal: %4 incomingDmg: %6 appliedDmg: %6", _playerHealth, _hitSelection, _oldDamage, _damage, _incomingDamage, _newDamage];
    
    	_damage
    	
    }];
    systemChat format[ "Damage reduction applied to %1", _unit ];

     

    Thanks,

    Feenx


  4. 3 hours ago, strider42 said:

    @Feenx sama here is my hack:

     

    At the end of the VVS\functions\fn_spawnVehicle.sqf file you can add your own code to act on all vehicles that are spawned.  Bear in mind that this code will run on all vehicles that are spawned using the VVS system, which may be acceptable.

    Under the same circumstances I run code like:
     

    
    // Get vehicle class.
    _class = typeOf _vehicle;
    
    // Do class specific settings.
    switch ( _class ) do {
       case "VEHICLE_CLASS_1" :
          {
             // Code to be run on VEHICLE_CLASS_1.
          };
       case "VEHICLE_CLASS_2" :
          {
             // Code to be run on VEHICLE_CLASS_2.
          };
    };

    Note _vehicle is the local variable of the newly created vehicle.

    All the best  S

     

    Thanks for this. However I've found a solution for it already but I might mess around with your suggestion later.

     

     

    • Like 1
    • Thanks 1

  5. Can someone help me, I'm looking for a way to include an init line on specific vehicle classes when they're being spawned during a mission. More specifically I want to have spawned Cargo Net Boxes to spawn with my resupply script to populate its inventory. Not sure it this matters but I'm using VVS to spawn the Cargo Net boxes to a specific coordinate on my friendly base. Any help would be greatly appreciated.


  6. On 7/3/2015 at 2:19 PM, Yolo Joe said:

    Hello,

    is there any way to spawn the vehicles with anything in the Init field?

     

    Hey there, out of curiosity I was wondering did you ever figure this one out? I'm currently trying to figure out the same thing.

     

    I have specific items for "B_CargoNet_01_ammo_F" that I call from a "box_resupply.sqf" script. I have the Cargo Net Boxes spawn via VVS but now I'm looking to find  a way to have them spawn with my script everytime.

     

    Any help would be appreciated.


  7. 2 hours ago, wogz187 said:

    @Feenx sama,

    I don't know the answers to any of your questions because I'm not @Larrow
    1. check this out, Position Relative
    2. Something like 
    { _vehicle allowDammage true; } forEach _vehicle; // untested, I'm not sure
    3. If you mean to move objects out of the way, instead I suggest something like:
    selectBestPlaces or isFlatEmpty or findEmptyPosition
    4. number 3 should solve this, too

    Again, I don't know the answers but this is where'd I'd look. Other members might be able to elaborate or correct my pitiful attempt to help.

    Thanks, I'm down to 3 tasks now but I'll check these out!


  8. Hi Larrow,

     

    If possible can you help me with a few things :

     

    1. set a predefined direction for the vehicle to face when spawned;
    2. enable spawned vehicles to take damage ;
    3. clear the spawn area of a spawned vehicle;
    4. and prevent vehicles from being spawned and stacked on top of each other.

     

    Or if anyone can help me with this or point me in the right direction, many thanks.

×