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

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

Тема для обсуждения скриптов всего и всех в серии игр 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
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/
2 часа назад, Zander_driver сказал(а):

это колбек на инфопорции.

Так точно, согласен не со всеми утверждениями... ага. и енто только ИМХО.:big_boss:

  • Не нравится 1

@Zander_driver 

17 часов назад, Zander_driver сказал(а):

... В оригинале - разве что callback.use_object подойдет. Правда, он на использование предмета, в т.ч. физ.объектов и нпс, трупов. Подойдет ли под ваши задачи - не знаю.

 

Думаю - подойдёт. Но как реализовать? Ума не приложу...

 

Что именно требуется: ГГ берёт в руки по   SHIFT + F   ящик - и в лог выводится сообщение, что ГГ взял в руки ящик, или ГГ берёт в руки труп по   SHIFT + F   - и в лог тоже выводится сообщение, так же когда ГГ выпускает предмет из рук (именно ящик, бочка, труп) - тоже выводится сообщение - что ГГ поставил объект на землю.

 

 

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

@Баба ЯГА я так подозреваю что без ковыряния движка, ни как.

  • Согласен 2

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

2 часа назад, Баба ЯГА сказал(а):

Думаю - подойдёт.

use_object - кэллбэк на использование предмета, как то выпивание, съедание, применение аптечки или антирада. Каким боком это связано с перетаскиванием физобъектов, где, как я понимаю, имеет место аттач объекта к ГГ?

  • Согласен 2
28 минут назад, AndreySol сказал(а):

use_object - кэллбэк на использование предмета, как то выпивание, съедание, применение аптечки или антирада. Каким боком это связано с перетаскиванием физобъектов, где, как я понимаю, имеет место аттач объекта к ГГ?

 

Есть предложения по решению вопроса?

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

@Баба ЯГА Ну если у тебя ящик то это наверно получается тебе bind_physic_object ковырять. Ниже привел use_callback из bind_physic_object и treasure_manager, попробуй их поковырять.

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

-- MARKER: use_callback
function generic_physics_binder:use_callback(obj, who)
    if self.st.active_section then
        xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who)
    end

    self.am:call( "on_ph_obj_use", self.object, who )
end

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

function on_npc_use( obj )
    if obj:alive() then return end
    --
    local sobj = alife():object( obj:id() )
    if not sobj.treasure_processed and not GetShift() then -- Проверка на шифт сделана, чтоб не срабатывало при попытке перетащить труп.
        get_treasure_manager():use( obj )
        --
        give_money( obj )
        --
        sobj.treasure_processed = true
    end
end

P.S данный код из OGSR\OGSE мода.

Изменено пользователем I am Dead
1 час назад, Баба ЯГА сказал(а):

Есть предложения по решению вопроса?

Да как обычно - править движок...

  • Согласен 1

И всё же я надеюсь на помощь зала. Вопрос пока не решён. Ведь каким-то образом реализовано это дело, когда труп перетаскиваешь в комбезе? Значит можно как-то отловить когда ГГ берёт в руки какой-то физ объект?

 

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

13 часов назад, Баба ЯГА сказал(а):

Значит можно как-то отловить когда ГГ берёт в руки какой-то физ объект?

Конечно можно.

Найти это место в движке, и добавить туда свой колбек.

И в посте выше вам это уже сказали.

  • Согласен 1

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

14 часов назад, Баба ЯГА сказал(а):

каким-то образом реализовано это дело, когда труп перетаскиваешь в комбезе?

Что имеется в виду? Где реализовано?

@AndreySol  в соли реализовано. Когда в комбезе то ГГ роняет труп и не может тащить, если снять комбез - то нормально тягает трупы. Значит где-то в скриптах есть коллбэк на взятие ГГ в руки физобъекта. а т.к. труп - это физобъект - то значит можно отловить и то когда ГГ берёт в руки бочку или ящик - но как и где? Вот об этом и спрашиваю.

  • Полезно 1

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

@Баба ЯГА господибожемой. Это не реализовано. Это баг оригинального движка. Ну совсем докатились. 

  • Нравится 1
  • Согласен 3
  • Смешно 2

@dsh так баг привращается в фичу:cool:

  • Согласен 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

3 часа назад, Баба ЯГА сказал(а):

где-то в скриптах есть коллбэк на взятие ГГ в руки физобъекта

Имя скрипта как бы намекает: bind_physic_object.script

Там ф-ия: generic_physics_binder:use_callback

Через неё без проблем отследишь поднятие дроп-ящика, в котором заведомо может  что-нибудь спаунится. А остальное... Не уверен, попробуй ковырнуть init, но думаю, выше упоминали правки движка не без причины.  

Здесь могла быть ваша реклама.

По физ-объектам - понял, спасибо, нет смысла, надо движок ковырять.

 

Есть ещё вопрос, получил через пакет данные по level_changer, там есть:

 

dest_position = userdata

dest_direction = userdata

 

Я пробовал так:  vector(t.dest_direction).x - но оно выдаёт всё по нулям...

пробовал так: t.dest_directiondirection().x - так вообще ошибку выдаёт...

как вместо userdata получить данные?..

 

shapes = table

t.shapes[1]: offset = userdata
t.shapes[1]: shtype = number
t.shapes[1]: v2 = userdata
t.shapes[1]: v3 = userdata
t.shapes[1]: v1 = userdata

 

Так-же там есть shapes - таблица, я её распарсил - но в ней тоже userdata...

 

Как получить данные в этих случаях из userdata?

 

1) хочу посмотреть как там всё устроено на переходах

2) нужно изменить точку перехода и сделать радиус метра два - не больше, пробовал так:

 

t.level_vertex_id = 397480
t.game_vertex_id = 1811
t.shapes = { { ["shtype"] = 0, ["center"] = vector():set( 0, 0, 0 ), ["radius"] = 2 } }

 

но ничего не вышло...

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

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

07.04.2021 в 17:12, dsh сказал(а):

Это баг оригинального движка.

Насколько помню - это недозапись в огф модели актора в костюмах группировок, где таскание трупов\вещей забагованно. В СДК должен быть указательstalker_hero_captures.ltx.

Изменено пользователем gam
  • Полезно 2

@Баба ЯГА Вот некоторые модели исправляющие данный косяк, сделанные правда для себя. По моему к модам Лекс антигаз и Джекман армор. Если пригодиться конечно.

https://disk.yandex.ru/d/_MwdBMiNp9CvBw

 

Возможно ли получить в игре скриптово реальное время компьютера (не игровое время), как в Lua с помощью os.date()  ?

Если да, то можно пример для получения yy:MM:dd hh:mm:ss?  

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

@Баба ЯГА, а чем os.date() не устраивает?

Пример:

local date_str = os.date("%y:%m:%d %H:%M:%S")

 

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

Теги для os.date (PiL3):

 

%a  Сокращенное название дня недели (например, Wed)

%A  Полное название дня недели (например, Wednesday)

%b  Сокращенное название месяца (например, Sep)

%B  Полное название месяца(например, September)

%с  Дата и время(например, 09/16/98 23:48:10)

%d  День месяца (например, 16)[01-31]

%H  Час в 24-часовой системе (например, 23)[00-23]

%I  Час в 12-часовой системе (например, 11)[00-11]

%j  День года (например, 259) 1001-3661

%M  Минуты (например, 48)[00-59]

%m  Месяц (например, 09)[01-12]

%p  "am" или "рm"

%S  Секунды (10)[00-60]

%w  День недели (3)[0-6=Воскресенье-суббота]

%x  Дата (например, 09/16/98)

%X  Время (например, 23:48:10)

%y  Год как две цифры (например, 98)

%Y  Полный год (например, 1998)

%%  Знак %

 

  • Не согласен 1
  • Полезно 1

S.T.A.L.K.E.R. CoP Objects  >200 шт  (upd 21.05.26) - Скачать  (Яндекс-диск)

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

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

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

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

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

Войти

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

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

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