Вопросы по Lua и DotaKV

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#1
Всем привет, недавно увлёкся моддингом доты и за пару дней накопились несколько вопросов:

1 [РЕШЕНО]. Как применить к юниту knockback без оглушения, чтобы осталось только перемещение? Необходимо получить эффект как от wave of silence траксы. Установил параметру"ShouldStun" значение "0", но это не помогло: к юниту применяется Greater bash.
2 [РЕШЕНО]. В папке "resource" есть файл addon_english.txt. На его основе я создал addon_russian.txt, в котором строку
Код:
"Language" "English"
заменил на
Код:
"Language" "Russian"
На сколько я понял, дота в приоритете читает файл, совпадающий с языком, выбранном в стиме, а если такого файла нет - англоязычный файл, верно?. Почему-то в моей русской доте из русскоязычного файла читается только "addon_game_name", а все другие строки игнорируются и читаются из англоязычного. Как так? Как это исправить?

3 [РЕШЕНО: написал свою "толкалку" в Lua]. Как присвоить кастомной абилке эффект форс стаффа? Как вообще присваивать кастомным способностям скрипты уже существующих способностей или предметов? Можно ли их в таком случае редактировать?

4 [РЕШЕНО КОСТЫЛЬНО: добавил скрытую абилку бектрек с вероятностью 100%, нанёс 1 урона, похилил на 1 хп]. Я заменил анимацию персонажа при использовании способности на ACT_DOTA_FLAIL при помощи OverrideAnimation. Можно ли теперь к этой анимации добавить эффект бектрека Войда, чтобы получился эффект как у Агента Смитта, который в первый части Матрицы уворачивался от пуль Нео на крыше здания (kek)?

5. Я создал карту на основе barebones и в vscripts\settings.lua изменил цвета команд на красный и синий. В игре эти цвета применились только к ХПбарам и никнеймам над героями и в чате. Во время занятия слотов в лобби цвета остаются barebones'кие: teal tiger - лазурный, yellow monkey - жёлтый и т.д. Где прописаны цвета и, желательно, названия команд из лобби?
 
Последнее редактирование модератором:

fiCeVitka

Пользователь
21 Авг 2014
48
0
6
20
Саранск
Реакции
0 0 0
#2
MeowHellYeah написал(а):
На сколько я понял, дота в приоритете читает файл, совпадающий с языком, выбранном в стиме, а если такого файла нет - англоязычный файл, верно?. Почему-то в моей русской доте из русскоязычного файла читается только "addon_game_name", а все другие строки игнорируются и читаются из англоязычного. Как так? Как это исправить?
Возможно где-то у тебя ошибка. Может быть в русском файле скобочку удалил где-либо
 
Последнее редактирование модератором:

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#3
Возможно где-то у тебя ошибка. Может быть в русском файле скобочку удалил где-либо
С этим вроде всё в порядке. Я даже поменял местами содержимое файлов: в addon_english поместил русские строки, а в addon_russian - английские. Тогда addon_russian прочитался полностью. Вернул всё на свои места - опять русский игнорируется. В обоих случаях названия и описания скилов на английском. Может, какие-то символы не воспринимаются? Да я кроме алфавита ничего и не использую... :-*
 
Последнее редактирование модератором:

-ExotiC-

Администратор
Команда форума
11 Авг 2014
460
48
28
23
customgames.ru
Проект
Trolls vs Elves
Реакции
46 0 2
#4
1. Попробуй поставить вместо нуля -1
"ShouldStun" "-1"
В любом случае, можно написать скрипт с нуля, который будет отодвигать героя каждую мс назад, но конечно, это сложнее.

2. Проверь кодировку. Возможно у Valve есть какие-то баги с этим.

3. Насчёт эффектов, можно посмотреть в этом уроке, правда не совсем по теме урок.
 
Последнее редактирование:

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#5
5. Я создал карту на основе barebones и в vscripts\settings.lua изменил цвета команд на красный и синий. В игре эти цвета применились только к ХПбарам и никнеймам над героями и в чате. Во время занятия слотов в лобби цвета остаются barebones'кие: teal tiger - лазурный, yellow monkey - жёлтый и т.д. Где прописаны цвета и, желательно, названия команд из лобби?
Насчёт названий ещё не знаю, но цвета нашёл в \dota 2 beta\content\dota_addons\[ваш_мод]\panorama\layout\custom_game\custom_ui_manifest.xml
 
Последнее редактирование модератором:
Реклама:

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#7
Учитывая, что от оглушения knockback остались только визуальные эффекты, первый вопрос можно считать решённым. Название и описание эффекта я заменил на более подходящие (строки DOTA_Tooltip_modifier_knockback и DOTA_Tooltip_modifier_knockback_description в \recources\addon_[язык].txt). Единственное - у модификатора нет иконки, но это уже не так важно.

-ExotiC-, за сегодня появились ещё некоторые вопросы, уже по-проще:
6 [РЕШЕНО]. Как сделать способность сразу выученной, как табличка у Текиса?
7. Как отобрать у моделек героев оружие или др. косметические предметы? Нашёл инфу только о том, как их надеть, но не снять.
8 [РЕШЕНО]. Как заменить способность "А" на способность "Б" в том же слоте на время действия "А"? Чтоб в итоге было как Ice Blast Аппарата или Chakram Тимбера.
9. В npc_abilities.txt оригинальной доты в параметрах скилов часто встречается строка "FightRecapLevel", на что она влияет?
 
Последнее редактирование модератором:

doter.ua

Продвинутый
17 Авг 2014
280
4
18
25
UA
Реакции
4 0 0
#8
MeowHellYeah,
6. Lua ability setLevel
7. -
8. Lua remove, add set level, remove add set level.
9. это для коментаторов в дотаТВ для статистики после файта.

