Etil
Сталкеры-
Публикаций
41 -
Зарегистрирован
-
Посещение
Репутация
8 НейтральнаяИнформация о Etil
-
Звание
Новичок
Посетители профиля
Блок последних пользователей отключён и не показывается другим пользователям.
-
N42 Как оказалось, всё довольно просто. Код под спойлером в моём предыдущем сообщении.
-
Всем привет. Появилась необходимость создать в окне (CUIScriptWnd) элемент, где текст - это строковая переменная. Вопрос: как это осуществить? Upd: Нашёл решение, выдрал из одного из скриптов Вергаса. Кому интересно:
-
Mass То есть, время до апдейта торговли и прочие параметры, которые сохраняются (должны сохраняться) в функции save(obj, packet), которая вызывается из xr_motivator function motivator_binder:save(packet) trade_manager.save(self.object, packet) end - это всё не работает?
-
N42 Так и планирую сделать: буду записывать значения переменных в строгой последовательности, названия уровней сокращу до номеров, остальное - в бинарном/числовом формате. P.S: параметры динамические, присваиваются каждому НПС рандомным образом, потому комбинаций конфигов может быть бесконечное множество. P.P.S: надо будет не забыть прописать удаление переменной из se_stor при удалении НПС (можно поставить удаление на смерть НПС, но лучше также прописать проверку в функции удаления обьекта из игры).
-
N42 Кхм, там... перечень локаций + отношение НПС к каждой из локаций (нравится\не нравится), плюс ещё штук так пять-шесть других параметров. И так для каждого НПС. Полагаю, придётся провести оптимизацию и записывать сокращённую строку в se_stor (там, насколько я помню, тоже есть лимит на длину). На самом деле, так будет даже лучше, т.к. можно будет запросто получить доступ к переменным из других файлов.
-
Всем привет. Такой вопрос: существует ли ограничение длины строки (или символов, которые можно сохранять) при записи в function save(obj, packet) (скрипт trade_manager) через packet:w_stringZ() ? Просто при сохранении строки подобного вида: "текст==текст==текст" (или при считывании записи) игра ломается.
-
Насколько я помню, для спавна по скрипту.
-
imcrazyhoudini Да. Возможность "переписки" с НПС меня в этом контексте не особо интересует.
-
imcrazyhoudini Да оно и в солянке, и в аномали, и в NLC, и ещё много где есть. Но реализовано так себе.
-
Всем привет. Пока есть свободная минутка, спрошу: в некоторых модах реализована сталкерская сеть (интернет), но есть ли моды, которые добавляют только её? Если нет - напишу сам (т.к. фичи удовлетворительного качества ни в одном моде не припомню).
-
Pepel По поводу лечения - это реально. Если будет на днях свободное время - помозгую. Но тут есть нюансы: если не улучшать логику НПС, то доктор ведь буквально под огонь полезет, и запросто может до ГГ живым и не дойти. Поскольку в тч такой системы отрядов, как в зп, нет, можно будет считать отрядом население того же смарт-террейна, к которому приписан доктор. Если док гуляет без смарта - то лечит всех из своей группировки в радиусе, скажем, 80 метров. Ну и ГГ он лечит в любом случае, в том же радиусе. По поводу передачи лута - так, в принципе, можно. Есть на уме как минимум один вариант, но он может не очень хорошо сказаться на оптимизации. Функция переноса предмета в инвентарь ГГ есть (я ей пользовался когда черновик скрипта многоприцельности писал), можно прикрутить обработчик событий к разным предметам (и модифицировать у тех, у которых он уже есть), и поставить проверку на расстояние до ГГ. Если ближе чем n метров - то предмет перемещается в инвентарь. Опять же, это очень даже может создать лаги. Дополнено 6 минуты спустя Pepel в геометрию входят: террейн (земля), деревь, кусты, дома и т.д. Грубо говоря, всё то, с чем нельзя взаимодействовать. Ящики, бочки, аномалии, люди, и т.д. - динамические обьекты. Поскольку изменения вносятся только в спавн, то нужен он и гейм_граф (они связаны). Вроде, ещё нужны левел_граф каждого уровня, level.game каждого уровня, и ещё что-то. Весь список не помню, советую посмотреть уроки по компиляции локации. По крайней мере это так, если не совмещать СДК и игру. Вроде, при сборке локации часть файлов пропадают/заменяются готовыми к компиляции геометрии и на такой локе игра уже действительно не запустится. Поэтому я держу СДК и файлы мода отдельно.
-
Pepel Геометрию нужно компилировать только когда ты геометрию редактируешь. При изменении спавна, компилируется левел_граф, гейм_граф и спавн. А я тридцать квестовых НПС, переделанные гулаги, километровые патрульные пути и полностью новое заселение локации прикручивал. Надолго меня не хватило)
-
Delford На скриптах далеко не уедешь. Можно осваивать acdc, но я бы на неё останавливать не советовал. Научился декомпилировать и компилировать спавн - и пошёл изучать СДК. На канале Андрея Непряхина (ссылка) есть уроки по ней, сам по ним учился. Работать исключительно с ACDC можно либо создавая халтуру (мод, полностью или почти полностью основанный на вейпоинтах тч и использующий обекты ТЧ), либо если ты мазохист (я невероятно терпеливый человек, и даже я не выдержал. Переписывание координат со скриншота или копипаста каждой координаты по отдельности из лога - это мука, а их ещё вручную надо снимать). СДК, если не ковырять геометрию локаций, позволяет работать с удовольствием и создавать сложные квесты, постановочные сцены, и т.д, без особых проблем. Дополнено 9 минуты спустя Pepel Что подразумевается под "лечением наподобие халфлайф"? Лечение через диалог - пожалуйста, без проблем. Спокойно по принципу медиков из зп можно сделать (да и делали уже). Лечение по желанию НПС? Заскриптованое, или нет? Если да - то можно зафиксировать гг на одном месте, заставить НПС подойти к нему, проиграть анимацию, и под её конец хп ГГ будет восстановлено. Если нет - это уже другой разговор. Желание-то лечить ГГ для НПС можно организовать, а нужно ли? При каких условиях оно должно срабатывать, и не повредит ли это игровому балансу? И как (в теории) должна работать передача лута без диалоговых окон? Просто спавнить по скрипту? А как понять, какой предмет нужно заспавнить? Вообще не понятно.
-
N42 Каждая строка является названием секции, в которой находится перечень предметов, вероятность спавна, мин. и макс. количество каждого из них. В большинстве случаев, секции не повторяются, потому прописывать строку в виде "название_секции" = n попросту нет смысла, проще заставить скрипт считывать строку за строкой из пресета и спавнить их по очереди, т.к. в подавляющем большинстве случаев n == 1. Однако, судя по всему, так нельзя, так что пришлось переписать конфиги.
-
И снова здравствуйте. Есть вопрос по поводу функции line_count, код выглядит примерно так: Правильно ли я понимаю, что line_count() считает только уникальные параметры, и игнорирует дубликаты?