GetDotaStats / stat-collection

Library for setting up stat collection for dota2 mods
http://getdotastats.com/
GNU General Public License v2.0
11 stars 8 forks source link

[SCHEMA] THD2 #49

Closed justarcherit closed 8 years ago

justarcherit commented 8 years ago

Console Log:

-------- GAME DATA --------
{
}

 -------- PLAYER DATA --------
{
    1                                   = table: 0x03782908 (table)
    {
       lastHits                         = 7 (number)
       assists                          = 0 (number)
       ph                               = "tinker" (string)
       ablityNameList                   = "ability_thdots_yumemi01,ability_thdots_yumemi02,ability_thdots_yumemi03,ability_thdots_yumemi04,ability_thdots_yumemiEx,attribute_bonus" (string)
       denies                           = 0 (number)
       goldSpentSupport                 = 0 (number)
       playerTeamName                   = "BL" (string)
       itemNameList                     = "rapier,rapier,rapier,rapier,rapier,rapier" (string)
       pd                               = 0 (number)
       deaths                           = 0 (number)
       level                            = 25 (number)
       pk                               = 0 (number)
       totalEarnedGold                  = 1002548 (number)
       numPurchasedItems                = 18 (number)
       numPurchasedConsumables          = 0 (number)
       goldSpentItems                   = 41994 (number)
       kills                            = 0 (number)
       stunAmount                       = 11.300163269043 (number)
       heroID                           = 34 (number)
       goldSpentConsumables             = 0 (number)
       steamID32                        = 107864266 (number)
      gold                              = 60588 (number)
       nt                               = 102582 (number)
       il                               = "rapier,rapier,rapier,rapier,rapier,rapier" (string)
       totalEarnedXP                    = 32400 (number)
       goldSpentBuyBack                 = 0 (number)
    }
}

schema.lua:

table.insert(players, {
                    --steamID32 required in here
                    steamID32 = PlayerResource:GetSteamAccountID(playerID),

                    --old stats
                    ph = GetHeroName(playerID), --Hero by its short name
                    pk = hero:GetKills(),   --Number of kills of this players hero
                    pd = hero:GetDeaths(),  --Number of deaths of this players hero
                    nt = GetNetworth(hero), --Sum of hero gold and item worth
                    il = GetItemNameList(hero),

                    heroID = PlayerResource:GetSelectedHeroID(playerID),
                    level = PlayerResource:GetLevel(playerID),
                    kills = PlayerResource:GetKills(playerID),
                    assists = PlayerResource:GetAssists(playerID),
                    deaths = PlayerResource:GetDeaths(playerID),
                    gold = PlayerResource:GetGold(playerID),
                    denies = PlayerResource:GetDenies(playerID),
                    lastHits = PlayerResource:GetLastHits(playerID),
                    stunAmount = PlayerResource:GetStuns(playerID),
                    goldSpentBuyBack = PlayerResource:GetGoldSpentOnBuybacks(playerID),
                    goldSpentConsumables = PlayerResource:GetGoldSpentOnConsumables(playerID),
                    goldSpentItems = PlayerResource:GetGoldSpentOnItems(playerID),
                    goldSpentSupport = PlayerResource:GetGoldSpentOnSupport(playerID),
                    numPurchasedConsumables = PlayerResource:GetNumConsumablesPurchased(playerID),
                    numPurchasedItems = PlayerResource:GetNumItemsPurchased(playerID),
                    totalEarnedGold = PlayerResource:GetTotalEarnedGold(playerID),
                    totalEarnedXP = PlayerResource:GetTotalEarnedXP(playerID),
                    itemNameList = GetItemNameList(hero),
                    ablityNameList = GetAbilityNameList(hero),
                    playerTeamName = teamname,
                })

function GetHeroName( playerID )
    local heroName = PlayerResource:GetSelectedHeroName( playerID )
    heroName = string.gsub(heroName,"npc_dota_hero_","") --Cuts the npc_dota_hero_ prefix
    return heroName
end

function GetNetworth( hero )
    local gold = hero:GetGold()

    -- Iterate over item slots adding up its gold cost
    for i=0,15 do
        local item = hero:GetItemInSlot(i)
        if item then
            gold = gold + item:GetCost()
        end
    end
    return gold
end

function GetItemNameList(hero)
    local item
    local itemID
    local itemTable = {}
    local itemList

    for i=0,5 do
        item = hero:GetItemInSlot(i)
        if item then
            itemID = item:GetAbilityName()
            itemID = string.gsub(itemID,"item_","")
            if itemID then
                table.insert(itemTable,itemID)
            end
        end
    end

    table.sort(itemTable)
    itemList = table.concat(itemTable, ",")

    return itemList
end

function GetAbilityNameList( hero )
    local abilityName
    abilityData = {}
    local abilityCount = 0
    while abilityCount < 16 do
        local ab = hero:GetAbilityByIndex(abilityCount)

        if IsValidEntity(ab) then
            abilityName = ab:GetAbilityName()
            table.insert(abilityData,abilityName)
        end

       abilityCount = abilityCount + 1
    end

    table.sort(abilityData)
    local abilityNameList = table.concat(abilityData, ",")
    return abilityNameList
end
jimmydorry commented 8 years ago

Duplicate issue