Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
nego 35 Опубликовано 21 Мая 2015 Поделиться Опубликовано 21 Мая 2015 Здравствуйте ВАМ. А можно сделать некую точку (space_restrictor) без редактирования ал_спавна. Если кто знает, помогите если есть желание. Все способы с ACDC у меня кромешным крахом полнятся. Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч. Ссылка на комментарий
Overfirst 630 Опубликовано 21 Мая 2015 Поделиться Опубликовано 21 Мая 2015 (изменено) @nego, На этом форуме есть инфа по спавну ресрикторов без помощи all.spawn. Четвёртый пост там смотри. Изменено 21 Мая 2015 пользователем BoBaH_671 1 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Silver Raven 197 Опубликовано 21 Мая 2015 Поделиться Опубликовано 21 Мая 2015 (изменено) Имеется множество рестрикторов со следующими секциями логики: [logic] active = sr_particle@dynamic_flame_off [sr_particle@dynamic_flame_off] name = alex_mod\dynamic_flame\line\dynamic_flame_line_2_static path = dynamic_flame_line_2 mode = 2 looped = true on_info = {+actor_in_flame_zone} sr_particle@dynamic_flame_on [sr_particle@dynamic_flame_on] name = alex_mod\dynamic_flame\line\dynamic_flame_line_2_active path = dynamic_flame_line_2 mode = 2 looped = false недостаток в том, что при загрузки сохранения, созданного после отработки схемы, повторно отыгрывается последняя ее часть, в чем необходимости нет. Можно, конечно, этого избежать используя таймеры, окончание которых будет совпадать по времени с окончанием отыгрывания анимаций, но мне бы не хотелось загружать движок несколькими десятками подобных схем. Так же не хотелось бы использовать переход на другую схему, для выдачи инфопорции. Как бы провернуть это более "элегантно"? upd. Разобрался самостоятельно. Не заметил, что схема поддерживает on_signal = particle_end | *какое-то действие* по аналогии с sr_sound. Изменено 21 Мая 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
RafMadMan 85 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 Вот схватил вылет на Дикой территории: FATAL ERROR [error]Expression : fatal error [error]Function : CModelPool::Instance_Create [error]File : E:\stalker\patch_1_0004\xr_3da\xrRender\ModelPool.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : Unknown visual type stack trace: Что это может быть? Что-то не так с визуалом НПЦ? Ссылка на комментарий
NL-Vincenz 12 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 Сделал два диалога. Для теста присвоил их Сидоровичу. Проблема в том что данные диалоги не появляются. Вот два скелета диалога: <?xml version="1.0" encoding="windows-1251" ?> <game_dialogs> <dialog id="nl_dialog_bar_voronin"> <has_info>nl_dialog_bar_voronin</has_info> <dont_has_info>nl_dialog_bar_voronin</dont_has_info> <phrase_list> <phrase id="0"> <text>nl_dialog_bar_voronin_0</text> <next>1</next> </phrase> <phrase id="1"> <text>nl_dialog_bar_voronin_1</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>nl_dialog_bar_voronin_2</text> <give_info>nl_dialog_bar_voronin</give_info> <action>nl_group.nl_actor_set_dolg</action> </phrase> <phrase id="3"> <text>nl_dialog_bar_voronin_3</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> <dialog id="nl_dialog_millitary_lukash"> <has_info>nl_dialog_millitary_lukash</has_info> <dont_has_info>nl_dialog_millitary_lukash</dont_has_info> <phrase_list> <phrase id="0"> <text>nl_dialog_millitary_lukash_0</text> <next>1</next> </phrase> <phrase id="1"> <text>nl_dialog_millitary_lukash_1</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>nl_dialog_millitary_lukash_2</text> <give_info>nl_dialog_millitary_lukash</give_info> <action>nl_group.nl_actor_set_freedom</action> </phrase> <phrase id="3"> <text>nl_nl_dialog_millitary_lukash_3</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> </game_dialogs> Вот инфопоршни: <?xml version='1.0' encoding="windows-1251"?> <game_information_portions> <info_portion id="nl_dialog_bar_voronin"></info_portion> <info_portion id="nl_dialog_millitary_lukash"></info_portion> </game_information_portions> Вот я прописал диалоги Сидоровичу: <?xml version='1.0' encoding="windows-1251"?> <xml> <specific_character id="escape_trader" no_random = "1"> <name>escape_trader_name</name> <icon>ui_npc_u_trader</icon> <bio>escape_trader_bio</bio> <class>trader</class> <community>trader</community> <visual>actors\trader\trader</visual> <rank>330</rank> <reputation>23</reputation> <money min="100000" max="100000" infinitive="1"/> <supplies> [spawn] \n wpn_knife \n </supplies> <start_dialog>escape_trader_start_dialog</start_dialog> <actor_dialog>escape_trader_talk_info</actor_dialog> <actor_dialog>escape_trader_jobs</actor_dialog> <actor_dialog>tm_trader_dialog</actor_dialog> <actor_dialog>tm_trader_reward</actor_dialog> <actor_dialog>escape_trader_done_blockpost_box</actor_dialog> <actor_dialog>nl_dialog_bar_voronin</actor_dialog> <actor_dialog>nl_dialog_millitary_lukash</actor_dialog> </specific_character> Вот функции вступления в группировку: function nl_actor_set_dolg (actor, npc) printf ("ACTOR NOW IN ACTOR_DOLG COMMUNITY" if db.actor then db.actor:set_character_community ("actor_dolg", 0, 0) end return true end function nl_actor_set_freedom (actor, npc) printf ("ACTOR NOW IN ACTOR_FREEDOM COMMUNITY" if db.actor then db.actor:set_character_community ("actor_freedom", 0, 0) end return true end Можете ли подсказать где я допустил ошибку? Ссылка на комментарий
Kirgudu 1 204 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 @NL-Vincenz, <has_info>nl_dialog_bar_voronin</has_info> <dont_has_info>nl_dialog_bar_voronin</dont_has_info> Взаимоисключающие условия. То же самое во втором диалоге. 1 1 Инструмент Ссылка на комментарий
NL-Vincenz 12 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 @Kirgudu, Спасибо! Диалог появился, работает. Но данная функция: function nl_actor_set_dolg (actor, npc) printf ("ACTOR NOW IN ACTOR_DOLG COMMUNITY" if db.actor then db.actor:set_character_community ("actor_dolg", 0, 0) end return true end function nl_actor_set_freedom (actor, npc) printf ("ACTOR NOW IN ACTOR_FREEDOM COMMUNITY" if db.actor then db.actor:set_character_community ("actor_freedom", 0, 0) end return true end Почему-то не работает. ГГ не перемещается в группировку в зависимости от выбранного диалога. Ссылка на комментарий
Kirgudu 1 204 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 @NL-Vincenz, почему-то мне кажется, что данный вопрос относится не к ТЧ, а всё-таки к ЧН. Если это так, прошу подтвердить - перенесу посты в соответствующую тему. Ну а если речь действительно о ЧН, то необходимо не только установить группировку ГГ, но и в свойствах самой группировки обозначить, что она - группировка игрока. Делается это комплексным методом симуляции sim_board:set_actor_community() примерно так: sim_board.get_sim_board():set_actor_community("dolg") Инструмент Ссылка на комментарий
NL-Vincenz 12 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 @Kirgudu, Нет, это ТЧ. Функцию нашел на просторах интернета. Добавлено Kirgudu, 22 Мая 2015 Хм... Я, конечно, с ТЧ не работал, только с ЧН, но разве в ТЧ есть группировки? Точнее, разве в них можно вступить? Ладно, возможно кто-то более сведущий тут поможет. Ссылка на комментарий
UnLoaded 313 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 (изменено) ГГ не перемещается в группировку в зависимости от выбранного диалога. В ф-циях вроде ошибки нет, соответствуют прототипам из оригинала(если конечно отсутствие скобки в строке "printf ("ACTOR NOW IN ACTOR_DOLG COMMUNITY"здесь должна быть закрывающая скобка" просто ошибка копи\пасты). Соответственно вопрос - а ты уверен, что ф-ции вызываются из диалога ? Вставь в тело каждой обычную выдачу сообщения, типа local text = "идем в Долг" news_manager.send_tip(db.actor, text, nil, nil, 30000) сделай проверку. Изменено 22 Мая 2015 пользователем UnLoaded Добавлено Kirgudu, 22 Мая 2015 Да-да, меня тоже отсутствие скобок после printf смутило. Но автор не писал о каких-либо вылетах - только о невступлении. 1 1 Ссылка на комментарий
NL-Vincenz 12 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 @UnLoaded, Сделал проверку, функция не вызывается из диалога. Столкнулся с таким впервые. Скелет диалога в порядке вроде. Ссылка на комментарий
Kirgudu 1 204 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 @NL-Vincenz, а действительно, проверь наличие закрывающих скобок. Вполне возможно, что из диалога вылета не будет, но и функция не запустится. 1 Инструмент Ссылка на комментарий
Silver Raven 197 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 (изменено) В приведенной ниже схеме очень странно проигрывается прописанный звук - многократно повторяясь, с сильным эффектом эхо. Отмечу сразу, что проблема не в самом файле, т.к. он, как и все используемые мной звуки имеет валидные OGG комментарии, да и подмена на любой другой, проблемы не решает. ЕАХ тут так-же не виноват. Корректно звук проигрывается только при установке on_value = 9 - но это по сути конец отсчета, гг уже мертв. [logic] active = sr_idle@biohazard_start_timer [sr_idle@biohazard_start_timer] on_info = {+lab_x7_ventilation_system_worked} nil on_timer = 4000 | sr_idle@biohazard_start [sr_idle@biohazard_start] on_actor_inside = %=lab_x7_biohazard_check_actor_outfit% {-lab_x7_actor_have_bioprotection_outfit} sr_timer@no_bioprotection_outfit, %=lab_x7_biohazard_check_actor_outfit% {+lab_x7_actor_have_bioprotection_outfit} sr_timer@with_bioprotection_outfit [sr_timer@no_bioprotection_outfit] type = dec start_value = 156000 on_value = 9000 | %=play_snd(actor\breath_1)% | 0 | nil %=aes_kill_actor% on_actor_outside = sr_idle@biohazard_start on_info = {+lab_x7_ventilation_system_worked} nil string = lab_x7_biohazard_attention [sr_timer@with_bioprotection_outfit] type = dec start_value = 241000 on_value = 9000 | %=play_snd(actor\breath_1)% | 0 | nil %=aes_kill_actor% on_actor_outside = sr_idle@biohazard_start on_info = {+lab_x7_ventilation_system_worked} nil string = lab_x7_biohazard_attention Изменено 22 Мая 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Kirgudu 1 204 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 (изменено) , on_value при type = dec срабатывает, если текущее значение меньше или равно установленного (соответственно, при type = inc - если больше или равно). Поскольку схема продолжает работать вплоть до значения счётчика, равного нулю, звук запускается при каждой проверке. Чтобы этого избежать, можно добавить дополнительное блокирующее условие, например выдачу инфопорции при первом проигрыше и проверку наличия этой инфопорции. Примерно так (судя по скриптам, должно работать): on_value = 9000 | {-stop_breath} %=play_snd(actor\breath_1) +stop_breath% | 0 | nil %=aes_kill_actor% А хотя нет, там будет чуть сложнее. Надо, чтобы он дышал постоянно, но не часто. Тут надо подумать, но направление мыслей я тебе дал. Изменено 22 Мая 2015 пользователем Kirgudu Инструмент Ссылка на комментарий
Silver Raven 197 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 (изменено) @Kirgudu, я так понимаю, необходимо что-то вроде этого? on_value = 9000 | {-biohazard_actor_death_breath_snd} %=play_snd(actor\breath_1) +biohazard_actor_death_breath_snd% | 0 | nil %=aes_kill_actor% См. выше дополнение. Это примерно то, что нужно, но не совсем, так как звук проиграется только один раз. Это, конечно, устроит, если он длиной 9000. А если меньше, надо будет доработать. Kirgudu Мне именно это и нужно. Время до конца отсчета согласуется с длинной звукового файла. Твое дополнение сверху не заметил. Еще кое-что. На левеле бродят заспавненные крысы, с единой для всех логикой: [smart_terrains] none = true Как бы возрождать только убитых, по имени в спавне, с той же логикой, через n-ое кол-во часов, при условии, что ГГ не находится на данном левеле в этот момент. Не хочу их привязывать к гулагам и т.п. Городить что-то монструозное, вроде: убили - выдать инфопорцию, запустить таймер - по окончании, при условии отсутствия ГГ на локации, заспавнить через [spawner] - так же не хочется. (не знаю, правда, может-ли это сработать в принципе, но других мыслей пока нет.) Изменено 22 Мая 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
UnLoaded 313 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 Как бы возрождать только убитых, по имени в спавне, с той же логикой, через n-ое кол-во часов, при условии Так, наверное, надо смотреть в сторону респавнеров - их для того и нужно, чтоб пополнять убыль популяции мобов... Ссылка на комментарий
Winsor 177 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 Уважаемые форумчане, те кто прошел этот тернистый путь -поделитесь примером использования CUIScrollView и добавлением в него своих CUIStatic... на данный момент собственные потуги --inventory_scroll - CUIScrollView 400x300 например local section="vodka" local x = system_ini():r_u32(section, "inv_grid_x")*50 local y = system_ini():r_u32(section, "inv_grid_y")*50 local w = system_ini():r_u32(section, "inv_grid_width")*50 local h = system_ini():r_u32(section, "inv_grid_height")*50 local static=CUIStatic() static:SetWindowName(section) static:SetAutoDelete(true) static:InitTexture("ui\\ui_icon_equipment") static:SetOriginalRect(x, y, w, h) static:SetStretchTexture(true) static:Init(x,y,w/2,h/2) --нужно ли это делать для контрола внутри скролла? inventory_scroll:AddWindow(static,true) inventory_scroll:ScrollToBegin() после отображения бутылки водки закончились вылетом с 0023:05809A68 xrGame.dll 0023:05728D22 xrGame.dll0023:05728D22 xrGame.dll0023:057285D8 xrGame.dll0023:057285D8 xrGame.dll0023:05739C5D xrGame.dll0023:00637041 xrLUA.dll, luabind::detail::get_class_name()0023:0063E918 xrLUA.dll, luabind::detail::class_rep::function_dispatcher()0023:0061A772 xrLUA.dll, lua_getinfo()0023:00612115 xrLUA.dll, lua_call()0023:0061AB08 xrLUA.dll, lua_yield()0023:00643AF1 xrLUA.dll, luabind::detail::pcall() Благодарю за помощь! может водку рисовать только с колбасой и батоном вместе надо? отдельно нельзя!!!! Ссылка на комментарий
nego 35 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 @UnLoaded, Сделал проверку, функция не вызывается из диалога. Столкнулся с таким впервые. Скелет диалога в порядке вроде. У меня ГГ в вояки переходит -- Вступление в Вояки function actor_set_military(actor, npc) printf("ACTOR NOW IN [MILITARY] COMMUNITY") if db.actor then db.actor:set_character_community("military", 0, 0) end return true end группировка в квадратных скобках. Попробуй так: function nl_actor_set_dolg (actor, npc) printf ("ACTOR NOW IN [ACTOR_DOLG] COMMUNITY") if db.actor then db.actor:set_character_community ("actor_dolg", 0, 0) end return true end function nl_actor_set_freedom (actor, npc) printf ("ACTOR NOW IN [ACTOR_FREEDOM] COMMUNITY") if db.actor then db.actor:set_character_community ("actor_freedom", 0, 0) end return true end Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч. Ссылка на комментарий
Silver Raven 197 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 (изменено) @UnLoaded, респавн не подходит для данного случая, т.к. в его обязательные условия входит: 1. На локации обязательно должен быть хоть один гулаг для респавнящихся NPC и мутантов, так как количество NPC для респавна, ориентируется по доступным местам в гулагах.2. Респавн производится, только если под гулагами есть доступные работы. А я уже писал, что не хочу "прибивать гвоздями" гулагов крыс на локациях. Изменено 22 Мая 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Zander_driver 10 335 Опубликовано 22 Мая 2015 Поделиться Опубликовано 22 Мая 2015 , Стесняюсь спросить, а что мешает допустим при каждом входе актора на уровень, проверить сколько на этой локации крыс, и доспавнить скриптом рандомно по локации недостающее количество? У меня вопрос такого характера. Есть в папке sounds энное число файлов по разным папкам. Есть подозрение что какие-то из них не были прогнаны через СДК, т.е. в них не хватает каких-то необходимых для игры данных. среди прочего это приводит к вылетам при обращении игры к этим файлам. каким инструментом можно вычислить все файлы нуждающиеся в обработке? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти