ZZYZX Может я не правильно понял, может и Decorate на это способен? Пытаюсь понять, что к чему, но тяжело даётся. Это надо можно сказать наизусть знать все эти команды, флаги, проперти, чтобы иметь представление, что можно сделать, а что нет.
через acs либо zscript реально заспавнить актора (либо просто выполнить скрипт) строго после загрузки сейва? Т.е. чтобы скрипт каким-то магическим образом определил, что только что был загружен сейв
Можно попробовать такой костыль, но работать будет только со скриптованым сохранением, т.е. когда сохраняется через ацс функцию autosave();
когда активируется скрипт сохранения, давать игроку к примеру вещь "Load", потом сохраняем, и запускаем цикл допустим на 35 тиков. по истечению 1 сек, вещь забирается. Таким образом каждый раз при загрузке у игрока будет вещь LOAD и с этим уже можно проводить манипуляции.
Как я вижу это в скрипте:
и вот забирать load можно или сразу или в другом скрипте.. смотря что тебе надо сделать после загрузки уровня.
Это все конечно не тестилось, потому хз будет ли вообще работать.
Последний раз когда я пытался сделать подобный скрипт, на ноуте игра вылетала, хотя на ПК работало норм.
но работать будет только со скриптованым сохранением
Нет, работоспособность нужна с обычными сохранениями. Я просто думал что zscript (а может даже и ACS) умеют проверять системное время в винде, и можно каждые 35 тиков проверять разницу в секундах, и если она больше чем например 10 секунд (данное число определить экспериментально, так как игра может пролагать), значит был факт загрузки сейва
А надо мне это для того, что гздум не умеет прекешить 3дмодели, и я нашел ACS костыль, который на нулевом тике (script enter) каждого уровня спавнит все эти акторы-модели, а на первом тике убирает. И проблема в том, что этот костыль не работает когда грузишь сейв (так как сейвы не на нулевом тике), и приходится после загрузки сейва руками вызывать данный скрипт например через команду консоли "summon antilag"
aivar242:
Как поменять цвет огня, созданного генератором ACS (TeleGlitter)? По умолчанию он жёлтый.
После этого посмотри, какие спрайты используются в декорейт коде огня (в ACS скрипте смотри, каких акторов он спавнит командой spawn, и найди этих акторов в декорейте мода, после чего посмотри, какие имена спрайтов у них (а если в декорейт коде увидишь что-то типа spawnitemex, то смотри, какие имена оно спавнит, и ищи акторов с такими именами (и смотри их спрайты) ) ), и сделай им адекватный транслейшн с желтого в какой тебе надо. Если вдруг выяснится, что спрайты труколорные, тогда найди слейдом палитровые версии в iwad-е heretic.wad (если не ошибаюсь, у них такие же имена, как в моем моде), через слейд сделай им транслейшн из желтого в нужный тебе (не забудь при этом палитру еретика выставить в слейде справа сверху) и экспортани их как труколорные в свой мод
А аивар имеет в виду вот этот генератор огня, которым мне сейчас лень заниматься (да и вообще, мне кажется, аивару нужно забить на мой быдлокод и посмотреть, как реализован огонь на торчах в бруталдуме например)
А здесь я показываю на примере, где у меня лагает из-за непрекешированных моделей (хотя актору задан принудительный прекеш): https://forum.drdteam.org/viewtopic.php?f=23&t=7482&start=30#p64332 После того, как я добавляю в мой мод костыльный ACS прекеш (писал выше), то лаги исчезают (таким образом я детектил, что лаги были строго по причине той модели, следовательно она не кешилась стандартными гздумными способами без моих ACS костылей)
alekv:
У меня более 1000 моделей на 1 ур
А сколько примерно разных? 50?
alekv:
и все ок.
Каким образом ты прекешишь свои модели? Какая у тебя версия порта?
alekv:
и все ок.
И да, поясни твое "все ок" плз: твои модели не лагают даже при первом появлении на карте в камере/поле зрения игрока? Т.е. вот ты стартуешь игру, и уже с первого тика до конца игры ни единого лага по причине моделей у тебя нет?
Тобишь да, если модель 1 раз пролагала, то гздум ее теперь закешит, но я веду речь о том, чтобы гздум прекешил модели в процессе загрузки карты, соответственно чтобы в процессе самой игры не лагало даже при первом появлении моделей
Приветствую снова. Подскажите чем можно прочесть содержимое BEHAVIOR'ов в хексеновских картах?
Пробовал ковыряться в них с помощью SLADE3 но ничего не вышло, только надпись видно напротив Compiled ACS (Hexen).
Скрытый текст:
Подозреваю что в бехейворах записаны исполняемые скрипты к картам хексена. Если я что-то напутал, то направьте в правильную сторону, потому что в скриптах к картам не шарю, только вот решил попробовать первый раз.
SSV_Victoryan https://doomwiki.org/wiki/Descript (ссылка на скачивание внизу страницы)
Вот эта прога тебе декомпелирует BEHAVIOR в ACS.
Запускать через дос бокс.
https://doomwiki.org/wiki/Descript (ссылка на скачивание внизу страницы)
Вот эта прога тебе декомпелирует BEHAVIOR в ACS.
Запускать через дос бокс.
Команда "DESCRIPT HEXEN.WAD [название файла].ACS [номер карты(цифрой)]".
Вад держать в папке с дескриптом и .ACS файл тоже появится там же.
Это единственный вариант? Просто дос бокс не хочется ставить.
Я не смог нормально прочитать, т.е. граф пишет что именно 3д модели не прекешатся?
theleo_ua:
А сколько примерно разных? 50?
Честно не знаю никогда не считал.. Возьми да посмотри, игра и так доступна, вся игра состоит из 3д моделей. Есть пара текстур для скайбокса и пару плоских спрайтов.
Мне кажется что лагает не из-за 3д моделей, а из-за текстур, или возможно спрайтов если текстура у них большая(более чем 512х512) Хотя я на 3д моделях и по более использовал.
theleo_ua:
Каким образом ты прекешишь свои модели? Какая у тебя версия порта?
Порт последний GZDoom-GPL, это кажется 2.4 версия
Прекешу через мапинфо, т.е. просто прописываю туда имена актеров (так же каждая 3д модель умеет выключаться через декорейт код если ГГ далеко, возможно это еще помогает)
У меня лично игра не лагает при том что работает куча скриптов, все в 3д моделях(у каждой текстуры по 512-1024)
Кстати, могу предположить что у тебя еще подтормаживает из-за настроек гоззы, у меня когда-то были проблемы с подгрузкой, и решились они выключением OpenGL> Texture option> precach GL textures
Да и еще я использую cl_capfps, т.е. фпс в игре не превышает 35 кажется.. Но это мне помогает убрать дергание камеры.
theleo_ua:
И да, поясни твое "все ок" плз: твои модели не лагают даже при первом появлении на карте в камере/поле зрения игрока? Т.е. вот ты стартуешь игру, и уже с первого тика до конца игры ни единого лага по причине моделей у тебя нет?
Тобишь да, если модель 1 раз пролагала, то гздум ее теперь закешит, но я веду речь о том, чтобы гздум прекешил модели в процессе загрузки карты, соответственно чтобы в процессе самой игры не лагало даже при первом появлении моделей
скачай кроля, да запусти, сам все увидишь, заодно и мне отпишешься как работает. Кроль лагает только на древних пк или слишком старых видюхах(на некоторых видюхах не отображатся 3д модели а на некоторых спрайты, но это уже в порте дело и мб уже исправили в 2.4 версии)
демка кажется на 2.3 работает
http://goo.gl/dDF1SB
Ребята, у меня вопрос по маппингу, как мне сделать чтоб на полу появился телепорт и от туда появлялись противники, а после битвы ещё должна дверь открыться?
Мод: ShadowGunFox (Кампания), карта E1M1: Sky Base, формат: UDMF.
Решит потихоньку медленными темпами вникать в zscript. На вики пишут:
Скрытый текст:
Note that while DECORATE actors can inherit from ZScript actors, the reverse is not true; therefore if an actor is converted, any of its parent classes must also be converted; however its children classes can be left alone.
Теперь представим ситуацию, что есть чужой декорейтовый маппак/мод (зскрипта там нет), и в нем есть например декорейтовский актор лучник, которого я хочу модифицировать (например изменить ему SEE стейт), без редактирования чужого мода. В декорейте я бы просто унаследовал его через replaces и переопределил стейт SEE. Но как быть, если я хочу в моем моде вместо декорейта заюзать zscript?
Никак. Писать на декоре.
Вообще, я думаю, извращениями можно поставить монстру другой See стейт, но я не пробовал.
Мне почему-то кажется, что должен сработать такой способ:
1) Переписываем заново лучника (и всех его предков, если такие были) на зскрипте
2) В декорейте делаем так:
Actor лучник2 : randomspawner replaces лучник
{
Dropitem "лучник_zscript"
}
Т.е. реплейсы в любом случае придется на декорейте делать, но зато все акторы будут на зскрипте
Добавлено спустя 4 минуты 22 секунды:
ZZYZX:
извращениями можно поставить монстру другой See стейт
See стейт это как пример, я на самом деле имею в виду любое изменение актора (которое раньше решалось наследованием и replaces)
А что мешает написать этого же актера на zscript или есть какие-то подвохи? Он ведет себя точно так же как и декорейт за исключением пары нюансов о которых написано тут http://i.iddqd.ru/viewtopic.php?t=1039&page=4 И все новые навороченные фичи зскрипта можно собс-но не использовать если нет нужды.
А что мешает написать этого же актера на zscript или есть какие-то подвохи?
Мешает то, что твой актор так и будет висеть в памяти, ни разу не отспавнившись на уровне (учти, что это может быть не только монстр, а вообще все: проджектайл, дождь, снег и т д), ведь карты создавал не ты, и редактировать карты тебе во-первых лень а во-вторых это неэффективно по многим причинам
Но решение я так понял состоит в том, чтобы в качестве replaces использовать декорейт (как я отписал выше)