stat generation
Mirv opened this issue · comments
Need to get the stats from the game engine - via eventhandler
Starting with ...
EntityKilled
con:
- mission event
- must check it's on dedicated
- fires for every unit
pro:
- simple
- gives me everything
Others ...
- mpkill
- dammage
- hit
- handleScore
Notes:
- side doesn't work unless alive & missiosn don't do custom faction names
- custom weapons via missions like antistasi mortars / statics being vehicles aren't handled
- kills from a vehicle or ordered by a commander / squad leader credits get messy
Simple version
- killed uid
- killed name // AI won't have UID - not sure should record, but might net interesting llama on llama tk info
- killed team // teams appears to be useless as most mods add their own factions into the team slots
- killer uid
- killer name
- killer team // teams appears to be useless as most custom missions add their own factions into the team slots
- killDistance
- currentMap // from worldName
- currentMission // from missionName
- currentServerName // from serverName
- killerPos // heat map idea
- killedPos
- weaponName
- weaponClass // fn_weaponNames might need to be where we credit players in vehicle too
- isVehicle
- vehicleClass // from typeOf vehicle player
- vehicleName
- ingame date/time
- check if kill is by player & exitwith []; if not
- player roles of both? // with getAllUnitTraits - Link
// - TODO - might make more sense instead of getting name, get the class role & nice name as that explains what the person was - squad names are hand typed - so might be sql injection issue
Version 4 add:
- who was in squad
- who was online
- distance of squad
- distance of online people
Version 5 add:
- designated
- who spotted
- who saw first
Version 6 add:
- other players who damaged
Version 7 add:
- Auxiliary / assist credits for others?
https://gist.github.com/Mirv/e60f528ea24c774ec32b89a787f18169
Currently the entityKilled time & the time the shotfired could be different over greater distances - especially if the unit bleeds out versus instant death.
Con's ... This is HIGHLY imbalanced way to check because:
- statics / vehicles fire significantly faster
- statics / vehicles are almost always fatal on first hit
- statics / vehicles fire significantly faster
- most man-portable weaponry results in an injury - not a kill
Pro's
- best multiplayer option
- will only trigger once globally
- deals with ai & players
- allows tracking on vehicle impacts
- allows tracking of thrown ordinance
- tracks if target dies from indirect hits
- tracks if target bleeds out later
- statistically rare compared to hits
- exponentially less lag compared to "fired" type triggers
It also introduces the issue of travel time for munitions - mortars, missiles, sniper shots etc give time for a player to switch weapons or exit the vehicle before the kill happens.
alternative #1 is to have each shot fired have an _instigator or shotParent attached
Pros
- allows us to know the weapon that fired accurately
- allows us to add players in vehicles to credit them accurately
- could credit the squad
- could credit anyone within certain distance
- could credit anyone online
Con's
-
we just multiplied the server impact, r.ate o.f f.ire x number of players + r.o.f. times number of AI
-
see #1 - this can't be stressed enough - especially with any insurgent type full map simulator with 3 sides
-
see #1 - we will never be able to run tanoa with 3 sides
-
would much prefer to do on damage & calc percent, maybe on hits
"Hit" often doesn't fire if killed is triggered - so this method is extremely unreliable by itself
Attaching to players "FiredNear" event can help credit other players by attaching
Assembling:
- killed uid
- killed name // AI won't have UID - not sure should record, but might net interesting llama on llama tk info
- killed team // teams appears to be useless as most mods add their own factions into the team slots
- killer uid
- killer name
- killer team // teams appears to be useless as most custom missions add their own factions into the team slots
- currentMap // from worldName
- currentMission // from missionName
- currentServerName // from serverName
- killerPos // heat map idea
- killedPos
- killDistance
- weaponName
- weaponClass // fn_weaponNames might need to be where we credit players in vehicle too
- isVehicle
- vehicleClass // from typeOf vehicle player
- vehicleName
- ingame date/time