Скриптование - Страница 554 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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

Тема для обсуждения скриптов всего и всех в серии игр 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/
7 минут назад, Zander_driver сказал(а):

игровой объект

Да, за основу взята секция обычной вороны, "m_crow".
И тех ворон много, около 150 штук, я вот и пытаюсь сделать проверку на расстояние между ГГ и ближайшим вороном этим.
 

Только что, DibokDibokin сказал(а):

сделать проверку на расстояние между ГГ и ближайшим вороном этим.

Если правильно настроить звуки (настроить дальность слышимости), и воспроизводить из координат ворона, то проверку на расстояние будет делать сам движок, автоматически...

Я просто не понимаю, зачем делать костыль, дублируя то, что уже и так работает?

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

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

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

7 минут назад, Zander_driver сказал(а):

воспроизводить из координат ворона

В этом есть смысл. Просто у меня есть звуки трёх типов, far, medium и close. Они разные по звучанию и по громкости.
Тип я хотел чтобы сначала играли с типом far (среднее расстояние около 100-150 метров), потом medium(50-75 метров), а за ним close (около 25 метров). А дальше наоборот, после  close воспроизводятся тип medium и far.

 

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

Как отловить и вывести в лог момент, когда ГГ взял в руки ящик? Есть ли такие колбэки?

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

@gam это колбек на инфопорции. А не на взятие физ.объектов.

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

Есть ли такие колбэки?

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

  • Нравится 1
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

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

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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) На базе модифицированного движка OGSR Engine.

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

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

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

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

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

  • Полезно 1

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

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

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

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

  • Согласен 1

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

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

UriZzz.gif

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

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

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

Там ф-ия: generic_physics_binder:use_callback

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

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

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

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

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

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

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

Войти

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

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

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