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

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

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


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

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

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

 

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

 

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

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

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


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

Ребята, прошу помощи, уже неделю ковыряю - неосилю...

Проблема следующая:

 

Что нужно?

ГГ подходит к ящику (тайнику) и нажимает на него, срабатывает инфо  ui_car_body, как узнать какой ящик открыл ГГ?

Т.е. надо userdata этого конкретного ящика.

Пробовал через bind_physic_object.script -> function generic_physics_binder:use_callback( item, who )

это работает частично, т.к. например на Свалке, ящик возле Беса = gar_simulation_box_2 - не срабатывает (не идёт колбек).

Например для трупов сталков прекрасно работает treasure_manager.script -> function CTreasure:use( npc ) , как только нажимаешь на труп, сразу идёт колбек что это за userdata, надо тоже самое но на ящики.

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

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

Продолжу:

Скрытый текст

Ребята, прошу помощи, уже неделю ковыряю - неосилю...

Проблема следующая:

 

Что нужно?

ГГ подходит к ящику (тайнику) и нажимает на него, срабатывает инфо  ui_car_body, как узнать какой ящик открыл ГГ?

Т.е. надо userdata этого конкретного ящика.

Пробовал через bind_physic_object.script -> function generic_physics_binder:use_callback( item, who )

это работает частично, т.к. например на Свалке, ящик возле Беса = gar_simulation_box_2 - не срабатывает (не идёт колбек).

Например для трупов сталков прекрасно работает treasure_manager.script -> function CTreasure:use( npc ) , как только нажимаешь на труп, сразу идёт колбек что это за userdata, надо тоже самое но на ящики.

 

Что выяснил: 

[bind_physic_object](use_callback): срабатывает только тогда, если ID ящика есть в db.storage, если нету - то нет реакции, вообще никакой. Для примера тестирую на Свалке. Всего 36 рюкзаков, из них в storage только 24, более того, рюкзак который спавнится по заданию Кости на Свалке тоже в storage не добавляется, рюкзак из инвентаря если спавнить - то добавляется.

Вопрос актуален:

как сделать колбек на открытие любого ящика? Т.е. подошёл, нажал на любой ящик, сработала какя-то функция.

 

Написал свой биндер (по аналогии 

[inventory_box]

[m_inventory_box]:inventory_box

[rx_inventory_box]:inventory_box

[kostya_box]

в items_devices.ltx и devices.ltx

 

теперь не работает script_binding = bind_physic_object.init

сделал так:

script_binding = my_binder.init
script_binding = bind_physic_object.init

работает только bind_physic_object.init но он не видит все ящики

 

сделал так:

script_binding = bind_physic_object.init

script_binding = my_binder.init

работает только my_binder.init , он видит все ящики, всё как мне надо, НО, теперь не работает bind_physic_object.init ...

 

Вопрос: как повесить на, например, [inventory_box] и bind_physic_object.init и my_binder.init чтобы оба работали, мой биндер нужен только для определения ящика который юзает ГГ, получается что в конструкции вида:

[inventory_box]

...

script_binding = bind_physic_object.init

script_binding = my_binder.init

 

работает тот что написан последним? Выходит два биндера нельзя вешать?

 

П.С. Получается, если мой биндер видит все ящики, значит ошибка в оригинальном биндере bind_physic_object.script?

Изменено пользователем Баба ЯГА

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

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

А есть ли какая то возможность отследить момент появления ГГ после телепортации на другую локацию. Делаю проводников на движке ОГСР. Хочется прикрутить эффект после перехода на другую локацию.

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

@Stalkersof Как вариант при переходе проводником выдавать поршен "использован проводник", и при спавне актора на локации проверять, включен ли он.

  • Полезно 1

А где зима?

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
2 минуты назад, Balavnik сказал:

при спавне актора на локации проверять

А как отследить спавн актора на локации?

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

@Stalkersof bind_actor.script -> net_spawn. Но этот колбек также вызывается при загрузке сохранения(т.к. по факту происходит спавн актора на уровень, выход в онлайн). Поэтому если хочется заморочиться, то желательно другое решение искать.

  • Спасибо 1

А где зима?

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
3 часа назад, Balavnik сказал:

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

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

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

Здравствуйте! Появился такой вопрос. Можно ли как-нибудь отследить сколько времени висит артефакт на поясе? платформа ЗП

«Если долго мучиться, что-нибудь получится»
Охотник за артефактами|Crow Game Killer
img.php?nick=Pavel2000&sert=2&text=t0

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

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

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

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

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

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

Войти

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

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

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