Перейти к контенту

Kirgudu

Жители
  • Число публикаций

    1 629
  • Регистрация

  • Последнее посещение

  • Дней в топе

    27
  • AMKoin

    15,150 [Подарить AMKoin]

Весь контент пользователя Kirgudu

  1. Kirgudu

    Скриптование

    @_Sk8_AsTeR_, судя по коду, речь о модуле Артоса? Можно, только не в стандартные свойства нет-пакета для данного объекта, а в его кастом дату. Например, при взятии артефакта в инвентарь я успешно добавлял признак того, что артефакт уже был найден (для исключения повторного учёта в статистике): Для понимания: в данном случае присвоенная свойству artefact_found пустая таблица превращается в кастом дате, представленной строкой, в секцию [artefact_found] без дочерних элементов.
  2. Kirgudu

    Old Good Stalker Mod - Clear Sky

    Вдогонку. Я почему-то подумал, что речь о моде OGSM CS 1.8 CE Fixes от @monk (https://www.amk-team.ru/forum/topic/12743-ogsm-cs-18-ce-fixes/). Тем не менее, ответ остаётся верным - функция Set_Rest_GameSeconds есть только в моде от @monk, а в чистом OGSM 1.8 CE отсутствует.
  3. Kirgudu

    Old Good Stalker Mod - Clear Sky

    Ну, положим, здесь всё-таки не 1.8 CE, а чистый OGSM, в котором функция Set_Rest_GameSeconds, на которую есть ссылка в логе, отсутствует. Следовало бы писать в соответствующей теме. А во-вторых, упомянутая функция Set_Rest_GameSeconds была добавлена в модуль _g.script (мода 1.8 CE) в незапамятные времена, так что если игра не может её найти, есть большие сомнения в том, что мод установлен корректно. Рекомендую скачать заново и поставить с нуля.
  4. Kirgudu

    Скриптование

    Работает. Применяется, например, в моде OGSM CS 1.8 CE Fixes для переноса вещей из ящика в инвентарь актора после миниигры со стрельбой. Насколько мне известно, работает без ошибок.
  5. Kirgudu

    Скриптование

    Начинающего ковыряльщика может интересовать вовсе даже не ТЧ, а, скажем, ЧН, как меня 9 лет назад, или ЗП.
  6. Давай-ка посмотрим. Известный многим ресурс: И пусть ценных модов там раз-два и обчёлся, общее количество внушает.
  7. Kirgudu

    Скриптование

    Если сделал всё правильно, у тебя в _g.script должно быть что-то вроде этого: function start_game_callback() --/ ... все предыдущие строки функции --/#+# [se_stor] --------------------------------------------------- se_stor.attach() -- инициализация модуля se_stor --/< --------------------------------------------------------------- end prefetch("lua_extension") --/#+# подключение модуля расширений Lua prefetch("lua_helper") --/#+# подключение модуля 'общих' хелп-функций Таким образом, определение функций SetVar и др. в lua_helper срабатывает уже при загрузке модуля, а определение тех же функций в se_stor - только при запуске функции start_game_callback (вызовом функции attach), то есть позже. И второе определение перезаписывает первое. Так что не бойся, сохранение будет происходить только в универсальное хранилище.
  8. Kirgudu

    Скриптование

    @Norman Eisenherz, например https://www.amk-team.ru/forum/topic/6185-skriptovanie/?do=findComment&comment=1325557 А вообще, хорошей практикой будет (а раньше считалось ещё и хорошим тоном) проведение самостоятельного поиска по форуму на интересующую тему. Многие вопросы обсуждались не раз и не два. Вот и запрос по словосочетанию "обход аномалий" легко возвращает интересные для изучения результаты.
  9. Kirgudu

    Форум: вопросы и предложения

    @Murarius, ладно, тогда прошу восстановить справедливость в отдельно взятом случае.
  10. Kirgudu

    Форум: вопросы и предложения

    А если юзер не заходил 3 года? Емнип, когда эту цацку только вводили, она была выдана также и таким вот, давно не появлявшимся, что по крайней мере некоторых из них сподвигло дорогу сюда вспомнить. Собственно, из тех семерых, что я заметил, практически все именно такие. Но может оно и не надо, ведь раз не появлялся, то как бы и не на форуме, то есть не укладывается в границы награды..
  11. Kirgudu

    Форум: вопросы и предложения

    @aka_sektor, ох, не приплетай ты сюда ещё и это. Не двойные стандарты, а разница между допустимым публично и в личном пространстве. Тебя никто не будет ругать за хождение нагишом по своей собственной квартире, разве что сожители, но это ваше межличностное дело/соглашение. Но стоит тебе пойти махать причиндалами на улицу - сработает всеобщий закон.
  12. Kirgudu

    Форум: вопросы и предложения

    @aka_sektor, ЛС - это ЛС, не занудствуй. Я бы на месте администрации просто проигнорировал твою жалобу, как и заповедано пунктом 7.2 правил форума. Тебе никто не мешает поместить адресата в игнор, если так уж невтерпёж.
  13. Kirgudu

    Форум: вопросы и предложения

    А не поломалась ли (была отключена) автовыдавалка десятки часом? Зашёл намедни в тему одного когда-то очень популярного мода и чисто случайно обнаружил сначала одного автора, не получившего лычки за выслугу лет, затем второго, третьего и так далее; в сумме их набралось как минимум семь.
  14. Kirgudu

    Скриптование

    @Expropriator, теоретически all.spawn, конечно, может влиять. Например, для тех же заданий типа "kill_stalker" одним из свойств является свойство parent, указывающее на того, кто может выдать задание. Это story_id определённого персонажа, и если ты удалил его из спавна, задание с таким родителем будет полностью пропущено при инициализации, а значит не будет учтено при составлении массива task_id_by_type[type]. Таким образом, получается, чтобы ты не наталкивался на вылет, описанный выше, необходимо выполнение трёх условий: 1. Конфиг misc\rt_manager.ltx должен содержать как минимум одно задание типа "kill_stalker"; 2. All.spawn должен обеспечивать спавн как минимум одного персонажа со story_id, указанным в конфиге в заданиях типа "kill_stalker", причём этот спавн должен происходить до инициализации менеджера; 3. Вызов любого метода менеджера должен происходить только через получение его экземпляра: ogsm_rt_manager.get_rt_manager():method_name(). Конечно, менеджер можно доработать так, чтобы он был универсальным и стойким к разным условиям. Но на момент активной разработки ОГСМ такой задачи просто не возникало, поэтому имеем то, что имеем. И кстати, если ты действительно убрал весь классический спавн, тогда причина именно в этом согласно трём правилам, описанным выше. А значит, решение, предложенное @Zander_driver, скорее всего будет для тебя панацеей. Куда воткнуть такую проверку, объяснять не нужно? Вроде все тут - люди опытные.
  15. Kirgudu

    Скриптование

    @Expropriator, ну, тут уж только тебе ведомо, что ты там со стартом накуролесил. Впрочем, на правильную инициализацию менеджера заданий это влиять всё равно не должно. Там главное, чтобы вызов любого метода менеджера из другого модуля шёл только через получение синглтона инициализированного экземпляра менеджера, например: ogsm_rt_manager.get_rt_manager():register_target(self)
  16. Kirgudu

    Скриптование

    А я тебе не подойду вместо Kirgudu? Не было там никакой привязки к локациям, насколько я помню. К смартам - да, но не в заданиях типа "kill_stalker". Проверь, что ты не почистил ненароком конфиг misc\rt_manager.ltx При первом после загрузки обращении к менеджеру (например, как раз из se_stalker.on_register()) там считывалось содержимое секции list, затем по каждой строке этой секции читались уже свойства заданий и записывались в массив self.task_info. Далее делался перебор этого массива и в зависимости от значения свойства type добавлялось значение в один из массивов task_id_by_type[type]. Пустым он мог оказаться только в том случае, если из конфига не получено ни одного задания нужного типа.
  17. Kirgudu

    Скриптование

    Вопросы Charsi задавать бесполезно - он уже больше года не интересуется Сталкером и сюда не ходит. Лично я для проверки и локального запуска скриптов пользуюсь как раз его разработки плагином к N++: https://yadi.sk/d/UIMIb8_8vZtMD
  18. Kirgudu

    Скриптование

    Да не проверка это, не ищи там глубокого смысла. Цитата вырвана из контекста; речь идёт всего лишь о том, что имея id, можно получить сам объект.
  19. Kirgudu

    Скриптование

    @Norman Eisenherz, news_manager.send_tip(act, table.concat(pk_dump, "\n")) И кстати, это опять изобретение велосипеда повторение уже имеющегося инструмента. В m_netpk есть функция pk:dumpDesc(), как раз предназначенная для вывода всех свойств нет-пакета. Почему бы не использовать её?
  20. Kirgudu

    Скриптование

    @abramcumner, я пробовал сегодня - см. выше. Не сработало. Делал, ессно, как надо: с добавкой в биндере и колбэком.
  21. Kirgudu

    Скриптование

    Вероятно, это действительно так. Я поэкспериментировал по-своему - с разными частями нет-пакета (включая абстрактную), со спавном и без, с выбрасыванием из инвентаря и без, с переключениями онлайн-оффлайн и без - тот же результат. Признаться, я рассчитывал на другое. Судя по всему, классические способы тут не помогут, либо что-то проходит мимо внимания.
  22. Kirgudu

    Скриптование

    local file = io.open() / file:write() / file:close() - для ЧН/ЗП. Для ТЧ я такого способа не знаю. В любом случае сохранение на лету скорее всего не даст автоматического подключения к ресурсам, а сохранение с целью последующего чтения при запуске игры равносильно формированию нужного конфига заранее. Но соглашусь с @Zander_driver. Совершенно непонятны цели данных усилий. Если для самообразования - это похвально, вот только начинать (и продолжать) тогда нужно с того, что страницей раньше написал @dsh: чтения этой и соседних (справочник, общие вопросы) тем от начала и до конца. В противном случае лучше таки обратить своё внимание на доработанные движки или модули Артоса. Ведь они и вправду "из коробки" обеспечат то, что ты пытаешься сделать.
  23. Kirgudu

    Скриптование

    @Zander_driver, не всем можется и, главное, хочется ковыряться в движке. @Norman Eisenherz, функция create_ini_file создаёт объект в памяти, к которому можно применять все методы этого класса, такие как ini:line_count(), ini:r_bool() и др. Но это не значит, что этот объект автоматически подключён в качестве игрового ресурса аналогично инклюдам в system.ltx.
  24. Kirgudu

    Скриптование

    @Norman Eisenherz, Что я сделал? Взял готовый модуль из https://www.amk-team.ru/forum/topic/13216-sborochnyy-ceh/?do=findComment&comment=971137, пробежал глазами скрипт на предмет того, где именно в нет-пакете лежат флаги фонарика согласно его классу - up_props, значит в update части нет-пакета, вспомнил по приложенной инструкции, как именно читать только update часть, и как в результатах она будет называться, накидал базовый скрипт для чтения текущего флага и сравнения его с флагом включения. Естественно, ещё и модуль подключить надо, но на это есть исчерпывающие сведения в посте по вышеприведённой ссылке, как инструкция Артоса, так и дополнения к ней. На всё потребовалось не больше 10 минут. Куда меньше, чем глубокое изучение трёх с половиной килострок кода. Не изобретай велосипед - его уже вылизали со всех сторон за эти годы.
  25. Kirgudu

    Скриптование

    Во! Я ж чувствовал, что есть что-то значительно проще, только не получилось вспомнить. Ну и ладно, зато поупражнялся.
×
×
  • Создать...