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

  • Автор темы Автор темы ZLOY
  • Дата начала Дата начала
Всем привет, при попытке выложить обновление выдает вот это, помогите, пожалуйстаБез имени-1.png
 
Там ещё лайфстил нормально сделали, только все остальное сломал Гален как всегда
 
Дайте пожалуйста примеры того, как нужно прописывать крипам ненаправленный скилл(к примеру ульт тайдхантера) и направленный скилл(к примеру сон бейна)
Именно: то как это прописывается в "DOTAAbilities" и код скрипта (ability_lua)
 
похоже новое АПИ завезли
DOTA_SpawnMapAtPosition(string имя карты, vector позиция, bool ????, handle beforeSpawn, handle afterSpawn, out) или как-то так
а меши оно спавнит? клипы там?
если да то это революция и пора делать генератор карт
 
а меши оно спавнит? клипы там?
если да то это революция и пора делать генератор карт
Да, оно скомпилированный файл карты (.vpk) просто спавнит (то есть и спец. классы, и внутренние сущности тоже). 3-ий параметр отвечает за отключение создания сущностей на карте. Результат с "true":
1595028961902.png
Позже можно завершить создание через ManuallyTriggerSpawnGroupCompletion(int handle), где handle - дескриптор, возвращённый этой функцией (дескриптор spawngroup). Вот чё будет:
1595029088800.png
Того же результата можно достигнуть, если 3-ий агрумент будет не "true", а "false".

Потом можно убрать через UnloadSpawnGroupByHandle(int handle):
1595029224949.png
P. S: Локацию спавна лучше выбирать такую, чтобы она чётко лежала на клетках навигационной сетки (т. е. X и Y позиции должны делиться на размер сетки).
P. S. S: Могут быть баги с освещением (глобальным и локальным)/туманом/Z-обрезкой/туманом войны/<чем-то ещё серьёзным> после отгрузки, как на примере... Поэтому на подгружаемые карты локальное/глобальное освещение лучше не ставить (а лучше вообще никакие глобальные/главные/влияющие на текстуру карты сущности не ставить, но насчёт info_player_start не уверен. Скорее всего, она тоже не требуется). По возможности просто берёте и перемещаете уже существующие сущности на новые точки. При смене позиции точки возрождения лучше использовать CDOTA_BaseNPC_Hero:SetRespawnPosition(Vector pos).
В крайнем случае можете просто при отгрузке проводить очистку всех таких сущностей, которые оставляют за собой следы. Например:
Lua:
for _, deferred_light in pairs(Entities:FindAllByClassname("env_deferred_light")) do
    if deferred_light:GetSpawnGroupHandle() == handle then
        UTIL_Remove(deferred_light)
    end
end
Где handle - дескриптор загруженной spawngroup.
Однако такой подход, возможно, приведёт к вылету, либо может привести к тем же багам, либо не сработать вовсе (на практике не проверял).
 
Последнее редактирование:
Так есть там чего по моему вопросу про отключение рендера в тумане войны, не? Очень-очень нужно, плиз...
 
Так есть там чего по моему вопросу про отключение рендера в тумане войны, не? Очень-очень нужно, плиз...
Ясли конкретно для освещения нужно, то я бы через партикл сделал, там как раз есть свойство "Render deferred light". Если создание партикла прям на сущности не дает результата с туманом войны, то сделать нпс без модели и хелфбара, создать партикл на нем, и устанавливать позицию нпс на позицию сущности.

В общем же случае, если у сущности в хамере нет специальной настройки для рендера в тумане войны, то управлять этим явно не получится.
 
Ясли конкретно для освещения нужно, то я бы через партикл сделал, там как раз есть свойство "Render deferred light". Если создание партикла прям на сущности не дает результата с туманом войны, то сделать нпс без модели и хелфбара, создать партикл на нем, и устанавливать позицию нпс на позицию сущности.

В общем же случае, если у сущности в хамере нет специальной настройки для рендера в тумане войны, то управлять этим явно не получится.
Ясно, тогда дело дрянь... Спасиб, Снайп
 
Последнее редактирование:
Да, оно скомпилированный файл карты (.vpk) просто спавнит (то есть и спец. классы, и внутренние сущности тоже). 3-ий параметр отвечает за отключение создания сущностей на карте. Результат с "true":
Посмотреть вложение 1090
Позже можно завершить создание через ManuallyTriggerSpawnGroupCompletion(int handle), где handle - дескриптор, возвращённый этой функцией (дескриптор spawngroup). Вот чё будет:
Посмотреть вложение 1091
Того же результата можно достигнуть, если 3-ий агрумент будет не "true", а "false".

Потом можно убрать через UnloadSpawnGroupByHandle(int handle):
Посмотреть вложение 1092
P. S: Локацию спавна лучше выбирать такую, чтобы она чётко лежала на клетках навигационной сетки (т. е. X и Y позиции должны делиться на размер сетки).
P. S. S: Могут быть баги с освещением (глобальным и локальным)/туманом/Z-обрезкой/туманом войны/<чем-то ещё серьёзным> после отгрузки, как на примере... Поэтому на подгружаемые карты локальное/глобальное освещение лучше не ставить (а лучше вообще никакие глобальные/главные/влияющие на текстуру карты сущности не ставить, но насчёт info_player_start не уверен. Скорее всего, она тоже не требуется). По возможности просто берёте и перемещаете уже существующие сущности на новые точки. При смене позиции точки возрождения лучше использовать CDOTA_BaseNPC_Hero:SetRespawnPosition(Vector pos).
В крайнем случае можете просто при отгрузке проводить очистку всех таких сущностей, которые оставляют за собой следы. Например:
Lua:
for _, deferred_light in pairs(Entities:FindAllByClassname("env_deferred_light")) do
    if deferred_light:GetSpawnGroupHandle() == handle then
        UTIL_Remove(deferred_light)
    end
end
Где handle - дескриптор загруженной spawngroup.
Однако такой подход, возможно, приведёт к вылету, либо может привести к тем же багам, либо не сработать вовсе (на практике не проверял).
На эту фигню есть выгрузка карты со сцены? или только загрузка появилась?
 
сорян, это не заметил
Прочитай постскриптум обязательно.
Ещё на картах почему-то не прогружаются фигуры столкновений, навигационная сетка и деревья. Я думаю, что это зависит от карты, и просто надо как-то по особенному оформить. Посмотри в Hammer карты от нового события. Думаю, что если сделать по образцу, то они будут нормально прогружаться.
 
Никто не знает нормальный слушатель чтобы при спавне героев (1 раз) делалось событие? (Не когда будет 0:00, а именно старт) или же всё таки придётся прибегнуть к костылям?
 
Ладно, пора на нормальный аккаунт было переходить... Хер ай эм.
Можешь гайд запилить по теме "Динамическогого создания карт"?
Думаю это будет лучше, чем подобная крутая тема останется в кучке со остальными вопросами, о которой вскоре все забудут...
 
Добрый день. Может ли кто нибудь подсказать как пофиксить вылет всего инструментария доты при попытке выбрать и сохранить Complex в качестве шейдера в Material Editor? Из ошибки становиться понятно, что не хватает каких то библиотек, но что это за библиотеки и где их взять, увы, остаётся не ясно. Гуглил данную проблему, но ничего дельного, к сожалению, не нашёл.Screenshot_5.png
Screenshot_6.png
 
Реклама: