![](https://www.amk-team.ru/forum/uploads/set_resources_35/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
Malandrinus
Жители-
Число публикаций
1 930 -
Регистрация
-
Последнее посещение
-
Дней в топе
13 -
AMKoin
160 [Подарить AMKoin]
Весь контент пользователя Malandrinus
-
@k01jan, схему делал Dusty79 много лет назад, а я допиливал с учётом движковых правок, но не меняя общей идеи с конфигами. Модуль ogse_addons.script. Манипуляции с костями худовой модели описаны здесь.
-
, а чего не в вики проекта пишешь?
-
@menk, @KD87, я подозреваю, что под сильным дождём имеется в виду погодный цикл "storm", который действительно довольно тёмный. Чтобы его сделать светлее, надо править конфиги погоды, менять там интенсивность эмбиентного освещения. Но это не один параметр, а надо согласованно менять все точки цикла (штук 30).
-
, функция просто суммирует, как ты верно понял. Нужно это потому, что при арифметических операциях Lua превращает целое число в число с плавающей запятой со всеми вытекающими. Объект - это текущая камера машины. Это отдельный объект, на который идёт указатель из объекта собственно машины.
-
Да ладно! Там запас по костям на все мыслимые аддоны для конкретного ствола. Прицел - это ровно одна дополнительная кость, а чаще всего именно прицелы навешивают табунами. Реально здесь нет никакой проблемы, кроме человеческой. Нам так и не сделал никто такую комбинированную модель. Даже одну для тестов. Даже при том, что я спецом просил не анимировать аддоны, поскольку планировал гасить их не анимациями, а скрыванием костей. Так и не сделал никто и ничего.
-
Не думаю, что скажу что-то совсем новое, но не могу оставить это замечание без ответа. Для этого есть масса причин: 1. Работает же. Есть ли на самом деле причина переписывать то, что работает? Вот упомянутый скрипт Жекана вполне рабочий. Ну сделал бы я его иначе, с одним классом окна и таблицей фраз, и что бы стало лучше? Ровным счётом ничего. С другой стороны пришлось переписывать модуль оружейных аддонов. Его сделал Дасти и сделал очень хорошо. Дасти вообще сильный скриптёр, очень жаль, что отошёл от разработки. Но делал он тот модуль ещё под стандартный движок. Там были принципиально нерешаемые проблемы, которые удалось преодолеть только движковыми правками. Соответственно, я и переписывал модуль, поскольку самолично вносил эти правки. 1.1. Как специальный случай этого пункта. Есть риск сделать не лучше, а хуже. Лично я не полезу в модуль, если не до конца понимаю, что и как там работает. А не понимаю я достаточно часто, в том числе по причине п.2. Бывает так, что руки чешутся переписать код, поскольку он выглядит страшно, но попросту нет ни времени ни сил, чтобы в этой лапше разбираться (и в том числе тяжело разбираться в плохом коде. Чем код лучше, тем он проще.) 2. Нет времени. Вот ты меня чуть ли не главным ответственным за код всея мода назначил, а я вообще-то больше по движку занимался, особенно года два назад и раньше. Дело это весьма трудоёмкое (причём к моей крайней досаде трудозатраты совершенно непропорциональны результатам). В общем, получалось, что либо пилить движок, либо скрипты - на то и другое времени уже нет. 3. Вообще-то не слишком этично лезть в чужой код, особенно если его разработчик всё ещё в команде. Не буду приводить конкретных примеров, но это достаточно весомая причина. Людям обычно не нравится, когда кто-то лезет в их код. 3.1 Другой аспект человеческого фактора: почти нереально подвинуть разработчиков использовать вменяемые компоненты. Не скажу, что был абсолютно единственным пользователем своих модулей, но я наверное потратил больше времени на попытки объяснить, как пользоваться моими таймерами, нежели на их разработку =)
-
@Карлан, Эти слова имел в виду? Где здесь про полный рефакторинг? Про стабильность утверждается только, что стабильнее чем в предыдущей версии. Рефакторинг надо? Как насчёт унификации скриптового спавна с единой базой данных? Я уже и забыл, что это делал, больше года назад было. Как насчёт полностью переписанной системы сменных аддонов? Или новый менеджер погоды без необходимости создавать переходные циклы. По-моему, ты просто не удосужился прочитать этот самый анонс но при этом докопался до пары слов насчёт "уникальных" фишек. Я тогда так скажу. Покажи мне мод, где всё перечисленное в анонсе прямо сейчас интегрировано и готово к работе.
-
@Карлан, Насчёт "кинули" - это всё субъективно. Не знаю, что там в нашем анонсе (не читал, занят был), но что ожидалось то? Добрая часть наших наработок уже давно так или иначе доступна: движковые наработки по большей части в сети, боёвка, часть шейдеров, мои компоненты я выкладывал больше года назад... Можно было и представить заранее, что и как будет в моде. Немного по конкретным моментам. А хотелось, чтобы был переписан вообще каждый скрипт? А зачем? Большинство скриптов из оригинала игры не требуют изменения, поскольку выполняют рутинную работу и отлично работают. С другой стороны боёвка сталкеров, к примеру, сделана новая. "Полный" рефакторинг, как я могу предположить, по большей части имелся в виду относительно нового и относительно предыдущей версии 6.9.2. Новшеств всё-таки довольно много. Слишком общее утверждение, надо бы конкретики. Конкретику в студию, пожалуйста. Я могу ответственно утверждать, что за время моего пребывания в команде всё, что было сделано, было сделано людьми, на момент разработки находившимися в команде. Даже xStream, хоть и не была формально членом команды, внесла свои разработки лично, "забежав на огонёк" так сказать. Вот не вижу там откровенной ахинеи, хотя я бы и сделал это иначе. Бросаясь такими эпитетами надо быть конкретнее, что и почему там "ахинея". Так получилось. Там ещё и два набора систем хранения (не считая родного пстора и основанной на нём АМКшной системы), три набора таймеров (считая АМКшные), два набора библиотек работы с нетпакетами. У всего своя история. Таймеры АМК я пытался изничтожить и почти преуспел, но потом появились новые люди и стали использовать их снова. Пришлось, скрипя зубами, оставить. Артос запилил свою систему по мотивам моей и xStream (или xStream и моей, не знаю), когда мы их выложили на этом форуме какое-то время назад. И почему теперь я должен доказывать, что моя система лучше? Там есть полное описание, к слову сказать. Возьми и сравни. Покритикуй конструктивно, буду только признателен. В заключение скромно замечу. Мы не россыпь фишек в архивчиках предлагаем, а платформу, где все упомянутые компоненты уже интегрированы вместе, в том числе и с учётом многочисленных движковых правок (которые и делались во многом для реализации той или иной фишки). Мне кажется, что такая платформа всё таки имеет некую самостоятельную ценность.
-
log3(fmt, ...) при этом вместо конкретных типов в позициях формата рекомендуется ставить %s (как для строк). Пустые значения вместо аргументов всё равно вызывают проблемы. Чтобы это побороть надо парсить строку формата, на что я заморачиваться не стал. print_table_inlog(table, comment) Хотя опять же мне кажется, это ещё из оригинала идёт. Документацию по своим платформенным наработкам выложу после того как это официально перестанет быть бета тестом. Впрочем, кое-что я уже ранее выкладывал: сигналы, система хранения, таймеры, редактор зон. В моде также используется аналогичный набор фишек + библиотека для работы с нетпакетами от xStream, по ним вроде тоже есть какая-то документация. По движку смотри проект x-ray extensions. Какая документация нужна к шейдерам? Они работают, что ещё надо? Добавлено: К слову сказать, изрядная часть документации там уже есть: ogse_signals.script - сигналы, описание в комментариях ogse_unist.script - система хранения, описание в комментариях ogse_qt.script - "быстрые" (несохраняемые) таймеры, описание в комментариях ogse_st_mgr.script - сохраняемые (сериализуемые) таймеры, описание в комментариях компоненты от xStream: xs_stor.script - система хранения, описание в комментариях xs_sandbox_manual.txt - описание сигналов ("песочница", почему такое название - не ко мне) xs_netpk.script - работа с нетпакетами, описание в комментариях xs_timers.script - таймеры, описания нет, но есть пример использования Кроме того, там же есть редактор зон и телепорт. Активируте их сами, с этим помогать (по крайней мере сейчас) не буду.
-
@shahvkit, в архивах смотрел?
-
Ящик в шкафу, а это просто урна. Урна стоит сама по себе. Осталась от недоделанной задумки.
-
, там кажется мусор между загрузками, не ноль.
-
, для этого специально делалась функция set_extensions_flags, которая отключает/включает колбеки.
-
Ссылки на исходники идут по статье warez. Будут рецидивы - буду реагировать соответственно.
-
Называй пожалуйста язык Lua. Это не аббревиатура, а имя собственное, португальское слово "Луна". В сталкере - версия Lua 5.1, там goto нет. В любом случае вряд ли ты найдёшь язык, где можно было бы сделать переход в другую функцию (что скорее всего ты и хочешь). Это абсолютно не вписывается в идею структурного программирования. Любой язык, основанный на стеке, текущем контексте и т.п. (а это в общем почти все языки) такого не позволит. В самом деле, как ты себе представляешь переход из произвольной точки программы в другую произвольную точку программы? Каждый оператор в каждой функции выполняется в стеке этой функции с учётом всего окружения, в котором эта функция была вызвана. Более того, это окружение формируется всей предысторией выполнения перед вызовом этой строки. Вне этого окружения и стека этот конкретный оператор попросту не будет работать, а именно это ты и хочешь, из определённого контекста перейти в произвольную точку совершенно другого. Короче, так не бывает. Нет. Lua строго однопоточный и выполняется в том же потоке, что и вся игровая логика. Останавливая выполнение скрипта ты остановишь и всю игру. Конкретно это "вернуть управление в конкретную точку" вообще невозможно. Смотри выше. Ещё и смешиваешь понятия, говоришь "вернуть управление", явно подразумевая "передать управление". Вернуть - это когда ты там до этого был и потом туда же возвращаешься. Для такого есть функции, которые это и делают, их вызываешь откуда-то, потом в точку возврата возвращаешься. Но это явно не то, что ты пытаешься описать. У тебя переход идёт в произвольную точку. Очень хорошо иллюстрирует невозможность твоего желания. Вот ты переходишь куда-то, да ещё и пытаешься передать туда значение true. А каким образом совершенно произвольная точка программы узнает, что её что-то там передали? В структурных языках (читай, почти во всех языках) главным способом куда-то перейти и при этом что-то туда передать является вызов функции. Таким образом ты пытаешься решить свою задачу с использованием несуществующих возможностей. В итоге, приходим к следующему. То, что делается по таймерам, должно быть оформлено как независимые функции, таймеры должны быть разные и в итоге должны вызывать эти разные функции. Каждый таймер в итоге вызовет свою функцию. Задача исчерпана.
-
@MaXXumyS, Что за батарейка? Элемент питания или артефакт? И что значит "от батарейки"? Слишком неконкретно звучит. Что именно в терминах игры ты хочешь с этой батарейкой сделать? Конкретнее, на пояс разместить, использовать, ещё что-то?
-
@MaXXumyS, На такой вопрос тебе никто не ответит. Что конкретно ты хочешь?
-
Ещё раз насчёт поиска проблем. Это - редактор, не валидатор. Правка косяков - сугубо разовая операция. Косяки в файлах надо исправить, сделать это один раз и дальше жить без них. Так и на кой я буду делать из программы валидатор, при том что их и так существует вагон? Не лучше ли таки заняться функционалом редактора? Официально заявляю. Валидатор XML в списке приоритетов на последнем месте.
-
Я же выше объяснял, что окошко с ошибкой - это самодеятельность парсера. Просто закрой его. Теперь первым делом исправить ошибки XML. В противном случае видим покрасневшие файлы. По сути ошибок, к сожалению, программа помочь может несильно. Опять же выше объяснял почему. Перетащить что куда? Окно на экране? Открыть диалог? Если окно, то закладки надо таскать мышой. Сделать удобное размещение сразу не могу, поскольку используемый элемент управления не позволяет сохранить разметку окон. поэтому исходно всегда всё в виде закладок. Было строго обратное желание, чтобы не руками, а таки инструментом, ибо руками делать наелся досыта. А что собственно так смущает в окне "Текущий диалог" ? В первом приближении должно быть видно дерево фраз (если оно в диалоге есть разумеется). Что может быть нагляднее? Это практический вопрос. Как-то можно сделать иначе? Пытался сделать в виде, максимально приближённом к "игровому" восприятию, т.е. видим фразу (именно текст), следующие фразы, т.е. в сущности примерно то, что видим в игре. Что именно? На уровне отдельных файлов на данный момент можно их открыть в текстовом редакторе. Исключением является файлы диалогов, поскольку диалоги можно редактировать в программе. Признаться, не понял что надо. В целом программа преследует цели: 1. менеджер файлов, относящихся к сюжету: перечислить, открыть в текстовом редакторе в нужном месте (если редактор поддерживает) 2. редактор диалогов (вроде как сделано) 3. Редактор инфопорций, задач, статей, профилей (всё в проекте) Ещё раз, при надлежащей поддержке физической файловой структуры упор таки делается на логические сущности: диалоги, инфопорции, строки и т.д. Они как бы единственно важны для игры. Не уверен, отвечает ли следующее на вопрос. При сохранении выполняется форматирование файла XML. Строго один тег на строку, пустые строки удаляются, отступы форматируются табуляциями. Пытался настроить сохранение так, чтобы исходное форматирование строго сохранялось, но не удалось. Если использовали XML-комментарии вслед за рабочими тегами, то они будут перенесены на следующую строку, ибо комментарий - отдельный тег. Это тебе нужен XML валидатор. Вот чем я пользуюсь. http://xmlvalidator.sourceforge.net/ Одна только проблема, если файл является частью другого (вставлен инклюдом), то он скорее всего заведомо не является корректным xml. Опять же в будущих версиях планирую сделать экспорт собранного файла XML (т.е. со всеми включёнными инклюдами) чтобы его как раз можно было проверять сторонними валидаторами. А это кстати можно. При двойном клике на теге с инфопорцией должно открыться окно с инфопорциями и произойти переход в дереве на эту инфопорцию. Если не перешёл, значит нет такой (в будущем наверное сделаю сообщение). Со скриптами можно проверять путём открытия их во внешнем редакторе. Если это Notepad++ или SciTE, то при наличии файла и функции в нём он должен открыться и курсор должен установиться в начало функции. Если файла нет, то не откроется, если функции нет, то курсор будет в начале файла. В будущем тоже постараюсь сделать сообщение. Была идея сделать валидатор на основе этого функционала. Т.е. функцию сквозной проверки всего.
-
Абсолютно условное. Внутри они все собираются в одну базу данных. Аналогично для всех остальных вещей: инфопорций, строк и т.д. По поводу горячих клавиш. Лично я так почти не пользуюсь горячими клавишами практически нигде за исключением Total Commander-а, для которого осталась ещё моторная память со времён NC =) Всё-таки какие предложения насчёт сочетаний? На такие вещи у меня творческого запала не хватает. По остальным вопросам понял, буду делать что могу.
-
@Kirgudu, я понял в чём дело. В ЧН папку config переименовали в configs. Надо будет добавить разбор файла fsgame.ltx. В качестве временной меры можно править в отдельной папке с копией всего, где configs переименован в config.
-
@7.9, 1.Этим к сожалению управлять не могу. Парсер выдаёт окошко с сообщениями об ошибке самостоятельно, а в программу возвращает только удалось/неудалось. Соответственно, если не выдаёт окошко, то тоже неизвестно почему. Вообще-то, было желание это окошко убрать, просто не получилось. В будущем попробую больше информации вывести в лог, который сейчас больше для "не скучать при загрузке". 2. Здесь не совсем понял. Можно пример? 3. Насколько это критично? Тулбар сейчас сляпан на скорую руку. Это в сущности и не тулбар, а просто окно с кнопками, посему его сворачивание невозможно. 4. Так ведь это можно сделать перетаскиванием закладок. Или имеешь в виду сразу при загрузке? Этого не получается к сожалению. 5.Контекстное меню было конечно в конце приоритетов. Потихоньку буду синхронизировать с тулбаром. С горячими клавишами есть предложения. Какие сочетания на какую операцию? 6. Открыть что именно? Там открывать можно только файлы скриптов, указанные в тегах скриптовых действий. 7. Попробую исправить, но может и не получиться. 8. Изменённый файл. После сохранения звёздочка погаснет. 9. Нету такой возможности. Дело даже не в создании файла, а в том, что надо дополнительно менять ещё и system.ltx. Поскольку операция достаточно редкая и в общем нетрудная, то решил этого не делать. Впрочем, вспоможение для этого есть в виде открытия соответствующей секции system.ltx в текстовом редакторе. Т.е. в общем всего то делов: создать файл из любого другого, скопировать его имя, вставить в список в секции (даже искать эту секцию не надо), сохранить и перезапустить программу для обновления. 10. Совсем пустом? Это вообще-то некорректный xml, по идее должен покраснеть. 11. Исправлю. Наверное просто сделаю автоматическое создание такой фразы + сообщение об ошибке.
-
Кому-нибудь удалось использовать программу для собственно редактирования диалогов? Есть нарекания, баги, предложения?
-
Просто для справки, первый рендер вырезан совсем. Всегда грузится второй рендер и полная динамика. Опции из меню удалили. dll первого рендера тоже можно удалить, поскольку по-любому не загрузится.
- 202 ответа
-
- Тень Чернобыля
- ТЧ
-
(и еще 2 )
Отмечено тегом:
-
@dukekan, читай внимательней. Данные не пропали. У нас вообще SVN на независимом хостинге. К сожалению, выбыл сам разработчик по причине сгоревшей видяхи. Господа, предлагаю завязать со срачем! Здесь тема информационная, чтобы люди могли узнать больше о моде. Мнения же о том, кто кому и что должен/не должен - злостный оффтоп.
- 202 ответа
-
- Тень Чернобыля
- ТЧ
-
(и еще 2 )
Отмечено тегом:
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