Bump-Timer active.
Before talking about next version of MapGarbage builder/helper/plugin for Editor (UGold227h included), let's see what is about items aka inventories from a map - a common DM map having as navigation goals weaponry ammo armors and so on, these capturing Bot's attention.
As we know (or don't know...) each Inventory is generating some Navigation point called InventorySpot showing to the Bot where to move for collecting everything as possible if navigation network it's consistent. This actor by default has bHiddenEd=True which means it's hidden in Editor, but it might show up by using command in console "ShowInv".
Here might be questioning if this simple automated InventorySpot can be expanded in child classes for doing various tasks not only as a simple Navigation Point items-marker. Technically we can have some code doing different things but Editor won't use this Navigation Point during pathing process and then we need to work in another way. These stages can be as follows:
- writing in Mylevel or outside a new InventorySpot;
- compiling it and adding it where it has to be - recommended as Static/NoDelete thing for not messing with net codes but... it's up on your wishes;
- if this thing is generating an item or has to be linked with item, first step is Building Paths;
- testing paths would be welcomed and recommended;
- now we can add some Inventory almost in the same spot - usually on the ground;
- using Advanced actor Editing we claim for this Inventory as MyMarker the name of our new ExpandedInventorySpot;
- the same task would be done for ExpandedInventorySpot claiming markedItem this Inventory added manually;
- both previous jobs are not needed if our ExpandedInventorySpot does this automatically in map's run-time.
ExpandedInventorySpot can have also a reaction like in Chaos case but... linking items properly not what Chaos is doing - that's stupid, seriously speaking.
All we need to know is that Bot is moving for items with a positive desire and having a "MyMarker" and this "MyMarker" having our item as "markedItem" else Bot doesn't know how to find item unless Bot is a smarter one not plain UT Bot.
Useful assets that can be used multiple times can be compiled in whatever U package that can be imported in MyLevel any time for preventing other dependencies and potential version mismatch errors or various reactions at foreign recompiled bugged packages.
Right now I have such an InventorySpot which is a real charger. It is ONE generating a minimal paths charge but he can spawn/swap more items over time and linked with itself properly. Items are not a need to be there, just this thing. Editor is capable to connect it into network and causing usable paths.
The only problem is that ANY InventorySpot - more or less custom - will get vanished at rebuilding/deleting paths, it's why map needs testing for these using common PathNodes and before to be replaced with another custom InventorySpot after a major testing of paths placement.
For a bit or clarification I'll post two images: Editor and Run-Time for the same Map.
This is common Plain UT view of a
Blue-Base (CTF map):
- CustISpot_0.PNG (1.2 MiB) Viewed 9444 times
And then what's happening when map is running:
- CustISpot_1.PNG (1.65 MiB) Viewed 9444 times
Even if in Editor there is nothing to see where those small tool-boxes are placed, during run-time there are created random items which are swapped in this case at each 25 seconds. When Bots are retreating or operating whatever combat state, these are goals as long as they are identified as Items linked in paths Network - except those ammo nearby weapons as long as those are mainly collected as long as Bot is coming closer for weapon and then it has some desire for ammo too. This InventorySpot doesn't need a major extra-work, just a few items configured at will, if it's empty, it will generate weapons from BotPack randomly. It's why in run-time map has weapons but... it's empty in Editor, lol.
This can be called a basic prototype of a Dynamic Map. In such Dynamic Maps we can have other various changes more or less random or more or less configured for certain hours, days, and so on.