Jump to content

Questions about Static object destruction logic


Recommended Posts

Posted (edited)

So either I never understood how this works or something has changed over the years.

 

I always though that the 'OnKilled' event works as follows for static objects (with entity):

-When 50% of the individual components is destroyed the object will trigger 'OnKilled' event.

 

However, I now realize after testing that each individual component triggers an 'OnKilled' event!

This makes it hard to determine when an object is destroyed unless you know how many components makes up the object.

 

To illustrate:

image.png.d2712e76f210f99c171fc0e510a6b78f.png

 

In this example the object is composed of 4 tents. The counter will only trigger if it counts 4 'OnKilled' events. I destroy the object with a Damage complete command and immediately the subtitle shows, telling me that each individual tent triggered an 'OnKilled'  event.

 

Now suppose I want to know when this object is destroyed:

image.png.59e09871694dc76629d19690ed0f7e80.png

Let's say I would want to know if 50% of the buildings is destroyed. How to do this? Visually I can count 14 separate objects, but I can't be sure. I may have to go through all the damage states... And there are many many different objects in the sim!

 

1) Is this the way it is supposed to work?

2) How do you guys solve this problem? Just guess the amount of components? Or is there another easier way? I already tried 'OnDamaged', but this also seems to be triggered by individual components.

 

My goal is to automatically calculate the success counter for an objective that exists out of multiple of these objects for my mission generator.

 

 

 

Edited by SYN_Vander
ITAF_Airone1989
Posted (edited)

Don't know if can help you, but for some object I did a test to check how many obcjet are "inside" - > ("real" value)
They should be fairly accurate
 

Spoiler
  Visible Real
     
af_barracksround1;6000    
af_barracksround2;6000 4 23
af_barrackssmall;3000 4 11
af_camptents1;2000    
af_camptents2;2000 2 2
af_guardgate;500    
af_hangardoubleside;15000    
af_hangartent1;3000 3 3
af_hangartent2;6000 2 2
af_smalltents;1000 8 8
arf_ammo_1;1500    
arf_ammo_2;1500    
arf_ammo_3;1500 3 11
arf_ammo_4;1500    
arf_barak;6000    
arf_caponiers_1_v_5;25000    
arf_caponiers_10_h_3;25000    
arf_caponiers_11_h_5;25000    
arf_caponiers_12_h_5;25000    
arf_caponiers_2_v_5;25000    
arf_caponiers_3_v_5;25000    
arf_caponiers_4_r_6;25000    
arf_caponiers_5_r_7;25000    
arf_caponiers_6_h_4;25000    
arf_caponiers_7_h_4;25000    
arf_caponiers_8_h_4;25000    
arf_caponiers_9_h_3;25000    
arf_dugouts_1;20000 4 6
arf_dugouts_2;20000 6 8
arf_dugouts_3;20000    
arf_eu_barrackblack;10000    
arf_eu_barrackblack4;10000    
arf_eu_barrackwhite;15000    
arf_eu_barrackwhite4;15000    
arf_eu_controltower;15000    
arf_eu_lufthangar;20000    
arf_gsm_1;1500 4 8
arf_gsm_2;1500    
arf_hangararc;35000    
arf_hangarbox;25000    
arf_hangars_1;15000    
arf_hangars_2;15000    
arf_hangars_3;15000    
arf_nets_1_4;1500    
arf_nets_2_5;1500    
arf_nets_3_3;1500    
arf_saray;10000    
arf_sign_forward;500    
arf_sign_left;500    
arf_sign_noway;500    
arf_sign_right;500    
arf_sklad;20000    
arf_tower;15000    
arf_tower_1;1500    
arf_tower_2;1500    
art_position_amb1;500    
art_position_amb2;500    
art_position_at;10000    
art_position_at2;10000    
art_position_big;10000    
art_position_medium;10000    
art_position_small;10000    
bf_barbed_1;1000    
bf_barbed_2;1000    
bf_barbed_3;1000    
bf_barbed_4;1000    
bf_barbed_5;1000    
bf_barbed_50;1000    
bf_gunpos_1;25000    
bf_gunpos_2;25000    
bf_gunpos_3;50000    
bf_gunpos_4;50000    
bf_gunpos_5;50000   16
bf_gunpos_6;50000    
bf_gunpos_7;50000    
bf_gunpos_8;50000    
bf_tents_1;6000    
bf_tents_2;6000 4 4
bf_tents_3;1000 4 4
country_100x100_1;10000    
country_100x100_2;10000    
country_100x100_3;10000    
country_100x100_4;10000    
country_200x100_1;10000    
country_200x100_2;10000    
country_200x100_3;10000    
country_200x100_4;10000    
country_200x100_5;10000    
country_200x100_6;10000    
country_b_block1;10000    
country_b_block2;10000    
country_b_block3;10000    
country_b_block4;10000    
country_m_block1;10000    
country_m_block2;10000    
country_m_block3;10000    
country_m_block4;10000    
country_m_corner_block1;10000    
country_m_corner_block2;10000    
country_m_corner_block3;10000    
country_m_corner_block4;10000    
country_m_corner_block5;10000    
country_m_corner_block6;10000    
country_m_corner_block7;10000    
country_m_corner_block8;10000    
dugout;20000    
fake_block;10000    
guardgate1;500    
gumrak;20000    
industrial_200x140_01;20000   13
industrial_200x140_02;15000   20
industrial_300x100_01;15000   14
industrial_300x100_02;20000   16
industrial_300x100_03;20000   10
industrial_300x100_04;15000   8
industrial_block_bigwarehouse_300x100;25000   16
industrial_block_eu_fabric200x200;50000    
industrial_block_eu_fabric200x200_2;100000    
industrial_block_eu_fabric250x100;100000    
industrial_block_eu_fabric300x200;50000    
industrial_block_eu_fabric300x200_2;50000    
industrial_block_fuel_300x100;15000   32
industrial_block_fuel2_300x100;15000   30
industrial_block_fuel25m_300x100;15000   8
industrial_block_fuel35m_300x100;20000   10
industrial_block_midwarehouse_200x140;20000   12
industrial_block_smallwarehouse_150x100;15000   28
industrial_block_smallwarehouse_300x100;15000   43
industrial_block_smallwarehouse2_150x100;15000   19
industrial_block_smallwarehouse2_300x100;15000    
industrial_block_zavodcement;20000   29
industrial_block_zavodoktyabr;20000   28
industrial_cornerl_01;20000   8
industrial_cornerl_02;15000   10
industrial_cornerr_01;15000   7
industrial_cornerr_02;15000   11
industrial_object_oil;15000 1 1
industrial_object_oilsmall;10000 1 1
industrial_object_smallwarehouse;10000    
industrial_object_zavodkorpys45m;20000 1 1

 

Edited by ITAF_Airone1989
  • Thanks 1
AEthelraedUnraed
Posted
On 10/31/2021 at 2:44 PM, SYN_Vander said:

So either I never understood how this works or something has changed over the years.

 

I always though that the 'OnKilled' event works as follows for static objects (with entity):

-When 50% of the individual components is destroyed the object will trigger 'OnKilled' event.

 

However, I now realize after testing that each individual component triggers an 'OnKilled' event!

This makes it hard to determine when an object is destroyed unless you know how many components makes up the object.

 

To illustrate:

image.png.d2712e76f210f99c171fc0e510a6b78f.png

 

In this example the object is composed of 4 tents. The counter will only trigger if it counts 4 'OnKilled' events. I destroy the object with a Damage complete command and immediately the subtitle shows, telling me that each individual tent triggered an 'OnKilled'  event.

 

Now suppose I want to know when this object is destroyed:

image.png.59e09871694dc76629d19690ed0f7e80.png

Let's say I would want to know if 50% of the buildings is destroyed. How to do this? Visually I can count 14 separate objects, but I can't be sure. I may have to go through all the damage states... And there are many many different objects in the sim!

 

1) Is this the way it is supposed to work?

2) How do you guys solve this problem? Just guess the amount of components? Or is there another easier way? I already tried 'OnDamaged', but this also seems to be triggered by individual components.

 

My goal is to automatically calculate the success counter for an objective that exists out of multiple of these objects for my mission generator.

 

 

 

Well, the more sub-objects there are, the less the exact amount matters. It's not like anyone's gonna make an objective of "destroy 47 buildings" :)

 

Just guesstimate the amount. You can set one of the sub-objects to damaged to quickly test how many there are. If you see a result, there are at least as many sub-objects as the number of the one you destroyed. If nothing happens, there are less.

 

But yeah, I've said this before, but I re-iterate that it'd be great to have all the separate sub-objects as well, instead of just the combined objects. Imperative for when you want to destroy one specific building.

Posted

Thnx. Yeah, I guess this the only way.

Posted

You can also use Command:Damage and destroy particular object and then check in the log files how many sub-objects there were.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...