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

HexMarkoff

Пользователь
8 Май 2020
12
0
Проект
Dugeon rpg
Всем привет, при попытке выложить обновление выдает вот это, помогите, пожалуйстаБез имени-1.png
 

xDes

Продвинутый
8 Ноя 2018
232
34
Проект
Boss Survival Adventure
Там ещё лайфстил нормально сделали, только все остальное сломал Гален как всегда
 

VortDyn

Пользователь
26 Ноя 2018
16
6
Дайте пожалуйста примеры того, как нужно прописывать крипам ненаправленный скилл(к примеру ульт тайдхантера) и направленный скилл(к примеру сон бейна)
Именно: то как это прописывается в "DOTAAbilities" и код скрипта (ability_lua)
 

Дикий Пёс

Друзья CG
28 Июн 2017
411
96
Проект
Petri Reborn
похоже новое АПИ завезли
DOTA_SpawnMapAtPosition(string имя карты, vector позиция, bool ????, handle beforeSpawn, handle afterSpawn, out) или как-то так
а меши оно спавнит? клипы там?
если да то это революция и пора делать генератор карт
 

zakG

Пользователь
14 Июл 2020
11
3
а меши оно спавнит? клипы там?
если да то это революция и пора делать генератор карт
Да, оно скомпилированный файл карты (.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.
Однако такой подход, возможно, приведёт к вылету, либо может привести к тем же багам, либо не сработать вовсе (на практике не проверял).
 
Последнее редактирование:

zakG

Пользователь
14 Июл 2020
11
3
Так есть там чего по моему вопросу про отключение рендера в тумане войны, не? Очень-очень нужно, плиз...
 
20 Дек 2016
892
170
Так есть там чего по моему вопросу про отключение рендера в тумане войны, не? Очень-очень нужно, плиз...
Ясли конкретно для освещения нужно, то я бы через партикл сделал, там как раз есть свойство "Render deferred light". Если создание партикла прям на сущности не дает результата с туманом войны, то сделать нпс без модели и хелфбара, создать партикл на нем, и устанавливать позицию нпс на позицию сущности.

В общем же случае, если у сущности в хамере нет специальной настройки для рендера в тумане войны, то управлять этим явно не получится.
 

zakG

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

В общем же случае, если у сущности в хамере нет специальной настройки для рендера в тумане войны, то управлять этим явно не получится.
Ясно, тогда дело дрянь... Спасиб, Снайп
 
Последнее редактирование:

LAPKI

Продвинутый
26 Окт 2018
271
61
Да, оно скомпилированный файл карты (.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.
Однако такой подход, возможно, приведёт к вылету, либо может привести к тем же багам, либо не сработать вовсе (на практике не проверял).
На эту фигню есть выгрузка карты со сцены? или только загрузка появилась?
 

zakG

Пользователь
14 Июл 2020
11
3
сорян, это не заметил
Прочитай постскриптум обязательно.
Ещё на картах почему-то не прогружаются фигуры столкновений, навигационная сетка и деревья. Я думаю, что это зависит от карты, и просто надо как-то по особенному оформить. Посмотри в Hammer карты от нового события. Думаю, что если сделать по образцу, то они будут нормально прогружаться.
 

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Никто не знает нормальный слушатель чтобы при спавне героев (1 раз) делалось событие? (Не когда будет 0:00, а именно старт) или же всё таки придётся прибегнуть к костылям?
 

vulkantsk

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

HolyFather1995

Новичок
29 Апр 2020
1
0
Добрый день. Может ли кто нибудь подсказать как пофиксить вылет всего инструментария доты при попытке выбрать и сохранить Complex в качестве шейдера в Material Editor? Из ошибки становиться понятно, что не хватает каких то библиотек, но что это за библиотеки и где их взять, увы, остаётся не ясно. Гуглил данную проблему, но ничего дельного, к сожалению, не нашёл.Screenshot_5.png
Screenshot_6.png
 
Реклама: