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

[SoC] Ковыряемся в файлах

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

Вопрос хороший и грамотный на самом деле.

 

delta прилетает извне. Сколько прошло с предыдущего вызова. Для практического применения не очень чтобы пригодно, ибо значения неудобны и весьма неравномерны.

 

watchdog - где-то в другом месте проверяется, и по результату что-то делается. Обычно любой скрипт во время апдейта пишет туда что-то свое, а если все закончил благополучно - 0. Если при проверке оказался не 0 - значит, предыдущий скрипт повис.

Это все нужно для отладки.

 

По ссылке - туда пишется строчка, которую передал скрипт при своей инициализации. Вместо amk.oau_watchdog можно было бы писать _G.watchdog, или завести отдельный пустой скрипт watchdog.script и писать watchdog.my_KeeWl_watchdog - без разницы. Главное, чтобы потом проверять его же.

 

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

 

 

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

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

Ребят , извените за оффтоп, просто незнаю куда писать : Скачал скрипт для показа координат , при команде demo_record , при перемещиние камеры , координаты не меняются , ребят как можно это переделать , чтобы координать показывались не с точки actor , а с точки камеры.

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

 

 

"Еле совместил скрипты Солянки со своим модом."

Легкий оффтоп.

Не спорю, правда, я не скриптер. Скрипты надо учиться писать с легких, с нуля, тогда и самому будет нетрудно написать. А вот убивать на это обучение время - иногда просто жаль.

 

А вот еще вопросик: можно на этот самый рюкзак заспавненный метку на карте повесить? Дома покопаюсь, конечно, думаю, нетрудно это...

Сталкер - наше всё!

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

@AndrewMor, примерно так:

local obj = alife():create(...) --/ твой спавн рюкзака-ящика
level.map_add_object_spot_ser(obj.id, "my_treasure", "%c[255,255,255,255]Мой тайник")
где "my_treasure" - название элемента метки в конфиге меток (в ЧН это gamedata\configs\ui\map_spots.xml, в ТЧ должно быть что-то аналогичное), которое можно заменить на название любой из существующих меток. Но советую добавить свою, чтобы её легко можно было обнаружить на карте. Изменено пользователем Kirgudu
Ссылка на комментарий

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

Буду очень благодарен.

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

Вопрос по логике НПС:

У меня активный чувак с работами:

[walker1]

[walker2]

[walker3]

Допустим, он выполнил [walker1], и пока он ждет инфопорции walker_2_start для переключения в [walker2], я хочу отправить его в [remark].

В таком случае, после выполнения [walker2] уже не получится воспользоваться этой же схемой [remark], пока он ждет [walker3]. Инфопорция walker_2_start в [remark]постоянно будет включать секцию [walker2], так?

Я вижу только возможность создания еще схемы [remark1], или есть еще варианты?

Может я не совсем правильно понимаю работу [remark] и переключение между основными секциями происходит как-то еще?

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

Зарегистрируй и\п walker_3_start, и преключайся из [remark] в [walker3]:

[walker1]
 

[remark]

on_info = {+walker_2_start} walker2
on_info2 = {+walker_3_start} walker3

 

[walker2]

отсюда по какому-то условию возвращаемся в [remark], перед этим дисаблим walker_2_start

[walker3]

Изменено пользователем AndreySol
  • Спасибо 1
Ссылка на комментарий

А конструкция в логике вида:

on_info = {+ info1 or + info2} walker@next - будет работать или непременно нужна функция, которая будет проверять наличие хотя бы одного из инфопоршней?

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

луа-операторы в логике напрямую не прокатывают(хотя могу и не в курсе быть), делай обертку в виде ф-ции. Хотя можно и проще:

on_info = {+ info1} walker@next

on_info2 = {+ info2} walker@next

какой первее будет выдан - тот и переключит логику...

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

 

 

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

Добавлю, по моим наблюдениям модострой уже на протяжении многих лет происходит практически только такими методами. Исключения есть, но редки. Есть на этот счет одна мысль - может быть просто ни у кого нет желания, чтобы что-то происходило иначе?

 

 

Изменено пользователем Zander_driver
  • Согласен 1

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

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

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

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

Что-то запутался в апгрейде данной функции:

npc:set_relation (game_object.friend, db.actor)

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

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

если все они в одном гулаге, то :



function название()
local actor = db.actor
  if actor and actor:alive() then
xr_gulag.setGulagEnemy("имя_гулага", actor)
end
end


если нет, то :



function название()
    local t = {sid_1, ... , sid_N} -- story_id каждого НПС
    local actor = db.actor
    if actor and actor:alive() then
        for i = 1, #t do
            local npc = level_object_by_sid(t[i])
            if npc and npc:alive() then
                npc:set_relation(game_object.enemy, actor)
            end
        end
    end
end

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

Известен ли способ без применения СДК заспавнить (хоть скриптом, хоть через all.spawn) отыгрываемые партиклы огня, точнее, газовой горелки?

amk_particle.script, правда, он с ошибками. Так что смотреть сам принцип. dc

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

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

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

@Ахмед

Сначала инициализируем необходимый звук, как-то так:

local snd_eat = xr_sound.get_safe_sound_object(".................")

Затем в use_collback проверяем, что съели нужный хавчик и проигрываем ранее заготовленный звук:

snd_eat:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)

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

@Ахмед@AndreySol, проще так: В конфиге предмета писать use_sound = ...\...\....ogg. Так и проще, и звук не будет отигрыватся тысячу раз при неоднократном сьедании предмета, а будет глушится старый звук и по новому проигрыватся.

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

 

 

проще так: В конфиге предмета писать use_sound = ...\...\....ogg

попробовал для колбасы:

так - use_sound = "interface\inv_detach_addon.ogg"

и так - use_sound = interface\inv_detach_addon.ogg

в обоих случаях прописанный звук не проигрывается. Чет не так написал ?

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

Как запретить конкретному неписю переодеваться (менять визуал)?

 

1. Найти скрипт, который это делает. Обычно - xrs_armor.

2. Посмотреть, где у него прописаны исключения. Добавить.

Телепаты - в отпуске. dc

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

@AndreySol, Пиши так: use_sound = interface\inv_detach_addon я просто указал формат файла, его писать не надо, а ковычки тем более.

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

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

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

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

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

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

Войти

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

Войти

AMK-Team.ru

×
×
  • Создать...