Serge! 127 Опубликовано 17 Сентября 2014 Поделиться Опубликовано 17 Сентября 2014 (изменено) использовать к примеру модуль нет-пакетов от Artosа где его можно посмотреть? Изменено 17 Сентября 2014 пользователем Kirgudu Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-877264
Scarabay 98 Опубликовано 18 Сентября 2014 Поделиться Опубликовано 18 Сентября 2014 (изменено) Привет. Подскажите пожалуйста, как исправить баг с взятием предметов через стены\двери? Помню, давно где-то было решение. И как можно отключить взятие предметов пачкой, чтобы при одном нажатии кнопки подбирался только один, как это было в ТЧ? Изменено 18 Сентября 2014 пользователем Scarabay Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-877422
Сталкер Лом 356 Опубликовано 18 Сентября 2014 Поделиться Опубликовано 18 Сентября 2014 Здоровенько, товарищ. как исправить баг с взятием предметов через стены\двери? Я спрашивал как-то раз, сказали, что заплатки нет, ибо если бы это было возможно, это поправили бы. Но я спрашивал с год назад, может, чуть поменьше, когда об исходниках двигла только мечтали. Но может быть уже с этим делом разобрались. По второму вопросу и я бы тоже послушал, что люди добрые скажут. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-877435
Jeka81 75 Опубликовано 22 Сентября 2014 Поделиться Опубликовано 22 Сентября 2014 Ранее я спрашивал: При наведении курсора на квестовый предмет появляется надпись "Поднять предмет(а)". Сам предмет заспавнен с начала игры. Можно-ли сделать так, чтобы до получения определенного инфопоршня эта надпись не появлялась и предмет невозможно было бы подобрать? На что был получен ответ от Serge! об использовании nonscript_usable (true/false). Посмотрел в оригинальных скриптах и нашел - использование такого метода в логике inventory_box. Создал квестовый предмет (бумажный сверток): [calendar_0_info]:device_pda $spawn = "quest_items\calendar_0_info"visual = dynamics\new_dynamics\roll\calendar_0.ogfinv_weight = 0.01inv_grid_width = 1inv_grid_height = 1inv_grid_x = 19inv_grid_y = 4description = calendar_0_info_descinv_name = calendar_0_infoinv_name_short = calendar_0_infocan_trade = falsecost = 0quest_item = truestory_id = calendar_0_info Разместил на локации в SDK: Прописал логику квестовому предмету: [logic]active = ph_idle@notup[ph_idle@notup]nonscript_usable = falseon_info = {+calendar_find_enable} ph_idle@up[ph_idle@up]nonscript_usable = true Т.е. по задумке пока не получен инфопоршень calendar_find_enable предмет нельзя подобрать и он себя "никак не выдает" (нет надписей-подсказок). Но что-то не так и сверток подбирается. Может кто подсказать что не так? Заранее спасибо! Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878275
AndreySol 215 Опубликовано 23 Сентября 2014 Поделиться Опубликовано 23 Сентября 2014 Может кто подсказать что не так? false и true местами поменяй.... Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878404
makdm 37 Опубликовано 24 Сентября 2014 Поделиться Опубликовано 24 Сентября 2014 (изменено) И так и так пробовал - не помогает... Если я не ошибаюсь, в ЗП предметы (объекты), которые ГГ может поднять в рюкзак, не могут иметь логики. Можно сделать( как обычно и делали разрабы сталкера) подмену объекта. Например вот так Для этого на локации в начале игры проспавните объект вот с такой секцией [calendar_fake_info]:inventory_box visual = dynamics\new_dynamics\roll\calendar_0.ogf custom_data = scripts\calendar_fake_info.ltx Секцию пропишите в devices.ltx ниже секции [inventory_box] Далее в файле calendar_fake_info.ltx пропишите логику вот такую [logic] active = ph_idle@notup [ph_idle@notup] nonscript_usable = false on_info = {+calendar_find_enable} ph_idle@nil %=destroy_and_spawn_new_object(calendar_0_info)% [ph_idle@nil] Добавьте в файл xr_effects.script следующую функцию function destroy_and_spawn_new_object(actor, obj, p) if p and p[ 1 ] then local section = tostring( p[ 1 ] ) local s_obj = alife():object( obj:id() ) if s_obj then local position, lv_id, gv_id = s_obj.position, s_obj.m_level_vertex_id, s_obj.m_game_vertex_id alife():create( section, position, lv_id, gv_id ) alife():release( s_obj, true ) end end end Ну и соответственно в файле quest_items.ltx должна быть прописана секция calendar_0_info После выдачи инфопоршня фейковый объект удалится и проспавнится новый, который ГГ сможет поднять в рюкзак Изменено 24 Сентября 2014 пользователем makdm 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878503
Jeka81 75 Опубликовано 24 Сентября 2014 Поделиться Опубликовано 24 Сентября 2014 @makdm, спасибо за помощь - все работает как надо!!! Только не понял зачем прописывать в devices.ltx? Я этого не делал и так все работает Но теперь новая проблема - лист календаря (который надо как бы сорвать со стены) не появляется на стене, а падает. Т.е. фейковый висит как надо, а после подмены квестовый предмет "не хочет висеть где надо" и падает на землю. Как его зафиксировать? P.S. Вообще, заметил, что у квестовых предметов нет опции "зафиксировать кость". Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878616
AndreySol 215 Опубликовано 24 Сентября 2014 Поделиться Опубликовано 24 Сентября 2014 Вообще, заметил, что у квестовых предметов нет опции "зафиксировать кость". Наличие костей в модели не зависит от того квестовый он или нет. Если используешь для фейкового и нормального предметов одну и ту-же модель - просто добавь fixed_bone нормальному и будет тебе счастье... Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878639
Jeka81 75 Опубликовано 24 Сентября 2014 Поделиться Опубликовано 24 Сентября 2014 (изменено) Наличие костей в модели не зависит от того квестовый он или нет Не корректное замечание. Речь не шла о наличии или отсутствии костей. Извините, ёжику понятно что все физические объекты имеют кости. Просто у обычного физического объекта установленного на локацию как physic_object в свойствах есть опция "зафиксировать кость", а если этот же объект установить как quest_items, то у него уже такой опции нет. Вот и спросил - как его зафиксировать чтобы он не падал. Изменено 24 Сентября 2014 пользователем Jeka81 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878649
AndreySol 215 Опубликовано 24 Сентября 2014 Поделиться Опубликовано 24 Сентября 2014 Насколько я понимаю, понятие "опция "зафиксировать кость"" это из SDK. Если ты предмет спавнишь скриптом - как с ним можно в SDK работать ? Вот и спросил - как его зафиксировать чтобы он не падал Как всегда - через кость: local pshell = obj:get_physics_shell() if pshell then local element = pshell:get_element_by_bone_name("link") if element then element:fix() end end Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878653
Jeka81 75 Опубликовано 25 Сентября 2014 Поделиться Опубликовано 25 Сентября 2014 @AndreySol, да, в свойствах объекта из SDK. Фейковый объект установлен изначально мной в SDK. Квестовый, получается, спавнится скриптом, вы правы. Куда нужно "встроить" написанное вами? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878675
Scarabay 98 Опубликовано 25 Сентября 2014 Поделиться Опубликовано 25 Сентября 2014 @Jeka81, еще можно сразу в секции итема указать, вот как-то так: [jup_b219_gate]:physic_object $spawn = "dynamic_objects\scene_objects\jup_b219_gate" visual = dynamics\door\door_katakomb_big_4.ogf story_id = jup_b219_gate_id fixed_bones = link custom_data = models\objects\ignore_static.ltx 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878691
AndreySol 215 Опубликовано 25 Сентября 2014 Поделиться Опубликовано 25 Сентября 2014 @Jeka81, Насчет указания фиксации кости в секции объекта - ничего сказать не могу, не проверял. Но проверю, интересная вещь... В скрипте можно сделать двумя способами: 1). Фиксация на клиентской стороне - создать объект, и после выхода его в он-лайн зафиксировать вышеприведенным кодом. 2). Фиксация на серверной стороне, с внесением изменений в нет-пакет объекта (пример с использованием модуля нет-пакетов от Artos): local ser_obj = alife():create(.....наш объект.....) if ser_obj then ----- фиксируем объект после создания ----- local pk = m_netpk.get(ser_obj) -- запрос нет-пакета if pk and pk:isOk() then local data = pk:get() -- читаем данные из нет-пакета if data then data.fixed_bones = "link" pk:set(data) -- сохраняем данные в нет-пакет end end end Второй способ проще, на мой взгляд... Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878763
Jeka81 75 Опубликовано 25 Сентября 2014 Поделиться Опубликовано 25 Сентября 2014 @AndreySol, к сожалению, я новичек в скриптовании и эти два способа только больше меня запутали Не знаю что такое клиентская сторона и серверная сторона. Но это пол беды. Во время тестов фейковый объект располагал "как есть" - не вращал его в редакторе. После подмены "правильный" предмет спавнился на месте фейкового. Сейчас фейк повернул (0,90,0) и обнаружилось, что квестовый спавнится не наследуя поворот фейкового, т.е. его поворот (0,0,0)! Новая проблема! Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878777
AndreySol 215 Опубликовано 25 Сентября 2014 Поделиться Опубликовано 25 Сентября 2014 и обнаружилось, что квестовый спавнится не наследуя поворот фейкового Ну так и должно быть - заспавненный скриптом объект не имеет никакого отношения к расстановке объектов в SDK... Насчет ориентации предмета - тот-же нет-пакет: data.direction = vector():set(0,90,0) к сожалению, я новичек в скриптовании и эти два способа только больше меня запутали опять-же, к сожалению, но модострой только посредством ковыряния в SDK и конфигах - однозначно не полноценный. Осваивайте скриптование... Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878796
makdm 37 Опубликовано 25 Сентября 2014 Поделиться Опубликовано 25 Сентября 2014 (изменено) Новая проблема! Что мешает развернуть серверный объект на 90 градусов против часовой стрелки вокруг оси Y до его вывода в онлайн? Попробуй так local s_obj = alife():create( spawn_section, position, level_vertex_id, game_vertex_id ) s_obj:set_yaw( 90 * math.pi / 180 ) Изменено 25 Сентября 2014 пользователем makdm Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-878797
Serge! 127 Опубликовано 28 Сентября 2014 Поделиться Опубликовано 28 Сентября 2014 (изменено) Как я понимаю, событие actor_binder:on_item_take (obj) отрабатывает и при загрузке сейва, и при взятии предмета во время игры. Можно ли отследить в какой момент оно вызывается? Наверное есть или инфопоршень, или флаг. Пробовал просто отслеживать состояние объекта в онлайне, но нужного эффекта не получил. Изменено 28 Сентября 2014 пользователем Serge! Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-879348
AndreySol 215 Опубликовано 28 Сентября 2014 Поделиться Опубликовано 28 Сентября 2014 Можно попробовать в actor_binder:update сделать: if device().precache_frame <= 1 then ... end Эта проверка сработает после пропуска некоего кол-ва апдейтов от начала загрузки, и соответственно всю загрузку лута в инвентарь. Соответственно можно использовать флаг, который установить по факту precache_frame <= 1 и проверять его в on_item_take. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-879360
makdm 37 Опубликовано 28 Сентября 2014 Поделиться Опубликовано 28 Сентября 2014 отрабатывает и при загрузке сейва, и при взятии предмета во время игры. Абсолютно верно. Можно ли отследить в какой момент оно вызывается? У объекта меняется его parent_id. Можете поставить колбэк и отследить этот параметр. Вопрос - зачем это нужно? Сам колбэк on_item_take и есть обработка события. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-879363
AndreySol 215 Опубликовано 28 Сентября 2014 Поделиться Опубликовано 28 Сентября 2014 Проясните плиз, что означает такая запись для кондлиста в smart_terrain ? cond = {+garbage_meetstalker_done},{+garbage_meetstalker_die} Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/275/#findComment-879385
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти