Простые вопросы #3

AceFridge

Пользователь
8 Мар 2021
47
1
Есть какой-либо подробный гайд по звукам в игре? в частности: редактирование файлов .vsndevts, интересует разница между "dota_update_default" и "dota_src1_3d", за что отвечают "soundlevel" и "event_type".

Пытаюсь сделать зацикленный звук, но при выходе за максимальную дистанцию, звук прекращается, не начинается вновь при возврате камеры, либо не начинается, если источник был создан далеко от камеры. Необходимо сделать как можно более четкие позиционные 3d звуки с постепенным затуханием, не только зацикленные, но и мгновенные.


Код:
"UG.Fire.Loop"
{
    "operator_stacks"
    {
        "update_stack"
        {
            "reference_operator"
            {
                "operator"              "sos_reference_stack"
                "reference_stack"       "dota_update_default"
                "operator_variables"
                {
                    "vsnd_files"
                    {
                        "value"
                        {
                              "value0"        "sounds/fire_loop_1.vsnd"
                        }
                    }
                    "volume"            {   "value"     "1.00000"  }
                    "pitch_rand_min"    {   "value"     "-0.05000"  }
                    "pitch_rand_max"    {   "value"     "0.050000"  }
                    "pitch"             {   "value"     "1.000000"  }
                    "soundlevel"        {   "value"     "100.00000" }
                    "distance_max"      {   "value"     "400.000"  }
                    "event_type"        {   "value"     "1.000000"  }
                }
            }
        }
    }
}
 
Последнее редактирование:

Julian Slink

Пользователь
11 Апр 2021
12
2
Кто то смог сделать баши слардара через стаки?
Можете поделиться кодом?
 

AceFridge

Пользователь
8 Мар 2021
47
1
Подскажите, с помощью какой функции можно создать вижн в области для определенного игрока?
 
20 Дек 2016
883
160
Возможно ли сделать скилл вообще без кв? Именно дотовский скилл, который обладает всеми свойствами CDOTABaseAbility, и может быть добавлен герою, пусть даже он будет только на сервере.
 

.фи

Активный
21 Мар 2018
70
6
Пообщался с ребятами на реддите, мне сказали что дело дрянь
Нужно писать способность с 0, так как дота не позволяет взять события модификаторов и редактировать их, как в случае со станом Слардара... :(

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

Для начала напиши пустую луа-абилку (в данном случае пассивку), в "AbilitySpecial" укажи нужные значения из оригинальной абилки слардара ( их ты найдешь вбив в гугл — abilities txt dota 2 ).
1620051909906.png
В самой абилке укажи что это врождённый модификатор - делается это через GetIntrinsicModifierName. ( и укажи путь к нему через LinkLuaModifier )
1620051299468.png
Внутри своего модификатора уже сам реши каким методом будешь вешать модификатор баша на противника. ( при нанесении атаки к примеру )
1620051489005.png
В некоторых случаях действительно ↑ можно вносить параметры модификатора прямо на лету, но это проверенный способ усложнить себе жизнь ( поверь на слово, искать нужный модификатор в папке мода куда сложнее ( а потом ещё искать строчку ) , чем открыть свой npc_abilities_custom и поправить на лету ).

Чтоб было понятней, старайся почаще читать исходный код официальных модов валвов на гитхабе.
Часто узнаешь что-то новое.

Успехов.
 
  • Нравится
Реакции: Julian Slink
20 Дек 2016
883
160
Через SpawnEntityFromTableSynchronous( 'ability_lua', {} ) вроде что-то создается. И это что-то даже можно выдать герою, хотя на кастбаре его не появится, GetCaster для него nil возвращает, и MaxLevel там 0. Имена я какие только не пробовал подобрать для второго аргумента, ничего дельного не получилось. Вот бы где-то можно было хотя бы намек найти на то, что туда можно писать для разных классов. Эта функция выглядит прям очень мощно, но у неё даже на гитхабе применений не много, так как никто видимо не знает, что она принимает.
 

stranger568

Активный
7 Сен 2015
70
7
bmemov.ru
Проект
Birzha Memov
Есть какой-то способ вернуть курьерам использование предметов?
 
20 Дек 2016
883
160
Если переделать дотовскую способность на луа, то она имеет дефолтную иконку, даже если у игрока есть сет, который должен эту иконку менять. Это можно как-то исправить?
 

Дикий Пёс

Друзья CG
28 Июн 2017
392
89
Проект
Petri Reborn

AceFridge

Пользователь
8 Мар 2021
47
1
Можно ли сделать, чтобы у крипа была сразу выучена способность без использования ability:SetLevel(1) ?
 

AceFridge

Пользователь
8 Мар 2021
47
1
назрел такой вопрос:
У меня есть юнит-стена, создается с помощью спелла-строительства, после создания переходит к команде DOTA_TEAM_NO_TEAM и является врагом для всех, используется для блокирования прохода и летящих снарядов, обязательно должна быть юнитом и врагом, чтобы получать урон даже от создателя.

Поставил задачу, чтобы стена так же блокировала обзор, создаю блокиратор обзора с помощью следующего скрипта:
Lua:
FOW_BLOCKER = GameRules:GetGameModeEntity():AllocateFowBlockerRegion(-8192, -8192, 8192, 8192, 48) -- создаем сущность-блокиратор на всю карту с сеткой 48
local vMin = vCenter - Vector(48, 48, 0)
local vMax = vCenter + Vector(48, 48, 0)
DebugDrawBox( Vector(0, 0, 0), vMin, vMax + Vector(0, 0, 96), 0, 255, 0, 1, 5) -- для теста рисую область
FOW_BLOCKER:AddRectangularBlocker(vMin, vMax, false) -- ограничиваем зрение в квадрате размером 96x96 с центром в позиции стены

Работает, обзор в заданной местности блокируется, но есть нюансы:

Обзор блокирует саму стену и ее не видит никто.
Отчасти решил вопрос накидыванием на стену модификатора с функцией MODIFIER_PROPERTY_PROVIDES_FOW_POSITION, но в таком случае, новую построенную стену увидят враги в тумане войны сразу же, как она появится.

Есть идеи как можно не раскрывать позицию стены, но, всё-таки, отображать ее в тумане, созданным ею же?

1620492335350.png
 
Последнее редактирование:

ZLOY

Администратор
Команда форума
27 Июн 2016
873
148
MODIFIER_PROPERTY_PROVIDES_FOW_POSITION вроде в параметрах имеет команду и таким образом можно отфильтровать чтобы нужная тебе команда видела его, а другие нет
 

AceFridge

Пользователь
8 Мар 2021
47
1
MODIFIER_PROPERTY_PROVIDES_FOW_POSITION вроде в параметрах имеет команду и таким образом можно отфильтровать чтобы нужная тебе команда видела его, а другие нет
В таком случае, враги, находясь неподалеку от стены, не будут видеть её из-за того, что она скрыта своим же блокиратором обзора. Только войдя в зону блокирования обзора получится увидеть стену.

1620496802397.png
 

AceFridge

Пользователь
8 Мар 2021
47
1
Каким образом можно получить имя модели предмета, лежащего в инвентаре?
Если предмет лежит на земле, то я использую item:GetContainer():GetModelName(), но лежащий на земле и находящийся в инвентаре предметы - это разные классы.
item:GetAbilityKeyValues() даёт мне все kv значения, относящиеся к способности, модели там нет.
В данный момент отлавливаю подбор предмета событием и записываю имя модели как item.ModelName = item:GetContainer():GetModelName(), но, тогда, я храню имена моделей только тех предметов, что были когда-либо подобраны героем. Есть так же предметы, которые были созданы через скрипт и были помещены сразу в инвентарь.
 
Реклама: