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

Рекомендуемые сообщения

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

  Информация (Показать)

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

  Читать рекомендуется. (Показать)

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

Daniar299, вся "враждебность" заключается в группировке, спавни непися как всегда, только с группировкой нужной.

 

NaslednikTutti, легче через all.spawn параметр health

Чем же распаковка, правка и обратная компиляция лешче багальной фушкции установки хдоровья актору в нужное (раненое) значение?

И тем более, подобное не заставит актора валяться и/или просить аптечку. --/Artos

Изменено пользователем Artos
Ссылка на комментарий

Вампир35, через health в all.spawn я пробовал)) поставил health = 0.1, при старте игры у гг просто меньше здоровья.

А мне нужно так, чтобы ГГ при старте игры именно лежал на полу как раненный нпс.

 

Править следует два параметра: health и upd:health ... важен имменно второй. --/Artos

 

Добавлено через 29 мин.:

Даже просто сделать так, чтобы при старте игры, такая скриптовая сцена (или как она там называется=)), ГГ лежит на полу без сознания и потом типо очнулся и встает... Как это реализовать на ЗП. Подскажите пожалуйста.

Есть же такое в ТЧ, когда ГГ теряет сознание и падает..потом ролик.. а после он очнулся и встает. Только это нужно на ЗП.

Изменено пользователем Artos

Не соответствует правилам.

Ссылка на комментарий

NaslednikTutti, ну так что мешает сделать такое на ЗП? При старте новой игры запускаешь кат-сцену

  Цитата
ГГ лежит на полу без сознания и потом типо очнулся и встает
.

Делается через "sr_cutscene". Подробнее читай тут

  Пример (Показать)
Ссылка на комментарий

Подскажите, какое максимальное целое бесзнаковое число можно хранить в числовой переменной для ТЧ на 32-bit ОС ?

 

Понятиям "переменная" не применимо - "числовая", что присвоил - тому и соответствует.

Понятие "хранить" - очень растяжимо, формулируй вопрс(ы) более точно и однозначно.

Применительно к сохранениям значения переменных в сэйвы игры - существуют методы r_u64 и w_u64, которые могут читать/писать в нет-пакеты соответственно 2х4 байта для числа, однако ими никто не пользуется и применяют максимально r_u32 и w_u32, т.е. 4-х байтовые. Нужно больше - запоминай чвстями. --/Artos

Изменено пользователем Artos
Ссылка на комментарий

Вроде-бы - 2^23, не точно, в "Справочнике функций и классов..." это обсуждалось, давно.

Изменено пользователем 7.9

всё легко

Ссылка на комментарий
  код (Показать)
Ссылка на комментарий
  Есть код добавления статика (Показать)
Ссылка на комментарий

AutoGnom, для поворота текстуры статика его необходимо создавать, используя InitStatic.

В конфиге статика указать параметр heading="1". Поворачивается статик с помощью метода SetHeading.

Всё это было описано много раз.Не ленись использовать поиск.

Изменено пользователем Charsi
Ссылка на комментарий
  Charsi писал(а):
В конфиге статика указать параметр heading="1".

Это динамический статик, я не прописываю ему никакой конфы в ui_custom_msgs.xml

Ссылка на комментарий

Занялся логикой, схемами поведения и т.п. Возник вопрос про условия экшена. Например есть строки

action:add_precondition        (world_property(stalker_ids.property_alive, true))
action:add_precondition        (world_property(stalker_ids.property_enemy,    false))
action:add_precondition        (world_property(stalker_ids.property_danger,false))
action:add_precondition        (world_property(stalker_ids.property_anomaly,false))

Сами условия более менее понятны, но как они проверяются? Но даже если это списать на проверку в движке - константы из класса stalker_ids, то встает вопрос про "самодельные" константы:

function addCommonPrecondition(action)
    --action:add_precondition (world_property(xr_evaluators_id.reaction,false))
    action:add_precondition (world_property(xr_evaluators_id.stohe_meet_base + 1,false))
    action:add_precondition (world_property(xr_evaluators_id.sidor_wounded_base + 0,  false))
    action:add_precondition (world_property(xr_evaluators_id.chugai_heli_hunter_base, false))
    action:add_precondition (world_property(xr_evaluators_id.abuse_base, false))
end

Откуда такие смещения в 1, 0(?), в других скриптах бывает 2 и т.д. Я нигде не нашел проверки на эти константы, только использование в конструкторе world_property. Так как это все работает? Что за класс такой world_property?

PS: а кто нибудь описывал, какие условия проверяются для каждой константы из класса stalker_ids?

PPS: ТЧ 1.0004 если это важно.

Изменено пользователем Desertir

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий

Desertir

1. По world_property - посмотри хотя бы азбуку (lua_help.script). В кратце там можно разобраться что-к-чему ...

2. Советую вначале ознакомиться с классами stalker_ids, planner_action и action_planner.

Имеютс встроенные в движек 'property' и 'action', имеются скриптовые, которые добавлены в прописаны в xr_evaluators_id.script и xr_actions_id.script. Можно и "ручками" назначить и использовать.

Суть: Кажому 'property' (условию) и 'action' (действию), сопоставлена некая числовая констатна (эксклюзивная), и именно по этим числам движек и скрипты оперируют в своих действиях, нахоодя по этим константам нужный класс эвалуатора или экшена.

Нередко в схемах имеется не одно условие и/или не одно действие - вот и регистрируется несколько, взяв за базу основное значение.

Например, в state_mgr.script pbhtubcnhbhjdfyj одна константа xr_evaluators_id.state_mgr, а все остальные вычисляются именно по смещению +1, +2, ...

Т.о. смещение обозначает, какое берется из значений, зарезервирвованных для данной схемы.

  Цитата
Я нигде не нашел проверки на эти константы, только использование в конструкторе world_property

А world_property - это и есть проверка "этих констант" ...

Постарайся читать и понимать написанное, например приведенная тобою строка:

action:add_precondition (world_property(xr_evaluators_id.stohe_meet_base + 1,false))

- означает, что некоему действию схемы назначается проверка условия из схемы 'meet'. Если заглянуть в эту схему, то можно видеть, что значению xr_evaluators_id.stohe_meet_base + 1 сопоставлен эвалуатор 'evaluator_contact' этой схемы. Вот и будет активизация некоего твоего действия зависеть от проверки этого эвалуатора, т.е. если эвалуатор вернет 'false' - простым языком: "если непись не вступила в контакт/разговор с актором".

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Напишу тут.

  Тект (Показать)

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий
  Скрипт худа (Показать)
Изменено пользователем Artos
Ссылка на комментарий

AutoGnom, создавая об'екты оконных классов в некоторых ситуациях следует их отключать/удалять "ручками", когда в них отпала надобность.

Используй коллбэк на завершение игры и/или перехода на др.локацию и удаляй созданные об'екты.

И/или, взгляни, например в _g.start_game_callback() - наверное не зря разработчики зачищают task_manager.clear_task_manager() и прочее.

 

Добавлено через 26 мин.:

Возвращаяс (по просьбе Kirgudu) к пропущенным прошлым вопросам:

Вопрос о пропаже 'tktvtynf универсального хранилища:

Непросто ответить в отрыве от применяемого контекста конкретного мода, тем более приведены логи только по созданию и чтению элементов хранилища. Честно говоря, меня несколько удивляет об'ем записи (6х8kB) и не является ли факт "пропажи" сбоем при записи некорректных данных.

Если такая ситуация возникает (с чем еще ни разу не сталкивался), то следует вывести в лог и строки собственно функции записи в создаваемые элементы, их очистки/удаления элементов хранилица, и их спавна при загрузке сэйва и анализировать.

И уточни версию скриптов универсального хранилища, т.к. вполне может быть что используешь устаревшую.

 

На вопрос о прекращении табличной сортировки штатным методом, могу только сказать, что если в скриптах этот метод не затрагивается (а в m_helpers.script этого как раз нет), то причины изменения функционирования следует искать в ином месте. У меня и у других метод table.sort работает вполне корректно.

Возможно используешь "странные таблицы", менял/добавлял динамические библиотеки (движек) или используешь какой-то лаунчер для запуска игры ...

 

Добавлено через 22 мин.:

Desertir

Кратко: Почитай материалы по ООП, т.к. начинаешь оперировать не линейным кодом, а об'ектами. По идам ты в менеджер добавляешь об'екты классов схем и соответственно отсутствие какого-либо добавляемого об'ект спровоцирует вылет. Не зря в таких случаях предусмотрено добавление заглушки property_evaluator_const(false).

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

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий
  Artos писал(а):
Непросто ответить в отрыве от применяемого контекста конкретного мода, тем более приведены логи только по созданию и чтению элементов хранилища. Честно говоря, меня несколько удивляет об'ем записи (6х8kB) и не является ли факт "пропажи" сбоем при записи некорректных данных.

Даже не знаю, как показать контекст. Вот архив с модулями, в которые я внедрил хранилище (все файлы, которые к нему относятся)

https://dl.dropbox.com/u/56394435/HWM/HWM_plus_store.7z

Данные в хранилище пишутся в модулях ogsm_notepad.script, ogsm_rare_items_manager и ogsm_rt_manager, остальное - часть комплекта хранилища или его подключение. Но в отрыве от мода запустить их вряд ли получится, если только код посмотреть. Могу архивнуть и выложить мод целиком.

Логи я привёл только как иллюстрацию пропажи объекта, а не для показа конкретной ошибки. Ошибки-то я как раз и не обнаружил, о чём ниже.

Что же касается объёма записи, то ничего удивительного тут нет. Он, кстати, даже больше - 6x16kB, - ведь речь идёт о моде для CS. Просто в хранилище должны были сохраняться изменяемые данные статей экспериментального КПК - дата создания и изменения, статус, всяческие примечания, заметки игрока. Особенно заметки игрока, уж очень их игроки просили. Пока пришлось отказаться.

 

  Artos писал(а):
Если такая ситуация возникает (с чем еще ни разу не сталкивался), то следует вывести в лог и строки собственно функции записи в создаваемые элементы, их очистки/удаления элементов хранилица, и их спавна при загрузке сэйва и анализировать.

Это было первое, что я сделал. Поставил вывод в лог во всех возможных закоулках как в se_stor и m_helpers, так и в bind_stalker, а также в модулях, где использовал хранилище. Всё чисто, никаких ошибок, некорректных данных нет (я специально оптимизировал сохраняемые таблицы так, чтобы в них были только простые типы данных или, максимум, вложенные таблицы с простыми типами собственных данных). Потом, при сужении области поиска, как раз и обнаружил, что пропадает custom объект вместе со своим tail пакетом, причём именно при чтении, а при записи по всем фронтам вроде бы порядок...

 

  Artos писал(а):
И уточни версию скриптов универсального хранилища, т.к. вполне может быть что используешь устаревшую.

Комплект хранилища брал отсюда: http://www.amk-team.ru/forum/index.php?sho...st&p=695329

Внедрял в мод с небольшой модификацией, описанной здесь (в конце поста): http://www.amk-team.ru/forum/index.php?s=&...st&p=707932

 

  Artos писал(а):
На вопрос о прекращении табличной сортировки штатным методом, могу только сказать, что если в скриптах этот метод не затрагивается (а в m_helpers.script этого как раз нет), то причины изменения функционирования следует искать в ином месте. У меня и у других метод table.sort работает вполне корректно.

Возможно используешь "странные таблицы", менял/добавлял динамические библиотеки (движек) или используешь какой-то лаунчер для запуска игры ...

В скриптах метод не затрагивается, расширений движка не делалось, лаунчер не используется, но штатный метод больше не работает. Впрочем, вопрос этот больше риторический, так как написанная мной функция прекрасно взяла на себя обязанности штатного метода. Может, кому-нибудь она тоже пригодится.

А что в Lua подразумевается под "странными таблицами"? Вложенные таблицы, индексы, отличные от последовательной нумерации, метатаблицы, что-то ещё?

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

Ссылка на комментарий

Kirgudu, тоже сортировка сломалась (ЗП). Правда использую xray-extension. Если не сложно, выложи самописную функцию, чтобы мне велосипед не изобретать. А вот код, где сортировка не работает:

  код (Показать)
Ссылка на комментарий

Shredder, да-да, точно такая сортировка, по одному из полей значений, и у меня перестала работать, но при этом без понятных (мне) внешних причин.

В изначальном посте, где я про сортировку спрашивал, всё есть. И описание, и сама функция (с доп. функцией поддержки), и примеры использования.

Вот здесь: http://www.amk-team.ru/forum/index.php?s=&...st&p=707932

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...