Bug description; a call to construct a fake construction in the map script makes planted dynamite disappear elsewhere in the map. Possibly related to the
ETPro bug (pre 3.1.14) "building-mg42-eats-dynamite bug"
Affects: FritzBot ET 0.70B final and 0.70C (keyword fix beta)
Discussion: Since Crapshoot introduced us to the
Code:
construct <func_constructible> //fake construct, tell the aiscript
as a reusable trigger of communications from the map script to the bot aiscript I have rarely seen this bug. But as I recently started testing more broadly I found that it was more wide spread even appearing in the aldernest waypoint. But What puzzled me was why only dynamite in some large areas of aldernest (but not all). I was also puzzled why I did not notice it in my v1rocket_b2 waypoints but noticed it generally inside my warehouse waypoints. Well upon further testing there appears to be a geographical limitation maybe of a few thousand units (I have not got down to exact measurements) for this bug. So while not using fake constructs when in conflict with dynamite plants is still a good practice, in those cases where that is not possible or easy, try this other workaround (may not work on all maps).
Workaround: The
origin of the created
func_constructible at the top of the
spawn{ function of the
game_manager should use a set of "x y z" coordinates that are as far away as possible from any possible dynamite plants in the map play. (Use /viewpos to find positions). So, Try putting this
origin value in a corner position of the map or along a map edge. But if that is still not far enough try using a location outside the map using the
/noclip command to get past the map clip box. Technically that is leaking an entity outside of the map but in runtime not compile time so it seems OK (so far).
The targeting
trigger_objective_info in the map script and the minor_construct action node in the nav file do not need any change in their position.
Checking your workaround requires planting dynamite and triggering a script block with the construct <targetname>. (<targetname> being the string assigned to targetname in your create block). You must trigger construct command at least twice since only the second, third, 4th, 5th etc triggers will eat the dynamite.
More info: See the wiki topics;
Fritzbot Map Scripting and
FritzBot Buttons And Levers (username and password are hinted at in the sign in box)