З.Ы. для иконки модифаера юзают TextureName
"TextureName" "item_greater_clarity"
 
Последнее редактирование модератором:

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#9
[quote author=doter.ua link=topic=170.msg777#msg777 date=1436048181]
MeowHellYeah,
6. Lua ability setLevel
7. -
8. Lua remove, add set level, remove add set level.
9. это для коментаторов в дотаТВ для статистики после файта.

З.Ы. для иконки модифаера юзают TextureName
"TextureName" "item_greater_clarity"
[/quote]
Сяп Вам. Как установить иконки разобрался ранее. Проблема в том, что модификатор нокбека не является ни чьей абилкой и существует отдельно, потому я не знаю куда втулить эту TextureName'у.
 
Последнее редактирование модератором:

doter.ua

Продвинутый
17 Авг 2014
280
4
18
25
UA
Реакции
4 0 0
#10
Сяп Вам. Как установить иконки разобрался ранее. Проблема в том, что модификатор нокбека не является ни чьей абилкой и существует отдельно, потому я не знаю куда втулить эту TextureName'у.
базовый класс датадрайв или существующая абилка?
 
Последнее редактирование модератором:
Реклама:

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#11
Ит воркс. В gamemode.lua прописал
Код:
function GameMode:OnHeroInGame(hero)
   hero:GetUnitName())
   local abil
   for i=0, 3 do
     abil = hero:GetAbilityByIndex(i)
     abil:SetLevel(1)
   end 
end
и абилки с 1 по 4 при спауне прокачались по одному разу. А нельзя ли теперь чтоб вот это вот не светилось?
proxy.php?image=http%3A%2F%2Ff5.s.qip.ru%2F1HDgEY6X.png&hash=f4e3dc5de7ff28d224c53497ec7236a1

[UPD] Оказалось не трудно) Сам нашёл ответ методом тыка:
Код:
hero:SetAbilityPoints(0)
 
Последнее редактирование модератором:

doter.ua

Продвинутый
17 Авг 2014
280
4
18
25
UA
Реакции
4 0 0
#12
MeowHellYeah, я спрашивал про BaseClass, который ты используешь для абилки.
 

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#13
doter.ua, ах это... Датадрайв, но я решил не морочить с этим голову и поморочить голову с её переделыванием на абилити_луа) Заодно и познакомился с луой поближе.

Lua remove, add set level, remove add set level.
Думал об этом, но вариант показался костыльным) Ладно, воспользуемся, спасибо.
 

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#14
Подскажите, пожалуйста, как из файла А обратиться к переменной, описанной в файле В?
 

doter.ua

Продвинутый
17 Авг 2014
280
4
18
25
UA
Реакции
4 0 0
#15
Подскажите, пожалуйста, как из файла А обратиться к переменной, описанной в файле В?
В аддонах куча разных файлов, говори конкретнее. В луа используй глобальную таблицу геймрулез
GameRules.myVar = 10
 
Последнее редактирование модератором:
Реклама:

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#16
doter.ua, спасибо. Конкретнее не могу, потому что ещё не определил что где прописывать и откуда читать) А разве это имеет значение?

Чёрт, да что же у меня за хаос? Ругается при спауне обладателя абилки:
Код:
"ind_far"
	{
		"BaseClass"       		"ability_lua"
		"AbilityTextureName"		"ind_far_img"
		"MaxLevel" 			"1"
		"AbilityBehavior"			"DOTA_ABILITY_BEHAVIOR_PASSIVE"
		"AbilityType"			"DOTA_ABILITY_TYPE_BASIC"
		"ScriptFile"				"ind"
	}
Консоль говорит:
[ W VScript ]: Script Runtime Error: ...s\common\dota 2 beta\game\core\scripts\vscripts\init.lua:189: bad argument #1 to 'setmetatable' (table expected, got nil)
[ W VScript ]: stack traceback:
[ W VScript ]: [C]: in function 'setmetatable'
[ W VScript ]: ...s\common\dota 2 beta\game\core\scripts\vscripts\init.lua:189: in function <...s\common\dota 2 beta\game\core\scripts\vscripts\init.lua:187>
Что не так с ней? Вроде так же, как и остальные описывал. ind.lua пока оставил пустым, так что ругается именно на описание в npc_abilities_custom.txt.
Всё делопроизводство, блин, стоит из-за неё(
 
Последнее редактирование модератором:

doter.ua

Продвинутый
17 Авг 2014
280
4
18
25
UA
Реакции
4 0 0
#17
init.lua: 189 строчка. скинь
 

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#18
doter.ua, обыкновенная функция, вроде как ванильная. Не знаю на что она так негативно реагирует.
proxy.php?image=http%3A%2F%2Ff5.s.qip.ru%2F1HDgEY96.png&hash=445ff7f947fb38e5fc9668a2de67698a
 

doter.ua

Продвинутый
17 Авг 2014
280
4
18
25
UA
Реакции
4 0 0
#19
[quote author=MeowHellYeah link=topic=170.msg834#msg834 date=1436280837]
doter.ua, обыкновенная функция, вроде как ванильная. Не знаю на что она так негативно реагирует.
proxy.php?image=http%3A%2F%2Ff5.s.qip.ru%2F1HDgEY96.png&hash=445ff7f947fb38e5fc9668a2de67698a

[/quote]
Nil таблица.
 

MeowHellYeah

Пользователь
4 Июл 2015
66
0
6
Реакции
0 0 0
#20
doter.ua, что ж с ней делать? :О
 
Реклама:
Реклама: