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

TopKun

Пользователь
22 Июл 2016
46
0
У меня уже было такое.
Зайди в npc_units_custom смени расширение поля "Model" с .mdl на .vmdl
Тоже самое проделай для предметов
Если не поможет то попробуй поотключать разный файли скрипты и кв, чтобы узнать какой из них вызывает конфликт
Проблема в том что исходников из папки content у меня не осталось, а значит всё кроме файлов из папки scripts не запустить. Погуглил немного и нашёл на гитхабе декомпилятор чтобы хотя бы карту достать, но так и не понял как им пользоваться
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
196
www.dotabuff.com
Проект
Roshan defense
Проблема в том что исходников из папки content у меня не осталось, а значит всё кроме файлов из папки scripts не запустить. Погуглил немного и нашёл на гитхабе декомпилятор чтобы хотя бы карту достать, но так и не понял как им пользоваться
Никак уже не вернуть.
Поэтому сделай карту по новой, благо скрипты уже есть.
Вспомни, может ты кому-то пересылал или сохранял исходники(дискорд, вк, яндекс диск)
Тогда у тебя уже был бы материал
 

kain

Активный
2 Окт 2015
125
63
steamcommunity.com
Проект
GreenCircleTD
Похоже после недавних обновлений доты перестала работать кастомка. При попытке в неё загрузиться кастомка сначала пытается загрузиться, а потом выкидывает в главное меню или вовсе моментально вылетает. Не обновлял кастомку несколько лет, до этого всё работало нормально. Как можно исправить? Оригинальных исходников не осталось, достал vpk из файлов стима, ну а дальше хз что с ним делать, там уже закомпилированный код и карта, их уже не запустишь. ГГ кастомке?
vpk это содержимое твоей game папки - так что просто создаешь пустой аддон - удаляешь все в content и game - и извлекаешь (не декомпелируешь) в папку game из vpk

у тебя 2 варианта.
1 воссоздавать карту запуская кастомку (делая скриншоты итд... включать через консоль дополнительный служебный вид ... всякие объекты выделяться будут ентити, обстракшены итд)
2 изучать карту через тот же vpk (открыть кастомку, потом открыть в декомпиляторе карту) и там будет структура где всякие ентити твои ... не все легко... но хоть что то .
 

AceFridge

Активный
8 Мар 2021
85
15
Как спрятать юнита в тумане войны? После спавна отображается на разведанной местности, хоть и находится в тумане.
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
196
www.dotabuff.com
Проект
Roshan defense
Как спрятать юнита в тумане войны? После спавна отображается на разведанной местности, хоть и находится в тумане.
Ничего не понял что ты хочешь сделать, опиши подробнее
 

AceFridge

Активный
8 Мар 2021
85
15
Можно ли каким-либо образом заставить одну команду считать другую команду врагом или союзником?
например, мне нужно чтобы DOTA_TEAM_BADGUYS считали DOTA_TEAM_GOODGUYS союзником, не били через Attack-move приказ друг друга (или первые вторых считали союзником, а вторые первых - врагом).
 

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Нельзя, тут нет такой системы союзов как в варкрафте
 

Дикий Пёс

Друзья CG
28 Июн 2017
411
96
Проект
Petri Reborn
Можно ли каким-либо образом заставить одну команду считать другую команду врагом или союзником?
например, мне нужно чтобы DOTA_TEAM_BADGUYS считали DOTA_TEAM_GOODGUYS союзником, не били через Attack-move приказ друг друга (или первые вторых считали союзником, а вторые первых - врагом).
через фильтр приказов всё можно
 

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Как бы не совсем. Юниты могут агриться самостоятельно, без приказа игрока
 

AceFridge

Активный
8 Мар 2021
85
15
Так просто их в одну комнду кидать, а потом разделять. Как у тебя на арене сделано.
А возможность расширить количество команд есть? У меня несколько фракций NPC в моде, причем их ИИ завязан на попадании врагов в общее поле зрения команды. Пользуюсь этим списком команд:

DOTA_TEAM_GOODGUYS
DOTA_TEAM_BADGUYS
DOTA_TEAM_NEUTRALS
DOTA_TEAM_NOTEAM
DOTA_TEAM_CUSTOM_1
DOTA_TEAM_CUSTOM_2
DOTA_TEAM_CUSTOM_3
DOTA_TEAM_CUSTOM_4
DOTA_TEAM_CUSTOM_5
DOTA_TEAM_CUSTOM_6
DOTA_TEAM_CUSTOM_7
DOTA_TEAM_CUSTOM_8
 

DDSuper

Друзья CG
31 Май 2019
405
57
к
А возможность расширить количество команд есть? У меня несколько фракций NPC в моде, причем их ИИ завязан на попадании врагов в общее поле зрения команды. Пользуюсь этим списком команд:

