Graff46 598 Опубликовано 25 Марта 2018 Поделиться Опубликовано 25 Марта 2018 (изменено) 2 часа назад, Fenrir02 сказал: Не совсем понял что это Хранилище данных, данные в псторе сохраняются в сейвах. В популярных скриптовых фрэймворках (amk.script и тд.) есть свои функции записи\чтения пстора, в ТЧ есть такие ф-ции в скрипте xr_logic.scripts Скрытый текст function pstor_store(obj, varname, val) local npc_id = obj:id() if db.storage[npc_id].pstor == nil then db.storage[npc_id].pstor = {} end local tv = type(val) if not pstor_is_registered_type(tv) then abort("xr_logic: pstor_store: not registered type '%s' encountered", tv) return end db.storage[npc_id].pstor[varname] = val return val end function pstor_retrieve(obj, varname, defval) local npc_id = obj:id() if db.storage[npc_id].pstor ~= nil then local val = db.storage[npc_id].pstor[varname] if val ~= nil then return val end end if defval ~= nil then return defval end return nil --' abort("xr_logic: pstor_retrieve: variable '%s' does not exist", varname) end Рекомендую в качестве объекта использовать ГГ. Изменено 25 Марта 2018 пользователем Graff46 Ссылка на комментарий
Fenrir02 199 Опубликовано 25 Марта 2018 Поделиться Опубликовано 25 Марта 2018 33 минуты назад, Graff46 сказал: Хранилище данных А возможно ли при этом ещё и запоминать состояние аккумулятора (condition), чтобы прямо из инвентаря видеть сколько осталось зарядки? Важнейшая задача цивилизации - научить человека мыслить. Ссылка на комментарий
Kirgudu 1 217 Опубликовано 26 Марта 2018 Поделиться Опубликовано 26 Марта 2018 15 часов назад, Graff46 сказал: Рекомендую в качестве объекта использовать ГГ Не рекомендую в качестве объекта бездумно использовать ГГ. Любой пстор пишется в net-пакет того объекта, к которому пстор относится. А net-пакет имеет, как мы знаем, ограниченный размер, при превышении которого можем запросто получить битое сохранение. Скриптёр по незнанию, неопытности или забывчивости здесь что-то сохранит в пстор ГГ, там запишет, ещё где-то - и опаньки! 15 часов назад, Fenrir02 сказал: ещё и запоминать состояние аккумулятора Почему нет? Записать и прочесть можно больше, чем одну переменную. Инструмент Ссылка на комментарий
Graff46 598 Опубликовано 26 Марта 2018 Поделиться Опубликовано 26 Марта 2018 2 часа назад, Kirgudu сказал: А net-пакет имеет, как мы знаем, ограниченный размер Когда то тут писали о том, что пстор ГГ не имеет ограничения... Если это не так, то есть скрипт для пстора, не помню автора, в Сборочном цехе должен быть. Ссылка на комментарий
vi rus 0 Опубликовано 26 Марта 2018 Поделиться Опубликовано 26 Марта 2018 Всем доброго времени суток! Есть скрипт критического ранения ГГ. Задумка вывести в лог файл, два лога при ранении ГГ. Первый лог "AAAAAAAAA" второй "BBBBBBBBB". Допустим лог "AAAAAAAAA" привязан к покраснению экрана , а лог "BBBBBBBBB" привязан к звуку. Возможно ли воткнуть таймер на вывод второго лога после вывода первого? Скрытый текст function printf(fmt,...) local con = get_console() con:execute(string.gsub(string.format(fmt,...), " ", "_")) con:execute("flush") -- log(string.format(fmt,...)) end lite_treshold = 0.001 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб экран окрасился в красный crit_treshold = 0.001 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб ГГ начало шатать drop_item_on_crit_prob = 0.001 -- вероятность того что ГГ выронит оружие effector_power_coeff = 0.007 prev_health = -1 chk_h_t = 0 function wounded_pp_update() if (chk_h_t or 0) < time_global() then chk_h_t = time_global()+1000 if prev_health > (db.actor.health + lite_treshold) then level.add_pp_effector("fire_hit.ppe", 2011, false) local effector_power = (prev_health - db.actor.health)*100*effector_power_coeff level.set_pp_effector_factor(2011, effector_power) printf("AAAAAAAAA") if prev_health > db.actor.health + crit_treshold then printf("BBBBBBBBB") local snd_obj = xr_sound.get_safe_sound_object([[actor\pain_3]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) if math.random() < drop_item_on_crit_prob then local active_item = db.actor:active_item() if active_item and active_item:section() ~= "bolt" and active_item:section()~= "wpn_knife" then db.actor:drop_item(active_item) end end end end prev_health = db.actor.health end end Ссылка на комментарий
BFG 7 582 Опубликовано 27 Марта 2018 Поделиться Опубликовано 27 Марта 2018 Приветствую. Вопрос такой : возможно ли скриптом воспроизвести звук из определённой точки локации со стандартными координатами (x,y,z),lv,gv Спасибо. "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Graff46 598 Опубликовано 27 Марта 2018 Поделиться Опубликовано 27 Марта 2018 57 минут назад, BFG сказал: возможно ли скриптом воспроизвести звук из определённой точки локации https://xray-engine.org/index.php?title=Класс_sound_object#play_at_pos Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 27 Марта 2018 Поделиться Опубликовано 27 Марта 2018 (изменено) Господа, подскажите пожалуйста по поводу таймера. Сделал простенький таймер, корни которого тянутся из bind_stalker ( ф-ция: actor_binder:update(delta)). По истечению таймера вызывается функция. Простенький таймер исправно работает, но отчет начинается всегда только с загрузки сейва, или загрузки локации. А мне нужно, чтобы отчет начинался от предыдущего вызова функции. То есть что я имею в виду (объясню пошагово): Скрытый текст 1) Загрузились, начался таймер (пусть будет 10 игровых минут). По истечению таймера (условно 10 игровых минут) вызвалась функция. 2) Далее в игре проходит 8 минут, я сохраняюсь и перезагружаю сейв (или вообще перезапускаю игру). 3) После загрузки сейва нужно чтобы таймер продолжал с 8-ой минуты отчет и на 10-ой снова вызвал функцию Подскажите, в какую сторону копать? Не подобный ли таймер реализован АМК? Имею в виду динамические новости. Там вроде именно так они работают... Изменено 27 Марта 2018 пользователем _Sk8_AsTeR_ Ссылка на комментарий
_Val_ 2 225 Опубликовано 27 Марта 2018 Поделиться Опубликовано 27 Марта 2018 Ыыы..И тут Петрович радостно побежал писать скрипт для своей задумки)) Ссылка на комментарий
BFG 7 582 Опубликовано 27 Марта 2018 Поделиться Опубликовано 27 Марта 2018 @_Val_ Угу. Уже несусь. Прям ветер задувает ((( =================================== @Graff46 Я не скриптер ни разу. И никогда им не стану. Мне б хоть мод с куском кода оттуда, тогда ещё ладно. Но по каким -то гипотетическим описаниям функций - это увы. Из прочитанного я не понял вообще ничего. Т.е. абсолютно. "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Kirgudu 1 217 Опубликовано 28 Марта 2018 Поделиться Опубликовано 28 Марта 2018 @BFG, Петрович, если правильно помню, звук можно запустить с привязкой к актору, но по нужным тебе координатам - от них он и будет звучать. Пример: local snd = sound_object([[helicopter\death_1]]) snd:play_at_pos(db.actor, vector():set(x, y, z)) Если звук планируется запускать много раз, но не нужно, чтобы он наслаивался друг на друга, кешируй его в переменной и проверяй перед повторным запуском: if not snd:playing() then ... end 1 Инструмент Ссылка на комментарий
Space.Marine 466 Опубликовано 28 Марта 2018 Поделиться Опубликовано 28 Марта 2018 13 часов назад, BFG сказал: Мне б хоть мод с куском кода Atmosfear - surge_manager.script - там функция проигрывания звука по координатам... 1 1 Ссылка на комментарий
Fenrir02 199 Опубликовано 28 Марта 2018 Поделиться Опубликовано 28 Марта 2018 И снова здравствуйте! Подскажите, можно ли реализовать запрет на обыск трупов\рюкзаков\ящиков, когда у ГГ заняты руки? В NLC 7 есть такая фишка. P.S.: условие "занятых рук" задать могу - if weapon_hide == false then А дальше... Заранее спасибо. 1 Важнейшая задача цивилизации - научить человека мыслить. Ссылка на комментарий
Metro_Rus 75 Опубликовано 1 Апреля 2018 Поделиться Опубликовано 1 Апреля 2018 Привет народ! Кто-нибудь знает какая функция в скриптах проигрывает звук смерти НПС(как в ТЧ или в ЧН... Типа: "Ай мля...", "Ты что?!", "Мамаа...") или это в движке? "Люди — животные, не имеющие ни страха, ни уважения, ни сочувствия. Лишь только блеск выгоды в глазах" © Алексей Шевцов Скрытый текст OC: Windows 10 Home, Видеокарта: NVIDIA GeForce GTX 1050 TI 4ГБ, Процессор: Intel Core i3 7100 3900 МГц 2 ядра, RAM(ОЗУ): 8ГБ DDR4, ROM(ПЗУ): 1ТБ Ссылка на комментарий
Graff46 598 Опубликовано 2 Апреля 2018 Поделиться Опубликовано 2 Апреля 2018 8 часов назад, Metro_Rus сказал: какая функция Это движком вызывается. Можно переопределить звуки, а можно написать функцию которая будет звуки воспроизводить Ссылка на комментарий
Wlad777 24 Опубликовано 2 Апреля 2018 Поделиться Опубликовано 2 Апреля 2018 Здравствуйте, камрады! Появилась одна задумка у меня, не знаю как подступиться к реализации. Существует ли способ заставить НПС стрелять в актора, не делая его им врагом? --------------------------------- www.amk-zone.de Ссылка на комментарий
dsh 3 824 Опубликовано 2 Апреля 2018 Поделиться Опубликовано 2 Апреля 2018 @Wlad777 да вроде прямо через логику можно. Не помню точно, в схеме camper если поставить anim = threat_fire, как раз должен стрелять. Можно и совсем скриптово. Через set_sight() устанавливаешь направление взгляда, через set_item() устанавливаешь для оружия режим стрельбы object.fire1 и параметры стрельбы. Это если грубо, в общих чертах. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Graff46 598 Опубликовано 5 Апреля 2018 Поделиться Опубликовано 5 Апреля 2018 (изменено) Мне нужно, чтобы у некоторых НПС после смерти был пустой инвентарь. Я создал для них новую родительскую секцию (вместо stalker из m_stalker.ltx), переопределил script_binding на свой аналог xr_motivator.scripts, в нём я отключил спавн "посмертного лута", но при смерти у НПС остаются некоторые вещи (ПДА, патроны и тд...)... Как мне лучше удалять объекты из мёртвых НПС? Крутить циклы не хотелось бы... Изменено 5 Апреля 2018 пользователем Graff46 Ссылка на комментарий
Painter 3 399 Опубликовано 6 Апреля 2018 Поделиться Опубликовано 6 Апреля 2018 @Graff46 платформа «Зов Припяти»? В custom_data персонажа пропиши секцию: [dont_spawn_loot] 1 Портфолио Ссылка на комментарий
Graff46 598 Опубликовано 6 Апреля 2018 Поделиться Опубликовано 6 Апреля 2018 8 часов назад, Jurok сказал: платформа «Зов Припяти»? ТЧ Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти