CustomGames.ru - Dota 2 пользовательские игры

Как из кв файла достать 2ю переменную

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
У меня есть скрипт который должен вытягивать из кв файла вторую переменную
пример
Код: (ItemsAndAbilityLocalisation)
"TABLE"{"dota_ability_random1" "Dota Ability Random 1", "dota_ability_random2" "Dota Ability Random 2"}
Код: (LUA)
function CDOTA_BaseNPC:GetAbilityNameInSlot( slot )
    local hero = self
    local ability = hero:GetAbilityByIndex(slot)
    local abilityname = ""
    if not ability then
        abilityname = "-1"
    else
        for _, name in pairs(ItemsAndAbilityLocalisation) do
            local ab_name = ability:GetName()
            if ab_name == name then
                abilityname = ItemsAndAbilityLocalisation[ab_name]
                break
            end
        end
    end

    if not abilityname then abilityname = string.gsub(ability:GetName(),"_"," ") end
    return abilityname
end
И мне надо чтобы оно брало если название абилки (системное) == "dota_ability_random1" то нейм = "Dota Ability Random 1".
« Последнее редактирование: 12-02-2017, 18:32:08 от Danis »
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 1909
  • Мощь: 16
Лично я нихера не понял.

Приведи пример.

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
Лично я нихера не понял.

Приведи пример.

Допустим у меня есть абилка с названием dota_ab_1 и dota_ab_4, мы их пробиваем по таблице в кв файле
в кв файле есть следующие значения
ValueTable
{
"dota_ab_1" "DOTA ABILITY 1",
"dota_ab_4" "DOTA ABILITY 4",
}
и мне нужно чтобы в ответе функции выдавало не dota_ab_1 или dota_ab_4 а DOTA ABILITY 1 или DOTA ABILITY 4
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 1909
  • Мощь: 16
Так, и  в чем ошибка? Вроде все верно у тебя написано, если не обращать внимание на сомнительную  "-1" : ))

Лично я пользуюсь не kv, а отдельным lua файлом, в котором так же храню таблицы.

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
Так, и  в чем ошибка? Вроде все верно у тебя написано, если не обращать внимание на сомнительную  "-1" : ))

Лично я пользуюсь не kv, а отдельным lua файлом, в котором так же храню таблицы.

Пишет оно мне что то что я использую в pairs это не таблица а "nil", и что делать хз
Пы Сы я ее обозначал в файле сеттингс ItemsAndAbilityLocalisation = LoadKeyValues("scripts/npc/KV/ItemsAndAbilityLocalisation.kv")

В прочем потом попробую через луа файл, а пока оставлю так
Код
function CDOTA_BaseNPC:GetAbilityNameInSlot( slot )
    local hero = self
    local ability = hero:GetAbilityByIndex(slot)
    local abilityname = ""
    if not ability then
        abilityname = "-1"
    else
        abilityname = string.gsub(ability:GetName(),"_"," ")
    end
    return abilityname
end
Это вообще все затеяно для отправки статистики на getdotastats.
« Последнее редактирование: 12-02-2017, 20:33:11 от Danis »
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 1909
  • Мощь: 16
Значит неверно задаешь таблицу в кв.

Можешь запустить статистику и без этой штуки, а когда разберешься - добавить. Можешь так же и ребят спросить с dotastat, они могут помочь.

А вообще заведи просто хэш таблицу в луа и не парься. Кв не просто так используют.

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
Значит неверно задаешь таблицу в кв.

Можешь запустить статистику и без этой штуки, а когда разберешься - добавить. Можешь так же и ребят спросить с dotastat, они могут помочь.

А вообще заведи просто хэш таблицу в луа и не парься. Кв не просто так используют.

Статистику я уже сделал нормальную, а что за хеш табл.? а просить ребят с dotastat не получится нормально, с англ беда)
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
В одном ошибка во втором нет. Сам пойми где она.
Код
ValueTable
{
"dota_ab_1" "DOTA ABILITY 1",
"dota_ab_4" "DOTA ABILITY 4",
}

Код
"ValueTable"
{
"dota_ab_1" "DOTA ABILITY 1"
"dota_ab_4" "DOTA ABILITY 4"
}

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
В одном ошибка во втором нет. Сам пойми где она.
Код
ValueTable
{
"dota_ab_1" "DOTA ABILITY 1",
"dota_ab_4" "DOTA ABILITY 4",
}

Код
"ItemsAndAbilityLocalisation" 
{     

            "phantom_roulette"                     "Roulette"

            "legion_guardian"                     "Dragon skin"

            "tinker_rearm_cha"                     "Rearm"

            "silencer_glaives_of_wisdom_datadriven"                "Glaives of Wisdom"

            "naix_feast_c"                 "Feast"

    "mana_break_datadriven"        "Manabreak"

    "obsidian_destroyer_essence_aura_datadriven"        "Essence Aura"

    "earthshaker_aftershock_datadriven"        "Aftershock"

    "lina_fiery_soul_datadriven"        "Fiery Soul"

    "legion_commander_moment_of_courage_datadriven"        "Moment of Courage"

            "elder_titan_natural_order_custom"                 "Natural Order"

            "medusa_mana_shield_custom"                    "Mana Shield"

"omni_anaphema_datadriven" "ANAPHEMA"

"omni_holylight_datadriven" "HOLY LIGHT"

"omni_bless_datadriven" "BLESSING"

"omni_incagi_datadriven" "INCREASE AGILITY"

        "nevermore_necromastery_custom"                        "Necromastery"

            "abyssal_underlord_atrophy_aura_custom"                    "Atrophy Aura"

            "spectre_dispersion_custom"                    "Dispersion"

            "storm_spirit_overload_c"                  "Overload"

            "death_prophet_witchcraft_c"               "WitchCraft"

    "alastar_punch_str"                     "Strength punch"

"alastar_punch_agi"                     "Agility punch"

        "alastar_punch_int"                     "Intellect punch"

"alastar_change"                         "Chameleon"

        "alastar_punch_stats"                       "Perfection strike"

"alastar_bonus_stats"                       "Bonus attributes"
       
            "item_ring_of_vasilius"                "Vasilius Ring"

            "item_mana_stone"                      "Magic Stone"

            "item_hyper_glove"                                 "Hyper-Speed glove"

            "item_heart2"                                      "Monster Heart"

            "item_ringed_glove"                                    "Ringed Glove"

            "item_stone_of_decay"                                  "Stone of Decay"

            "item_deso2"                                           "Desolator 2"

            "item_katana"                                          "Katana"

            "item_fly"                                             "ButterFly"

            "item_handed_sword"                                    "Two-handed Sword"

            "item_cursed_eye"                                  "Cursed Eye"

            "item_cheat_test"                  "Cheat Item"

            "item_katana_and_handed"                                               "Katana and Two-handed Sword"

                "item_mana_heart"                              "Magic Heart"

                "item_mana_heart2"                             "Magic Heart 2"

                "ITEM_PURGED_HEART"                "Pure Heart"

                "item_heart_shard"                 "Heart Shard"

                "item_armor_plate"                 "Armor Plate"

                "item_enchanted_plate"                 "Enchanted Plate"

            "item_insane_shield"               "Sturdy Armor (Insane Shield)"

                "item_vanguard_2"              "Vanguard 2"

                "item_vanguard_3"              "Vanguard 3"

                "item_sacred_shield"               "Vanguard 4 (Strong Shield)"

                "item_vanguard_c"              "Vanguard"

            "item_war_axe_piece"               "Blade piece"

            "item_war_axe_piece_dummy"               "Blade piece (Dummy)"

            "item_war_axe_dummy"               "Blade"

            "item_war_axe"                                 "War Axe"

            "item_big_crit"                    "Death (Big Crit)"

            "item_doebalus"                    "Doebalus"

            "item_power_core"                  "Power Core"

                "item_power_treads_strength_2"                 "Power Treads 2 Str"

                "item_power_treads_agility_2"                  "Power Treads 2 Agi"

                "item_power_treads_intellegence_2"                 "Power Treads 2 Int"
               
                "item_power_treads_strength_3"                 "Power Treads 3 Str"

                "item_power_treads_agility_3"                  "Power Treads 3 Agi"

                "item_power_treads_intellegence_3"                 "Power Treads 3 Int"

                "item_phase_boots_2"                           "Phase Boots 2"

                "item_phase_boots_3"                           "Phase Boots 3"

                    "item_tranquil_boots_two"                  "Tranquil Boots 2 (Inact)"

                    "item_tranquil_boots_two_active"                  "Tranquil Boots 2"

                    "item_tranquil_boots_three"                  "Tranquil Boots 3 (Inact)"

                    "item_tranquil_boots_three_active"                  "Tranquil Boots 3"

                "item_treatment_greaves"                   "Treatment Greaves"

                "item_lens_c"                       "Aether Lens"

                "item_aether_lens_2"                       "Aether Lens 2"

                "item_lens_three"                       "Aether Lens 3"

                "item_lens_foty"                       "Aether Lens 4"

            "item_black_king_hood"                     "Black King Hood"
       
            "item_mana_potion"                             "Mana Potion"
           
            "item_heal_potion"                             "Heal Potion"
           
            "item_strength_potion"                         "Strength Potion"
           
            "item_agility_potion"                          "Agility Potion"
           
            "item_intellegence_potion"                     "Intellect Potion"
           
            "item_combined_potion"                     "Combined Potion"

            "item_demonic_axe"                             "Demonic Axe"

            "item_demonic_rod"                 "Demonic Rod"

            "item_alebard"                         "Halberd"

            "item_magic_shield"                "Magic Shield (Inact)"

            "item_magic_shield_active"             "Magic Shield"

            "item_echotic_sabre"               "Echotic Sabre"

            "item_cuirass_offering"                        "Vampiric Cuirass"

            "item_venom_liquid"                 "Venome Claws"

            "item_titan_bone"              "Titan Bone"

                "item_iron_branch_2"                       "Iron Branch 2"

                "item_iron_branch_3"                       "Iron Branch 3"

                "item_blade_guard"                     "Blade Guard"

                "item_blade_mail_c"                     "Blade Mail"

                "item_reflect_shield"                  "Reflect Shield"

            "item_great_bracer"                "Great Bracer"

            "item_ultra_bracer"                "Ultra Bracer"

            "item_great_null_talisman"                "Great Null Talisman"

            "item_ultra_null_talisman"                "Ultra Null Talisman"

            "item_great_wraith_band"                "Great Wraith Band"

            "item_ultra_wraith_band"                "Ultra Wraith Band"

            "item_desocay"                 "DesoCay"

            "item_stalker_coat"    "Ganker Coat"

            "item_spell_rune"                      "Spell Rune"

            "item_lens_five"                           "Aether Lens 5"

            "item_power_band"                  "Power Band"


                "item_hand_of_midas_custom"                    "Hand of Midas"

                "item_hand_of_midas_custom_two"                    "Hand of Midas 2"

            "item_demon_lifesteal"                     "Demon Lifesteal"

            "item_desolator_custom"                    "Desolator"

            "item_skadi_custom"                    "Eye of Skadi"

            "item_blight_stone_custom"                 "Blight Stone"

            "item_lifesteal_custom"                "Morbid Mask"

            "item_dominator"                   "Helm of the Dominator"

            "item_satanic_custom"                     "Satanic"

            "item_mask_of_madness_custom"                  "Mask of Madness"

                "item_mana_burn_1"                 "Diffusal Blade"

                "item_mana_burn_2"                 "Diffusal Blade"

                "item_suzzwke"                 "Suzzwke"

                "item_lesser_lightning"                    "Maelstrom"

                "item_greater_lightning"                    "Mjollnir"

            "item_blink_dagger_two"                    "Blink Dagger 2"

            "item_fireblend"                   "FireBlend"

            "item_doom_upgrade_scroll"                 "Magic Craft Scroll"

            "item_leaf_buckler"                "Leaf Buckler"

            "item_midas_sword"                     "Midas Sword"

                "item_gauntlet_of_madness"                 "Madness Bashium (Inact)"

                "item_gauntlet_of_madness_active"                 "Madness Bashium"

            "item_aghanim_core"                        "Aghanim's Core"

            "item_lightning_rod"                   "Lightning Bar"

            "item_weapon_breaker"                  "Weapon Breaker"

                "item_ring_of_asura"               "Ring of Asura"

                "item_ring_of_asura_inactive"               "Ring of Asura (Inact)"

            "item_blood_blade"                 "Blood Blade"

            "item_scarlet_edge"                 "Scarlet Edge"

            "item_durandal"                "Durandal"

            "item_omnipresent_eye"                         "Omnipresent Eye"

        "item_ascention_scroll"                "Ascension Scroll"

        "item_soul_shard"              "Soul Shard"

        "item_empowered_treads"                "Empowered Treads"

                "boss_ability_loh"                 "Demonic Blood"

                "boss_ability_purge"                   "777 (Boss Purge)"

                "boss_ability_hardcore"                    "Hardcore"

                "creeps_slark_ability_shield"                  "Dark Shield (Slark Boss Reflection)"

                "creeps_doom_ability_shift"                "Shift (Doom Boss Skill)"

                "creeps_doom_ability_illusioness"                      "Illusioness (Doom Boss Illusions)"

                "creeps_doom_ability_mana_steal"                      "Mana Steal (Doom Boss Mana Drain)"
}

Код
function GetItemSlot(hero, slot)
    local item = hero:GetItemInSlot(slot)
    local itemName = nil

    if item then
        local i_name = item:GetName()
        for _,name in pairs(ItemsAndAbilityLocalisation) do
            if i_name == name then
                itemName = ItemsAndAbilityLocalisation[name]
                print("123")
                break
            end
        end
    elseif not item or itemName == nil then
        itemName = "-1"
    end

    return itemName
end
« Последнее редактирование: 13-02-2017, 11:48:54 от Danis »
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]

Оффлайн MahouShoujo

  • 176
  • Мощь: 3
Ты наркоман?

Код
local itemName = ItemsAndAbilityLocalisation[item:GetName()]
Это всё