The change list isn't big but should improve bot attraction logic a lot and fix a few bad bugs where normal doors get 'unpathed' until the player opens them again
Boss monsters can be subject to attraction queries as well.
There's a weird crash bug on clients when they're switching levels, related to the HUD.
Will try to find out what's going on there.
This modifies the bTournament option so that it doesn't require all the server slots to be filled, and allows players to go from READY to NOT-READY.
This is also being used on the server and works with all gametypes.
- Code: Select all
This mutator allows you to script each map in very interesting ways. (also in server)
For better understanding of what it does take a look at Gunloc.ini, said INI is parsed using a self-made system and the file is closed immediately after it finishes parsing so it can be safely modified during a session.
Stuff it can do:
- Health/armor leech, ammo leech. Rewards per boss kill.
- Giving players items as part of their respawn kit.
- Modifying starting health.
- Executing a variety of console commands.
- Spawning scriptable triggers/events.
- VisibleTeleporter subtype that auto-connects to the path network, making bots use them effectively.
- Versatile trigger (added via scripting commands).
- INI parser
The code is great to look at (if you're into XC_Engine) because it provides great examples of improving the server like never seen before:
Player data and info is held in a specific actor and referenced in the mutator using a hashbin, meaning that instead of taking [1 to PlayerNum] loops to find the correct hashbin, it instead performs [1 to PlayerNum/16] loops, this is the same kind of code that hashes player data in MonsterHunt_CR, These player data holders use dynamic arrays for the item implementations (similar to UE2).
The INI handler shows how to use the BinarySerializer component of XC_Core to load and write text data in simple ways, text parsing is super simple so take into account that the order in which stuff is added matters.
Console commands can be modified as it can be seen in the GunlocMutator class, while ConsoleCommand is a native function, it is the only one that can be overriden or expanded.
I used that as a way to implement methods from the player classes into the GunlocMutator allowing the server admin to easily script the map with these commands, especially with SUMMON because the scripter can specify location and modify variables on the newly spawned actor.
The GunlocTeleporter class is an extension of VisibleTeleporter and it'll be replicated as a VisibleTeleporter to clients, avoiding the need of having to send the package to clients (bSuperClassRelevancy), this teleporter class will temporarily create a pawn (GunlocScout) to evaluate reachability from nearby paths and connect it to the path network, making bots 100% able to use these teleporters.