Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Expropriator 2 118 Опубликовано 20 Августа 2016 Поделиться Опубликовано 20 Августа 2016 @Silver Raven, это же прям как ЗП ченджер от проводника, либо от рестриктора. Ссылка на комментарий
Kondr48 314 Опубликовано 20 Августа 2016 Поделиться Опубликовано 20 Августа 2016 (изменено) Ну телепортировать там, что-ли. Заблочить управление, убрать худ, затемнить экран построцессом. И наверх. local a = vector() -- Задаем координаты a.x = -50 a.y = -3 a.z = -488 db.actor:set_actor_position(a) db.actor:set_actor_direction(0) Kondr48, меня интересует приоритет? Это очень важно мне знать, на будущее. Что первично, родная задача или прикреплённый конфиг? Что значит "родная задача"? Всё, что можно добавить на уровне скриптов/логики работать будет, т.к движок штатно эту возможность поддерживает.. Если нет, и захотите её добавить на уровне движка, то какая строка первой у вас будет написана, такая первай и сработает. Вопрос странный конечно. Kondr48, нет, скриптовый ЛЧ я не хочу юзать. Он работает через одно известное место... Нормально он работает. Изменено 20 Августа 2016 пользователем Kondr48 Ссылка на комментарий
Expropriator 2 118 Опубликовано 20 Августа 2016 Поделиться Опубликовано 20 Августа 2016 @Kondr48, да я вообще туплю, и не про скриптовой спрашиваю. Я сам проверю на практике. Добавлено BFG, 20 Августа 2016 Не ФЛУДИМ !!! Ссылка на комментарий
BFG 7 582 Опубликовано 20 Августа 2016 Поделиться Опубликовано 20 Августа 2016 (изменено) Может, как-то изменить местоположение гг? Ну телепортировать там, что-ли. Заблочить управление, убрать худ, затемнить экран построцессом. Просто посмотри как сделан переход в оригинале ТЧ с БУМа на ЧАЭС-2, после разговора с О-Сознанием. Изменено 20 Августа 2016 пользователем BFG 2 "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Silver Raven 197 Опубликовано 20 Августа 2016 Поделиться Опубликовано 20 Августа 2016 Просто посмотри как сделан переход в оригинале ТЧ с БУМа на ЧАЭС-2, после разговора с О-Сознанием. Собственно, вот эта функция, вот только где координаты места телепортации? -- Мы отказываемся вступить в осознание, нас переносит на вторую станцию function osoznanie_decline(npc, actor) db.actor:disable_info_portion("oso_init_dialog") npc:stop_talk() actor:stop_talk() xr_effects.enable_ui(db.actor, nil) local point = patrol("mon_jump_aes2_walk") local look = patrol("mon_jump_aes2_look") db.actor:set_actor_position(point:point(0)) local dir = look:point(0):sub(point:point(0)) db.actor:set_actor_direction(-dir:getH()) end aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Карлан 1 049 Опубликовано 20 Августа 2016 Поделиться Опубликовано 20 Августа 2016 К ЛЧ нельзя "подкинуть" логику. В стандартном понимании нельзя. То есть функционал xr_logic, в широком же смысле LC наследуется от рестриктора, соответственно ничто ему не чуждо. И если придумать схему для LC, то и кастом дату ему можно будет не бездумно заполнять. Посмотрите ставится ли игра на паузу при вызове месайдж бокса, если нет, то значит с вероятностью в 99% у НЕ тихих переходов ваши функции успеют отработаться, и тот же sr_idle будет иметь смысл. На оригинале можно сделать псевдо-LC с логикой на основе рестриктора. Это вполне нормальный трюк. Так же можно выставлять таймер до телепорта ГГ, пока нужные функции не отработаются. Хотя я все-таки собираюсь написать нормальную логическую схему. На исходниках я сделал, во-первых, нормальную функцию спавна LC, во-вторых делал функции включения/отключения. И с LC стало работать просто превосходно. Можно не удалять, а просто выключить, еще захомутать его меточным менеджером каким-нибудь и вся эта телега с LC будет управляться однострочным кодом. @Silver Raven, метод point возвращает вектор, это и есть координаты. Ссылка на комментарий
UnLoaded 313 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 И наверх. А там в ЛЧ с переходом без запроса (silent mode). Все эти извращения упираются в не желание использовать скриптовые LC. Хотя, с учетом наличия нормальных модулей работы с нет-ракетами, создание скриптового LC не представляет ни какой сложности. Если уж такой напряг с скриптованием, могу дать свою готовую ф-цию для скриптового спавна LC. Тока в ней используется модуль нет-пакетов от Artos. Ссылка на комментарий
Mr. KoT 43 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 Никак не пойму одно - как правильно распаковать игру и редактировать файлы. Другие мне писали - нужно распаковать геймдату игры в отдельную папку, например, UNPACK. Потом отредактировать файлы, написать, наприме, пусть будет диалог или квест. Написали. Все. Потом что? Меня интересуют такие вопросы: 1. Куда деть файлы с папки unpack? 2. Куда деть и поместить отредактированные файлы (написанный квест или диалог)? Большое спасибо за помощь! Добавлено Eugen81, 21 Августа 2016 1. Оставить там, где они лежат - пригодятся, чтобы каждый раз заново не распаковывать. 2. Создать в корне игры (напр. c:\Games\S.T.A.L.K.E.R\) папку gamedata и закинуть в нее свои файлы, соблюдая пути (напр., если в распакованных путь c:\распаковка\config\gameplay\мой_файл.xml, то в gamedata кидай config\gameplay\мой_файл.xml) Ссылка на комментарий
Kondr48 314 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 1. Оставить на месте или удалить. По желанию. 2. В папку gamedata (если её нет - создайте). Но вообще это совсем основы. Неужели туторов нету? Ссылка на комментарий
Helgi 37 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 (изменено) Никак не пойму одно - как правильно распаковать игру и редактировать файлы. Попробуй "stalker universal extractor". Хороший распаковщик, удобный и простой в использовании. Все распакованные файлы будут в директории игры и в отдельной папке. Название папки будет "UEgamedata". Если хочешь делать с нуля, то создай свою gamedata (в директории) и перекопируй туда все содержимое из папки с распакованными файлами (или те, которые собираешься изменять), ну а там уже и начинай работать. Только бэкапы делай. Опять же, это удобно тем, что у тебя не будет путаницы между разными папками и копиями, а-ля "мои файлы"/"мой_файл.ltx" и т.д., что потом придется переименовывать, вставлять, копировать 200 раз, а если какая-то ошибка, то опять все по новой. Изменено 21 Августа 2016 пользователем Helgi 2 Ссылка на комментарий
AndrewMor 527 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 (изменено) Пытаюсь новому НПС прописать повторяющиеся квесты подай/принеси, делаю другому персу вместо Сахарова на Янтаре. Вроде в task_manager все прописал, story_id указал. Но почему-то такая странная байда получается. Список заданий у перса в диалоге есть, а у ГГ - нету. https://yadi.sk/i/7QBcTk1cuNP6d Изменено 21 Августа 2016 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 @AndrewMor, к сожалению мы не Ванги, и узнать что там у тебя не так прописанно - не можем. Сверься со статьёй - http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%9E%D0%B4%D0%BD%D0%BE%D1%82%D0%B8%D0%BF%D0%BD%D1%8B%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D1%8B_%D0%B4%D0%BB%D1%8F_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_NPC Не соответствует правилам. Ссылка на комментарий
Silver Raven 197 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 (изменено) Где-то в этой логике косяк, наглухо ее вешающий.: [logic] active = ph_idle@wait_to_using_lift_called_button [ph_idle@wait_to_using_lift_called_button] on_info = {!on_actor_not_in_zone(lab_x7_lift_spase_restrictor)} ph_idle@using_lift_called_button [ph_idle@using_lift_called_button] on_use = %=play_snd(alex_mod\devices\lift_called_button)% tooltip = lab_x7_use_lift_called_button nonscript_usable = true on_timer = 5000 | ph_idle@wait_to_using_lift_called_button | 2000 | %+lab_x7_actor_using_lift_called_button% (Как должно работать: если ГГ не в зоне lab_x7_lift_spase_restrictor, тогда при юзании объекта на который завязана логика, проиграется звук lift_called_button и спустя 2 сек. будет выдан инфопоршень lab_x7_actor_using_lift_called_button, а спустя пять вся схема возвращается в начальное состояние) З.Ы. Не копайтесть в логике в час ночи. Изменено 21 Августа 2016 пользователем Silver Raven aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Expropriator 2 118 Опубликовано 21 Августа 2016 Поделиться Опубликовано 21 Августа 2016 (изменено) @Silver Raven, кто такие логики делает? У тебя что боты кнопки юзают? Две несовместимые вещи: рестриктор фиг знает где, и кнопка, которую фиг включишь, если в зоне. Изменено 21 Августа 2016 пользователем Дизель Ссылка на комментарий
AndrewMor 527 Опубликовано 22 Августа 2016 Поделиться Опубликовано 22 Августа 2016 к сожалению мы не Ванги, и узнать что там у тебя не так прописанно - не можем. Спасибо за ссылку, дома переделаю. Хотя вопросы уже появились. Например, почему task_manager.ltx в статье не упоминается? Сталкер - наше всё! Ссылка на комментарий
Silver Raven 197 Опубликовано 22 Августа 2016 Поделиться Опубликовано 22 Августа 2016 Так, все что мог поправил и протестировал. Вылетов нет, но вся нижеописанная логика "висит": 1. Кнопка вызова лифта: [logic] active = ph_idle@using_lift_call_button [ph_idle@using_lift_call_button] on_use = {=on_actor_not_in_zone(lab_x7_lift_teleport_to_level_changer)} %=play_snd(lift_call_button)% tooltip = lab_x7_use_lift_call_button nonscript_usable = true on_timer = 2000 | %+lab_x7_actor_using_lift_call_button% | 5000 | ph_idle@using_lift_call_button 2. Панель управления внутри лифта: [logic] active = ph_idle@wait_to_using_lift_control_panel [ph_idle@wait_to_using_lift_control_panel] on_info = {+actor_arrived_in_lab_x7} ph_idle@set_timer_to_use_lift_control_panel on_info2 = {=actor_in_zone(lab_x7_lift_teleport_to_level_changer) -actor_arrived_in_lab_x7} ph_idle@using_lift_control_panel [ph_idle@set_timer_to_use_lift_control_panel] on_timer = 5000 | %=disable_actor_arrived_in_lab_x7_info_portion% ph_idle@using_lift_control_panel [ph_idle@using_lift_control_panel] on_use = %=disable_input =disable_ui =play_snd(lift_control_panel)% tooltip = lab_x7_use_lift_control_panel nonscript_usable = true on_timer = 4000 | %+actor_leaving_lab_x7% | 3000 | %=run_cam_effector("teleport":2006:false)% | 0 | %+lab_x7_change_actor_position_to_level_changer% 3. Двери лифта: [logic] active = ph_button@lift_doors_closed [ph_button@lift_doors_closed] anim_blend = true anim = idle_close on_info = {+actor_arrived_in_lab_x7} ph_button@lift_doors_opening %=play_snd(lift_doors_start)% on_info2 = {+lab_x7_actor_using_lift_call_button} ph_button@lift_doors_opening %=play_snd(lift_doors_start)% [ph_button@lift_doors_opening] anim_blend = true anim = open on_timer = 3030 | ph_button@lift_doors_opened %=play_snd(lift_doors_stop)% [ph_button@lift_doors_opened] anim_blend = true anim = idle_open on_timer = 8000 | ph_button@lift_doors_closeing %=play_snd(lift_doors_start)% on_info = {+actor_leaving_lab_x7} ph_button@lift_doors_closeing %=play_snd(lift_doors_start)% [ph_button@lift_doors_closeing] anim_blend = true anim = close on_timer = 3030 | ph_button@lift_doors_closed %=play_snd(lift_doors_stop)% Прочее барахло, завязанное на лифт: [logic] active = sr_idle@check_change_actor_position_to_level_changer [sr_idle@check_change_actor_position_to_level_changer] on_info = {+lab_x7_change_actor_position_to_level_changer} sr_teleport@change_actor_position_to_level_changer [sr_teleport@change_actor_position_to_level_changer] point1 = lab_x7_actor_teleport_to_level_changer_walk look1 = lab_x7_actor_teleport_to_level_changer_look timeout = 0 В общем, выручайте, кто-как может. З.Ы. Если потребуется, дам более подробное описание того, как в теории должна работать та или иная логика. aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 22 Августа 2016 Поделиться Опубликовано 22 Августа 2016 Например, почему task_manager.ltx в статье не упоминается? Внимательнее надо быть. Он упоминается внизу, где обсуждается возможность добавления новых квестов. В статье лишь описан метод подключения функционала таких квестов для нового НПЦ. Не соответствует правилам. Ссылка на комментарий
abramcumner 1 145 Опубликовано 22 Августа 2016 Поделиться Опубликовано 22 Августа 2016 Так, все что мог поправил и протестировал. Вылетов нет, но вся нижеописанная логика "висит":Добавь в эффекты отсылку сообщений - узнаешь, что работает, а что "висит". Ссылка на комментарий
Silver Raven 197 Опубликовано 22 Августа 2016 Поделиться Опубликовано 22 Августа 2016 (изменено) @abramcumner, прикрутил на каждое действие в логике вывод сообщений в консоль: 1. Кнопка вызова лифта: [logic] active = ph_idle@using_lift_call_button [ph_idle@using_lift_call_button] on_use = {=on_actor_not_in_zone(lab_x7_lift_teleport_to_level_changer)} %=play_snd(lift_call_button) =test_call_button% tooltip = lab_x7_use_lift_call_button nonscript_usable = true on_timer = 2000 | %+lab_x7_actor_using_lift_call_button% | 5000 | ph_idle@using_lift_call_button 2. Панель управления внутри лифта: [logic] active = ph_idle@wait_to_using_lift_control_panel [ph_idle@wait_to_using_lift_control_panel] on_info = {+actor_arrived_in_lab_x7} ph_idle@set_timer_to_use_lift_control_panel %=test_lift_control_panel_start% on_info2 = {=actor_in_zone(lab_x7_lift_teleport_to_level_changer) -actor_arrived_in_lab_x7} ph_idle@using_lift_control_panel [ph_idle@set_timer_to_use_lift_control_panel] on_timer = 5000 | %=disable_actor_arrived_in_lab_x7_info_portion =test_lift_control_panel_start_set_timer_to_use% ph_idle@using_lift_control_panel [ph_idle@using_lift_control_panel] on_use = %=disable_input =disable_ui =play_snd(lift_control_panel) =test_lift_control_panel_using% tooltip = lab_x7_use_lift_control_panel nonscript_usable = true on_timer = 4000 | %+actor_leaving_lab_x7% | 3000 | %=run_cam_effector("teleport":2006:false)% | 0 | %+lab_x7_change_actor_position_to_level_changer% 3. Двери лифта: [logic] active = ph_button@lift_doors_closed [ph_button@lift_doors_closed] anim_blend = true anim = idle_close on_info = {+actor_arrived_in_lab_x7} ph_button@lift_doors_opening %=play_snd(lift_doors_start) =test_lift_doors_idle_close% on_info2 = {+lab_x7_actor_using_lift_call_button} ph_button@lift_doors_opening %=play_snd(lift_doors_start)% [ph_button@lift_doors_opening] anim_blend = true anim = open on_timer = 3030 | ph_button@lift_doors_opened %=play_snd(lift_doors_stop) =test_lift_doors_onening% [ph_button@lift_doors_opened] anim_blend = true anim = idle_open on_timer = 8000 | ph_button@lift_doors_closeing %=play_snd(lift_doors_start) =test_lift_doors_idle_open% on_info = {+actor_leaving_lab_x7} ph_button@lift_doors_closing %=play_snd(lift_doors_start)% [ph_button@lift_doors_closing] anim_blend = true anim = close on_timer = 3030 | ph_button@lift_doors_closed %=play_snd(lift_doors_stop) =test_lift_doors_closing% Прочее барахло, завязанное на лифт: [logic] active = sr_idle@check_change_actor_position_to_level_changer [sr_idle@check_change_actor_position_to_level_changer] on_info = {+lab_x7_change_actor_position_to_level_changer} sr_teleport@change_actor_position_to_level_changer %=test_lift_teleport_to_level_changer% [sr_teleport@change_actor_position_to_level_changer] point1 = lab_x7_actor_teleport_to_level_changer_walk look1 = lab_x7_actor_teleport_to_level_changer_look timeout = 0 xr_effects: function test_call_button() local c = get_console() c:execute("test_call_button. done!") end function test_lift_control_panel() local c = get_console() c:execute("test_lift_control_panel. done!") end function test_lift_control_panel_start() local c = get_console() c:execute("test_lift_control_panel_start. done!") end function test_lift_control_panel_set_timer_to_use() local c = get_console() c:execute("test_lift_control_panel_set_timer_to_use. done!") end function test_lift_control_panel_using() local c = get_console() c:execute("test_lift_control_panel_using. done!") end function test_lift_doors_idle_close() local c = get_console() c:execute("test_lift_doors_idle_close. done!") end function test_lift_doors_close() local c = get_console() c:execute("test_lift_doors_close. done!") end function test_lift_doors_opening() local c = get_console() c:execute("test_lift_doors_opening. done!") end function test_lift_doors_idle_open() local c = get_console() c:execute("test_lift_doors_idle_open. done!") end function test_lift_teleport_to_level_changer() local c = get_console() c:execute("test_lift_teleport_to_level_changer. done!") Теперь лог изобилует ошибками: ! Unknown command: test_lift_doors_idle_close. ! Unknown command: test_lift_control_panel_start. ! Unknown command: test_lift_doors_idle_close. * MEMORY USAGE: 272793 K FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...a.l.k.e.r. - trilogy\shoc\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: Scheduler tried to update object lab_x7_doors_lift FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...a.l.k.e.r. - trilogy\shoc\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: Scheduler tried to update object lab_x7_doors_lift_0000 FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...a.l.k.e.r. - trilogy\shoc\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: Scheduler tried to update object lab_x7_lift_control_panel Из всего, кажись, пытаются работать только двери лифта. Изменено 22 Августа 2016 пользователем Silver Raven aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
abramcumner 1 145 Опубликовано 22 Августа 2016 Поделиться Опубликовано 22 Августа 2016 (изменено) @Silver Raven, одна ошибка из-за описки =test_lift_doors_onening. Другие сходу не нашел. Изменено 22 Августа 2016 пользователем abramcumner Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти