Since I've moved on to Unreal Engine 4 ( if you are interested) I have decided to upload my work here so some of you can use it or learn from it.
So I present you my shooter system. This one is probably quite advanced in terms of functionality, since I've tried to really add some features that are not really standard to SC2. It also includes a modified version of the SC2 Spectre that has additional animations for strafing, reloading, etc. Some of them are additive, so they can be used on a seperate layer to the main animation (i.e. Reloading, so you can reload while walking). And a Ragdoll death version of the Spectre that still keeps it's team color when dying.
Before you ask: There is no form of Network delay compensation included. But it offers enough flexbility to include your own. Ahli had some nice ideas about that, by saving the last X positions of each unit and using them when tracing the shot.
Pre built WASD + Mouse Movement. That features, Walking, Running, TPS Aim down Sight, Dodge, Reload, Weapon Switch.
3D aiming and shooting
Inventory and User Data based Weapon and Ammo system
Weapons make use of normal SC2 Effects. So porting existing ones to this mod requires only minor adjustments (mainly enabling Unit and Point Targets)
Weapons do support multiple Firing Modes. How you switch or access them is up to you.
Decal Spawing when a Shot hits the ground.
Connection to external Dialog based Interfaces possible using Generic Trigger Messages (UI is not in Main Mod, but Mods depending on this one can react to those messages)
Rebindable Keys and User Data Based Key Binding. You can just set up Key Binding Data inside the Data editor by specifiing a up/down function, a name for the Binding (this will be displayed in the ingame Menu and can me localized) and a Default Key (integer). A Mod using TSS as a depedency is able to delete the Pre-built Controls and just use it's own and is even able to add new actions. Triggers will be rebuilt when bindings change to have a minimum amount of triggers firing ingame.
Simple Height Region system to enable shot collision with doodads. (not very accurate)
Vector Functions based on Points
The Mod is mostly done in GUI, because I wanted people to easily understand it. There is some galaxy here and there though, especially for math, but it shouldn't be a big problem to understand even if you don't know galaxy.
Further Documentation will come in the posts below.
The other Mod SCT.SC2Mod is a example how to set up a UI for this mod.
The Map that is included shows how to set up a Map using this Mod.
Note that this mod was not really intended to release in this state. But since I'm not working on it anymore I thought that I should share it.
To bind keys to actions you need to go into the KeyBindings UserType inside the Data Editor and add a new instance.
Each instance has the following Properties:
ActionName: This is the friendly Name of the Action and can be localized. If you are using the preset KeyBindings UI this will be the the name that is displayed.
Default Key: Default key that is used if the game does not find an corresponding entry inside the players bank file. The key needs to be a integer number. The number for the key used can be looked up within the galaxy API as they are the same as the constants used for the "Key" Preset.
DownFunc: Function that is triggered on KeyPress. The function is required to have a format that can be used for Triggers.
UpFunc: Function that is trigger on KeyRelease. The function is required to have a format that can be used for Triggers.
The triggers that are created during runtime will be stored inside the global DataTable and can be accessed with the String Player[PLAYERNUM].Key[ACTIONID]