Автор | Сообщение |
Mr.Danisimo Recruit
 | 6 |
 Doom Rate: 2 Posts quality: +1 |
Отправлено: 21.07.25 18:15:04 | |
|
Прошу прощения, я вроде сейчас пробую UDMF, тестирую всё на GzDoom 4.11.3 |
|
|
| |
BeeWen Lieutenant Colonel
 |  | 3556 |
 Doom Rate: 1.59 Posts quality: +953 |
Отправлено: 21.07.25 22:46:48 | |
|
Mr.Danisimo пишет: | можно конечно тупо перекопировать все файлы, но оптимальный ли это способ? |
Ещё оптимальней создать их самому, но это требует определённых усилий. |
|
|
1 |
1 |
1 |
 |
|
| |
Герр Смертоносец - Warrant Officer -
 | 1081 |
 Doom Rate: 1.33 Posts quality: +954 |
Отправлено: 22.07.25 06:49:57 | |
|
Mr.Danisimo пишет: | Сап гайс, если есть кто, скажите как добавлять монстров в свой вад используя Slade 3, можно конечно тупо перекопировать все файлы, но оптимальный ли это способ? |
Mr.Danisimo пишет: | Прошу прощения, я вроде сейчас пробую UDMF, тестирую всё на GzDoom 4.11.3 |
Смотря что, откуда и куда добавлять.
- Если это готовый монстр с realm667, достаточно wad с монстром в pk3 засунуть, дальше интерпретатор сам разберётся, где какие файлы лежат.
- Если надо засунуть не в pk3, а в wad - придётся уже переносить отдельно спрайты (между S_START и S_END), отдельно звуки, отдельно руками переносить код из лумпов ZSCRIPT/DECORATE и SNDINFO.
- Если надо выдрать монстра из какого-то мода - опять же, придётся переносить всё вышеперечисленное руками, только теперь добавляется увлекательный квест: найти в чужой куче файлов все необходимые компоненты и ничего не забыть. И найти в чужой куче кода всё нужное, убрать всё ненужное, и чтобы ничего при этом не сломалось. Там бывают всякие неочевидные зависимости. В особо тяжёлых случаях и ACS-либу копировать придётся.
(И да, во всех случаях конфликты имён возможны, и ошибку это не вызовет. Просто один монстр вдруг чудесным образом перекрасится в другого с теми же именами ресурсов. Если конфликт произошёл - надлежит править файлы руками.)
После чего в MAPINFO пишется конструкция вида:
DoomEdNums
{
16000=Kozel
16001=Baran
16002=Korova
}
И всё, можно работать с ними в эдиторе. Чтобы работалось удобнее - прописать editor keys. |
|
|
5 |
 |
|
| |
Mr.Danisimo Recruit
 | 6 |
 Doom Rate: 2 Posts quality: +1 |
Отправлено: 22.07.25 11:48:49 | |
|
Герр Смертоносец пишет: | Если надо засунуть не в pk3, а в wad - придётся уже переносить отдельно спрайты (между S_START и S_END), отдельно звуки, отдельно руками переносить код из лумпов ZSCRIPT/DECORATE и SNDINFO. |
Спасибо Герр, помог |
|
|
| |
+Ku6EPyXOBEPTKA+ = Major =
 |  | 3075 |
 Doom Rate: 2.04 Posts quality: +1539 |
Отправлено: 30.07.25 20:33:48 | |
|
Возникла интересная проблема с ACS. В общем у меня большой массив данных запихан в одну ACS библиотеку и при попытке скомпилировать мне выдаёт просто шедевральную ошибку:
Too many strings. Current max is 32768
Причём я не понимаю природу ошибки. Если разделить массив в одной библиотеке, то всё равно будет ссылаться на лимит строк (похоже лимит общий для всех массивов с строковыми данными). Если убрать кусок массива до лимита, то будет ошибка ссылаться на следующее объявление любых данных с строковым значением. И я понимаю, если бы это были отдельно объявленные строки, но это же массив... карл. Да ещё вообще не понятно почему у меня возникает ошибка лимита далеко не в ожидаемой строке (массив из 4 элементов 37к строк, но ошибку даёт почему-то где-то в 16к, если пытаться скомпилить голый массив). В общем, есть ли какой-нибудь способ обойти этот бред?
Вынести массив в отдельные библиотеки и разделить тоже не получится, из-за того, что тогда не получится скомпилировать основную библиотеку (будет ругаться на необъявленные данные). Тут кстати другой вопрос, можно ли вообще делать ссылки на данные в других библиотеках? |
|
|
2 |
1 |
7 |
 |
|
| |
Герр Смертоносец - Warrant Officer -
 | 1081 |
 Doom Rate: 1.33 Posts quality: +954 |
Отправлено: 31.07.25 01:57:52 | |
|
+Ku6EPyXOBEPTKA+
+Ku6EPyXOBEPTKA+ пишет: | Тут кстати другой вопрос, можно ли вообще делать ссылки на данные в других библиотеках? |
Косвенным образом точно можно. Допустим, тебе ничего не мешает создать одной библиотекой некого особенного актора и напихать ему в какие-нибудь поля каких-нибудь параметров, чтобы другая библиотека их потом оттуда прочитала. Или можно CVar-ы использовать. Или, если у тебя там визуальная новелла с большими объёмами интерактивного текста - запихать каждый текст в отдельную либу отдельным скриптом, который вызывается спецактором. А в массив вместо талмудов положить имена этих спецакторов, получив таким образом эдакий массив указателей из спичек и желудей.
А ещё это всё можно через Strife Dialog Format замутить (гугли вики по тегу Conversation, каталогизировано оно омерзительно), где текст по умолчанию выносится в отдельные лумпы. |
|
|
5 |
 |
|
| |
+Ku6EPyXOBEPTKA+ = Major =
 |  | 3075 |
 Doom Rate: 2.04 Posts quality: +1539 |
Отправлено: 31.07.25 19:49:06 | |
|
Герр Смертоносец
У меня массив данных с именами изображений и номерами позиций и их ~37400 + к каждому ещё свойства 3 штуки (хотя на самом деле планировалось около 10-12 в общей сумме). В итоге матрица 37400х4. Через cvar кстати теоретически хорошая идея. Я думаю даже проще сразу генерировать ini файл (или CVARINFO) с массивом и просто обращаться к переменным, которые пишутся в нём (дать им какое-то обще имя и номер). Только вот беда, ini файл нужно будет отдельный генерить и привязать его как-то через autoexec, иначе просто усрёт существующий файл конфигурации + повторная генерация усрёт свеже сгенерированный файл, а значит в генераторе надо писать целую пачку кода на чтение этой херни по типу проверки на стоп слово. Но это будни программистского онанизма, они уже мало кого волнуют.
А что касаемо библиотек, как их связать то между собой, есть варианты? Просто было бы проще, если можно было распихать по несколько библиотек и делать свитч с массива на массив при достижении верхнего предела (геморрно, но вполне реализуемо). Вот только беда, если компилить .o то ACC посылает на вертолёт, и говорит что в душе не дрюнькает, к какому такому массиву заставляют обращаться. #include не помог, хотя надежды были. Может просто делаю что-то не так. Я вот думаю: а zcommon.acs тоже ведь как-то собирается. Может там есть вариант объявлять?
Хотя может быть всё гораздо прозаичнее и это в принципе хард лимит в 32к и потом куда не пихай везде будет вылетать с фаталом - очередная утка с проверками. |
|
|
2 |
1 |
7 |
 |
|
| |