DOTA_TEAM_GOODGUYS
DOTA_TEAM_BADGUYS
DOTA_TEAM_NEUTRALS
DOTA_TEAM_NOTEAM
DOTA_TEAM_CUSTOM_1
DOTA_TEAM_CUSTOM_2
DOTA_TEAM_CUSTOM_3
DOTA_TEAM_CUSTOM_4
DOTA_TEAM_CUSTOM_5
DOTA_TEAM_CUSTOM_6
DOTA_TEAM_CUSTOM_7
DOTA_TEAM_CUSTOM_8
сожалению нет
 

fabio_longo

Продвинутый
13 Июн 2021
152
18
steamcommunity.com
Проект
Chen's Training, Creep Stacking Training
Как сделать так, чтобы у абсолютно всех юнитов не было кулдауна? Что-то на подобии -allwtf
 

AceFridge

Активный
8 Мар 2021
85
15
отслеживаешь событие использования способности, получаешь способность в переменную ability, затем ability:EndCooldown()
 
  • Нравится
Реакции: fabio_longo

AceFridge

Активный
8 Мар 2021
85
15
Можно ли в Model Editore принудительно изменить Render Color модели, т.е. перекрасить её?
 

fabio_longo

Продвинутый
13 Июн 2021
152
18
steamcommunity.com
Проект
Chen's Training, Creep Stacking Training
отслеживаешь событие использования способности, получаешь способность в переменную ability, затем ability:EndCooldown()
а включить мод -wtf нельзя? Просто дофига абилок придётся отслеживать)
 

AceFridge

Активный
8 Мар 2021
85
15
а включить мод -wtf нельзя? Просто дофига абилок придётся отслеживать)
в сетевой игре не включить wtf.

тебе нужно включить слушатель событий, который будет отслеживать все абилки сразу.
Код:
-- всё в addon_game_mode

-- Что-то подобное у тебя должно уже быть
-- Используй своё имя класса вместо YourGameMode
if YourGameMode == nil then
    YourGameMode = class({})
end

-------------------------------------------------------

-- добавляем эту строку в YourGameMode:InitGameMode()
ListenToGameEvent('dota_player_used_ability', Dynamic_Wrap(YourGameMode, 'on_player_used_ability'), self)

-- функция ListenToGameEvent ждёт событие 'dota_player_used_ability' и запускает функцию 'on_player_used_ability' каждый раз, когда игрок использует какую-либо способность у любого из юнитов
-- событие срабатывает только если абилку юзнул игрок, если надо отследить использование, например, от нейтралов. то используй событие 'dota_non_player_used_ability'
-- полный список событий, которые можно отследить ищи тут https://moddota.com/api/#!/events
-- имя запускаемой функции "on_player_used_ability" можешь задать любое

-- сама функция сброса кулдауна, запускающаяся по событию, добавь в конец addon_game_mode
function YourGameMode:on_player_used_ability( kv )
    local hAbility = EntIndexToHScript(kv.caster_entindex):FindAbilityByName( kv.abilityname )
    hAbility:EndCooldown()
end
 

fabio_longo

Продвинутый
13 Июн 2021
152
18
steamcommunity.com
Проект
Chen's Training, Creep Stacking Training
в сетевой игре не включить wtf.

тебе нужно включить слушатель событий, который будет отслеживать все абилки сразу.
Код:
-- всё в addon_game_mode

-- Что-то подобное у тебя должно уже быть
-- Используй своё имя класса вместо YourGameMode
if YourGameMode == nil then
    YourGameMode = class({})
end

-------------------------------------------------------

-- добавляем эту строку в YourGameMode:InitGameMode()
ListenToGameEvent('dota_player_used_ability', Dynamic_Wrap(YourGameMode, 'on_player_used_ability'), self)

-- функция ListenToGameEvent ждёт событие 'dota_player_used_ability' и запускает функцию 'on_player_used_ability' каждый раз, когда игрок использует какую-либо способность у любого из юнитов
-- событие срабатывает только если абилку юзнул игрок, если надо отследить использование, например, от нейтралов. то используй событие 'dota_non_player_used_ability'
-- полный список событий, которые можно отследить ищи тут https://moddota.com/api/#!/events
-- имя запускаемой функции "on_player_used_ability" можешь задать любое

-- сама функция сброса кулдауна, запускающаяся по событию, добавь в конец addon_game_mode
function YourGameMode:on_player_used_ability( kv )
    local hAbility = EntIndexToHScript(kv.caster_entindex):FindAbilityByName( kv.abilityname )
    hAbility:EndCooldown()
end
Дружище, ты просто лучший! Как закончу проект, добавлю тебя в соавторы))
 
Реклама: