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

phalcor

Проверенные
  • Число публикаций

    179
  • Регистрация

  • Последнее посещение

  • AMKoin

    4,670 [Подарить AMKoin]

Весь контент пользователя phalcor

  1. phalcor

    Скриптование

    В памяти игры время Ctime хранится в виде одного 64-битного ЦЕЛОГО чила, означающего количество миллисекунд, прошедших с 1-01-0001 00:00. У тебя 69 год наводит на мысль о том, что diffsec использует формать 4-х байтового float, где максимум = 2147483647 сек, что как раз и есть 69 лет. Может чем-то поможет.
  2. phalcor

    Скриптование

    Нашёл-таки причину. Кому интересно:
  3. phalcor

    Скриптование

    Приветствую! Непонятный затык какой-то... Заметил, что давно нет респавна убитым монстрам/сталкерам. По времени уже несколько раз должны были сработать респавны. Кордон почти пуст третьи сутки. И если ранее при ручном спавне тестового сталкера он тут же переходил под управление какого-нибудь гулага, то теперь сколько не спавню - они все ходят-бродят кругами, не будучи подхваченные гулагами. Понятно, что мутновато описал проблему, но вдруг кто-то стилкивался с подобным и знает решение? p.s. А где интересно сам механизм захвата заспавненного сталкера под гулаг - в скриптах или же в движке? UPD: такс, нашёл, гулаг объекту назначается в частности в скрипте se_respawn вызовом obj:brain():update(), и далее проверка - нет гулага, объект удаляется. Вот потому у мну и пустыня... Вопрос, что мешает этому brain():update() назначить сталкерам гулаг?!! По условиям тех же гулагов (capacity и т.д.) всё норм.
  4. phalcor

    Скриптование

    В lua_help ничего нет, в искходниках (от версии 2.1) - тоже нет. (под "нет" я подразумеваю "не нашёл"). Потому и вопрошаю про нет-пакеты. Однако же подозреваю, что и это не поможет Авторы не делятся такими священными данными
  5. phalcor

    Скриптование

    Да, понятно. Но у меня обычный двиг. Тут, наверное, только net_packet подойдёт, да и то... знать бы, как?
  6. phalcor

    Скриптование

    Увы... attempt to perform arithmetic on field 'alcohol' (a nil value)
  7. phalcor

    Скриптование

    Приветы! Подскажите, как можно определить опьянение актора? Скриптовой функции, я так понял, нет. Может, как-то через нет-пакет это число добывается? Платформа: ОП 2.2 Добра.
  8. Привет, друзья! Может кто-то из посвящённых в сию тайну сказать, зачем в квесте "Бритва Волка" происходит переспавн Петрухи? Т.е. при приближении к нему он исчезает, и появляется новый, визуально такой же, но уже без бинокля и проданного ему автомата. В чём смысл такой пертурбации? Удачного дня, и спасибо за ответ!
  9. phalcor

    Скриптование

    Самое интересное, что в том же generic_physics_binder:hit_callback(obj, amount, local_direction, who, bone_index) прекрасно работает who:id(), и тогда я сделал там сохранение своей глобальной переменной kto_ubil = who, чтобы потом в death_callback её читать, но тут снова затык: если hit убивает ящик, то нет вызова hit_callback, а сразу - death_callback Ладно, будем искать...
  10. phalcor

    Скриптование

    Доброго дня! Есть оригинальный каллбэк на смерть физических объектов (ящиков и т.п.): function generic_physics_binder:death_callback(victim, who) Хочу идентифицировать, КТО "убил" ящик, но who:id(), who.id, who:section(), who:section_name() и т.д. вызывают вылет - нет такого метода. Подскажите, кто знает, как же можно идентифицировать who?
  11. phalcor

    Скриптование

    У меня от ОП 2.2, там есть, и работает. Не соображу, как именно это провернуть с клиентским объектом? Если можно, поясни в двух словах. p.s. Я пока пытаюсь схитрить - увожу нпц в оффлайн, меняю имя и снова вывожу в онлайн, но что-то не все хотят уходить в оффлайн, при том, что sobj.can_switch_offline = true. Видимо, есть ещё какой-то ограничитель.
  12. phalcor

    Скриптование

    Добрый день. Как у нпц поменять имя? Для серверного объекта способ нашёл: local sobj = alife():object( id ) local pk = m_netpk.get(sobj, 1) local data = pk:get() local name = data.checked_characters --ВОТ ТУТ МЕНЯЕМ data.checked_characters = "Джек Потрошитель" pk:set(data) А как тоже самое сделать для клиентского объекта?
  13. phalcor

    Скриптование

    Всем привет! Есть вроде бы простой вопрос: как снять биндер с объекта? Чуть подробнее: сделал свой биндер для объекта, запускаю: function init(obj) local new_binder = bolt_binder(obj) obj:bind_object(new_binder) end При нужных мне обстоятельствах я хочу "отменить" биндер для данного конкретного объекта, делаю это так: function bolt_binder:net_spawn(data) --тут разная обработка объекта self.object:bind_object(nil) --удаляем биндер --ВСЁ ЧТО ДАЛЕЕ, УЖЕ НЕ ИСПОЛНЯЕТСЯ ПО ПРИЧИНЕ АННИГИЛЯЦИИ :) if not object_binder.net_spawn(self, data) then return false end return true end Но есть основания полагать, что снимать биндер с объекта так: self.object:bind_object(nil) - это не корректно. Как же правильно?
  14. Вроде подразобрался. Координаты стрелочки указываются в gamedata\config\ui\map_spots.xml, в тегах quest_pointer и/или combat_pointer, там же указывается текстура, это ui\ui_hud. Вот там то, в gamedata\skins_ui\huds\stalker_shoc\textures\ui\ui_hud.dds я сам и дорисовал эту стрелочку. Вот мой файл: https://drive.google.com/file/d/11aviJ1xZlBgaIJQS25oaVtB3LS6Bj6Y4/view?usp=sharing Найти бы теперь способ вернуть выбор активного задания...
  15. Готовой универсальной правки нет. Нужно самому править файлы того худа, который используешь. Я использую stalker_shoc. Там по пути gamedata\skins_ui\huds\stalker_shoc\config\ui правим zone_map_16.xml, для появления расстояния меняем значения в строке dist_text x="2000" y="3" width="150" height="20"> - обычно завышен x, из-за чего цифр и не видно. Для появления стрелки там же, в maingame_16.xml правим значения в строке <static_counter x="40" y="50" width="18" height="17" alignment="c">
  16. Я себе вернул стрелку-указатель и расстояние до активного задания (зелёный и красный прямоугольники), вот для этого-то мне и нужна возможность менять активное задание, как в 2.1. Варвары блн.
  17. Привет, люди! Вопрос касается ПДА, вкладка "ЗАДАНИЯ". В ОП 2.1 было так - щёлкаем мишень - она зеленеет (1), дважды щёлкаем - задание становится активным - рядом появляется красная мишень (2), а метка на карте берётся в круг (3), вот так: Теперь (в ОП 2.2) пункты (2) и (3) отсутствуют, а (1) - зелёная мишень - можно выбрать ВСЕ, что есть, и все будут зелёными одновременно. Вопрос - это только у меня? Если у всех, то это баг или же умысел? Как можно вернуть норму?
  18. phalcor

    Universal ACDC и другие perl-скрипты

    Добрый день! Кто-то уже пробовал распаковать all.spawn от ОП 2.2? Для ОП 2.1 я использовал это, причём, если распаковать-запаковать, то ролученный all.spawn не отличался от оригинального, что является критерием правильной работы утилиты с ним. С ОП 2.2 выдаёт ошибки и не распаковывает.
  19. phalcor

    Скриптование

    Доброго дня! Бьюсь уже долго со схемой добивания раненых в попытке её отключить полностью, но безуспешно. (Платформа ОП, rx_kill_wounded.script). Может есть какой-то способ сделать так, чтобы раненые враги полностью игнорировались?
  20. phalcor

    Скриптование

    Посмотрел, совсем не соображу. Опиши, пожалуйста, хотя бы слегка подробнее, как это должно выглядеть.
  21. phalcor

    Скриптование

    Добрый день! Подскажите пожалуйста, есть ли возможность задать в схеме поведения произвольное условие в add_precondition: например, так (желаемое выделено синим): action:add_precondition(world_property(xr_evaluators_id.sidor_wounded_base,false)) -- не ранен action:add_precondition(_G.value_A == true) -- проверка значения глобальной переменной p.s. Нужно для того, чтобы отключать/включать схему поведения по горячей клавише.
  22. phalcor

    Скриптование

    Ребята, а есть ли возможность из скрипта узнать расстояние до цели в направлении взгляда? Направление взгляда ГГ - это легко: db.actor:direction() или screen.cam_dir, а вот расстояние до точки, куда этот взгляд "упирается"?
  23. phalcor

    Скриптование

    Привет, люди! Подскажите, где прописывается поведение нпц при ранении, а именно хочу, чтобы Зомбированные роняли оружие, как все остальные НПЦ, а не корячились с ним в руках.
  24. phalcor

    Скриптование

    @dsh это из движка ОП 2.1. Но суть не в том, стандартный iterate ведёт себя так же (без выхода по return!): local i=0 db.actor:iterate_inventory( function(dummy,item) i=i+1 if item then return end end,db.actor) log("iter2="..i) @Zander_driver Можно конечно, но прогонка цикла, когда он уже не нужен, отнимает время (пусть и малое). Я-то думал, есть волшебный break! Ну нет, так нет :-)
  25. phalcor

    Скриптование

    Доброго дня! Скажите, а досрочный выход из цикла iterate предусмотрен? Return явно не работает, ибо в log я получаю iter=50. local i=0 db.actor:iterate_inventory_simple(function(item) i=i+1 if item then return end end) log("iter="..i)

AMK-Team.ru

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