I'm trying to build a ranking system like the one they have in DotaCash for my map.
After a lot of searches, I could not find any information on how they did it. My guess is that they parse the replay files generated from the hosting bots, insert the relevant records into the database for users to query them in the ranking page.
All this is fine, but according to the W3G action format, there is no actions saved in the replay file indicating of units' deaths, so I'm not sure how they handled that part.
I'm thinking they must've manually injected the unit death event for the replay parser to pick up. Here are the action types available in W3G files:
AssignGroupHotkey
CancelHeroRevive
ChangeAllyOptions
ChangeSelection
DecreaseGameSpeed
DequeueBuildingOrder
DialogAnyButtonClicked
DialogButtonClicked
DropOrGiveItem
EnterChooseBuildingSubMenu
EnterChooseHeroSKillSubmenu
FogObjectOrder
GameCacheSyncBoolean
GameCacheSyncEmptyBoolean
GameCacheSyncEmptyReal
GameCacheSyncEmptyUnit
GameCacheSyncInteger
GameCacheSyncReal
GameCacheSyncUnit
IncreaseGameSpeed
MinimapPing
ObjectOrder
PauseGame
PointOrder
PressedEscape
PreSubGroupSelection
SaveGameFinished
SaveGameStarted
SelectGroundItem
SelectGroupHotkey
SelectSubGroup
SelfOrder
SetGameSpeed
TransferResources
TriggerArrowKeyEvent
TriggerChatEvent
TriggerMouseClickedTrackable
TriggerMouseTouchedTrackable
TriggerSelectionEvent
TriggerWaitFinished
So my question is, which of these events do I use in my map to indicate unit's death? (Maybe inject some sort of string in a defined format like P1(Unit ID)-K-P2(Unit ID), - being the delimeter)?
Or better, how does dotacash handle ranking system?
After a lot of searches, I could not find any information on how they did it. My guess is that they parse the replay files generated from the hosting bots, insert the relevant records into the database for users to query them in the ranking page.
All this is fine, but according to the W3G action format, there is no actions saved in the replay file indicating of units' deaths, so I'm not sure how they handled that part.
I'm thinking they must've manually injected the unit death event for the replay parser to pick up. Here are the action types available in W3G files:
AssignGroupHotkey
CancelHeroRevive
ChangeAllyOptions
ChangeSelection
DecreaseGameSpeed
DequeueBuildingOrder
DialogAnyButtonClicked
DialogButtonClicked
DropOrGiveItem
EnterChooseBuildingSubMenu
EnterChooseHeroSKillSubmenu
FogObjectOrder
GameCacheSyncBoolean
GameCacheSyncEmptyBoolean
GameCacheSyncEmptyReal
GameCacheSyncEmptyUnit
GameCacheSyncInteger
GameCacheSyncReal
GameCacheSyncUnit
IncreaseGameSpeed
MinimapPing
ObjectOrder
PauseGame
PointOrder
PressedEscape
PreSubGroupSelection
SaveGameFinished
SaveGameStarted
SelectGroundItem
SelectGroupHotkey
SelectSubGroup
SelfOrder
SetGameSpeed
TransferResources
TriggerArrowKeyEvent
TriggerChatEvent
TriggerMouseClickedTrackable
TriggerMouseTouchedTrackable
TriggerSelectionEvent
TriggerWaitFinished
So my question is, which of these events do I use in my map to indicate unit's death? (Maybe inject some sort of string in a defined format like P1(Unit ID)-K-P2(Unit ID), - being the delimeter)?
Or better, how does dotacash handle ranking system?