Malandrinus 615 Опубликовано 9 Февраля 2010 При быстром сохранении вылетает без лога. Раньше такого не было. Из-за чего это может быть? Только всё-таки при сохранении или при загрузке из быстрой сохранёнки? Если при загрузке, то ответ один: это из-за быстрого сохранения. Не пользуйся им, забудь, что такая возможность существует. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 9 Февраля 2010 А можно ли сделать чтоб ГГ плавал? Может меня подводит память, но вроде как в ЧН был момент, когда ГГ нужно было поплавать. Реализовать это в ТЧ ... хм. там есть вроде как вырезанная аномалия с убранной гравитацией. Если она в принципе работает, то теоретически можно попытаться это сделать. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 10 Февраля 2010 (изменено) Ой подвооодит....Нету такого во всей серии. Нету ли у кого сейва на чистую игру ЧН в Лиманске? Проверю то место. ага, и плавать, как в денди - прыжками по воде)))) Ну просто ГГ при заходе в рестриктор аномалии (в воду) терял бы вес и "плавал". Вообще, в ЗП (а может ещё и в ЧН) есть возможность скриптом отключить гравитацию с помощью класса physics_world. Можно управлять весом ГГ более тонко, но к сожалению это имеет глобальный эффект. А вообще впечатления забавные, полетать можно... Изменено 10 Февраля 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 12 Февраля 2010 Если кто помнит, на локации с ЧАЭС был момент, когда ГГ мотается по телепортам и его заносит к Сидору. Знает кто, как это реализовано? Это движковая фича или скриптовая? Не мог ведь актор перенестись на другую локацию, для этого загрузка нужна. Или таки переносился? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 12 Февраля 2010 (изменено) Но губами то шевелит, я помню. Ты тоже думаешь, что это смоделенный кусок того же уровня? Я попытался в all.spawn поискать, но тоже не нашёл. Моя мысль была, что это должно проявляться где-то в скриптах. Дополнение: Нашел я Сидора. Значит так. Телепорт отправляет ГГ на точку пути с именем "aes2_teleport_walk_exit_trader". Там в свою очередь стоит рестриктор. Имя его "aes2_space_restrictor_trader", координаты: -247.054550170898,-18.7832088470459,-134.401412963867 При попадании в него запускается звук и отыгрывается анимация у физического объекта с визуалом Сидора. Объект имеет имя "aes2_physic_object_0002". Секция "physic_object". Координаты: -244.721908569336,-18.7780876159668,-133.974792480469 story_id = 1118 Запуск анимации выполняется функцией xr_effects.set_sidorovich_animation Изменено 13 Февраля 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 19 Февраля 2010 Большое спасибо! Люблю, когда меня игнорируют! Не понятно. Это насчёт звуков? Почему нельзя извлечь их из игровых архивов? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 23 Февраля 2010 Продолжаю тему про фантомов. Вопрос: как, собственно, добавить их на локацию - заспавнить скриптом как обычного монстра или придется создавать зону как на радаре? level.spawn_phantom(vector) создаёт случайного фантомного монстра в указанной позиции. Монстр бежит к ГГ и добежав, исчезает. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 25 Февраля 2010 (изменено) Green Stalker, Gun12, Darien, вы хоть понимаете, что апдейт актора вызывается 25 раз в секунду?! Как можно ставить туда действие, которое за игру сработает один раз? Изменено 25 Февраля 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 25 Февраля 2010 Gonarh, не может =) Период апдейта от 40 мс до 1 с. Это зависит от растояния. Чем дальше от актора, тем реже. Поскольку актор сам от себя близко, то его апдейт вызывается чаще всего, а именно с периодом 40 мс. Могут быть задержки в том числе и от слабого компа, но чаще не будет. Если надо чаще, то есть коллбек fastcall. Но там тоже частота не выше определённой. Разве что ты знаешь, где можно подкрутить частоту апдейтов. Я вполне допускаю, что это возможно. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 26 Февраля 2010 Спустя год когда мод был почти готов, я наткнулся на очень интересную статью Что за статья? Не подскажете одиночное выполнение скрипта. Скрипт сделан через биндер. TREWKO, можно так : flag = true function ***() if flag then ... flag = false end end Вот как раз после таких примеров и начинают все пихать всё в апдейт. Можно подумать, что в биндере нет других методов. Для начала, сам вопрос звучит странно. Что вообще значит "сделан через биндер"? Да ещё при этом требуется "одиночное выполнение". Это как? Я лично не понял, о чём идёт речь. Если требуется одиночное выполнение, то сперва надо выяснить, а по какому собственно поводу надо что-то выполнить, а уж потом выяснять, куда этот код помещать и как. Если, к примеру, мне что-то принципиально надо выполнить один раз в произвольный нужный мне момент времени, то я пользуюсь своим тестовым полигоном, что позволяет мне вообще не лезть в скрипты игры. Если надо привязать выполнение к некоему событию, то надо искать соответствующий колбек. Апдейт я чаще всего задействую для некоего отладочного мониторинга, когда надо что-то постоянно отслеживать. И то это можно сделать из под того же полигона с использованием fastcall-ов опять же не влезая в существующие скрипты. fastcall обычно не занят и его можно и навесить на актора и снять "со стороны". Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 27 Февраля 2010 Darien, hud:wnd():SetWidth(100) Я бы функцию примерно так написал. function my_hud() local hud1 = main_hud:GetCustomStatic("hud_wpn") or main_hud:AddCustomStatic("hud_wpn", true) local hud = main_hud:GetCustomStatic("p_hud_wpn") or main_hud:AddCustomStatic("p_hud_wpn", true) hud:wnd():SetWidth(100) hud:wnd():SetHeight(10) end Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 4 Марта 2010 Unnamed Black Wolf, не совсем понятно, можно подробнее насчёт полётов в падении? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 4 Марта 2010 Юра Семецкий, по второму вопросу ответ однозначно нет. Когда объект живой, он под управлением анимации, и тогда на него физика не действует. Когда умирает - включается регдолл анимация (т.е. собственно физика) и отключаются анимации обычные. Либо так - либо этак, но никак вместе. Да и если подумать, как это можно вообще совместить? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 4 Марта 2010 (изменено) Monnoroch, Сначала по второму вопросу со стволами. Ствол в руке - это результат работы метода game_object.set_item(...) или связки объект object и entity_action + метод game_object.command(...). Полагаю, движок тоже может устанавливать предмет в руках, но в итоге где-то внутри вызывается одна и та-же функция. Предмет само-собой должен быть в инвентаре непися. При смерти непися предмет выкидывается, но я так и не нашёл где именно. Похоже это движковое действие, хотя может плохо искал. Но скорее всего движковое, поскольку объект выпадает из рук непися даже если у него вообще никакого биндера нет, и соответственно с ним не связаны никакие скрипты. Если предмет остался в руках, значит он скорее всего остался в инвентаре и просто продолжается действие метода game_object.set_item(...) (проверить бы). Если бы это было скриптовое действие, то можно было бы предположить, что это следствие подвисания биндера, а так - без понятия почему иногда предмет не выкидывается. По воскрешению. Ни разу мне не удалось воскресить дохлого непися. Я видел функцию, где переписывается нетпакетом здоровье, но у меня она ни разу не сработала. Был либо вылет, либо просто никакого эффекта. Для меня сейчас смерть выглядит как некий внутренний флажок, который устанавливается движком и к которому нет доступа скриптами. Самому хотелось бы этот вопрос прояснить. Если у кого-то есть сейв с дохляком, которого точно можно воскресить, был бы премного благодарен. Опять же с практической точки зрения для мгновенного перевода непися из регдолла обратно "к жизни" такой метод всяко бы не сгодился, поскольку манипуляции с нетпакетом подразумевают предварительный перевод в оффлайн. С другой стороны необратимость смерти выглядит логичной со всех сторон в том числе и с точки зрения смены способа анимации. Подумай сам. Ну вот допустим можно сменить на короткое время анимацию на регдолл и обратно. Скажем, я хочу пнуть непися взрывом, а он упадёт, а потом встанет. Это крайне сложно технически реализовать при современных возможностях. Вот непись стоит в определённом положении, я отключаю анимацию, включаю физику, даю хит. На самом деле это уже не совсем натурально, поскольку не дохлый человек даже падая ведёт себя не как кукла. Но допустим. Вот упал. Совершенно в произвольном положении, заметь. Теперь надо решить как минимум две задачи: первое - определить момент, когда можно переключаться обратно, второе - реализовать вставание, что подразумевает плавную и естественную анимацию из совершенно произвольного положения с учётом весьма произвольного профиля поверхности к одному из "стандартных" вариантов. Конечно, нет ничего невозможного, но в сталкере такого не реализовано. Изменено 4 Марта 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 5 Марта 2010 Предмет удаляется и спавнится предмет с той же секцией и случайным повреждением. Так говорит death_manager.script Нет там ничего подобного. Предмет не создаётся заново, а ему меняется состояние. Кстати, это означает, что в момент вызова death_manager, т.е. фактически в колбеке на смерть непися, предмет ещё в инвентаре. В оригинальной игре вообще нет почти ни одного вызова drop_item для неписей. В паре мест встречается, но всё это какие-то специальные квестовые ситуации и то, вроде как не задействованы. Опять же, предмет исправно выпадает из рук непися, у которого биндер не прописан вовсе, т.е. привязка к скриптам отсутствует, и поведение определяется исключительно движком. Значит, дроп активного предмета - фича движковая, и искать почему иногда не срабатывает - смысла нет. ну можно сохранить НПС,убить,подождать немного,заспавнить нового и прописать ему нетпакет старого. Оно так, но речь то шла о том, чтобы это сделать незаметно с целью временного включения регдолла =) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 19 Марта 2010 Пытался вытащить скриптами иконку неписей. В итоге разобрался, как работает система профайлов, но задачу так и не решил. Хитрая система: начинается всё с секции сталкера, в которой указан параметр character_profile. Если не указан, то принимается значение default. Этот параметр указывает на профайл в файле config\gameplay\npc_profile.xml. Сам этот файл зарегистрирован в system.ltx в разделе [profiles] в параметре files. В этом файле отдельные профили имеют вид: <character id="имя_профиля_которое_указано_в_секции"> <class>имя_класса</class> </character> Т.е. там фактически ничего нет. Теперь самое интересное. Собственно профиль движок находит по параметру имя_класса. Ищет в файлах, которые через запятую перечислены в system.ltx в разделе [profiles] в параметре specific_characters_files. Вот это собственно и есть профили, где находятся параметры. Здесь они имеют вид, достаточно подробно расписанный здесь. Если коротко, то вид такой: <specific_character id="какое_то_имя_походу_неважно_какое" team_default = "1"> ... <class>тот_же_класс_что_и_в_фале_npc_profile.xml</class> ... </specific_character> Там много параметров. Я так понял, что визуал, указанный в секции, попросту игнорируется и берётся именно отсюда. Также игнорируется биография и нигде не используется репутация. Прописанный здесь набор предметов работает, но после смерти всё удаляется и лут спавнится скриптом. Теперь, как ищется этот собственно профайл. Он ищется по имени тега <class>. Причём, профайлов specific_character может быть несколько. Движок при спавне выбирает случайным образом любой из найденных specific_character с соответствующим классом. Это чтобы разнообразить автоматический спавн. Ну так вот. Я это к тому, что есть проблема. Как определить иконку непися? Функция profile_name(), которая есть и у серверного и у клиентского классов возвращает имя профайла из npc_profile.xml, которое может соответствовать не одному, а нескольким "реальным" профайлам. Так что узнать, с каким именно профайлом заспавнился непись, нельзя. Почти все параметры, которые указаны в профайле, можно вытащить из объекта скриптами, а вот для иконки у меня идей нет. Но может кто знает способ? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 19 Марта 2010 (изменено) lex017, проблема в квиксейве. Не пользуйся ими. Вообще что ли? Не удобно как-то через консоль сохранять. квиксейвы портят сохранения. Неприятность в том, что последствия видны не сразу. Поэтому иногда приходится переигрывать с очень ранней сохранёнки. Не хочешь проблем - забудь, что есть квиксейв Изменено 19 Марта 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 21 Марта 2010 Как при изменении имени текстуры, через какойбы-то ни было редактор, может "сломатьтся" модель??? Ну... хексом можно что угодно поломать =) На букву длиннее имя написал и кирдык. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 25 Марта 2010 2. Когда я удаляю секцию предмета из алл.спавна - я ее просто удаляю, или удаляю оставляя от нее порядковый номер, или удаляю секцию и заново их номерую? В своё время выяснил экспериментом, что номера секции, которые показывает acdc, ровным счётом ни на что не влияют. Номер, по которому потом можно заспавнить объект с помощью alife():create(<номер>), это просто порядковый номер объекта, под которым он расположен в all.spawn. Там они расположены как в массиве. То, что acdc их группирует по уровням - это его (acdc) самоуправство. В частности это приводит к тому, что при перекомпиляции все номера становятся невалидными. В самом all.spawn нет никакой группировки по уровням, просто объёкты один за другим. После повторной перекомпиляции, поскольку объекты уже были сгруппированы, то их порядок не меняется. Однако, если вставить или удалить объект не в конце последнего уровня, то начиная от этого объекта естественно пойдёт смещение номеров. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 615 Опубликовано 2 Апреля 2010 Придётся на ЗП делать. Не сделаешь ты на скриптах кооператив. Это примерно тоже самое, что пытаться делать из автомобиля самолёт, прикручивая с помощью изоленты фанерные крылья. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение