Dota 2 Workshop Tools (Глоссарий, общие обсуждения, вопросы)

avatar Nagibator230

121974

1534

wRadchuk

Пользователь

Регистрация: 31.10.2015

Сообщения: 10

Рейтинг: 0

wRadchuk

Регистрация: 31.10.2015

Сообщения: 10

Рейтинг: 0

dPrimo сказал(а):
В общем, сидел копался, и не нашел подходящее место, где мог бы задать данный вопрос.

Я только начал копаться в этом инструменте, и возникли некоторые трудности.

Не могу сделать сплеш атаку. Нашел подходящий скрипт у дк, но всё тщетно.

Спойлер: "npc_abilities_custom"

   "ve_dk_dragon_splash"

    {

        "BaseClass"              "ability_datadriven"

        "AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_AOE | DOTA_ABILITY_BEHAVIOR_PASSIVE"    

        "AbilityUnitDamageType"  "DAMAGE_TYPE_PHYSICAL"                                          

        "AbilityTextureName"     "alchemist_acid_spray"                                          

        "AbilityCastPoint"  "0.2"                              

        "AbilityCastRange"  "900"                              

        "Modifiers"

        {

            "modifier_splash_attack_datadriven"

            {

                "IsPurgable"    "0"

                "IsBuff"        "1"

                "OnAttackLanded"

                {

                    "RunScript"

                    {

                        "ScriptFile"    "elder_dragon.lua"

                        "Function"        "Splash"

                    }

                }

            }

        }

        "AbilitySpecial"

        {

            "01"

            {

                "var_type"                    "FIELD_FLOAT"

                "duration"                    "60.0 60.0 60.0"

            }

            "02"

            {

                "var_type"                    "FIELD_INTEGER"

                "splash_radius"                "150 225 300"

            }

            "03"

            {

                "var_type"                    "FIELD_INTEGER"

                "splash_damage_percent"        "100 75 50"

            }    

        }

    }

Спойлер: "elder_dragon.lua"

function Splash( keys )

    -- Variables

    local caster = keys.caster

    local target = keys.target

    local ability = keys.ability

    local radius_small = ability:GetLevelSpecialValueFor("splash_radius", 0)

    local radius_medium = ability:GetLevelSpecialValueFor("splash_radius", 1)

    local radius_big = ability:GetLevelSpecialValueFor("splash_radius", 2)

    local target_exists = false

    local splash_damage_small = ability:GetLevelSpecialValueFor("splash_damage_percent", 0) / 100

    local splash_damage_medium = ability:GetLevelSpecialValueFor("splash_damage_percent", 1) / 100

    local splash_damage_big = ability:GetLevelSpecialValueFor("splash_damage_percent", 2) / 100

    -- Finding the units for each radius

    local splash_radius_small = FindUnitsInRadius(caster:GetTeam(), target:GetAbsOrigin() , nil, radius_small , DOTA_UNIT_TARGET_TEAM_ENEMY    , DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, 0, 0, false)

    local splash_radius_medium = FindUnitsInRadius(caster:GetTeam() , target:GetAbsOrigin() , nil, radius_medium, DOTA_UNIT_TARGET_TEAM_ENEMY, DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, 0, 0, false)

    local splash_radius_big = FindUnitsInRadius(caster:GetTeam(), target:GetAbsOrigin() , nil, radius_big, DOTA_UNIT_TARGET_TEAM_ENEMY, DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, 0, 0, false)

    -- Initializing the damage table

    local damage_table = {}

    damage_table.attacker = caster

    damage_table.damage_type = DAMAGE_TYPE_PHYSICAL

    damage_table.damage = caster:GetAttackDamage() * splash_damage_small

    --loop for doing the splash damage while ignoring the original target

    for i,v in ipairs(splash_radius_small) do

        if v ~= target then

            damage_table.victim = v

            ApplyDamage(damage_table)

        end

    end

    --loop for doing the medium splash damage

    for i,v in ipairs(splash_radius_medium) do

        if v ~= target then

            --loop for checking if the found target is in the splash_radius_small

            for c,k in ipairs(splash_radius_small) do

                if v == k then

                    target_exists = true

                    break

                end

            end

            --if the target isn't in the splash_radius_small then do attack damage * splash_damage_medium

            if not target_exists then

                damage_table.damage = caster:GetAttackDamage() * splash_damage_medium

                damage_table.victim = v

                ApplyDamage(damage_table)

            --resets the target check

            else

                target_exists = false

            end

        end

    end

    --loop for doing the damage if targets are found in the splash_damage_big but not in the splash_damage_medium

    for i,v in ipairs(splash_radius_big) do

        if v ~= target then

            --loop for checking if the found target is in the splash_radius_medium

            for c,k in ipairs(splash_radius_medium) do            

                if v == k then

                    target_exists = true

                    break

                end

            end

            if not target_exists then

                damage_table.damage = caster:GetAttackDamage() * splash_damage_big

                damage_table.victim = v

                ApplyDamage(damage_table)

            else

                target_exists = false

            end

        end

    end

end

Нажмите, чтобы раскрыть...

Ну эта строка говорит

"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_AOE | DOTA_ABILITY_BEHAVIOR_PASSIVE"

AbilityBehavior - поведение способности

DOTA_ABILITY_BEHAVIOR_AOE - сплешь атака

DOTA_ABILITY_BEHAVIOR_PASSIVE - пасивная атака

и в ней есть указание радиуса сплешь атаки

"02"

            {

                "var_type"                    "FIELD_INTEGER"

                "splash_radius"                "150 225 300" // данная страка указывает на три уровня прокачки сплеша.

P.S. Я сам давно этим не занимался, так что возможно я не прав в чём.

absentia_cogitatio

Пользователь

Регистрация: 05.07.2016

Сообщения: 16

Рейтинг: 2

absentia_cogitatio

Регистрация: 05.07.2016

Сообщения: 16

Рейтинг: 2

Напишите как скачать ворк шоп тулс ) У меня его нету ( Сделал как написано - включил бета тесты - зашел дом контент - там только дота 2 (((

wRadchuk

Пользователь

Регистрация: 31.10.2015

Сообщения: 10

Рейтинг: 0

wRadchuk

Регистрация: 31.10.2015

Сообщения: 10

Рейтинг: 0

absentia_cogitatio сказал(а):
Напишите как скачать ворк шоп тулс ) У меня его нету ( Сделал как написано - включил бета тесты - зашел дом контент - там только дота 2 (((
Нажмите, чтобы раскрыть...

https://disk.yandex.ru/client/disk%7Cslider/disk/dotatools.png

UnrealTvink

Пользователь

Регистрация: 24.06.2014

Сообщения: 191

Рейтинг: 180

Нарушения: 100

UnrealTvink

Регистрация: 24.06.2014

Сообщения: 191

Рейтинг: 180

Нарушения: 100

Здравствуйте, возникла проблема с импортом в дота 2 вещей, кто-нибудь сталкивался с такой проблемой? Загрузка доходит до такой меню и после вылетает.

UnrealTvink

Пользователь

Регистрация: 24.06.2014

Сообщения: 191

Рейтинг: 180

Нарушения: 100

UnrealTvink

Регистрация: 24.06.2014

Сообщения: 191

Рейтинг: 180

Нарушения: 100

И, конечно же, такие мэтры ошибок, выпадающие чаще всего   . Что это всё означает?

diskyp3

Пользователь

Регистрация: 25.09.2016

Сообщения: 1

Рейтинг: 0

diskyp3

Регистрация: 25.09.2016

Сообщения: 1

Рейтинг: 0

Гайд хороший, но я так и не понял, как мне новых героев создавать? Вот я написал скрипт в блокноте, героя там объявил, скилы ему присвоил, а что дальше? Куда это всё вставлять?

HellFireBro

Пользователь

Регистрация: 14.04.2017

Сообщения: 253

Рейтинг: 77

HellFireBro

Регистрация: 14.04.2017

Сообщения: 253

Рейтинг: 77

Я только начал работать в Dota 2 Tool и хотел бы получить вашу помощь. Обьясните подробно о том, как сделать героя с определенными способностями, а так же запретить выбирать всех героев, кроме этого.

Chaiok

Пользователь

Регистрация: 01.08.2016

Сообщения: 26616

Рейтинг: 8939

Chaiok

Регистрация: 01.08.2016

Сообщения: 26616

Рейтинг: 8939

Nagibator230 сказал(а):

Эта тема может быть неактуальна по причине того, что вышел новый движок Source 2.

Если вы решили написать свой собственный мод потратьте пару минут на чтение данного гайда и я уверяю, куча вопросов отпадет.

1.Инструменты

"Какие программы мне понадобятся?" - главный вопрос который задают люди желающие создать свой мод. Минимальный набор - блокнот и тулзы от вентиля. Но это тоже самое, что писать сайте в блокноте, можно - но зачем. Хотя, осуждать людей за БДСМ я не в праве, нравиться - в путь.

Джентльменский набор (позволяет сделать всё и даже больше).

3Д редактор (используется для создания моделек, их экспортирования, изменения и т.д.), как правило используются связки программ в купе с 3Д редактором.

http://www.blender.org/ 3D редактор всех времен и народов (бесплатен), есть конечно 3d max, но увы он платный, и не так прост, хотя конечно и намного мощней

http://www.autodesk.ru/products/3ds-max/overview -платный, но кого это остановит =) Мы же в России, Аргх. (Одна из причин, почему я так отношусь к данному редактору http://habrahabr.ru/post/232653/-пост про 3D редактор)

Кошерный текстовый редактор используемый пограммистами (изменение скилов, создание скилов, создание персонажей, создание правил игры и т.д. Вообщем вся игровая логика изменяется именно этим.)

Я признаю только два редактора, если познакомите меня еше и с третим/четвертым/пятым (нужное подчеркнуть), то я с удовольствием дополню гуйд

http://notepad-plus-plus.org/ notepad ++ бесплатный комбайн жрущий кучу форматов, проверенный временем

http://www.sublimetext.com/3  новенький, быстро развивается, но кроссплатформенный!!!

Редактор звука (создание звуков, их экспортирования, изменения и т.д)

Лично я хороших редакторов звука не знаю. Знаю приблуды для создания песенок типа bitwig, фруктов и тому подобного, но это все не то. Знаюшие люди поделитесь.

[SIZE=5]http://www.reddit.com/r/Dota2Modding/comments/1zuemg/dota_2_sound_editor_v11/[/SIZE] Редактор звук. Пользоваться не советую, всмысле сам не пользовался и сказать мне нечего. Но попробовать можете.

                   <==============================================================>

2. Гайды, гуйды, хелп и т.д.

[COLOR=rgb(255, 0, 0)]https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools:ru[/COLOR] - официальный вики-проэкт от вентиля по созданию пользовательских карт

http://yrrep.me/dota/ много чего полезного

http://www.reddit.com/r/Dota2Modding/ тоже можно почитать

http://www.lua.ru/doc/ учебник по LUA, не гуд но пока это все что есть

http://zserge.wordpress.com/2012/02/23/lua-за-60-минут/ быстро просто и понятно по lua

http://forum.gmodlive.com/viewforum.php?f=38&sid=416b5c44407ec4f078f38d06503114f3 форум по lua

https://dota2.ru/forum/threads/gajd-po-scripting-chast-2.602694/ гайды по скриптингу

http://nemesis.thewavelength.net/ много чего

http://www.reddit.com/r/Dota2Modding/comments/1vmdgy/worldsmith_the_unofficial_dota2_editor_progress/ редактор способностей, но вот если тулзы в альфе, то это чудо в глубокой пред альфе

http://getdotastats.com/#source2__beta_changes - новая вики по Д2. Загляни туда первым делом.

https://moddota.com/forums/discussion/224/datadriven-units -   гайд по созданию кастомных героев

https://dota2.ru/forum/threads/konsol-obitovannaja-komandy-konsoli-i-pojasnenija.755504/ - пояснение к командам консоли (в процессе)

https://dota2.ru/forum/threads/axaxax-chto-tut-u-nas-ili-reversim-podgruzdku-lua.755576/ - разбираем по кусочкам подгруздку lua (в процессе)

https://github.com/Pizzalol/SpellLibrary/ - библиотека всех скилов D2 переписанных на датадрайвен

Z:\Steam\steamapps\workshop\content\570 - тут все моды которые вы скачивайте =) Приготовтесь к неразберихе.

http://www.reddit.com/r/Dota2Modding/wiki/tutorials#wiki_triggers - гайды на редите

Последние действия:

Работаем над вик.

Позже после того как закончу с вики (доведу хотя-бы до 90%).

1 Выпущу русификатор.

2 Соберу все возможные полезные ссылки тут

3 В
озможно будет серия уроков, а возможно и не будет =/

2 Начал структуризацию
Нажмите, чтобы раскрыть...

если я только захочу создать своих героев(придумать и изменить некоторые скилы) при этом не меняя карту и взяв модельки из героев доты мне язык LUA учить а еще что-то надо?

Kolos_Meridian

Пользователь

Регистрация: 07.05.2017

Сообщения: 1

Рейтинг: 0

Kolos_Meridian

Регистрация: 07.05.2017

Сообщения: 1

Рейтинг: 0

Запускаю Workshop Tools,выбираю новый аддон,жму на "Launch Custom Game Tools" появляется окошко с дотой и потом вылет,как лечить?)

I_GRIN_I

Пользователь

Регистрация: 09.08.2013

Сообщения: 110

Рейтинг: 40

I_GRIN_I

Регистрация: 09.08.2013

Сообщения: 110

Рейтинг: 40

img
Chaiok сказал(а):

если я только захочу создать своих героев(придумать и изменить некоторые скилы) при этом не меняя карту и взяв модельки из героев доты мне язык LUA учить а еще что-то надо?

Нажмите, чтобы раскрыть...

Во первых, тебе не нужно учить луа. Тебе нужно просто знать как примерно на нем писать, чттбы использовать уже готовые апи функции доты. Во вторых, если тебе нужно просто изменить картинку/описание/статы скиллов, которые уже есть в доте у какого то персонажа, то тебе и луа знать не нужно. В третьих, если тебе нужно гуи, то еще надо жс учить с ксс и иксмлем