HexMarkoff
Пользователь
- 8 Май 2020
- 12
- 0
- Проект
- Dugeon rpg
У всех, жди фикса ВалвеВсем привет, при попытке выложить обновление выдает вот это, помогите, пожалуйстаПосмотреть вложение 1088
НетЭто?Dota 2 Workshop Tools/Scripting/API/CBaseEntity.RemoveEffects - Valve Developer Community
developer.valvesoftware.com
а меши оно спавнит? клипы там?похоже новое АПИ завезли
DOTA_SpawnMapAtPosition(string имя карты, vector позиция, bool ????, handle beforeSpawn, handle afterSpawn, out) или как-то так
Да, оно скомпилированный файл карты (.vpk) просто спавнит (то есть и спец. классы, и внутренние сущности тоже). 3-ий параметр отвечает за отключение создания сущностей на карте. Результат с "true":а меши оно спавнит? клипы там?
если да то это революция и пора делать генератор карт
for _, deferred_light in pairs(Entities:FindAllByClassname("env_deferred_light")) do
if deferred_light:GetSpawnGroupHandle() == handle then
UTIL_Remove(deferred_light)
end
end
Ясли конкретно для освещения нужно, то я бы через партикл сделал, там как раз есть свойство "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).
В крайнем случае можете просто при отгрузке проводить очистку всех таких сущностей, которые оставляют за собой следы. Например:
Где handle - дескриптор загруженной spawngroup.Lua:for _, deferred_light in pairs(Entities:FindAllByClassname("env_deferred_light")) do if deferred_light:GetSpawnGroupHandle() == handle then UTIL_Remove(deferred_light) end end
Однако такой подход, возможно, приведёт к вылету, либо может привести к тем же багам, либо не сработать вовсе (на практике не проверял).
Есть, я же показал на примере...На эту фигню есть выгрузка карты со сцены? или только загрузка появилась?
сорян, это не заметилПотом можно убрать через UnloadSpawnGroupByHandle(int handle):
Прочитай постскриптум обязательно.сорян, это не заметил
DOTA_GAMERULES_STATE_PRE_GAME?Никто не знает нормальный слушатель чтобы при спавне героев (1 раз) делалось событие? (Не когда будет 0:00, а именно старт) или же всё таки придётся прибегнуть к костылям?