Jump to content
beno_83au

Using HitPart On Land_CarService_F Problem

Recommended Posts

Hello,

 

I've come across a problem where using the EH "HitPart" on the "Land_CarService_F" building doesn't return a selection when it's doors are hit, it only returns "Any". As a quick reference, here's the building:

320px-Arma3_CfgVehicles_Land_CarService_

Other buildings return the selection (door name) just fine when hit, but this one won't. To reproduce just plug this into the console when looking at the servo:

cursorObject addEventHandler ["HitPart",{
	((_this select 0) select 0) params ["_building"];
	((_this select 0) select 5) params ["_door"];
	systemChat format["%1 |-| %2",_building,_door];
}];

Have I missed something? Or is this one for the feedback tracker?

 

Thanks

 

Edit: Posted to the Feedback tracker.

Edited by beno_83au
Update OP with feedback tracker topic.
  • Like 1

Share this post


Link to post
Share on other sites

One way to quickly narrow it down would be:

Does this work for any other building with door? Unable to test myself atm. Busy watching TV show ha.

EDIT:

I should read more carefully in future. I will do some testing shortly and report back.

EDIT 2:

It appears to be a bug? Really odd. I assume it is EH related as the doors are returned when using selectionNames command.

EDIT 3:

I decided to try HandleDamage EH even though I had to multiply the damage on the building. The doors are never found, only the glass selections.

  • Like 3

Share this post


Link to post
Share on other sites

well, doors are usually in animation sources. Double click on land_carService_F in config viewer. Double click on animationSources token. You can see 3 doors with their different animations.

Note apart: The BI commands: animateSource and animateDoor have their own syntax .

 

On the other hand, there is no hitparts (double click on hitpoints) for these doors. Just for glasses and you can catch the glass (or the door) of a building via:

 

 0 = [] spawn {
  while {true} do {

    sleep 0.5;
    _intersects = ([cursorObject, 'FIRE'] intersect [ASLToATL eyepos player, (screentoworld [0.5,0.5])]);
    _selection = if (count _intersects > 0 ) then [{str(_intersects select 0 select 0)},{''}];
    hint _selection

  }

};

 

As you can see you have a "glass_5_hide" on "door_1" but no glass on door_2 and 3.

Returning to animationSources, you have a Glass_5_source with a Glass_5_hitpoint as hitPoint.

 

You obtain the same result with getAllHitPointsDamage cursorObject after breaking the glass of door 1.

Unfortunately, you have this only point for your purpose.

 

 

 

 

  • Like 2

Share this post


Link to post
Share on other sites
16 minutes ago, pierremgi said:

On the other hand, there is no hitparts (double click on hitpoints) for these doors.

 

Sorry @pierremgi, I'm trying to get my head around what you're saying. Looking at another building in the config viewer (that does return a door as the selection when a door is hit) I see the same thing but I still get "Door_#" as the selection when it is hit. So I'm confused as to what you're trying to tell me about selections/hitpoints

 

Looking a bit further into it, the control tower building "Land_Airport_Tower_F" also returns "Any" when the doors are hit. Is this just the way the doors have been configured?

 

Using the intersect command gets any of the doors in question though, so that might be the way forward for now.

Share this post


Link to post
Share on other sites
10 minutes ago, beno_83au said:

Using the intersect command gets any of the doors in question though, so that might be the way forward for now.

Unless BIS fix the misconfigured objects. :happy:

Don't hold your breath though.

Share this post


Link to post
Share on other sites

You can't hit a non-existing point (in hitpoints of the object's class). simple as that. When you say "when the doors are hit", that doesn't have any sense, (anyway no more than a wall). If there is no hitpoint, there is no damage for that.

Tell me one building which returns a hit door (not a glass), and I will find the hitpoint in its class.

Share this post


Link to post
Share on other sites

This one:

Land_i_Shop_01_V3_F

I assume certain objects are not configured correctly? One being the CarService.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
4 minutes ago, pierremgi said:

When you say "when the doors are hit", that doesn't have any sense, (anyway no more than a wall).

 

Using this:

cursorObject addEventHandler ["HitPart",{
	((_this select 0) select 0) params ["_building"];
	((_this select 0) select 5) params ["_door"];
	systemChat format["%1 |-| %2",_building,_door];
}];

Then firing at a door will return the door. It works fine on the building that @HazJ mentioned. But not on the other mentioned buildings, which is why I am inclined to think it's a bug (no breath holding here either).

  • Like 1

Share this post


Link to post
Share on other sites

Well, I forgot te fact:

 

- the EH "hitPart" fires with selection . See selectionNames

- the hit point damage works with the hitPoints. See getAllHitPointDamage  (points which could be found in config viewer)

 

As you can see, the EH is not "damage oriented" (doesn't return info on that). Rather an info on ammo collision with object. The selections have also different purposes than hit, like rotation (wheel), animations,...

 

 

Example; selection names of a Hunter:

["glass3","wheel_1_1_hide","wheel_1_2_hide","wheel_2_1_hide","wheel_2_2_hide","drivewheel","damagehide","glass1","glass2","otocvez","wheel_1_1_steering","wheel_2_1_steering","wheel_1_1_damper","wheel_2_1_damper","wheel_2_2_damper","wheel_1_2_damper","proxy:\a3\data_f\proxies\damagewheel\damagewheel_1.001","wheel_1_1_unhide","proxy:\a3\data_f\proxies\damagewheel\damagewheel_1.002","wheel_1_2_unhide","wheel_2_1_unhide","proxy:\a3\data_f\proxies\damagewheel\damagewheel_1.003","proxy:\a3\data_f\proxies\damagewheel\damagewheel_1.004","wheel_2_2_unhide","proxy:\a3\data_f\proxies\passenger_generic01_foldhands\cargo.003","proxy:\a3\data_f\proxies\passenger_mrap_01_back\cargo.002","camo1","camo2","proxy:\a3\data_f\proxies\passenger_mrap_01_front\cargo.001","light_l","light_r","brzdove svetlo","zadni svetlo","zbytek","proxy:\a3\data_f\proxies\driver_offroad\driver.001","reverse_light","reserve_wheel","door_1","door_2","door_3","door_4","light_l2","light_r2","proxy:\a3\data_f\volumelightcar.001","proxy:\a3\data_f\volumelightcar.002","clan","glass4","glass5","glass6","proxy:\a3\data_f\proxies\flags\flag_alone.001","antenna","door_1_hide","door_3_hide"]

 

Hit points damage (3 arrays):

hit points:

["hitlfwheel","hitlf2wheel","hitrfwheel","hitrf2wheel","hitbody","hithull","hitengine","hitfuel","hitglass1","hitglass2","hitglass3","hitglass4","hitglass5","hitglass6","hitrglass","hitlglass","hitlbwheel","hitlmwheel","hitrbwheel","hitrmwheel","#light_l","#light_r","#light_l","#light_r","#light_l2","#light_r2"],

hit points:

selection names refering to these hit points:

["wheel_1_1_steering","wheel_1_2_steering","wheel_2_1_steering","wheel_2_2_steering","karoserie","hit_hull_point","motor","palivo","glass1","glass2","glass3","glass4","glass5","glass6","","","","","","","light_l","light_r","light_l","light_r","light_l2","light_r2"],

damage values:

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0]

 

So, ready for a feedback? :greetings:

 

 

 

  • Like 3

Share this post


Link to post
Share on other sites
19 minutes ago, pierremgi said:

 

So, ready for a feedback? :greetings:

 

I'm ready for anything! I get what you were trying to say about hitPoints now, but I only need to work with the door's selectionNames. Damage is not a concern, only where ammo has collided with the object. I just want it to tell me what door was hit :icon_cry:. The selection names even exist when running selectionNames on the troubled buildings, but only return "Any" when hit.

 

So, as mentioned before, maybe using intersect is the way to get around this as your example using intersect reliably showed the doors.

  • Like 2

Share this post


Link to post
Share on other sites

Remember to share link if you post on feedback tracker.

  • 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

×