Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Silver Raven 197 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) @Dennis_Chikin, в общем вышел из положения таким образом: upd. Упс, меня уже опередили. ltx = ltx.. "[logic@" .. gname .. "_prayer" .. i .. "]\n" .. "active = walker@" .. gname .. "_prayer" .. i .. "\n" .. "combat_ignore = combat_ignore\n" .. "on_hit = %+pri_monolith_base_attack_altar_zone%\n" .. "on_death = %+pri_monolith_base_attack_altar_zone%\n" .. "[walker@" .. gname .. "_prayer" .. i .. "]\n" .. "path_walk = prayer" .. i .. "_walk\n" .. "path_look = prayer_look" .. math.random(1, 2) .. "\n" .. "danger = danger@monolith\n" .. "combat_ignore_cond = {-pri_monolith_base_attack_altar_zone}\n" З.Ы. И тем не менее, совершенно не понятно, как эта ошибка вылезла. На чистом ТЧ этой проблемы ведь нет. Может-ли это быть связано с правками, вносимыми в движок проектом X-Ray extensions? Изменено 12 Апреля 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) , проверь. Логика у тебя неверная, твой on_hit/on_death вернет nil, вылета не будет, но и не произойдет ничего. Хотя у разрабов там тоже весьма все со странностями, видимо в разное время функции писали. upd: , тогда видимо я чего-то не уловил в xr_logic. Хотя надо еще в сторону оверрайда глянуть, т.к. в оригинале они по моему тоже стреляют. upd2: Проверил, косячит оверрайд, либо что-то еще мне неведомое, все устройство поведения на грани фантастики. Изменено 12 Апреля 2015 пользователем Карлан Ссылка на комментарий
Silver Raven 197 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 @Карлан, да вроде все работает. Опасности нет - НПС посидели на точках и ушли к костру "медитировать". Дал хит - лупят по ГГ в ответ. aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
dsh 3 824 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 @Dennis_Chikin, @Карлан, вот смотрю я в rx_wmgr.script соляночный. Там вижу манипулирование какими-то запрятанными инвентарными ящиками и постоянный трансфер оружия между ящиком и неписем. И это все только для того, что бы у сталкеров спрятать оружие, что бы они свое единственное не продали? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 И чтоб не выбирали "неправильное". Зачем оно так сделано - не знаю. Вообще, вся эта конструкция в том виде, в котором есть, скорее не работает, чем работает. Проверил, косячит оверрайд, Вчера ж обсуждали. Или позавчера. Читать-то его внутри схемы кто будет ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
dsh 3 824 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 @Dennis_Chikin, может кто-то задался тем-же вопросом, что и я, и сделал такое. Что бы неразумные неписи не продали хитрому Меченному единственный калаш. У меня, собственно говоря, этот вопрос возник потому, что я перенес в ОП-2 rx_wmgr из OGSE 0.6.9.3, в котором убрано все это манипулирование ящиками, и обнаружил вот такое вот поведение. Вот теперь думаю, что с этим делать. Объявить фичей или багом. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Zander_driver 10 331 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) Но вообще - странный подход: спрашивают - "как сделать", ответ - "а у меня сделано". Согласен, подход нехороший, но как мне еще было ответить? рассказать по порядку, как и из чего делается скриптоинвентарь? навряд ли вопрошающий станет то же самое делать сам А релиза пока нету. А принцип описать хотя-бы коротко, раз уж сделано ? dc Изменено 13 Апреля 2015 пользователем Dennis_Chikin Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Карлан 1 049 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) @dsh, в огсе насколько я знаю для торговли тоже как-то движок правили, но не утверждаю. В любом случае на скриптах такое сделать можно только в багованном варианте, т.е. он таки если что сможет продать тебе свой последний и единственный, т.к. манипулирвоать все-же с секциями, так что ответ - никак. Без движка. Ну либо вот как Андрей, все на скрипты переписать, но не советую. Я в движке себе добавил несколько коллбеков в торговое окно которые отрабатывают на нужных мне действиях и функции которые управляют торговым листом, и в таком случае я запрещаю/разрешаю торговать вообще чем угодно в любое время. Но еще раз тебе говорю, ты с флагами накосячил. Вчера ж обсуждали. Или позавчера. Читать-то его внутри схемы кто будет ? Да, я просто всегда считал что уж для сталкеров он работает, хотя себя вспомнить - ни разу не работал, у меня лично вообще на практике только дангер нормально отрабатывает. А разбираться во всей этой структуре долго и бесполезно, там действительно уже лучше все переписать, но без движка опять мартышкин труд будет. Изменено 13 Апреля 2015 пользователем Карлан Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) Кстати, о движках и не-движках, картинка. Давно хотел, а сегодня наконец руки дошли. В смысле, ни один бит движка не пострадал. Можно, кстати, и отрицательный сделать. Да, с любым грузом замечательно бегаем, прыгаем и не устаем. Хоть пол-тонны, только артами в соответствующем количестве запасаться надо, и будет 0 кг. Изменено 13 Апреля 2015 пользователем Dennis_Chikin 3 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
balor90 0 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 Есть у кого-нибудь описание всех визуалов ТЧ(желательно с картинками)? Ссылка на комментарий
Капрал Хикс 513 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) Давно хотел, а сегодня наконец руки дошли. Здорово! Рабочий вариант выложен будет? Я еще чуть-чуть народ поинтригую, а потом тайну золотого ключа раскрою. Вообще не понимаю, почему это не сделали в 2008 году. Элементарно же. Легким движением руки. Можно даже уже догадаться, просто зная, что факт имеет быть. dc описание всех визуалов ТЧ(желательно с картинками)? Есть для всех трёх игр подробное, на одном из порталов по сталкеру. Изменено 13 Апреля 2015 пользователем Dennis_Chikin 1 Ссылка на комментарий
balor90 0 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 Есть для всех трёх игр подробное, на одном из порталов по сталкеру. А где конкретно? Я не нашел. Ссылка на комментарий
Silver Raven 197 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) Небольшой апдейт о проблеме с секцией [hit@altar_monolith] логики НПС, в гулаге на Припяти, описаннго мной страницой ранее. Вот, собственно, похоже и виновник, модифицированный xr_hit.script: class "action_process_hit" function action_process_hit:__init(obj, storage) self.object = obj self.st = storage end function action_process_hit:hit_callback(obj, amount, local_direction, who, bone_index) db.storage[self.object:id()].hit.bone_index = bone_index if amount == 0 and not(obj:invulnerable()) then -- FIXME if_then_else -- printf("[%s] hit by [%s]: 0 damage, ignoring", obj:name(), if_then_else(who, who:name(), "<no one>")) return end if who then printf("[%s] hit by [%s]", obj:name(), who:name()) db.storage[obj:id()].hit.who = who:id() else printf("[%s] hit by [Unknown]", victim:name()) db.storage[obj:id()].hit.who = -1 end if db.storage[self.object:id()].active_scheme then --printf("DEADLY HIT %s %s", amount, self.object.health) db.storage[self.object:id()].hit.deadly_hit = amount >= self.object.health*100 if xr_logic.try_switch_to_another_section(obj, db.storage[self.object:id()].hit, db.actor) then db.storage[self.object:id()].hit.deadly_hit = false return end db.storage[self.object:id()].hit.deadly_hit = false end end ---------------------------------------------------------------------------------------------------------------------- -- binder ---------------------------------------------------------------------------------------------------------------------- function add_to_binder(npc, ini, scheme, section, storage) local new_action = this.action_process_hit(npc, storage) storage.action = new_action end function set_hit_checker(npc, ini, scheme, section) local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) if not ini:section_exist(section) then abort("There is no section [%s] for npc [%s]", section, npc:name()) -- а вот и та самая часть end st.logic = xr_logic.cfg_get_switch_conditions(ini, section, npc) -- НЕ СТАВИТЬ hit callback напрямую - получаем его из motivator-а через -- event в подписанном на него action-е: --npc:set_callback(callback.hit, st.action.hit_callback, st.action) xr_logic.subscribe_action_for_events(npc, st, st.action) end function disable_scheme(npc, scheme) -- При отключении схемы, нужно снять подписку, чтобы hit callback перестал -- передаваться: -- npc:set_callback(callback.hit, nil) local st = db.storage[npc:id()][scheme] if st then xr_logic.unsubscribe_action_from_events(npc, st, st.action) end end Честно говоря, уже и не помню, от чего мне достались данные правки. И есть ли в них смысл сейчас. Изменено 13 Апреля 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Карлан 1 049 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) , интересно что за "модмейкер" его "модифицировал". В ТЧ не было никогда invulnerable. Элементарно же. Легким движением руки. Вроде-бы не только я тут описывал как это сделать. Причем даже не одним способом, но самый простой это как объем в АМК. Только на пороге перегруза актора чем-то действительно перегружать. А еще проще ? Кстати, ты вообще обратил внимание на цифры на картинке ? dc Изменено 13 Апреля 2015 пользователем Dennis_Chikin Ссылка на комментарий
Silver Raven 197 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 @Карлан, надо было мне просто повнимательнее почитать код. Это наработки кого-то из наших форумчан, я лишь кое-что изменил под свои нужды. Суть - временное бессмертие НПС. Устанавливаемое и снимаемое через логику. Основной скрипт: function is_need_invulnerability(npc) local npc_st = db.storage[npc:id()] local invulnerability = utils.cfg_get_string(npc_st.ini, npc_st.active_section, "invulnerable", npc, false, "", nil) if invulnerability == nil then return false end invulnerability = xr_logic.parse_condlist(npc, "invulnerability", "invulnerability", invulnerability) return xr_logic.pick_section_from_condlist(db.actor, npc, invulnerability) == "true" end -- Вызывается на переключении на новую секцию. Производит вычитывание настроек из текущей секции function reset_invulnerability(npc, ini, section) local invulnerability = is_need_invulnerability(npc) printf("RESET INVULNERABILITY. npc[%s] = [%s]", npc:name(), tostring(invulnerability)) if npc:invulnerable() ~= invulnerability then npc:invulnerable(invulnerability) end end function disable_invulnerability(npc) printf("DISABLE INVULNERABILITY. npc[%s] = [false]", npc:name()) npc:invulnerable(false) end function update_invulnerability(npc) local invulnerability = is_need_invulnerability(npc) if npc:invulnerable() ~= invulnerability then printf("UPDATE INVULNERABILITY. npc[%s] = [%s]", npc:name(), tostring(invulnerability)) npc:invulnerable(invulnerability) end end aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 А при чем здесь модификации, если при формировании динамического ltx идет ссылка на секцию, которой в этом ltx и рядом не стояло ? Просто либо монолитовцы реагируют на дэнжер/видят врага, и срываются в бой, игнорируя любую логику, либо получат хит, и радостно виснут. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Silver Raven 197 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) @Dennis_Chikin, хз. Никогда не вдавался в подробности того, что ПЫС творили с логикой НПС в своих гулагах. Во всяком случае удаление if not ini:section_exist(section) then abort("There is no section [%s] for npc [%s]", section, npc:name()) end "решает" проблему. Изменено 13 Апреля 2015 пользователем Stalker_AleX333 Добавлено Kirgudu, 14 Апреля 2015 Нарушение пункта 2.0 Правил форума. Устное предупреждение. 1 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 (изменено) Замечательно. Прячем проблему, которую в свое время кто-то нашел и вытащил на свет, обратно. И считаем, что ее решили. А если будет вылетать "по стеку" или вообще без лога, то всегда можно посоветовать "добавить памяти" или "не лезь своими кривыми руками в мой совершенно безглючный мод". Но чтоб просто исправить очевидную найденную ошибку с отсутствующей секцией - не, так неинтересно. Конфиги - священны и неприкосновенны. Мы лучше перекурочим весь код до полного изумления системы, и перепишем заново движок, но ни единой буквы, ни единой точки изменить не позволим ! Ни кому ! Изменено 13 Апреля 2015 пользователем Dennis_Chikin 2 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 , ты все строки которые с abort или assert начинаются - удали, вообще бед знать не будешь. 1 Ссылка на комментарий
NL-Vincenz 12 Опубликовано 13 Апреля 2015 Поделиться Опубликовано 13 Апреля 2015 Извините за нубский вопрос, но какая консольная команда отвечает за дальность прорисовки теней на R2? Тыкните носом где есть описания консольным командам. И еще, может у кого завалялся патчер для exe-шника который изменяет размер карты теней на -smap4096. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти