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

  • Автор темы Автор темы ZLOY
  • Дата начала Дата начала
У меня уже было такое.
Зайди в npc_units_custom смени расширение поля "Model" с .mdl на .vmdl
Тоже самое проделай для предметов
Если не поможет то попробуй поотключать разный файли скрипты и кв, чтобы узнать какой из них вызывает конфликт
Проблема в том что исходников из папки content у меня не осталось, а значит всё кроме файлов из папки scripts не запустить. Погуглил немного и нашёл на гитхабе декомпилятор чтобы хотя бы карту достать, но так и не понял как им пользоваться
 
Проблема в том что исходников из папки content у меня не осталось, а значит всё кроме файлов из папки scripts не запустить. Погуглил немного и нашёл на гитхабе декомпилятор чтобы хотя бы карту достать, но так и не понял как им пользоваться
Никак уже не вернуть.
Поэтому сделай карту по новой, благо скрипты уже есть.
Вспомни, может ты кому-то пересылал или сохранял исходники(дискорд, вк, яндекс диск)
Тогда у тебя уже был бы материал
 
Похоже после недавних обновлений доты перестала работать кастомка. При попытке в неё загрузиться кастомка сначала пытается загрузиться, а потом выкидывает в главное меню или вовсе моментально вылетает. Не обновлял кастомку несколько лет, до этого всё работало нормально. Как можно исправить? Оригинальных исходников не осталось, достал vpk из файлов стима, ну а дальше хз что с ним делать, там уже закомпилированный код и карта, их уже не запустишь. ГГ кастомке?
vpk это содержимое твоей game папки - так что просто создаешь пустой аддон - удаляешь все в content и game - и извлекаешь (не декомпелируешь) в папку game из vpk

у тебя 2 варианта.
1 воссоздавать карту запуская кастомку (делая скриншоты итд... включать через консоль дополнительный служебный вид ... всякие объекты выделяться будут ентити, обстракшены итд)
2 изучать карту через тот же vpk (открыть кастомку, потом открыть в декомпиляторе карту) и там будет структура где всякие ентити твои ... не все легко... но хоть что то .
 
Как спрятать юнита в тумане войны? После спавна отображается на разведанной местности, хоть и находится в тумане.
 
Как спрятать юнита в тумане войны? После спавна отображается на разведанной местности, хоть и находится в тумане.
Ничего не понял что ты хочешь сделать, опиши подробнее
 
Можно ли каким-либо образом заставить одну команду считать другую команду врагом или союзником?
например, мне нужно чтобы DOTA_TEAM_BADGUYS считали DOTA_TEAM_GOODGUYS союзником, не били через Attack-move приказ друг друга (или первые вторых считали союзником, а вторые первых - врагом).
 
Нельзя, тут нет такой системы союзов как в варкрафте
 
Можно ли каким-либо образом заставить одну команду считать другую команду врагом или союзником?
например, мне нужно чтобы DOTA_TEAM_BADGUYS считали DOTA_TEAM_GOODGUYS союзником, не били через Attack-move приказ друг друга (или первые вторых считали союзником, а вторые первых - врагом).
через фильтр приказов всё можно
 
Как бы не совсем. Юниты могут агриться самостоятельно, без приказа игрока
 
Так просто их в одну комнду кидать, а потом разделять. Как у тебя на арене сделано.
А возможность расширить количество команд есть? У меня несколько фракций 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
 
к
А возможность расширить количество команд есть? У меня несколько фракций 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
сожалению нет
 
Как сделать так, чтобы у абсолютно всех юнитов не было кулдауна? Что-то на подобии -allwtf
 
отслеживаешь событие использования способности, получаешь способность в переменную ability, затем ability:EndCooldown()
 
  • Нравится
Реакции: fabio_longo
Можно ли в Model Editore принудительно изменить Render Color модели, т.е. перекрасить её?
 
отслеживаешь событие использования способности, получаешь способность в переменную ability, затем ability:EndCooldown()
а включить мод -wtf нельзя? Просто дофига абилок придётся отслеживать)
 
а включить мод -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
 
в сетевой игре не включить 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
Дружище, ты просто лучший! Как закончу проект, добавлю тебя в соавторы))
 
Реклама: