Jump to content
ShadowRanger24

HandleDamage Event Handler Explained

Recommended Posts

43 minutes ago, dwringer said:

Since you're reducing it anyway there's no real difference between that and (_previousDamage + ((_newDamage * 0.7) min 0.7)), but in the latter case it's more clear at a glance (IMHO) what the final damage cap is.  I suppose it's just a stylistic choice more than anything.

 

the difference is that u just can say a double deadly damage is okay but five times is not. this means that you can die by one damage event but it will not happen as often as before:

 

( _previousDamage + ( _newDamage min 2 ) * 0.7 )

 

with ur solution it is not possible to die with one damage event if u had no damage before.

 

but I would not say that one solution is better than the other. It simply depends on what you need and prefer.

  • Like 3

Share this post


Link to post
Share on other sites
17 minutes ago, sarogahtyp said:

 


( _previousDamage + ( _newDamage min 2 ) * 0.7 )

 

with ur solution it is not possible to die with one damage event if u had no damage before.


I see what you mean but, for that example, what I was saying is that it would be equivalent to
 

( _previousDamage + (( _newDamage * 0.7 ) min 1.4 ))

 

Just two different ways of writing the same thing. But all have their uses, for sure.

  • Like 1

Share this post


Link to post
Share on other sites
On 4/11/2022 at 10:59 AM, _foley said:

Here's a way to reduce damage proportionally to what it normally should be, for example to reduce all inflicted damage by 30%
Note that this is very different to returning just _damage * 0.7 which leads to undesired behaviour. What you actually want to return is the previous damage + reduced new damage.


this addEventHandler [
	"HandleDamage", 
	{ 
		params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];

		private _previousDamage = [_unit getHit _selection, damage _unit] select (_selection isEqualTo "");  // if selection is empty then it's overall damage
		private _newDamage = _damage - _previousDamage;

		(_previousDamage + _newDamage * 0.7)
	}
];

 

Another caveat: a one shot kill often deals much more than 1.0 damage, meaning that a headshot which deals 5.0 damage is still deadly after a reduction by 30%.

You can mitigate it by limiting the maximum damage that can be dealt in one hit. The example below will: reduce all damage by 30% and prevent taking more than 80% damage from a single hit.


(_previousDamage + ((_newDamage * 0.7) min 0.8))

 

If you're using ACE, be aware that this will not work correctly on men because of the modded medical system though it'll still work fine for vehicles.

 

This code is very elegant!

 

As I understand it, only overall damage is deadly?

 

Will this still allow for legs and arms to increase their current damages?

  • Like 1

Share this post


Link to post
Share on other sites

@LSValmont This reduces damage to all parts equally. If you want to differentiate between legs/arms/other parts you need to check the value of _selection or _hitPoint and return different damage depending on what they are.

  • Like 2

Share this post


Link to post
Share on other sites

Hi together,

 

I have followed the various approaches here in the thread with great interest and have tried them out a bit myself, but have not quite come to my desired solution:

 

My goal: A vehicle should not be completely destroyed, regardless of whether it is caused by direct or indirect damage, and must not explode.

The vehicle should be immobile, ideally no longer able to shoot, but the fuel must not run empty so that an engineer can make the vehicle usable again on site.

 

I would like to do without vehicle variable names in the editor in order to address different vehicles with the same script. Furthermore, I would not like to address tires / chains as vehicle parts, since the potential vehicle pool contains different vehicle types from different mods and thus also different hitpoints are stored.

 

My first thought was just to limit the damage via vehicle init with the addhandler and if a damage value x is exceeded to reset the fuel (and later turn off the turret) before its empty but here I run in a suspend context error.

 

Quote

this addEventHandler ["HandleDamage", {0.95}];

while {true} do {

waituntil {sleep 1; (damage this) > 0.90};

[this, "HitFuel", 0.5] call BIS_fnc_setHitPointDamage;};

 

I then took up _foley's idea to limit the maximum damage and after firing the event handler reset the damage for the fuel, for example, to a value where it does not run out of fuel.

 

Spoiler

_unit addEventHandler

["HandleDamage",

    {

        params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];

        private _previousDamage = [_unit getHit _selection, damage _unit] select (_selection isEqualTo "");

        private _newDamage = _damage - _previousDamage;

        (_previousDamage + ((_newDamage * 0.7) min 0.8));

        if (_newDamage > 0.95) then {(_previousDamage = 0.9; _newDamage = 0.9; "HitFuel" in _hitPoint = 0.4; "Hitturet" in _hitpoint = 1;)}

    }

];

 

 

As a scripting beginner, I'm currently failing a bit with the syntax within the then brackets of the if-clause and I'm not sure how to correctly address the values of the hitpoint.

 

So my questions would be:

1. Am I even on the right track or is there a better approach?

2. Am I addressing the values correctly?

 

Many, many thanks for your help and ideas.

Share this post


Link to post
Share on other sites

This EH is made for that. So, no problem. Use parameters:

[] spawn { // for loop
  while {true} do {  // endless loop for grabbing all vehicles (edited or spawned)
    {  
      _x addEventHandler ["HandleDamage", {  
        params ["_veh", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];  
        _veh setVariable ["vehPassed",TRUE];  // vehicle treated, no need to script more, locally
        if (_veh isKindOf "landVehicle") then {  // selecting land vehicles (no air, no ship)
          _damage = _damage min 0.86;  // don't override 0.86 because, more than that, vehicle will finally explode (In fact, this is a limit for the "AVERAGE" of all damaged parts, the final global damage. Limiting each part is safe but you can go higher for some parts if you limit lower some other ones. To be tested!)
          if (_hitPoint == "hitFuel") then {_damage = 0.5};  // set hitFuel AFTER _damage
        };  
        _damage  // Final value FOR THIS PART (0.86 at most for land veh, standard value for air and ship);
      }];  
    } forEach (vehicles select {isNil {_x getVariable "vehPassed"}});  // all non-treated vehicles
    sleep 2;  // damp the loop
  };
};

 

  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, pierremgi said:

getVariable "vehPassed"

Is there really any need for this type of loop now we have the MEH EntityCreated?

Just pass all vehicles of type on mission start to catch editor placed vehicles.

Then add MEH to capture any vehicles created during the mission.

Spoiler

//init.sqf

TAG_fnc_handleVehicleDamage = {
	params[ "_veh" ];
	
	if !( _veh isKindOf "LandVehicle" ) exitWith {};
	
	_veh addEventHandler ["HandleDamage", {  
		params ["_veh", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];  
		
		_damage = _damage min 0.86;  // don't override 0.86 because, more than that, vehicle will finally explode
		if (_hitPoint == "hitFuel") then {_damage = 0.5};  // set hitFuel AFTER _damage
		
		_damage  // Final value (0.86 at most for land veh).
	}];
};

waitUntil{ getClientStateNumber >= 10 /*"BRIEFING READ"*/ };

//Catch all editor placed vehicle
{
	[ _x ] call TAG_fnc_handleVehicleDamage;
}forEach vehicles;

//Catch any vehicles created during the mission
addMissionEventHandler[ "EntityCreated", {
	params[ "_entity" ];
	
	[ _entity ] call TAG_fnc_handleVehicleDamage;
}];

 

 

  • Like 1

Share this post


Link to post
Share on other sites
13 hours ago, Larrow said:

Is there really any need for this type of loop now we have the MEH EntityCreated?

Just pass all vehicles of type on mission start to catch editor placed vehicles.

Then add MEH to capture any vehicles created during the mission.

  Reveal hidden contents


//init.sqf

TAG_fnc_handleVehicleDamage = {
	params[ "_veh" ];
	
	if !( _veh isKindOf "LandVehicle" ) exitWith {};
	
	_veh addEventHandler ["HandleDamage", {  
		params ["_veh", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];  
		
		_damage = _damage min 0.86;  // don't override 0.86 because, more than that, vehicle will finally explode
		if (_hitPoint == "hitFuel") then {_damage = 0.5};  // set hitFuel AFTER _damage
		
		_damage  // Final value (0.86 at most for land veh).
	}];
};

waitUntil{ getClientStateNumber >= 10 /*"BRIEFING READ"*/ };

//Catch all editor placed vehicle
{
	[ _x ] call TAG_fnc_handleVehicleDamage;
}forEach vehicles;

//Catch any vehicles created during the mission
addMissionEventHandler[ "EntityCreated", {
	params[ "_entity" ];
	
	[ _entity ] call TAG_fnc_handleVehicleDamage;
}];

 

 

 

EntityCreated can evaluate very frequently, i would not use it unless needed. useful for debug/dev but not sure about further use

Share this post


Link to post
Share on other sites
13 hours ago, Larrow said:

Is there really any need for this type of loop now we have the MEH EntityCreated?

 

Yes! good point. A very powerful EH since 2.10.

 

13 hours ago, Larrow said:

waitUntil{ getClientStateNumber >= 10 /*"BRIEFING READ"*/ };

Not sure you need that, as all edited objects are initialized before init.sqf (SP or MP)

Share this post


Link to post
Share on other sites
10 hours ago, fn_Quiksilver said:

EntityCreated can evaluate very frequently,

I must admit I have not really played with it yet. Are you saying this updates frequently by things like foot prints, tyre tracks and inconsequential things like that?

 

10 hours ago, pierremgi said:

Not sure you need that, as all edited objects are initialized before init.sqf

I added it as a pause for things created by pre/postInit scripts so they would be handled via vehicles and not be missed by either. As you say it may not be needed.

Share this post


Link to post
Share on other sites

It was requested on the FT in 2017:
 

Quote

Requesting a mission event whenever an entity is created via script: createVehicle(Local), createAgent, createSimpleObject, createUnit, createTrigger

or is created by the engine (for example units created via createVehicleCrew).

Will help with mission analytics and performance diagnostics.

Also a mission event for entities deleted via script and via the engine


If @Dedmen stayed within the requested params then the EntityCreated MEH should not be an issue for Larrow's script. But the proof is in the eating....

Share this post


Link to post
Share on other sites

Yes MEH "entityCreated"  fires too often, imho.

Here is an extract of .rpt (diag_log in MEH). This MEH fires for environnent (eternal rabbits and snakes, pollen, leaves...) but also for each crater of bullet... and weapon holder once a unit dies, of course.

On the other hand, it's better than "onEachFramed" code, if any. You can drastically dim the occurrence by enableEnvironment [false,true]; eliminating all rabbits and bees...

and it's possible to filter the entities once the MEH fires.

craters could have a better place in MEH "projectileCreated", instead of "entityCreated".

 

Spoiler

10:32:43 Creating action map cache
10:32:43 [Agent 0x23aa6080,"Snake_random_F",1]
10:32:45 [164010: cl_feathers2.p3d,"FxWindPollen1",2]
10:32:45 [Agent 0x49464080,"Snake_random_F",3]
10:32:46 [Agent 0x59370180,"Snake_random_F",4]
10:32:46 Loading movesType CfgMovesRabbit_F
10:32:46 Creating action map cache
10:32:47 [Agent 0xb90d8140,"Rabbit_F",5]
10:32:48 [164016: cl_grass1.p3d,"FxWindGrass1",6]
10:32:50 [164022: cl_feathers2.p3d,"FxWindPollen1",7]
10:32:51 [Agent 0x32b801c0,"Rabbit_F",8]
10:32:53 [164029: cl_feathers2.p3d,"FxWindPollen1",9]
10:32:56 [Agent 0x46e820c0,"Rabbit_F",10]
10:32:56 [164032: cl_feathers2.p3d,"FxWindPollen1",11]
10:32:59 [164045: cl_grass2.p3d,"FxWindGrass2",12]
10:33:01 [Agent 0x4ab22140,"Rabbit_F",13]
10:33:02 [164055: cl_feathers2.p3d,"FxWindPollen1",14]
10:33:05 [164056: cl_grass1.p3d,"FxWindGrass1",15]
10:33:08 [164060: cl_feathers2.p3d,"FxWindPollen1",16]
10:33:10 [164063: cl_feathers2.p3d,"FxWindPollen1",17]
10:33:13 [164065: cl_grass2.p3d,"FxWindGrass2",18]
10:33:13 [164066: cl_grass2.p3d,"FxWindGrass2",19]
10:33:16 [164070: cl_feathers2.p3d,"FxWindPollen1",20]
10:33:19 [164072: cl_leaf2.p3d,"FxWindLeaf2",21]
10:33:19 [Agent 0x526bc140,"Rabbit_F",22]
10:33:22 Unknown attribute itemsCmd
10:33:22 Unknown attribute itemsCmd
10:33:22 [164074: cl_grass1.p3d,"FxWindGrass1",23]
10:33:22 [164075: cl_grass1.p3d,"FxWindGrass1",24]
10:33:25 [164077: cl_feathers2.p3d,"FxWindPollen1",25]
10:33:28 [164078: cl_feathers2.p3d,"FxWindPollen1",26]
10:33:30 [164081: cl_leaf.p3d,"FxWindLeaf1",27]
10:33:33 [164082: cl_grass1.p3d,"FxWindGrass1",28]
10:33:33 [164083: cl_grass1.p3d,"FxWindGrass1",29]
10:33:36 [164084: cl_grass1.p3d,"FxWindGrass1",30]
10:33:39 [164085: cl_grass2.p3d,"FxWindGrass2",31]
10:33:39 [164086: cl_grass2.p3d,"FxWindGrass2",32]
10:33:40 soldier[O_Soldier_TL_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:40 [O Alpha 1-1:1,"O_Soldier_TL_F",33]
10:33:40 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:40 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:40 [O Alpha 1-1:2,"O_Soldier_AT_F",34]
10:33:40 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:40 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:40 [O Alpha 1-1:3,"O_Soldier_AT_F",35]
10:33:40 [O Alpha 1-1:4,"O_Soldier_AAT_F",36]
10:33:42 [164102: cl_leaf3.p3d,"FxWindLeaf3",37]
10:33:43 soldier[O_V_Soldier_TL_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 soldier[O_V_Soldier_TL_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 [O Alpha 1-2:1,"O_V_Soldier_TL_ghex_F",38]
10:33:43 soldier[O_V_Soldier_JTAC_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 soldier[O_V_Soldier_JTAC_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 [O Alpha 1-2:2,"O_V_Soldier_JTAC_ghex_F",39]
10:33:43 soldier[O_V_Soldier_M_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 soldier[O_V_Soldier_M_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 [O Alpha 1-2:3,"O_V_Soldier_M_ghex_F",40]
10:33:43 soldier[O_V_Soldier_Exp_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 soldier[O_V_Soldier_Exp_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 [O Alpha 1-2:4,"O_V_Soldier_Exp_ghex_F",41]
10:33:43 soldier[O_V_Soldier_LAT_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 soldier[O_V_Soldier_LAT_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 [O Alpha 1-2:5,"O_V_Soldier_LAT_ghex_F",42]
10:33:43 soldier[O_V_Soldier_Medic_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 soldier[O_V_Soldier_Medic_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:43 [O Alpha 1-2:6,"O_V_Soldier_Medic_ghex_F",43]
10:33:45 [164121: cl_leaf3.p3d,"FxWindLeaf3",44]
10:33:46 [O Alpha 1-3:1,"O_G_Soldier_TL_F",45]
10:33:46 soldier[O_G_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:46 soldier[O_G_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:46 [O Alpha 1-3:2,"O_G_Soldier_AR_F",46]
10:33:46 [O Alpha 1-3:3,"O_G_Soldier_F",47]
10:33:46 soldier[O_G_Soldier_LAT2_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:46 soldier[O_G_Soldier_LAT2_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:46 [O Alpha 1-3:4,"O_G_Soldier_LAT2_F",48]
10:33:48 [164135: cl_leaf2.p3d,"FxWindLeaf2",49]
10:33:49 soldier[O_V_Soldier_TL_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 soldier[O_V_Soldier_TL_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 [O Alpha 1-4:1,"O_V_Soldier_TL_ghex_F",50]
10:33:49 soldier[O_V_Soldier_JTAC_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 soldier[O_V_Soldier_JTAC_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 [O Alpha 1-4:2,"O_V_Soldier_JTAC_ghex_F",51]
10:33:49 soldier[O_V_Soldier_M_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 soldier[O_V_Soldier_M_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 [O Alpha 1-4:3,"O_V_Soldier_M_ghex_F",52]
10:33:49 soldier[O_V_Soldier_Exp_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 soldier[O_V_Soldier_Exp_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 [O Alpha 1-4:4,"O_V_Soldier_Exp_ghex_F",53]
10:33:49 soldier[O_V_Soldier_LAT_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 soldier[O_V_Soldier_LAT_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 [O Alpha 1-4:5,"O_V_Soldier_LAT_ghex_F",54]
10:33:49 soldier[O_V_Soldier_Medic_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 soldier[O_V_Soldier_Medic_ghex_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:49 [O Alpha 1-4:6,"O_V_Soldier_Medic_ghex_F",55]
10:33:50 [164155: cl_grass1.p3d,"FxWindGrass1",56]
10:33:50 [164156: cl_grass1.p3d,"FxWindGrass1",57]
10:33:51 soldier[O_Soldier_TL_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:51 [O Alpha 1-5:1,"O_Soldier_TL_F",58]
10:33:51 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:51 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:51 [O Alpha 1-5:2,"O_Soldier_AT_F",59]
10:33:52 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:52 soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:33:52 [O Alpha 1-5:3,"O_Soldier_AT_F",60]
10:33:52 [O Alpha 1-5:4,"O_Soldier_AAT_F",61]
10:33:53 [164172: cl_feathers2.p3d,"FxWindPollen1",62]
10:33:56 [164173: cl_grass2.p3d,"FxWindGrass2",63]
10:33:59 [164175: cl_feathers2.p3d,"FxWindPollen1",64]
10:34:02 [164176: cl_grass2.p3d,"FxWindGrass2",65]
10:34:05 [164177: cl_feathers2.p3d,"FxWindPollen1",66]
10:34:10 [164182: cl_feathers2.p3d,"FxWindPollen1",67]
10:34:13 [164184: cl_feathers2.p3d,"FxWindPollen1",68]
10:34:16 [164187: cl_feathers2.p3d,"FxWindPollen1",69]
10:34:17 Unknown attribute itemsCmd
10:34:17 Unknown attribute itemsCmd
10:34:19 [164189: cl_grass2.p3d,"FxWindGrass2",70]
10:34:22 [164191: cl_grass2.p3d,"FxWindGrass2",71]
10:34:25 [164193: cl_grass1.p3d,"FxWindGrass1",72]
10:34:28 [164195: cl_feathers2.p3d,"FxWindPollen1",73]
10:34:30 [164198: cl_grass2.p3d,"FxWindGrass2",74]
10:34:33 [164200: cl_feathers2.p3d,"FxWindPollen1",75]
10:34:36 [164201: cl_feathers2.p3d,"FxWindPollen1",76]
10:34:39 [164202: cl_feathers2.p3d,"FxWindPollen1",77]
10:34:42 [164203: cl_grass1.p3d,"FxWindGrass1",78]
10:34:45 [164205: cl_feathers2.p3d,"FxWindPollen1",79]
10:34:48 [164207: cl_grass2.p3d,"FxWindGrass2",80]
10:34:50 [164209: cl_grass1.p3d,"FxWindGrass1",81]
10:34:53 [164210: cl_feathers2.p3d,"FxWindPollen1",82]
10:34:56 [164214: cl_feathers2.p3d,"FxWindPollen1",83]
10:34:59 [164240: cl_feathers2.p3d,"FxWindPollen1",84]
10:35:02 [164264: cl_grass1.p3d,"FxWindGrass1",85]
10:35:05 [164286: cl_feathers2.p3d,"FxWindPollen1",86]
10:35:08 [164305: cl_feathers2.p3d,"FxWindPollen1",87]
10:35:10 [164310: cl_feathers2.p3d,"FxWindPollen1",88]
10:35:13 [164320: cl_feathers2.p3d,"FxWindPollen1",89]
10:35:16 [164346: cl_feathers2.p3d,"FxWindPollen1",90]
10:35:17 [Agent 0x59370180,"Snake_random_F",91]
10:35:19 [Agent 0x49464180,"Snake_random_F",92]
10:35:19 [164371: cl_feathers2.p3d,"FxWindPollen1",93]
10:35:22 [Agent 0x32b80180,"Rabbit_F",94]
10:35:22 [164395: cl_feathers2.p3d,"FxWindPollen1",95]
10:35:25 [164418: cl_feathers2.p3d,"FxWindPollen1",96]
10:35:28 [164441: cl_feathers2.p3d,"FxWindPollen1",97]
10:35:29 [Agent 0x23aa6100,"Snake_random_F",98]
10:35:30 [164463: cl_feathers2.p3d,"FxWindPollen1",99]
10:35:31 [Agent 0x59370100,"Snake_random_F",100]
10:35:33 [164485: cl_leaf3.p3d,"FxWindLeaf3",101]
10:35:36 [164494: cl_leaf.p3d,"FxWindLeaf1",102]
10:35:39 [164495: cl_grass2.p3d,"FxWindGrass2",103]
10:35:39 [164496: cl_grass2.p3d,"FxWindGrass2",104]
10:35:41 [Agent 0x526d80c0,"Rabbit_F",105]
10:35:41 [Agent 0x47804180,"Snake_random_F",106]
10:35:42 [164504: cl_feathers2.p3d,"FxWindPollen1",107]
10:35:45 [164505: cl_grass2.p3d,"FxWindGrass2",108]
10:35:48 [164507: cl_grass1.p3d,"FxWindGrass1",109]
10:35:48 [164508: cl_grass1.p3d,"FxWindGrass1",110]
10:35:50 [164511: cl_leaf2.p3d,"FxWindLeaf2",111]
10:35:53 [164515: cl_grass2.p3d,"FxWindGrass2",112]
10:35:56 [164525: cl_feathers2.p3d,"FxWindPollen1",113]
10:35:57 Unknown attribute itemsCmd
10:35:57 Unknown attribute itemsCmd
10:35:59 [164542: cl_feathers2.p3d,"FxWindPollen1",114]
10:36:02 [164563: cl_feathers2.p3d,"FxWindPollen1",115]
10:36:05 [164585: cl_feathers2.p3d,"FxWindPollen1",116]
10:36:08 [164593: cl_feathers2.p3d,"FxWindPollen1",117]
10:36:10 [164596: cl_feathers2.p3d,"FxWindPollen1",118]
10:36:13 [164617: cl_feathers2.p3d,"FxWindPollen1",119]
10:36:15 [Agent 0xb90d80c0,"Snake_random_F",120]
10:36:16 [164640: cl_feathers2.p3d,"FxWindPollen1",121]
10:36:19 [164662: cl_grass2.p3d,"FxWindGrass2",122]
10:36:19 [164663: cl_grass2.p3d,"FxWindGrass2",123]
10:36:22 [164686: cl_feathers2.p3d,"FxWindPollen1",124]
10:36:25 [164691: cl_grass1.p3d,"FxWindGrass1",125]
10:36:28 [164700: cl_feathers2.p3d,"FxWindPollen1",126]
10:36:28 [Agent 0x836081c0,"Snake_random_F",127]
10:36:30 [164719: cl_grass2.p3d,"FxWindGrass2",128]
10:36:30 [164720: cl_grass2.p3d,"FxWindGrass2",129]
10:36:31 [Agent 0x593701c0,"Snake_random_F",130]
10:36:33 [164727: cl_feathers2.p3d,"FxWindPollen1",131]
10:36:36 [164740: cl_feathers2.p3d,"FxWindPollen1",132]
10:36:39 [164753: cl_leaf3.p3d,"FxWindLeaf3",133]
10:36:42 [164771: cl_grass2.p3d,"FxWindGrass2",134]
10:36:42 [164772: cl_grass2.p3d,"FxWindGrass2",135]
10:36:45 [164787: cl_feathers2.p3d,"FxWindPollen1",136]
10:36:48 [164791: cl_grass2.p3d,"FxWindGrass2",137]
10:36:48 Unknown attribute itemsCmd
10:36:48 Unknown attribute itemsCmd
10:36:50 [164792: cl_feathers2.p3d,"FxWindPollen1",138]
10:36:53 [164793: cl_feathers2.p3d,"FxWindPollen1",139]
10:36:56 [164794: cl_grass1.p3d,"FxWindGrass1",140]
10:36:59 [164796: cl_grass2.p3d,"FxWindGrass2",141]
10:36:59 [164797: cl_grass2.p3d,"FxWindGrass2",142]
10:37:02 [164800: cl_grass1.p3d,"FxWindGrass1",143]
10:37:02 [164801: cl_grass1.p3d,"FxWindGrass1",144]
10:37:05 [164812: cl_feathers2.p3d,"FxWindPollen1",145]
10:37:07 [164819: krater.p3d,"#crater",146]
10:37:07 [164821: krater.p3d,"#crater",147]
10:37:08 [164822: cl_feathers2.p3d,"FxWindPollen1",148]
10:37:08 Unknown attribute itemsCmd
10:37:08 Unknown attribute itemsCmd
10:37:10 [Agent 0x2250c080,"Rabbit_F",149]
10:37:10 [164827: cl_feathers2.p3d,"FxWindPollen1",150]
10:37:11 [164829: krater.p3d,"#crater",151]
10:37:12 [164832: krater.p3d,"#crater",152]
10:37:12 [164833: krater.p3d,"#crater",153]
10:37:13 [164835: krater.p3d,"#crater",154]
10:37:13 [164836: krater.p3d,"#crater",155]
10:37:13 [164839: <no shape>,"#crateronvehicle",156]
10:37:13 [164840: cl_feathers2.p3d,"FxWindPollen1",157]
10:37:13 [164841: krater.p3d,"#crater",158]
10:37:14 [164843: <no shape>,"#crateronvehicle",159]
10:37:15 [164845: <no shape>,"#crateronvehicle",160]
10:37:15 [164846: krater.p3d,"#crater",161]
10:37:15 [Agent 0x835ec100,"Rabbit_F",162]
10:37:15 [164848: krater.p3d,"#crater",163]
10:37:15 [164850: krater.p3d,"#crater",164]
10:37:15 [164851: krater.p3d,"#crater",165]
10:37:16 [164853: cl_grass1.p3d,"FxWindGrass1",166]
10:37:19 [164855: krater.p3d,"#crater",167]
10:37:19 [164856: cl_feathers2.p3d,"FxWindPollen1",168]
10:37:20 [164858: krater.p3d,"#crater",169]
10:37:22 [164861: cl_feathers2.p3d,"FxWindPollen1",170]
10:37:24 [164864: krater.p3d,"#crater",171]
10:37:24 [164865: krater.p3d,"#crater",172]
10:37:24 [Agent 0x50a8c100,"Rabbit_F",173]
10:37:25 [164867: cl_feathers2.p3d,"FxWindPollen1",174]
10:37:26 [164871: krater.p3d,"#crater",175]
10:37:26 [164872: krater.p3d,"#crater",176]
10:37:27 [164874: krater.p3d,"#crater",177]
10:37:28 [164875: cl_feathers2.p3d,"FxWindPollen1",178]
10:37:28 [164877: krater.p3d,"#crater",179]
10:37:31 [164878: cl_feathers2.p3d,"FxWindPollen1",180]
10:37:31 [164879: krater.p3d,"#crater",181]
10:37:32 [164882: <no shape>,"#crateronvehicle",182]
10:37:33 [164884: krater.p3d,"#crater",183]
10:37:33 [164886: cl_feathers2.p3d,"FxWindPollen1",184]
10:37:33 [164887: krater.p3d,"#crater",185]
10:37:33 [164888: <no shape>,"#crateronvehicle",186]
10:37:33 [164889: <no shape>,"#crateronvehicle",187]
10:37:33 [164890: <no shape>,"#crateronvehicle",188]
10:37:34 [164893: krater.p3d,"#crater",189]
10:37:34 [164894: krater.p3d,"#crater",190]
10:37:34 [164896: <no shape>,"#crateronvehicle",191]
10:37:34 [164897: <no shape>,"#crateronvehicle",192]
10:37:34 [164898: krater.p3d,"#crater",193]
10:37:34 [164899: krater.p3d,"#crater",194]
10:37:35 [164901: krater.p3d,"#crater",195]
10:37:35 [164903: krater.p3d,"#crater",196]
10:37:35 [164906: krater.p3d,"#crater",197]
10:37:36 [164907: cl_feathers2.p3d,"FxWindPollen1",198]
10:37:39 [164910: cl_grass1.p3d,"FxWindGrass1",199]
10:37:40 [164913: krater.p3d,"#crater",200]
10:37:41 [164915: krater.p3d,"#crater",201]
10:37:41 [164917: krater.p3d,"#crater",202]
10:37:41 [164918: krater.p3d,"#crater",203]
10:37:41 [164920: krater.p3d,"#crater",204]
10:37:42 [164922: <no shape>,"#crateronvehicle",205]
10:37:42 [164924: <no shape>,"#crateronvehicle",206]
10:37:42 [164926: krater.p3d,"#crater",207]
10:37:42 [164928: <no shape>,"#crateronvehicle",208]
10:37:42 [164929: <no shape>,"#crateronvehicle",209]
10:37:42 [164931: krater.p3d,"#crater",210]
10:37:42 [164932: <no shape>,"#crateronvehicle",211]
10:37:42 [164933: krater.p3d,"#crater",212]
10:37:42 [164935: <no shape>,"#crateronvehicle",213]
10:37:42 [164936: krater.p3d,"#crater",214]
10:37:42 [164939: cl_feathers2.p3d,"FxWindPollen1",215]
10:37:42 [164940: krater.p3d,"#crater",216]
10:37:42 [164941: <no shape>,"#crateronvehicle",217]
10:37:42 [164942: <no shape>,"#crateronvehicle",218]
10:37:42 [164943: <no shape>,"#crateronvehicle",219]
10:37:42 [164944: krater.p3d,"#crater",220]
10:37:42 [164945: <no shape>,"#crateronvehicle",221]
10:37:42 [164946: krater.p3d,"#crater",222]
10:37:43 [164948: <no shape>,"#crateronvehicle",223]
10:37:43 [164949: krater.p3d,"#crater",224]
10:37:43 [164951: krater.p3d,"#crater",225]
10:37:43 [164953: <no shape>,"#crateronvehicle",226]
10:37:43 [164955: <no shape>,"#crateronvehicle",227]
10:37:43 [164957: <no shape>,"#crateronvehicle",228]
10:37:43 [164958: <no shape>,"#crateronvehicle",229]
10:37:43 [164959: krater.p3d,"#crater",230]
10:37:43 [164960: <no shape>,"#crateronvehicle",231]
10:37:43 [164962: krater.p3d,"#crater",232]
10:37:43 [164964: <no shape>,"#crateronvehicle",233]
10:37:43 [164965: krater.p3d,"#crater",234]
10:37:43 [164967: <no shape>,"#crateronvehicle",235]
10:37:43 [164968: krater.p3d,"#crater",236]
10:37:44 [164970: <no shape>,"#crateronvehicle",237]
10:37:44 [164971: <no shape>,"#crateronvehicle",238]
10:37:44 [164972: krater.p3d,"#crater",239]
10:37:44 [164973: krater.p3d,"#crater",240]
10:37:44 [164975: <no shape>,"#crateronvehicle",241]
10:37:45 [164976: cl_feathers2.p3d,"FxWindPollen1",242]
10:37:46 [164979: <no shape>,"#crateronvehicle",243]
10:37:46 [164980: <no shape>,"#crateronvehicle",244]
10:37:49 [164984: <no shape>,"#crateronvehicle",245]
10:37:50 [164985: <no shape>,"#crateronvehicle",246]
10:37:50 [164987: <no shape>,"#crateronvehicle",247]
10:37:50 [164988: <no shape>,"#crateronvehicle",248]
10:37:51 [164989: cl_feathers2.p3d,"FxWindPollen1",249]
10:37:52 [164991: krater.p3d,"#crater",250]
10:37:53 [164993: <no shape>,"#crateronvehicle",251]
10:37:53 [164994: krater.p3d,"#crater",252]
10:37:53 [164996: krater.p3d,"#crater",253]
10:37:53 [164997: <no shape>,"#crateronvehicle",254]
10:37:53 [164998: cl_feathers2.p3d,"FxWindPollen1",255]
10:37:55 [165001: krater.p3d,"#crater",256]
10:37:55 [165002: <no shape>,"#crateronvehicle",257]
10:37:56 [165004: krater.p3d,"#crater",258]
10:37:56 [165006: krater.p3d,"#crater",259]
10:37:56 [165008: krater.p3d,"#crater",260]
10:37:56 [165010: krater.p3d,"#crater",261]
10:37:56 [165012: krater.p3d,"#crater",262]
10:37:56 [165014: <no shape>,"#crateronvehicle",263]
10:37:56 [165015: <no shape>,"#crateronvehicle",264]
10:37:56 [165017: <no shape>,"#crateronvehicle",265]
10:37:56 [165018: krater.p3d,"#crater",266]
10:37:56 [165019: cl_feathers2.p3d,"FxWindPollen1",267]
10:37:56 [165020: <no shape>,"#crateronvehicle",268]
10:37:56 [165021: krater.p3d,"#crater",269]
10:37:57 [165024: krater.p3d,"#crater",270]
10:37:57 [165025: <no shape>,"#crateronvehicle",271]
10:37:57 [165026: <no shape>,"#crateronvehicle",272]
10:37:57 [165028: <no shape>,"#crateronvehicle",273]
10:37:57 [165030: <no shape>,"#crateronvehicle",274]
10:37:57 [165031: <no shape>,"#crateronvehicle",275]
10:37:57 [165032: <no shape>,"#crateronvehicle",276]
10:37:57 [165033: krater.p3d,"#crater",277]
10:37:57 [165034: krater.p3d,"#crater",278]
10:37:57 [165035: krater.p3d,"#crater",279]
10:37:57 [165036: <no shape>,"#crateronvehicle",280]
10:37:57 [165037: <no shape>,"#crateronvehicle",281]
10:37:58 [165038: krater.p3d,"#crater",282]
10:37:59 [165040: krater.p3d,"#crater",283]
10:37:59 [165041: cl_feathers2.p3d,"FxWindPollen1",284]
10:37:59 [165043: krater.p3d,"#crater",285]
10:38:00 [165044: krater.p3d,"#crater",286]
10:38:01 [165046: <no shape>,"#crateronvehicle",287]
10:38:02 [165050: <no shape>,"#crateronvehicle",288]
10:38:02 [165051: cl_grass1.p3d,"FxWindGrass1",289]
10:38:02 [165053: krater.p3d,"#crater",290]
10:38:03 [165056: <no shape>,"#crateronvehicle",291]
10:38:03 [165059: <no shape>,"#crateronvehicle",292]
10:38:03 [165061: krater.p3d,"#crater",293]
10:38:03 [165063: krater.p3d,"#crater",294]
10:38:04 [165065: krater.p3d,"#crater",295]
10:38:04 [165066: <no shape>,"#crateronvehicle",296]
10:38:04 [165068: krater.p3d,"#crater",297]
10:38:04 [165069: <no shape>,"#crateronvehicle",298]
10:38:05 [165072: cl_feathers2.p3d,"FxWindPollen1",299]
10:38:07 [165085: krater.p3d,"#crater",300]
10:38:08 [165089: cl_leaf3.p3d,"FxWindLeaf3",301]
10:38:09 [165095: krater.p3d,"#crater",302]
10:38:09 [165098: krater.p3d,"#crater",303]
10:38:10 [165105: krater.p3d,"#crater",304]
10:38:10 [165106: <no shape>,"#crateronvehicle",305]
10:38:10 [165107: <no shape>,"#crateronvehicle",306]
10:38:10 [165108: krater.p3d,"#crater",307]
10:38:10 [165110: krater.p3d,"#crater",308]
10:38:11 [165111: cl_grass1.p3d,"FxWindGrass1",309]
10:38:11 [165112: cl_grass1.p3d,"FxWindGrass1",310]
10:38:11 [165114: krater.p3d,"#crater",311]
10:38:11 [165115: krater.p3d,"#crater",312]
10:38:11 [165117: <no shape>,"#crateronvehicle",313]
10:38:11 [165118: <no shape>,"#crateronvehicle",314]
10:38:11 [165119: <no shape>,"#crateronvehicle",315]
10:38:12 [165121: krater.p3d,"#crater",316]
10:38:12 [165123: krater.p3d,"#crater",317]
10:38:12 [165125: <no shape>,"#crateronvehicle",318]
10:38:12 [165127: krater.p3d,"#crater",319]
10:38:13 [165129: krater.p3d,"#crater",320]
10:38:13 [165131: krater.p3d,"#crater",321]
10:38:13 [165133: krater.p3d,"#crater",322]
10:38:13 [165134: <no shape>,"#crateronvehicle",323]
10:38:13 [165136: krater.p3d,"#crater",324]
10:38:13 [165138: <no shape>,"#crateronvehicle",325]
10:38:13 [165140: krater.p3d,"#crater",326]
10:38:13 [165141: krater.p3d,"#crater",327]
10:38:13 [165142: cl_leaf2.p3d,"FxWindLeaf2",328]
10:38:14 [165144: krater.p3d,"#crater",329]
10:38:14 [165145: <no shape>,"#crateronvehicle",330]
10:38:14 [165147: krater.p3d,"#crater",331]
10:38:14 [165149: krater.p3d,"#crater",332]
10:38:14 [165151: <no shape>,"#crateronvehicle",333]
10:38:14 [165152: krater.p3d,"#crater",334]
10:38:16 [165155: krater.p3d,"#crater",335]
10:38:16 [165156: cl_grass2.p3d,"FxWindGrass2",336]
10:38:16 [165157: cl_grass2.p3d,"FxWindGrass2",337]
10:38:18 [165159: krater.p3d,"#crater",338]
10:38:19 [165161: krater.p3d,"#crater",339]
10:38:19 [165163: krater.p3d,"#crater",340]
10:38:19 [165164: cl_grass1.p3d,"FxWindGrass1",341]
10:38:19 [165165: cl_grass1.p3d,"FxWindGrass1",342]
10:38:19 [165167: krater.p3d,"#crater",343]
10:38:20 [165169: krater.p3d,"#crater",344]
10:38:20 [165171: krater.p3d,"#crater",345]
10:38:20 [165173: krater.p3d,"#crater",346]
10:38:20 [165175: krater.p3d,"#crater",347]
10:38:21 [165177: krater.p3d,"#crater",348]
10:38:21 [165179: krater.p3d,"#crater",349]
10:38:21 [165181: <no shape>,"#crateronvehicle",350]
10:38:21 [165182: krater.p3d,"#crater",351]
10:38:22 [165183: cl_grass1.p3d,"FxWindGrass1",352]
10:38:22 [165184: <no shape>,"#crateronvehicle",353]
10:38:25 [165187: krater.p3d,"#crater",354]
10:38:25 [165188: krater.p3d,"#crater",355]
10:38:25 [165189: cl_feathers2.p3d,"FxWindPollen1",356]
10:38:25 [165192: krater.p3d,"#crater",357]
10:38:25 [165193: <no shape>,"#crateronvehicle",358]
10:38:25 [165194: krater.p3d,"#crater",359]
10:38:25 [165196: krater.p3d,"#crater",360]
10:38:25 [165197: <no shape>,"#crateronvehicle",361]
10:38:25 [165198: krater.p3d,"#crater",362]
10:38:26 [165200: krater.p3d,"#crater",363]
10:38:26 [165203: <no shape>,"#crateronvehicle",364]
10:38:26 [165205: krater.p3d,"#crater",365]
10:38:26 [165206: <no shape>,"#crateronvehicle",366]
10:38:26 [165208: <no shape>,"#crateronvehicle",367]
10:38:26 [165209: krater.p3d,"#crater",368]
10:38:26 [165211: krater.p3d,"#crater",369]
10:38:27 [165212: krater.p3d,"#crater",370]
10:38:27 [165215: krater.p3d,"#crater",371]
10:38:27 [165216: <no shape>,"#crateronvehicle",372]
10:38:27 [165218: krater.p3d,"#crater",373]
10:38:27 [165220: krater.p3d,"#crater",374]
10:38:27 [165221: <no shape>,"#crateronvehicle",375]
10:38:28 [165224: krater.p3d,"#crater",376]
10:38:28 [165226: <no shape>,"#crateronvehicle",377]
10:38:28 [165229: krater.p3d,"#crater",378]
10:38:28 [165230: krater.p3d,"#crater",379]
10:38:28 [165231: krater.p3d,"#crater",380]
10:38:28 [165232: cl_leaf.p3d,"FxWindLeaf1",381]
10:38:28 [165233: <no shape>,"#crateronvehicle",382]
10:38:28 [165235: <no shape>,"#crateronvehicle",383]
10:38:28 [165237: krater.p3d,"#crater",384]
10:38:28 [165239: <no shape>,"#crateronvehicle",385]
10:38:28 [165241: krater.p3d,"#crater",386]
10:38:28 [165243: krater.p3d,"#crater",387]
10:38:28 [165245: <no shape>,"#crateronvehicle",388]
10:38:28 [165246: <no shape>,"#crateronvehicle",389]
10:38:28 [165248: <no shape>,"#crateronvehicle",390]
10:38:28 [165249: krater.p3d,"#crater",391]
10:38:28 [165251: <no shape>,"#crateronvehicle",392]
10:38:28 [165252: <no shape>,"#crateronvehicle",393]
10:38:28 [165253: krater.p3d,"#crater",394]
10:38:28 [165254: krater.p3d,"#crater",395]
10:38:29 [165256: <no shape>,"#crateronvehicle",396]
10:38:29 [165257: krater.p3d,"#crater",397]
10:38:29 [165260: <no shape>,"#crateronvehicle",398]
10:38:29 [165262: krater.p3d,"#crater",399]
10:38:29 [165263: <no shape>,"#crateronvehicle",400]
10:38:29 [165264: krater.p3d,"#crater",401]
10:38:29 [165265: krater.p3d,"#crater",402]
10:38:29 [165267: <no shape>,"#crateronvehicle",403]
10:38:29 [165271: <no shape>,"#crateronvehicle",404]
10:38:29 [165272: krater.p3d,"#crater",405]
10:38:29 [165273: krater.p3d,"#crater",406]
10:38:29 [165274: <no shape>,"#crateronvehicle",407]
10:38:29 [165276: <no shape>,"#crateronvehicle",408]
10:38:29 [165280: <no shape>,"#crateronvehicle",409]
10:38:29 [165281: krater.p3d,"#crater",410]
10:38:29 [165284: <no shape>,"#crateronvehicle",411]
10:38:29 [165286: <no shape>,"#crateronvehicle",412]
10:38:29 [165287: krater.p3d,"#crater",413]
10:38:30 [165288: <no shape>,"#crateronvehicle",414]
10:38:30 [165289: <no shape>,"#crateronvehicle",415]
10:38:30 [165290: <no shape>,"#crateronvehicle",416]
10:38:30 [165291: krater.p3d,"#crater",417]
10:38:30 Ragdoll - loading of ragdoll source "Soldier" started.
10:38:30 Ragdoll - loading of ragdoll source "Soldier" finished successfully.
10:38:30 [165294: <no shape>,"#crateronvehicle",418]
10:38:30 [165296: <no shape>,"#crateronvehicle",419]
10:38:30 [165298: <no shape>,"#crateronvehicle",420]
10:38:30 [165300: krater.p3d,"#crater",421]
10:38:30 [165301: <no shape>,"#crateronvehicle",422]
10:38:30 [165302: krater.p3d,"#crater",423]
10:38:30 [165304: krater.p3d,"#crater",424]
10:38:31 [165306: cl_grass1.p3d,"FxWindGrass1",425]
10:38:31 [165307: cl_grass1.p3d,"FxWindGrass1",426]
10:38:31 [165308: krater.p3d,"#crater",427]
10:38:31 [165310: <no shape>,"#crateronvehicle",428]
10:38:31 [165311: <no shape>,"#crateronvehicle",429]
10:38:31 [165314: krater.p3d,"#crater",430]
10:38:31 [165315: <no shape>,"#crateronvehicle",431]
10:38:31 [165317: <no shape>,"#crateronvehicle",432]
10:38:31 [165318: krater.p3d,"#crater",433]
10:38:31 [165319: krater.p3d,"#crater",434]
10:38:31 [165322: <no shape>,"#crateronvehicle",435]
10:38:31 [165324: <no shape>,"#crateronvehicle",436]
10:38:31 [165325: <no shape>,"#crateronvehicle",437]
10:38:31 [165326: <no shape>,"#crateronvehicle",438]
10:38:31 [165329: krater.p3d,"#crater",439]
10:38:31 [165330: <no shape>,"#crateronvehicle",440]
10:38:31 [165334: krater.p3d,"#crater",441]
10:38:31 [165335: <no shape>,"#crateronvehicle",442]
10:38:32 [165336: <no shape>,"#crateronvehicle",443]
10:38:32 [165337: krater.p3d,"#crater",444]
10:38:32 [165339: krater.p3d,"#crater",445]
10:38:32 [165343: <no shape>,"#crateronvehicle",446]
10:38:32 [165344: <no shape>,"#crateronvehicle",447]
10:38:32 [165345: <no shape>,"#crateronvehicle",448]
10:38:32 [165347: krater.p3d,"#crater",449]
10:38:32 [165349: krater.p3d,"#crater",450]
10:38:32 [165351: <no shape>,"#crateronvehicle",451]
10:38:32 [165352: <no shape>,"#crateronvehicle",452]
10:38:32 [165354: krater.p3d,"#crater",453]
10:38:32 [165355: <no shape>,"#crateronvehicle",454]
10:38:32 [165358: <no shape>,"#crateronvehicle",455]
10:38:32 [165359: <no shape>,"#crateronvehicle",456]
10:38:32 [165360: krater.p3d,"#crater",457]
10:38:32 [165361: <no shape>,"#crateronvehicle",458]
10:38:32 [165362: <no shape>,"#crateronvehicle",459]
10:38:32 [165363: <no shape>,"#crateronvehicle",460]
10:38:33 [165365: <no shape>,"#crateronvehicle",461]
10:38:33 [165366: <no shape>,"#crateronvehicle",462]
10:38:33 [165368: cl_feathers2.p3d,"FxWindPollen1",463]
10:38:33 [165369: <no shape>,"#crateronvehicle",464]
10:38:34 [165371: krater.p3d,"#crater",465]
10:38:34 [165374: <no shape>,"#crateronvehicle",466]
10:38:34 [165375: <no shape>,"#crateronvehicle",467]
10:38:35 [165377: krater.p3d,"#crater",468]
10:38:35 [165379: krater.p3d,"#crater",469]
10:38:35 [165381: <no shape>,"#crateronvehicle",470]
10:38:36 [165383: <no shape>,"#crateronvehicle",471]
10:38:36 [165385: <no shape>,"#crateronvehicle",472]
10:38:36 [165387: krater.p3d,"#crater",473]
10:38:36 [165389: cl_grass2.p3d,"FxWindGrass2",474]
10:38:36 [165390: <no shape>,"#crateronvehicle",475]
10:38:36 [165392: <no shape>,"#crateronvehicle",476]
10:38:36 [165394: <no shape>,"#crateronvehicle",477]
10:38:37 [165396: <no shape>,"#crateronvehicle",478]
10:38:37 [165398: <no shape>,"#crateronvehicle",479]
10:38:37 [165400: <no shape>,"#crateronvehicle",480]
10:38:37 [165402: <no shape>,"#crateronvehicle",481]
10:38:37 [165404: <no shape>,"#crateronvehicle",482]
10:38:37 [165407: <no shape>,"#crateronvehicle",483]
10:38:37 [165408: krater.p3d,"#crater",484]
10:38:38 [165409: krater.p3d,"#crater",485]
10:38:38 [165411: <no shape>,"#crateronvehicle",486]
10:38:38 [165413: <no shape>,"#crateronvehicle",487]
10:38:38 [165415: <no shape>,"#crateronvehicle",488]
10:38:38 [165417: <no shape>,"#crateronvehicle",489]
10:38:38 [165419: <no shape>,"#crateronvehicle",490]
10:38:39 [165422: <no shape>,"#crateronvehicle",491]
10:38:39 [165423: krater.p3d,"#crater",492]
10:38:39 [165424: krater.p3d,"#crater",493]
10:38:39 [165426: <no shape>,"#crateronvehicle",494]
10:38:39 [165428: <no shape>,"#crateronvehicle",495]
10:38:39 [165429: cl_feathers2.p3d,"FxWindPollen1",496]
10:38:39 [165432: <no shape>,"#crateronvehicle",497]
10:38:39 [165434: <no shape>,"#crateronvehicle",498]
10:38:40 [165436: <no shape>,"#crateronvehicle",499]
10:38:40 [165439: <no shape>,"#crateronvehicle",500]
10:38:40 [165441: <no shape>,"#crateronvehicle",501]
10:38:40 [165444: <no shape>,"#crateronvehicle",502]
10:38:40 [165447: <no shape>,"#crateronvehicle",503]
10:38:41 [165449: krater.p3d,"#crater",504]
10:38:42 [165451: <no shape>,"#crateronvehicle",505]
10:38:42 [29316aec100# 165458: dummyweapon.p3d,"WeaponHolderSimulated",506]
10:38:42 [165459: cl_feathers2.p3d,"FxWindPollen1",507]
10:38:42 [165461: krater.p3d,"#crater",508]
10:38:43 [165463: <no shape>,"#crateronvehicle",509]
10:38:43 [165464: krater.p3d,"#crater",510]
10:38:43 [165466: <no shape>,"#crateronvehicle",511]
10:38:43 [165467: <no shape>,"#crateronvehicle",512]
10:38:43 [165468: <no shape>,"#crateronvehicle",513]
10:38:43 [165469: krater.p3d,"#crater",514]
10:38:43 [165471: krater.p3d,"#crater",515]
10:38:44 [165473: krater.p3d,"#crater",516]
10:38:44 [165475: krater.p3d,"#crater",517]
10:38:44 [165478: krater.p3d,"#crater",518]
10:38:45 [165480: <no shape>,"#crateronvehicle",519]
10:38:45 [165482: cl_feathers2.p3d,"FxWindPollen1",520]
10:38:45 [165483: krater.p3d,"#crater",521]
10:38:46 [165485: <no shape>,"#crateronvehicle",522]
10:38:46 [165486: <no shape>,"#crateronvehicle",523]
10:38:46 [165487: krater.p3d,"#crater",524]
10:38:46 [29357667580# 165489: dummyweapon.p3d,"WeaponHolderSimulated",525]
10:38:46 [29357666080# 165490: dummyweapon.p3d,"WeaponHolderSimulated",526]
10:38:48 [165494: cl_feathers2.p3d,"FxWindPollen1",527]
10:38:49 [NOID blood_splash.p3d,"#slop",528]
10:38:51 [165496: cl_feathers2.p3d,"FxWindPollen1",529]
10:38:53 [165500: cl_feathers2.p3d,"FxWindPollen1",530]
10:38:54 [NOID blood_splash.p3d,"#slop",531]
10:38:56 [165513: krater.p3d,"#crater",532]
10:38:56 [165514: cl_leaf3.p3d,"FxWindLeaf3",533]
10:38:57 [165519: krater.p3d,"#crater",534]
10:38:57 [165523: <no shape>,"#crateronvehicle",535]
10:38:57 [165525: <no shape>,"#crateronvehicle",536]
10:38:57 [165526: <no shape>,"#crateronvehicle",537]
10:38:57 [165527: <no shape>,"#crateronvehicle",538]
10:38:57 [165530: krater.p3d,"#crater",539]
10:38:57 [165531: <no shape>,"#crateronvehicle",540]
10:38:58 [165532: krater.p3d,"#crater",541]
10:38:58 [165534: krater.p3d,"#crater",542]
10:38:58 [165537: krater.p3d,"#crater",543]
10:38:58 [165540: krater.p3d,"#crater",544]
10:38:59 [165542: <no shape>,"#crateronvehicle",545]
10:38:59 [165544: krater.p3d,"#crater",546]
10:38:59 [165545: cl_grass1.p3d,"FxWindGrass1",547]
10:38:59 [165546: cl_grass1.p3d,"FxWindGrass1",548]
10:38:59 [165548: <no shape>,"#crateronvehicle",549]
10:38:59 [165550: <no shape>,"#crateronvehicle",550]
10:38:59 [165551: <no shape>,"#crateronvehicle",551]
10:38:59 [165553: krater.p3d,"#crater",552]
10:39:00 [165555: krater.p3d,"#crater",553]
10:39:00 [165557: krater.p3d,"#crater",554]
10:39:00 [165559: <no shape>,"#crateronvehicle",555]
10:39:00 [165560: <no shape>,"#crateronvehicle",556]
10:39:00 [165562: <no shape>,"#crateronvehicle",557]
10:39:01 [165564: <no shape>,"#crateronvehicle",558]
10:39:01 [165565: <no shape>,"#crateronvehicle",559]
10:39:01 [165567: krater.p3d,"#crater",560]
10:39:01 [165568: <no shape>,"#crateronvehicle",561]
10:39:02 [165570: <no shape>,"#crateronvehicle",562]
10:39:02 [165571: <no shape>,"#crateronvehicle",563]
10:39:02 [165572: cl_grass1.p3d,"FxWindGrass1",564]
10:39:03 [165575: <no shape>,"#crateronvehicle",565]
10:39:03 [165576: krater.p3d,"#crater",566]
10:39:03 [165578: <no shape>,"#crateronvehicle",567]
10:39:03 [165579: <no shape>,"#crateronvehicle",568]
10:39:03 [165580: <no shape>,"#crateronvehicle",569]
10:39:04 [165581: krater.p3d,"#crater",570]
10:39:04 [165582: <no shape>,"#crateronvehicle",571]
10:39:04 [165583: krater.p3d,"#crater",572]
10:39:04 [165585: <no shape>,"#crateronvehicle",573]
10:39:04 [165586: <no shape>,"#crateronvehicle",574]
10:39:04 [165588: <no shape>,"#crateronvehicle",575]
10:39:04 [165589: <no shape>,"#crateronvehicle",576]
10:39:04 [165591: <no shape>,"#crateronvehicle",577]
10:39:05 [165593: cl_feathers2.p3d,"FxWindPollen1",578]
10:39:05 [165594: <no shape>,"#crateronvehicle",579]
10:39:05 [165597: <no shape>,"#crateronvehicle",580]
10:39:05 [165598: <no shape>,"#crateronvehicle",581]
10:39:06 [165600: krater.p3d,"#crater",582]
10:39:06 [165603: <no shape>,"#crateronvehicle",583]
10:39:06 [165604: krater.p3d,"#crater",584]
10:39:06 [165605: krater.p3d,"#crater",585]
10:39:06 [165606: krater.p3d,"#crater",586]
10:39:06 [165609: <no shape>,"#crateronvehicle",587]
10:39:07 [165613: krater.p3d,"#crater",588]
10:39:07 [165615: krater.p3d,"#crater",589]
10:39:07 [165617: <no shape>,"#crateronvehicle",590]
10:39:07 [165619: krater.p3d,"#crater",591]
10:39:07 [165620: <no shape>,"#crateronvehicle",592]
10:39:07 [165621: krater.p3d,"#crater",593]
10:39:08 [165623: <no shape>,"#crateronvehicle",594]
10:39:08 [165624: <no shape>,"#crateronvehicle",595]
10:39:08 [165625: cl_leaf2.p3d,"FxWindLeaf2",596]
10:39:08 [165627: <no shape>,"#crateronvehicle",597]
10:39:08 [165628: <no shape>,"#crateronvehicle",598]
10:39:09 [165631: <no shape>,"#crateronvehicle",599]
10:39:09 [165632: krater.p3d,"#crater",600]
10:39:09 [165634: krater.p3d,"#crater",601]
10:39:10 [165636: krater.p3d,"#crater",602]
10:39:11 [165637: cl_feathers2.p3d,"FxWindPollen1",603]
10:39:11 [165639: krater.p3d,"#crater",604]
10:39:11 [165641: <no shape>,"#crateronvehicle",605]
10:39:11 [165642: <no shape>,"#crateronvehicle",606]
10:39:12 [165644: <no shape>,"#crateronvehicle",607]
10:39:12 [165645: <no shape>,"#crateronvehicle",608]
10:39:12 [165648: <no shape>,"#crateronvehicle",609]
10:39:12 [165650: krater.p3d,"#crater",610]
10:39:12 [165651: <no shape>,"#crateronvehicle",611]
10:39:12 [165653: <no shape>,"#crateronvehicle",612]
10:39:13 [165655: <no shape>,"#crateronvehicle",613]
10:39:13 [165657: <no shape>,"#crateronvehicle",614]
10:39:13 [165658: <no shape>,"#crateronvehicle",615]
10:39:13 [165661: <no shape>,"#crateronvehicle",616]
10:39:13 [165662: <no shape>,"#crateronvehicle",617]
10:39:13 [165663: krater.p3d,"#crater",618]
10:39:13 [165665: <no shape>,"#crateronvehicle",619]
10:39:13 [165666: <no shape>,"#crateronvehicle",620]
10:39:13 [165667: <no shape>,"#crateronvehicle",621]
10:39:13 [165669: <no shape>,"#crateronvehicle",622]
10:39:13 [165670: cl_grass1.p3d,"FxWindGrass1",623]
10:39:14 [165671: krater.p3d,"#crater",624]
10:39:14 [165674: <no shape>,"#crateronvehicle",625]
10:39:14 [165675: <no shape>,"#crateronvehicle",626]
10:39:14 [165677: <no shape>,"#crateronvehicle",627]
10:39:14 [165679: <no shape>,"#crateronvehicle",628]
10:39:14 [165680: krater.p3d,"#crater",629]
10:39:15 [165682: krater.p3d,"#crater",630]
10:39:15 [165684: <no shape>,"#crateronvehicle",631]
10:39:15 [165686: <no shape>,"#crateronvehicle",632]
10:39:15 [165687: <no shape>,"#crateronvehicle",633]
10:39:15 [165690: <no shape>,"#crateronvehicle",634]
10:39:15 [165691: <no shape>,"#crateronvehicle",635]
10:39:15 [165692: krater.p3d,"#crater",636]
10:39:15 [165693: krater.p3d,"#crater",637]
10:39:15 [165694: krater.p3d,"#crater",638]
10:39:15 [165696: <no shape>,"#crateronvehicle",639]
10:39:15 [165697: <no shape>,"#crateronvehicle",640]
10:39:15 [165698: <no shape>,"#crateronvehicle",641]
10:39:16 [165700: <no shape>,"#crateronvehicle",642]
10:39:16 [165701: krater.p3d,"#crater",643]
10:39:16 [165702: krater.p3d,"#crater",644]
10:39:16 [165703: <no shape>,"#crateronvehicle",645]
10:39:16 [165705: <no shape>,"#crateronvehicle",646]
10:39:16 [165706: krater.p3d,"#crater",647]
10:39:16 [165708: <no shape>,"#crateronvehicle",648]
10:39:16 [165709: krater.p3d,"#crater",649]
10:39:16 [165710: krater.p3d,"#crater",650]
10:39:16 [165713: <no shape>,"#crateronvehicle",651]
10:39:16 [165714: <no shape>,"#crateronvehicle",652]
10:39:16 [165715: <no shape>,"#crateronvehicle",653]
10:39:16 [165716: <no shape>,"#crateronvehicle",654]
10:39:16 [165717: krater.p3d,"#crater",655]
10:39:16 [165718: <no shape>,"#crateronvehicle",656]
10:39:16 [165719: <no shape>,"#crateronvehicle",657]
10:39:16 [165720: <no shape>,"#crateronvehicle",658]
10:39:16 [165722: krater.p3d,"#crater",659]
10:39:16 [165723: krater.p3d,"#crater",660]
10:39:16 [165725: <no shape>,"#crateronvehicle",661]
10:39:16 [165727: <no shape>,"#crateronvehicle",662]
10:39:16 [165728: krater.p3d,"#crater",663]
10:39:16 [165729: cl_feathers2.p3d,"FxWindPollen1",664]
10:39:16 [165730: <no shape>,"#crateronvehicle",665]
10:39:16 [165731: krater.p3d,"#crater",666]
10:39:16 [165732: <no shape>,"#crateronvehicle",667]
10:39:16 [165733: <no shape>,"#crateronvehicle",668]
10:39:16 [165734: <no shape>,"#crateronvehicle",669]
10:39:16 [165735: <no shape>,"#crateronvehicle",670]
10:39:16 [165737: <no shape>,"#crateronvehicle",671]
10:39:16 [165738: krater.p3d,"#crater",672]
10:39:17 [165740: krater.p3d,"#crater",673]
10:39:17 [165741: krater.p3d,"#crater",674]
10:39:17 [165743: <no shape>,"#crateronvehicle",675]
10:39:17 [165744: <no shape>,"#crateronvehicle",676]
10:39:17 [165745: <no shape>,"#crateronvehicle",677]
10:39:17 [165746: <no shape>,"#crateronvehicle",678]
10:39:17 [165747: krater.p3d,"#crater",679]
10:39:17 [165748: krater.p3d,"#crater",680]
10:39:17 [165750: <no shape>,"#crateronvehicle",681]
10:39:17 [165751: <no shape>,"#crateronvehicle",682]
10:39:17 [165752: krater.p3d,"#crater",683]
10:39:17 [165753: <no shape>,"#crateronvehicle",684]
10:39:17 [165755: krater.p3d,"#crater",685]
10:39:17 [165756: krater.p3d,"#crater",686]
10:39:18 [165757: krater.p3d,"#crater",687]
10:39:18 [165759: krater.p3d,"#crater",688]
10:39:18 [165760: krater.p3d,"#crater",689]
10:39:18 [165762: <no shape>,"#crateronvehicle",690]
10:39:18 [165763: <no shape>,"#crateronvehicle",691]
10:39:18 [165764: krater.p3d,"#crater",692]
10:39:19 [165765: cl_feathers2.p3d,"FxWindPollen1",693]
10:39:19 [165767: krater.p3d,"#crater",694]
10:39:19 [165768: <no shape>,"#crateronvehicle",695]
10:39:19 [165770: <no shape>,"#crateronvehicle",696]
10:39:19 [165771: <no shape>,"#crateronvehicle",697]
10:39:20 [165772: <no shape>,"#crateronvehicle",698]
10:39:20 [165773: krater.p3d,"#crater",699]
10:39:20 [165776: krater.p3d,"#crater",700]
10:39:20 [165780: krater.p3d,"#crater",701]
10:39:20 [165783: krater.p3d,"#crater",702]
10:39:21 [165787: krater.p3d,"#crater",703]
10:39:21 [165791: <no shape>,"#crateronvehicle",704]
10:39:21 [165793: krater.p3d,"#crater",705]
10:39:21 [165794: krater.p3d,"#crater",706]
10:39:22 [165797: <no shape>,"#crateronvehicle",707]
10:39:22 [165798: krater.p3d,"#crater",708]
10:39:22 [165801: cl_grass1.p3d,"FxWindGrass1",709]
10:39:23 [165809: krater.p3d,"#crater",710]
10:39:23 [165811: krater.p3d,"#crater",711]
10:39:23 [165812: krater.p3d,"#crater",712]
10:39:25 [165821: <no shape>,"#crateronvehicle",713]
10:39:25 [165822: cl_feathers2.p3d,"FxWindPollen1",714]
10:39:25 [165827: <no shape>,"#crateronvehicle",715]
10:39:25 [165828: <no shape>,"#crateronvehicle",716]
10:39:26 [165830: krater.p3d,"#crater",717]
10:39:26 [165834: <no shape>,"#crateronvehicle",718]
10:39:26 [165835: krater.p3d,"#crater",719]
10:39:26 [165836: krater.p3d,"#crater",720]
10:39:26 [165838: krater.p3d,"#crater",721]
10:39:26 [165841: <no shape>,"#crateronvehicle",722]
10:39:26 [165842: <no shape>,"#crateronvehicle",723]
10:39:26 [165843: <no shape>,"#crateronvehicle",724]
10:39:27 [165846: <no shape>,"#crateronvehicle",725]
10:39:27 [165847: <no shape>,"#crateronvehicle",726]
10:39:27 [165852: <no shape>,"#crateronvehicle",727]
10:39:27 [165853: <no shape>,"#crateronvehicle",728]
10:39:27 [165854: <no shape>,"#crateronvehicle",729]
10:39:27 [NOID slop_00.p3d,"#slop",730]
10:39:27 [165862: <no shape>,"#crateronvehicle",731]
10:39:28 [165864: krater.p3d,"#crater",732]
10:39:28 [165865: krater.p3d,"#crater",733]
10:39:28 [165867: cl_grass1.p3d,"FxWindGrass1",734]
10:39:28 [165869: krater.p3d,"#crater",735]
10:39:28 [165870: <no shape>,"#crateronvehicle",736]
10:39:28 [165871: <no shape>,"#crateronvehicle",737]
10:39:28 [165872: <no shape>,"#crateronvehicle",738]
10:39:28 [165874: krater.p3d,"#crater",739]
10:39:28 [165876: krater.p3d,"#crater",740]
10:39:28 [165877: krater.p3d,"#crater",741]
10:39:28 [165878: krater.p3d,"#crater",742]
10:39:28 [165881: krater.p3d,"#crater",743]
10:39:28 [165882: krater.p3d,"#crater",744]
10:39:28 [165885: <no shape>,"#crateronvehicle",745]
10:39:28 [165886: krater.p3d,"#crater",746]
10:39:28 [165887: <no shape>,"#crateronvehicle",747]
10:39:29 [165891: krater.p3d,"#crater",748]
10:39:29 [165892: <no shape>,"#crateronvehicle",749]
10:39:29 [NOID <no shape>,"#explosion",750]
10:39:29 [165893: krater.p3d,"#crater",751]
10:39:29 [165895: krater.p3d,"#crater",752]
10:39:29 [165898: krater.p3d,"#crater",753]
10:39:29 [165899: <no shape>,"#crateronvehicle",754]
10:39:29 [165900: <no shape>,"#crateronvehicle",755]
10:39:29 [165904: krater.p3d,"#crater",756]
10:39:30 [165909: krater.p3d,"#crater",757]
10:39:30 [165910: <no shape>,"#crateronvehicle",758]
10:39:30 [165911: <no shape>,"#crateronvehicle",759]
10:39:30 [165912: <no shape>,"#crateronvehicle",760]
10:39:30 [165913: krater.p3d,"#crater",761]
10:39:30 [165915: <no shape>,"#crateronvehicle",762]
10:39:30 [165917: <no shape>,"#crateronvehicle",763]
10:39:30 [165918: krater.p3d,"#crater",764]
10:39:30 [165919: <no shape>,"#crateronvehicle",765]
10:39:30 [165920: <no shape>,"#crateronvehicle",766]
10:39:30 [165921: <no shape>,"#crateronvehicle",767]
10:39:30 [165922: <no shape>,"#crateronvehicle",768]
10:39:30 [165925: krater.p3d,"#crater",769]
10:39:30 [165927: krater.p3d,"#crater",770]
10:39:30 [165930: <no shape>,"#crateronvehicle",771]
10:39:30 [165931: <no shape>,"#crateronvehicle",772]
10:39:30 [165932: krater.p3d,"#crater",773]
10:39:30 [165934: <no shape>,"#crateronvehicle",774]
10:39:30 [165935: <no shape>,"#crateronvehicle",775]
10:39:30 [165936: <no shape>,"#crateronvehicle",776]
10:39:30 [165938: <no shape>,"#crateronvehicle",777]
10:39:30 [165939: krater.p3d,"#crater",778]
10:39:30 [165941: krater.p3d,"#crater",779]
10:39:30 [165942: <no shape>,"#crateronvehicle",780]
10:39:30 [165943: <no shape>,"#crateronvehicle",781]
10:39:30 [165946: krater.p3d,"#crater",782]
10:39:31 [165948: krater.p3d,"#crater",783]
10:39:31 [165949: krater.p3d,"#crater",784]
10:39:31 [165950: cl_feathers2.p3d,"FxWindPollen1",785]
10:39:31 [165951: <no shape>,"#crateronvehicle",786]
10:39:31 [29321b82080# 165952: dummyweapon.p3d,"WeaponHolderSimulated",787]
10:39:31 [165954: krater.p3d,"#crater",788]
10:39:31 [165955: <no shape>,"#crateronvehicle",789]
10:39:31 [165956: <no shape>,"#crateronvehicle",790]
10:39:31 [165958: krater.p3d,"#crater",791]
10:39:31 [165961: krater.p3d,"#crater",792]
10:39:31 [165963: <no shape>,"#crateronvehicle",793]
10:39:31 [165964: <no shape>,"#crateronvehicle",794]
10:39:31 [165965: krater.p3d,"#crater",795]
10:39:31 [165966: <no shape>,"#crateronvehicle",796]
10:39:31 [165967: krater.p3d,"#crater",797]
10:39:31 [165968: krater.p3d,"#crater",798]
10:39:31 [165971: krater.p3d,"#crater",799]
10:39:32 [165972: krater.p3d,"#crater",800]
10:39:32 [165974: krater.p3d,"#crater",801]
10:39:32 [165975: <no shape>,"#crateronvehicle",802]
10:39:32 [165977: krater.p3d,"#crater",803]
10:39:32 [165978: krater.p3d,"#crater",804]
10:39:32 [165979: krater.p3d,"#crater",805]
10:39:32 [165980: krater.p3d,"#crater",806]
10:39:32 [165982: <no shape>,"#crateronvehicle",807]
10:39:32 [165984: krater.p3d,"#crater",808]
10:39:32 [165985: krater.p3d,"#crater",809]
10:39:32 [165986: <no shape>,"#crateronvehicle",810]
10:39:33 [165988: <no shape>,"#crateronvehicle",811]
10:39:33 [165990: krater.p3d,"#crater",812]
10:39:33 [165991: krater.p3d,"#crater",813]
10:39:33 [165992: krater.p3d,"#crater",814]
10:39:33 [165993: krater.p3d,"#crater",815]
10:39:33 [165996: <no shape>,"#crateronvehicle",816]
10:39:33 [165997: <no shape>,"#crateronvehicle",817]
10:39:33 [165998: <no shape>,"#crateronvehicle",818]
10:39:33 [165999: <no shape>,"#crateronvehicle",819]
10:39:33 [166000: krater.p3d,"#crater",820]
10:39:33 [166001: krater.p3d,"#crater",821]
10:39:33 [166002: krater.p3d,"#crater",822]
10:39:33 [166004: <no shape>,"#crateronvehicle",823]
10:39:33 [166006: cl_grass1.p3d,"FxWindGrass1",824]
10:39:33 [166007: cl_grass1.p3d,"FxWindGrass1",825]
10:39:33 [166008: krater.p3d,"#crater",826]
10:39:33 [166009: krater.p3d,"#crater",827]
10:39:34 [166012: krater.p3d,"#crater",828]
10:39:34 [166014: <no shape>,"#crateronvehicle",829]
10:39:34 [166017: krater.p3d,"#crater",830]
10:39:34 [166018: <no shape>,"#crateronvehicle",831]
10:39:34 [166022: <no shape>,"#crateronvehicle",832]
10:39:34 [166023: krater.p3d,"#crater",833]
10:39:34 [166026: <no shape>,"#crateronvehicle",834]
10:39:35 [166030: krater.p3d,"#crater",835]
10:39:35 [166031: <no shape>,"#crateronvehicle",836]
10:39:35 [166034: <no shape>,"#crateronvehicle",837]
10:39:35 [166036: krater.p3d,"#crater",838]
10:39:35 [166038: krater.p3d,"#crater",839]
10:39:35 [166039: krater.p3d,"#crater",840]
10:39:35 [166042: <no shape>,"#crateronvehicle",841]
10:39:35 [166043: <no shape>,"#crateronvehicle",842]
10:39:35 [166044: <no shape>,"#crateronvehicle",843]
10:39:35 [166045: <no shape>,"#crateronvehicle",844]
10:39:35 [166046: <no shape>,"#crateronvehicle",845]
10:39:35 [166047: krater.p3d,"#crater",846]
10:39:36 [166050: <no shape>,"#crateronvehicle",847]
10:39:36 [166051: <no shape>,"#crateronvehicle",848]
10:39:36 [166052: <no shape>,"#crateronvehicle",849]
10:39:36 [166053: <no shape>,"#crateronvehicle",850]
10:39:36 [166055: <no shape>,"#crateronvehicle",851]
10:39:36 [166056: <no shape>,"#crateronvehicle",852]
10:39:36 [166057: <no shape>,"#crateronvehicle",853]
10:39:36 [166058: krater.p3d,"#crater",854]
10:39:36 [166059: krater.p3d,"#crater",855]
10:39:36 [166060: <no shape>,"#crateronvehicle",856]
10:39:36 [Agent 0x32b801c0,"Rabbit_F",857]
10:39:36 [166063: krater.p3d,"#crater",858]
10:39:36 [166065: <no shape>,"#crateronvehicle",859]
10:39:36 [166066: <no shape>,"#crateronvehicle",860]
10:39:36 [166067: <no shape>,"#crateronvehicle",861]
10:39:36 [166068: <no shape>,"#crateronvehicle",862]
10:39:36 [166069: cl_leaf.p3d,"FxWindLeaf1",863]
10:39:36 [166071: krater.p3d,"#crater",864]
10:39:37 [166073: krater.p3d,"#crater",865]
10:39:37 [166077: <no shape>,"#crateronvehicle",866]
10:39:38 [NOID blood_splash.p3d,"#slop",867]
10:39:38 [Agent 0xb90d8100,"Snake_random_F",868]
10:39:38 [166087: <no shape>,"#crateronvehicle",869]
10:39:39 [166089: <no shape>,"#crateronvehicle",870]
10:39:39 [166090: krater.p3d,"#crater",871]
10:39:39 [166091: <no shape>,"#crateronvehicle",872]
10:39:39 [166092: krater.p3d,"#crater",873]
10:39:39 [166094: cl_leaf2.p3d,"FxWindLeaf2",874]
10:39:39 [166095: <no shape>,"#crateronvehicle",875]
10:39:40 [166098: <no shape>,"#crateronvehicle",876]
10:39:40 [166101: krater.p3d,"#crater",877]
10:39:40 [166103: krater.p3d,"#crater",878]
10:39:42 [166110: <no shape>,"#crateronvehicle",879]
10:39:42 [166111: krater.p3d,"#crater",880]
10:39:42 [166112: cl_grass1.p3d,"FxWindGrass1",881]
10:39:43 [166114: <no shape>,"#crateronvehicle",882]
10:39:43 [166116: <no shape>,"#crateronvehicle",883]
10:39:43 [166117: <no shape>,"#crateronvehicle",884]
10:39:43 [166118: <no shape>,"#crateronvehicle",885]
10:39:43 [166119: <no shape>,"#crateronvehicle",886]
10:39:43 [166120: krater.p3d,"#crater",887]
10:39:43 [166125: krater.p3d,"#crater",888]
10:39:44 [166126: krater.p3d,"#crater",889]
10:39:44 [166128: <no shape>,"#crateronvehicle",890]
10:39:44 [166129: krater.p3d,"#crater",891]
10:39:44 [166130: krater.p3d,"#crater",892]
10:39:44 [166132: <no shape>,"#crateronvehicle",893]
10:39:45 [166135: <no shape>,"#crateronvehicle",894]
10:39:45 [166136: <no shape>,"#crateronvehicle",895]
10:39:45 [166138: <no shape>,"#crateronvehicle",896]
10:39:45 [166139: cl_feathers2.p3d,"FxWindPollen1",897]
10:39:45 [166142: <no shape>,"#crateronvehicle",898]
10:39:45 [166143: <no shape>,"#crateronvehicle",899]
10:39:45 [166146: krater.p3d,"#crater",900]
10:39:45 [166147: <no shape>,"#crateronvehicle",901]
10:39:45 [166149: <no shape>,"#crateronvehicle",902]
10:39:45 [166151: <no shape>,"#crateronvehicle",903]
10:39:45 [166153: <no shape>,"#crateronvehicle",904]
10:39:45 [166155: <no shape>,"#crateronvehicle",905]
10:39:45 [166157: <no shape>,"#crateronvehicle",906]
10:39:46 [166159: krater.p3d,"#crater",907]
10:39:46 [166160: <no shape>,"#crateronvehicle",908]
10:39:46 [166162: krater.p3d,"#crater",909]
10:39:46 [166163: <no shape>,"#crateronvehicle",910]
10:39:46 [166166: <no shape>,"#crateronvehicle",911]
10:39:46 [166167: <no shape>,"#crateronvehicle",912]
10:39:46 [166168: <no shape>,"#crateronvehicle",913]
10:39:46 [166169: <no shape>,"#crateronvehicle",914]
10:39:46 [166170: <no shape>,"#crateronvehicle",915]
10:39:46 [166176: krater.p3d,"#crater",916]
10:39:46 [166177: <no shape>,"#crateronvehicle",917]
10:39:46 [166178: <no shape>,"#crateronvehicle",918]
10:39:46 [166180: <no shape>,"#crateronvehicle",919]
10:39:46 [166181: <no shape>,"#crateronvehicle",920]
10:39:46 [166182: <no shape>,"#crateronvehicle",921]
10:39:47 [166184: <no shape>,"#crateronvehicle",922]
10:39:47 [166186: <no shape>,"#crateronvehicle",923]
10:39:47 [166189: krater.p3d,"#crater",924]
10:39:47 [166190: <no shape>,"#crateronvehicle",925]
10:39:47 [166192: <no shape>,"#crateronvehicle",926]
10:39:47 [166195: krater.p3d,"#crater",927]
10:39:47 [166196: <no shape>,"#crateronvehicle",928]
10:39:47 [166197: krater.p3d,"#crater",929]
10:39:47 [NOID slop_00.p3d,"#slop",930]
10:39:48 [166200: krater.p3d,"#crater",931]
10:39:48 [166201: <no shape>,"#crateronvehicle",932]
10:39:48 [166202: <no shape>,"#crateronvehicle",933]
10:39:48 [166203: <no shape>,"#crateronvehicle",934]
10:39:48 [166204: <no shape>,"#crateronvehicle",935]
10:39:48 [166205: <no shape>,"#crateronvehicle",936]
10:39:48 [166207: <no shape>,"#crateronvehicle",937]
10:39:48 [166209: <no shape>,"#crateronvehicle",938]
10:39:48 [166210: <no shape>,"#crateronvehicle",939]
10:39:48 [166211: <no shape>,"#crateronvehicle",940]
10:39:48 [166212: krater.p3d,"#crater",941]
10:39:48 [166214: cl_feathers2.p3d,"FxWindPollen1",942]
10:39:48 [166215: <no shape>,"#crateronvehicle",943]
10:39:48 [166216: <no shape>,"#crateronvehicle",944]
10:39:48 [166218: krater.p3d,"#crater",945]
10:39:48 [166219: <no shape>,"#crateronvehicle",946]
10:39:48 [166220: krater.p3d,"#crater",947]
10:39:48 [166223: krater.p3d,"#crater",948]
10:39:48 [166224: krater.p3d,"#crater",949]
10:39:48 [166226: <no shape>,"#crateronvehicle",950]
10:39:48 [166227: krater.p3d,"#crater",951]
10:39:49 [166230: <no shape>,"#crateronvehicle",952]
10:39:49 [166231: <no shape>,"#crateronvehicle",953]
10:39:49 [166232: <no shape>,"#crateronvehicle",954]
10:39:49 [166234: <no shape>,"#crateronvehicle",955]
10:39:49 [166235: <no shape>,"#crateronvehicle",956]
10:39:49 [166237: <no shape>,"#crateronvehicle",957]
10:39:49 [166238: <no shape>,"#crateronvehicle",958]
10:39:49 [166239: <no shape>,"#crateronvehicle",959]
10:39:49 [166241: <no shape>,"#crateronvehicle",960]
10:39:49 [166242: <no shape>,"#crateronvehicle",961]
10:39:49 [166243: <no shape>,"#crateronvehicle",962]
10:39:49 [166244: <no shape>,"#crateronvehicle",963]
10:39:49 [166246: krater.p3d,"#crater",964]
10:39:49 [166247: <no shape>,"#crateronvehicle",965]
10:39:49 [166249: <no shape>,"#crateronvehicle",966]
10:39:49 [166250: <no shape>,"#crateronvehicle",967]
10:39:49 [166251: <no shape>,"#crateronvehicle",968]
10:39:49 [166252: <no shape>,"#crateronvehicle",969]
10:39:49 [166253: <no shape>,"#crateronvehicle",970]
10:39:49 [166254: <no shape>,"#crateronvehicle",971]
10:39:49 [166256: krater.p3d,"#crater",972]
10:39:49 [166257: <no shape>,"#crateronvehicle",973]
10:39:49 [166258: <no shape>,"#crateronvehicle",974]
10:39:49 [166259: <no shape>,"#crateronvehicle",975]
10:39:49 [166260: <no shape>,"#crateronvehicle",976]
10:39:49 [166261: krater.p3d,"#crater",977]
10:39:49 [166262: krater.p3d,"#crater",978]
10:39:49 [NOID slop_00.p3d,"#slop",979]
10:39:50 [166264: <no shape>,"#crateronvehicle",980]
10:39:50 [166267: <no shape>,"#crateronvehicle",981]
10:39:50 [166270: krater.p3d,"#crater",982]
10:39:50 [166271: <no shape>,"#crateronvehicle",983]
10:39:50 [166273: <no shape>,"#crateronvehicle",984]
10:39:50 [166275: <no shape>,"#crateronvehicle",985]
10:39:50 [166277: <no shape>,"#crateronvehicle",986]
10:39:50 [166279: <no shape>,"#crateronvehicle",987]
10:39:50 [166281: <no shape>,"#crateronvehicle",988]
10:39:50 [166283: <no shape>,"#crateronvehicle",989]
10:39:50 [166284: <no shape>,"#crateronvehicle",990]
10:39:51 [166285: cl_feathers2.p3d,"FxWindPollen1",991]
10:39:51 [166287: <no shape>,"#crateronvehicle",992]
10:39:51 [166289: <no shape>,"#crateronvehicle",993]
10:39:51 [166291: krater.p3d,"#crater",994]
10:39:51 [166294: krater.p3d,"#crater",995]
10:39:51 [166296: krater.p3d,"#crater",996]
10:39:51 [166297: <no shape>,"#crateronvehicle",997]
10:39:51 [166298: <no shape>,"#crateronvehicle",998]
10:39:51 [166301: <no shape>,"#crateronvehicle",999]
10:39:51 [166302: <no shape>,"#crateronvehicle",1000]
10:39:51 [166305: <no shape>,"#crateronvehicle",1001]
10:39:51 [166306: krater.p3d,"#crater",1002]
10:39:51 [166307: <no shape>,"#crateronvehicle",1003]
10:39:51 [166308: <no shape>,"#crateronvehicle",1004]
10:39:52 [166310: krater.p3d,"#crater",1005]
10:39:52 [166315: <no shape>,"#crateronvehicle",1006]
10:39:52 [166316: <no shape>,"#crateronvehicle",1007]
10:39:52 [166317: krater.p3d,"#crater",1008]
10:39:52 [NOID slop_00.p3d,"#slop",1009]
10:39:52 [166320: krater.p3d,"#crater",1010]
10:39:52 [166321: <no shape>,"#crateronvehicle",1011]
10:39:52 [166323: <no shape>,"#crateronvehicle",1012]
10:39:52 [166324: <no shape>,"#crateronvehicle",1013]
10:39:52 [166327: <no shape>,"#crateronvehicle",1014]
10:39:52 [166329: <no shape>,"#crateronvehicle",1015]
10:39:52 [166330: krater.p3d,"#crater",1016]
10:39:52 [166332: <no shape>,"#crateronvehicle",1017]
10:39:52 [166333: <no shape>,"#crateronvehicle",1018]
10:39:52 [166334: <no shape>,"#crateronvehicle",1019]
10:39:52 [166336: <no shape>,"#crateronvehicle",1020]
10:39:52 [166337: <no shape>,"#crateronvehicle",1021]
10:39:53 [166340: <no shape>,"#crateronvehicle",1022]
10:39:53 [166341: <no shape>,"#crateronvehicle",1023]
10:39:53 [166342: <no shape>,"#crateronvehicle",1024]
10:39:53 [166343: krater.p3d,"#crater",1025]
10:39:53 [166344: krater.p3d,"#crater",1026]
10:39:53 [166346: <no shape>,"#crateronvehicle",1027]
10:39:53 [166348: <no shape>,"#crateronvehicle",1028]
10:39:53 [166351: <no shape>,"#crateronvehicle",1029]
10:39:53 [166352: <no shape>,"#crateronvehicle",1030]
10:39:53 [166353: <no shape>,"#crateronvehicle",1031]
10:39:53 [166355: <no shape>,"#crateronvehicle",1032]
10:39:53 [166356: <no shape>,"#crateronvehicle",1033]
10:39:53 [166357: <no shape>,"#crateronvehicle",1034]
10:39:53 [166358: <no shape>,"#crateronvehicle",1035]
10:39:53 [166359: cl_grass1.p3d,"FxWindGrass1",1036]
10:39:54 [166362: <no shape>,"#crateronvehicle",1037]
10:39:54 [NOID slop_00.p3d,"#slop",1038]
10:39:54 [166364: <no shape>,"#crateronvehicle",1039]
10:39:54 [166365: <no shape>,"#crateronvehicle",1040]
10:39:54 [166366: <no shape>,"#crateronvehicle",1041]
10:39:54 [166368: <no shape>,"#crateronvehicle",1042]
10:39:54 [166370: <no shape>,"#crateronvehicle",1043]
10:39:54 [166371: <no shape>,"#crateronvehicle",1044]
10:39:54 [166373: <no shape>,"#crateronvehicle",1045]
10:39:54 [166374: <no shape>,"#crateronvehicle",1046]
10:39:54 [166375: <no shape>,"#crateronvehicle",1047]
10:39:54 [166376: <no shape>,"#crateronvehicle",1048]
10:39:54 [166378: <no shape>,"#crateronvehicle",1049]
10:39:54 [166380: <no shape>,"#crateronvehicle",1050]
10:39:54 [166383: <no shape>,"#crateronvehicle",1051]
10:39:54 [166384: <no shape>,"#crateronvehicle",1052]
10:39:54 [166385: <no shape>,"#crateronvehicle",1053]
10:39:55 [166388: <no shape>,"#crateronvehicle",1054]
10:39:55 [166390: <no shape>,"#crateronvehicle",1055]
10:39:56 [NOID slop_00.p3d,"#slop",1056]
10:39:56 [166398: cl_feathers2.p3d,"FxWindPollen1",1057]
10:39:57 [NOID slop_00.p3d,"#slop",1058]
10:39:58 [166409: <no shape>,"#crateronvehicle",1059]
10:39:58 [166413: krater.p3d,"#crater",1060]
10:39:58 [166416: <no shape>,"#crateronvehicle",1061]
10:39:58 [166417: <no shape>,"#crateronvehicle",1062]
10:39:58 [166420: <no shape>,"#crateronvehicle",1063]
10:39:58 [166424: <no shape>,"#crateronvehicle",1064]
10:39:58 [Agent 0x55510080,"Snake_random_F",1065]
10:39:58 [166426: <no shape>,"#crateronvehicle",1066]
10:39:58 [166429: krater.p3d,"#crater",1067]
10:39:58 [166431: krater.p3d,"#crater",1068]
10:39:58 [166434: <no shape>,"#crateronvehicle",1069]
10:39:58 [166435: <no shape>,"#crateronvehicle",1070]
10:39:58 [166438: <no shape>,"#crateronvehicle",1071]
10:39:59 [166440: <no shape>,"#crateronvehicle",1072]
10:39:59 [166441: <no shape>,"#crateronvehicle",1073]
10:39:59 [NOID slop_00.p3d,"#slop",1074]
10:39:59 [166445: <no shape>,"#crateronvehicle",1075]
10:39:59 [166447: cl_feathers2.p3d,"FxWindPollen1",1076]
10:39:59 [Agent 0x59370180,"Rabbit_F",1077]
10:40:00 [Agent 0x526d8180,"Snake_random_F",1078]
10:40:00 [166452: krater.p3d,"#crater",1079]
10:40:00 [166454: <no shape>,"#crateronvehicle",1080]
10:40:00 [166456: <no shape>,"#crateronvehicle",1081]
10:40:00 [166458: <no shape>,"#crateronvehicle",1082]
10:40:00 [166460: <no shape>,"#crateronvehicle",1083]
10:40:00 [166462: <no shape>,"#crateronvehicle",1084]
10:40:00 [166464: <no shape>,"#crateronvehicle",1085]
10:40:00 [166466: <no shape>,"#crateronvehicle",1086]
10:40:01 [NOID slop_00.p3d,"#slop",1087]
10:40:02 [166470: cl_feathers2.p3d,"FxWindPollen1",1088]
10:40:02 [166473: <no shape>,"#crateronvehicle",1089]
10:40:02 [166474: <no shape>,"#crateronvehicle",1090]
10:40:02 [166476: <no shape>,"#crateronvehicle",1091]
10:40:03 [166480: <no shape>,"#crateronvehicle",1092]
10:40:03 [166483: krater.p3d,"#crater",1093]
10:40:03 [166487: krater.p3d,"#crater",1094]
10:40:04 [166489: krater.p3d,"#crater",1095]
10:40:04 [166491: <no shape>,"#crateronvehicle",1096]
10:40:04 [166493: <no shape>,"#crateronvehicle",1097]
10:40:05 [166495: krater.p3d,"#crater",1098]
10:40:05 [166496: cl_feathers2.p3d,"FxWindPollen1",1099]
10:40:06 [166499: krater.p3d,"#crater",1100]
10:40:07 [166502: krater.p3d,"#crater",1101]
10:40:07 [166504: krater.p3d,"#crater",1102]
10:40:08 [166507: <no shape>,"#crateronvehicle",1103]
10:40:08 [166508: cl_feathers2.p3d,"FxWindPollen1",1104]
10:40:08 [166509: krater.p3d,"#crater",1105]
10:40:08 [29348525600# 166514: dummyweapon.p3d,"WeaponHolderSimulated",1106]
10:40:08 [29347493580# 166515: dummyweapon.p3d,"WeaponHolderSimulated",1107]
10:40:08 Error in ReloadMagazine - unable to locate target weapon arifle_Katiba_C_ACO_pointer_F muzzle arifle_Katiba_C_ACO_pointer_F
10:40:08 [166516: krater.p3d,"#crater",1108]
10:40:08 [166517: <no shape>,"#crateronvehicle",1109]
10:40:08 [166518: <no shape>,"#crateronvehicle",1110]
10:40:08 [166520: krater.p3d,"#crater",1111]
10:40:08 [166521: krater.p3d,"#crater",1112]
10:40:08 [166522: <no shape>,"#crateronvehicle",1113]
10:40:11 [166524: cl_feathers2.p3d,"FxWindPollen1",1114]
10:40:13 [166530: cl_grass2.p3d,"FxWindGrass2",1115]
10:40:16 [NOID blood_splash.p3d,"#slop",1116]
10:40:16 [166538: cl_grass2.p3d,"FxWindGrass2",1117]
10:40:19 [166550: cl_feathers2.p3d,"FxWindPollen1",1118]
10:40:22 [166563: cl_feathers2.p3d,"FxWindPollen1",1119]
10:40:25 [166565: cl_grass2.p3d,"FxWindGrass2",1120]
10:40:28 [166588: cl_feathers2.p3d,"FxWindPollen1",1121]
10:40:31 [166612: cl_feathers2.p3d,"FxWindPollen1",1122]
10:40:42 soldier[B_soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:40:42 soldier[B_soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
10:40:42 soldier[B_soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?

 

Powerful  (but not so helpful) in regard of a simple loop? Hard to say.

  • Like 1

Share this post


Link to post
Share on other sites
On 9/30/2022 at 2:17 PM, pierremgi said:

This EH is made for that. So, no problem. Use parameters:


[] spawn { // for loop
  while {true} do {  // endless loop for grabbing all vehicles (edited or spawned)
    {  
      _x addEventHandler ["HandleDamage", {  
        params ["_veh", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];  
        _veh setVariable ["vehPassed",TRUE];  // vehicle treated, no need to script more, locally
        if (_veh isKindOf "landVehicle") then {  // selecting land vehicles (no air, no ship)
          _damage = _damage min 0.86;  // don't override 0.86 because, more than that, vehicle will finally explode
          if (_hitPoint == "hitFuel") then {_damage = 0.5};  // set hitFuel AFTER _damage
        };  
        _damage  // Final value (0.86 at most for land veh, standard value for air and ship.
      }];  
    } forEach (vehicles select {isNil {_x getVariable "vehPassed"}});  // all non-treated vehicles
    sleep 2;  // damp the loop
  };
};

 

 

Hi @pierremgi

 

first of all thank you very much for your help.

 

I played around with your code today and I really like the loop approach. First I restricted the "kind of" classes a bit because I don't want the damage for all vehicles and that works wonderfully.

 

But regardless of whether I leave the base damage at the recommended 0.86 or go significantly higher, I get no effect on the engine and turrets, for example.

So I tried to set their damage later, similar to what you did with Fuel, but these values are not accepted. Although they are defined in the hitpoints of the vehicleclass.

 

Should I be here readjust with the BIS_fnc_setHitPointDamage? The idea is that after the hit, the vehicle becomes immobile / unable to move and can no longer shoot or only use the weapon to a limited extent. However, the vehicle should not be destroyed, but can be repaired by an engineer in the field. I am very grateful for further ideas.

 

Spoiler

[] spawn { // for loop

  while {true} do {  // endless loop for grabbing all vehicles (edited or spawned)

    {  

      _x addEventHandler ["HandleDamage", {  

        params ["_veh", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];  

        _veh setVariable ["vehPassed",TRUE];  // vehicle treated, no need to script more, locally

        if ((_veh isKindOf "uns_xm706e1_base") or (_veh isKindOf "vn_armor_m41_base") or (_veh isKindOf "vn_armor_m113_base") or (_veh isKindOf "uns_M113_base"))

        then {  // selecting land vehicles (no air, no ship)

          _damage = _damage min 0.95;  // don't override 0.86 because, more than that, vehicle will finally explode

          if (_hitPoint == "hitFuel") then {_damage = 0.5};  // set hitFuel AFTER _damage  

          if (_hitPoint == "hitgun") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitturret") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitlbwheel") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitlfwheel") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitrbwheel") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitrfwheel") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitltrack") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitrtrack") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitengine") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hitbody") then {_damage = 0.95};  // set hitFuel AFTER _damage

          if (_hitPoint == "hithull") then {_damage = 0.95};  // set hitFuel AFTER _damage

          if (_hitPoint == "#l svetlo") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "#p svetlo") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "#p svetlo 2") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "#l svetlo 2") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hit_mg1turret") then {_damage = 1};  // set hitFuel AFTER _damage

          if (_hitPoint == "hit_mg1gun") then {_damage = 1};  // set hitFuel AFTER _damage

        };  

        _damage  // Final value (0.86 at most for land veh, standard value for air and ship.

        }];  

    } forEach (vehicles select {isNil {_x getVariable "vehPassed"}});  // all non-treated vehicles

    sleep 2;  // damp the loop

  };

};

 

Values for two tested vehicles after damaging through Mlaw Damage.

 

gbTf6i8.jpg

 

 

bybEjPk.jpg

Edited by SirBassi
klicked send to early. sorry. my bad.
  • Like 1

Share this post


Link to post
Share on other sites

I made annother small change and changed the first if-clause to some BIS_fnc_setHitPointDamage.

On MP and SP everything works now as expected. Alle Parts I wanna to damage are damaged.

 

On Dedicated I made a "weired" observation:

First hit to the vehicle and everything is as also as expected. But a second Hit (e.g. Mlaw) destroys the vehicle.

After respawning the vehicle same scenario. So loop by init.sqf starts correct but then I have somewhere a mistake maybe a locality one.

It makes also no change if I repair the vehicle in between.

 

Some Idea where the mistake could be?

 

Also a final question when this is solved: Is there a possibillity to "slow down" the time a engineer needs to repar a vehicle? Searched BI Wiki up and down and find no functions for this case.

 

Thanks a lot for your support guys 🙂

 

Actual used Code

Spoiler

[] spawn { // for loop

  while {true} do {  // endless loop for grabbing all vehicles (edited or spawned)

    {  

      _x addEventHandler ["HandleDamage", {  

        params ["_veh", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];  

        _veh setVariable ["vehPassed",TRUE];  // vehicle treated, no need to script more, locally

        if ((_veh isKindOf "uns_xm706e1_base") or (_veh isKindOf "vn_armor_m41_base") or (_veh isKindOf "vn_armor_m113_base") or (_veh isKindOf "uns_M113_base"))

        then {  // selecting land vehicles (no air, no ship)

          _damage = _damage min 0.86;  // don't override 0.86 because, more than that, vehicle will finally explode

          [_veh, "hitfuel",0.5,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitgun",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitturret",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitlbwheel",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitlfwheel",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitrbwheel",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitrfwheel",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitltrack",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitrtrack",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitengine",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hitbody",0.86,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hithull",0.86,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hit_mg1turret",1.0,true] call BIS_fnc_setHitPointDamage;

          [_veh, "hit_mg1gun",1.0,true] call BIS_fnc_setHitPointDamage;

          };  

        _damage  // Final value (0.86 at most for land veh, standard value for air and ship.

        }];  

    } forEach (vehicles select {isNil {_x getVariable "vehPassed"}});  // all non-treated vehicles

    sleep 2;  // damp the loop

  };

};

 

Share this post


Link to post
Share on other sites

The EH "handleDamage" is made for handling damages (direct or indirect hits) for each part of the vehicle.

"Triggers when the unit is damaged and fires for each damaged selection separately Note: Currently, in Arma 3 v1.70 it triggers for every selection of a vehicle, no matter if the section was damaged or not). Works with all vehicles. This EH can accept a remote unit as argument however it will only fire when the unit is local to the PC this event handler was added on. For example, you can add this event handler to one particular vehicle on every PC. When this vehicle gets hit, only EH on PC where the vehicle is currently local will fire"

 

and

"If code provided returns a numeric value, this value will overwrite the default damage of given selection after processing. Return value of 0 will make the unit invulnerable if damage is not scripted in other ways (i.e using setDamage and/or setHit for additional damage handling). If no value is returned, the default damage processing will be done."

 

That means _damage parameter inside EH MUST BE a value if you want to override it. Using BIS_fnc_setHitPointDamage or even the command setHitPointDamage doesn't return anything and you are running multiple times the whole code (sometimes twice of a part, each part). It's a waste of code and the result is not guaranteed.

Using BIS_fnc_setHitPointDamage gives you the impression that could work, adding relative hit points dependency (distribute damage to dependent HitPoints as well)
but the fact is you're not really overriding each damage and the result (the sum of damages, not related to EH parameters!) can be > 0.86, so your vehicle is blowing.

 

I gave you a code working with _damage, up to 0.86 for each part of the vehicle, and 0.5 for specific hitFuel.

If you didn't get any hit on turret or engine, that means you didn't hit these parts or your model of vehicle is not fine (just try with another one).

 

So, imho, check your EH fires where the vehicle is (PC owning it), or run it everywhere, that doesn't hurt.
Play with included _damage parameter instead of calling functions, and don't forget _damage is not the overall global damage, it's a value for the current part, the EH firing multiple times for a shot.

Keep in mind the overall value must be more than 0.86. Perhaps there is a confusion above. I limited ALL damages, but damage after damage, up to 0.86; it's safe; then worked with smaller specific value, so no problem.

If you set some damages to 1, not sure your final whole damage (I repeat: NOT managed by EH, because EH fires multiple times for parts, not for a global result) will stay below 0.86.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

@pierremgi Thanks a lot again. You nailed it.

I made a lot of vehicle tests yesterday and of course it seems that just some vehicles of a modset make trouble.

 

And I also changed in init.sqf the call of the script to remoteexec for all clients on Dedicated. And now everything works as expeceted.

Thanks for bringing me back on path and your help.

Share this post


Link to post
Share on other sites
On 8/21/2022 at 6:49 AM, _foley said:

@LSValmont This reduces damage to all parts equally. If you want to differentiate between legs/arms/other parts you need to check the value of _selection or _hitPoint and return different damage depending on what they are.

 

I'm digging up this old thread because it looks like this is exactly what I was looking for.  Forgive my coding ignorance, as I'm just not proficient, so I know this is going to be a pretty basic question...

 

I'm trying to make the windows in a vehicle "up-armored."  I've used your code on the vehicle as a whole and it works well at slowing down the overall damage, but I'm trying to make the windows themselves separate.  I'm not clear on the syntax or where exactly I put each window selection in your code.  I've tried adding the window selection to this part:

 

(_selection isEqualTo "");

So that it says:

 

(_selection isEqualTo "sethitwindow1"); //or whatever the window selection is...I'm not in game at the moment

 But that didn't change how many shots the that particular window could take compared to the others.  No doubt my syntax is off.  Any pointers?

Share this post


Link to post
Share on other sites
On 6/22/2023 at 7:34 PM, gatordev said:

 

I'm digging up this old thread because it looks like this is exactly what I was looking for.  Forgive my coding ignorance, as I'm just not proficient, so I know this is going to be a pretty basic question...

 

I'm trying to make the windows in a vehicle "up-armored."  I've used your code on the vehicle as a whole and it works well at slowing down the overall damage, but I'm trying to make the windows themselves separate.  I'm not clear on the syntax or where exactly I put each window selection in your code.  I've tried adding the window selection to this part:

 


(_selection isEqualTo "");

So that it says:

 


(_selection isEqualTo "sethitwindow1"); //or whatever the window selection is...I'm not in game at the moment

 But that didn't change how many shots the that particular window could take compared to the others.  No doubt my syntax is off.  Any pointers? 

The condition looks ok but I think you put it too early in the code. The important part is what gets returned from the event handler.

this addEventHandler [
	"HandleDamage", 
	{ 
		params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];

		private _previousDamage = [_unit getHit _selection, damage _unit] select (_selection isEqualTo "");  // if selection is empty then it's overall damage
		private _newDamage = _damage - _previousDamage;
		private _finalDamage = _previousDamage + _newDamage * 0.7;

		if ("glass" in toLower _selection || "window" in toLower _selection) then {
			_finalDamage = _previousDamage + _newDamage * 0.1;
		};

		_finalDamage
	}
];

This will reduce damage by 90% for any selection that contains phrase "glass" or "window". Otherwise damage is reduced by 30% like in the original example.

Edited by _foley
Changed if-exitWith to if-then as explained by Robustcolor
  • Like 2

Share this post


Link to post
Share on other sites
On 6/23/2023 at 4:25 AM, _foley said:

The condition looks ok but I think you put it too early in the code. The important part is what gets returned from the event handler.


this addEventHandler [
	"HandleDamage", 
	{ 
		params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];

		private _previousDamage = [_unit getHit _selection, damage _unit] select (_selection isEqualTo "");  // if selection is empty then it's overall damage
		private _newDamage = _damage - _previousDamage;

		if ("glass" in toLower _selection || "window" in toLower _selection) exitWith {
			(_previousDamage + _newDamage * 0.1)
		};

		(_previousDamage + _newDamage * 0.7)
	}
];

This will reduce damage by 90% for any selection that contains phrase "glass" or "window". Otherwise damage is reduced by 30% like in the original example.

 

First of all, thank you for replying and showing me the extra code.  Now I see what you were saying with a if/then statement.  That really is elegant. 

 

I am, however, having an issue.  When I put the non-glass/window code in a vanilla Offroad and put the glass/window code in another vanilla Offroad, I'm finding the glass in the non-glass coded unit lasts longer (usually ~27 rounds from a vanilla Recon Scout 6.5).  The glass-coded unit will only go ~18 rounds before the front glass breaks.  I've tried it several times and get the same basic result.  When I do the math in the code equation, what you're saying should be happening makes sense, but it seems in the editor the opposite is happening.  I would even shoot slowly so the event handler wouldn't miss the hit, just in case.

 

Am I just messing this up?  For the Offroads, the windows are named "hitglassX", so it should be working.  I had similar results using a 3CB Landcruiser, as well.

  • Like 1

Share this post


Link to post
Share on other sites

Hi @gatordev, the exitWith will not return the modified _damage to the EH when exiting from the main scope. Try a different approach with a ifThen or a call{} before using exitWith.

this addEventHandler [
	"HandleDamage", 
	{ 
		params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];
		private _previousDamage = [_unit getHit _selection, damage _unit] select (_selection isEqualTo "");  // if selection is empty then it's overall damage
		private _newDamage = _damage - _previousDamage;
		call {
		if ("glass" in toLower _selection || "window" in toLower _selection) exitWith {
			(_previousDamage + _newDamage * 0.1)
		};
		(_previousDamage + _newDamage * 0.7)
		};
	}
];

 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Or even try this different approach from pierreMGI's code.

I´ve just added it with some tweaks to a helicopter and it's much more safe to fly inside it now:

 

  • Thanks 1

Share this post


Link to post
Share on other sites
On 6/5/2017 at 7:22 PM, ShadowRanger24 said:

...

 

Manipulating damage

The last value given in the EH's code is the damage that it gives for the current selection. Remember that if the code is too complex to be written into the EH itself, only callable scripts should be used for the purpose of determining damage because the damage has to be given in the EH's code.

 

...

Some things, I noticed when I got problem using this event with revive mode ("reviveMode = 1").

 

There is kind of "treshold" float value when player enter in  incapacitation/unconscious state, it is near above 0.4165;

So if you set return float value 0.410; or less to end of event code scope as return value, and mission have reviveMode enabled, player is hurt but invincible.

When return float value 0.47; player start go incapacitation/unconscious state, and bleedout. But can still survive from vehicle crash alive.

When return float value 0.5; player go incapacitation/unconscious state also in crashed vehicles, player unmount automatically.

Around 0.7; and above player bleedout faster after vehicle crash. I have not tested this much.

Of course value 1.0; and above destroy player.

 

When you return value nil; event handle not change original damage, everything works normally.

 

Share this post


Link to post
Share on other sites
On 7/6/2023 at 4:13 AM, Robustcolor said:

Hi @gatordev, the exitWith will not return the modified _damage to the EH when exiting from the main scope. Try a different approach with a ifThen or a call{} before using exitWith.

 

That worked!  Thank you very much.

 

On 7/6/2023 at 4:22 PM, JCataclisma said:

Or even try this different approach from pierreMGI's code.

I´ve just added it with some tweaks to a helicopter and it's much more safe to fly inside it now:

 

I'm going to need to look at the code a bit more, but I may integrate this.  I didn't want the glass to be completely bullet proof, but it looks like it may break eventually, so it may be another option.  Thanks for pointing me to the thread.

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×