Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
losiara 13 Опубликовано 27 Октября 2013 Поделиться Опубликовано 27 Октября 2013 (изменено) VVV32768 Там через инфопоршень прописывать надо... Это в папке level, нужного тебе уровня:[level_scripts]script = svalkaЭто в папке scripts:function main()if not has_alife_info("controller_tubeman")thenalife():create("controller_tubeman",vector():set(69.456,1.29,95.033),239954,370)db.actor:give_info_portion("controller_tubeman")endend И инфопоршень нужен еще, тогда спавнится при каждом заходе на уровень, ну или какая там тебе функция нужна при каждом заходе...У меня таким образом появляется контролер в квесте, можно сделать что бы только 1 раз спавнился например по желанию... Изменено 27 Октября 2013 пользователем losiara 1 Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
_Val_ 2 225 Опубликовано 27 Октября 2013 Поделиться Опубликовано 27 Октября 2013 (изменено) @losiara, Какие-то условия еще нужны для этого. - НИ, первый заход на уровень? Для простоты пытался заспавнить ствол... Не работает, поршень не выдается. подразумевается имя которые вы указали Улыбнуло... Изменено 27 Октября 2013 пользователем _Val_ Ссылка на комментарий
Старлей 88 Опубликовано 27 Октября 2013 Поделиться Опубликовано 27 Октября 2013 losiaraА при чем тут проверка на инфу? Если ее нет, то функция должна выполняться по идее каждый раз при заходе на уровень. VVV32768, _Val_А вы попробуйте в конец _g.script добавить это: prefetch("rrr_spawn") Под rrr_spawn подразумевается имя которые вы указали в level_script'e. 1 Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
AndreySol 215 Опубликовано 27 Октября 2013 Поделиться Опубликовано 27 Октября 2013 (изменено) Имеется диалог построенный по такому шаблону: <dialog id="ляляляляля"> <phrase_list> <phrase id="0"> <text>Привет, сталкер !</text> <next>1</next> </phrase> <phrase id="1"> <text>Что надо от меня ?</text> <next>2</next> <next>4</next> </phrase> <phrase id="2"> <text>...............</text> <next>3</next> </phrase> <phrase id="3"> <text>...............</text> </phrase> <phrase id="4"> <text>...............</text> <next>5</next> </phrase> <phrase id="5"> <text>...............</text> </phrase> </phrase_list> </dialog> т.е. присутствует развилка - 2 или 4 фраза. И получается, что при отсутствии условий в каждой из них они доступны одновременно. Вопрос - как движок это обработает ? Во-первых, в следующий раз подобный пост без спойлера потру. Во-вторых, что мешает узнать проверив это собственно ручно? ColR_iT Изменено 27 Октября 2013 пользователем ColR_iT Ссылка на комментарий
AndrewMor 527 Опубликовано 27 Октября 2013 Поделиться Опубликовано 27 Октября 2013 Доброй ночи всем, словил вылет Expression : fatal errorFunction : CScriptEngine::lua_errorFile : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cppLine : 73Description : Arguments : LUA error: ...s.t.a.l.k.e.r\gamedata\scripts\dialog_manager.script:283: attempt to perform arithmetic on field 'phrase' (a string value) Предыстория: есть сталкер-трейдер, соответственно, конфиг торговли. Самое интересное, что при покупке чего-либо ассортимент не обновляется (save\load ничего не дают), а самое главное, если сохранится после покупки и поговорить - вышеописанный вылет. А диалог один единственный - стандартный hello_dialog. Собственно, вопрос один: что это за вылет, с чем связан. Сталкер - наше всё! Ссылка на комментарий
AndreySol 215 Опубликовано 27 Октября 2013 Поделиться Опубликовано 27 Октября 2013 Во-первых, в следующий раз подобный пост без спойлера потру. Во-вторых, что мешает узнать проверив это собственно ручно? Про спойлер забыл, извиняйте... Собственноручно у меня получилось нечто вроде рандома - то одна фраза, то другая, хотя я думал что должна выбираться первая по порядку. Потому и хотелось уточнить - это действительно вариант сделать рандомный выбор фраз, или так лучше не делать ? Ссылка на комментарий
losiara 13 Опубликовано 28 Октября 2013 Поделиться Опубликовано 28 Октября 2013 Старлей Проверка (лично мне) нужна для одноразового выполнения функции. Подробнее можно узнать у Malandrius, это он юзал этот способ... _Val_ Почему инфопоршень не выдается??? У меня проверяет и выдает. Если не выдается значит функция у тебя не стартует. Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
_Val_ 2 225 Опубликовано 28 Октября 2013 Поделиться Опубликовано 28 Октября 2013 Собственно говоря, я давно пользуюсь другим способом выдачи поршней при заходе на уровень. Поэтому особо вникать не хотелось. Сделал всё именно так, как описано в посте 11081. За исключением объекта спавна естественно. Ну понятно, что функция не запускается, раз поршень не выдается... Ссылка на комментарий
Карлан 1 049 Опубликовано 28 Октября 2013 Поделиться Опубликовано 28 Октября 2013 @losiara, да ну начерта фигней-то страдать? Пишешь проверку по level.name() и все, а такая порнуха как у тебя использовалась в некоторых модах 2008 года... Не, ну на вкус и цвет конечно...Но все же. Очень трудно бывает отследить ход и логику действий при твоем подходе, ковырял один мод такой, где использована подобная конструкция... эх и намучался, думайте о тех, кто будет ковырять ваши моды в конце-то концов 1 Ссылка на комментарий
Malandrinus 615 Опубликовано 28 Октября 2013 Поделиться Опубликовано 28 Октября 2013 Скрипты уровня использовали сами разрабы, но для специфических целей. Судя по остаткам отладочного кода в ТЧ, этот способ использовался для отладки сюжета, когда ты скачешь на уровень, а в этом скрипте выдаются все нужные инфопорции, чтобы продолжить игру с нужной точки. Вероятно, это использовалось в связке с вырезанной консольной командой перехода на другой уровень. В обычной игре от этой фишки в целом мало толку. Мне по крайней мере это ни разу не пригодилось. В самом деле, что такого может потребоваться делать при каждом заходе актора на какоё-то уровень? Да и как правильно здесь замечали, нынче много способов сделать это без таких извращений. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
AndreySol 215 Опубликовано 28 Октября 2013 Поделиться Опубликовано 28 Октября 2013 Два вопроса: 1). Если я правильно понимаю, то: репутация - это параметр ГГ по отношению к группировкам, а благосклонность - это параметр ГГ по отношению к конкретному НПСу ? 2). Имеется добавленный мною НПС, приписан к гулагу, ему прописаны квесты(не регулярные) для ГГ. При их успешном выполнении будет-ли ГГ автоматически(движково\по умолчанию) начисляться репутация и\или благосклонность ? Или надо самому начислять и то и другое по факту выполнения ? malandrinus при каждом заходе актора на какой-то уровень можно уточнение? Имеется в виду именно "заход на уровень", т.е. появление ГГ на уровне через какой-то из левел-чейнджеров или будет срабатывать и простая загрузка сохранения на этом уровне ? Ссылка на комментарий
Malandrinus 615 Опубликовано 28 Октября 2013 Поделиться Опубликовано 28 Октября 2013 (изменено) AndreySol,1. Репутация - это отдельное число, собственно репутация ГГ в глазах общественности. Ближайшим аналогом является карма в фоллауте. Благосклонность - это смотря что ты имеешь в виду. Есть personal goodwill, это личное отношение одного персонажа к другому. Есть community goodwill, соответственно отношение группировки к конкретному персонажу, есть ещё отношение группировки к группировке. Всё это плюс добавка от ранга складывается в одно число - итоговое отношение. Если оно больше нуля - персонаж "позеленеет", меньше - "покраснеет" и станет атаковать. Ноль - будет серый.Загляни в этот файл.config/creatures/game_relations.ltxТам в комментах разрабы написали полную формулу и там же все таблички, по которым вычисляются части этой формулы. 2. По-моему, любой эффект от задания надо прописывать в этом задании явно, как собственно эффект или эффект от фразы при сдаче задания. Впрочем, наверняка этого утверждать не буду, поскольку с заданиями и особенно с гулагами почти не разбирался.Заход на уровень - это попадание туда любым способом. Не помню только наверняка, сработает ли при повторном заходе. Вроде как сработает тоже. Но если уже находишься на уровне, то загрузка на этом уровне не приведёт к повторному срабатыванию. В общем неудобная и бесполезная штука - эти скрипты уровня. Изменено 28 Октября 2013 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
AndreySol 215 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 malandrinus 2. По-моему, любой эффект от задания надо прописывать в этом задании явно, как собственно эффект или эффект от фразы при сдаче задания А так называемые регулярные задания, ну типа как у Сидора - принеси то, убей того, найди это ? Там как идет начисление всех этих благосклонностей и репутации ? Ссылка на комментарий
Malandrinus 615 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 VVV32768, не совсем понятно, с чем ты не согласен. Если игрок уже находится на уровне и этот скрипт уже сработал, то второй раз он не сработает, пока не уйдёшь с уровня и не вернёшься на него ещё раз. С этим не согласен? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
VVV32768 299 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 (изменено) Но если уже находишься на уровне, то загрузка на этом уровне не приведёт к повторному срабатыванию А вот тут не соглашусь. В пределах уровня/локи срабатывает на любой заход, буть то просто переход на соседнюю локу или прямая загрузка с сейва, c добавлением префетча по схеме камрада Старлей. P.S. Извиняюсь, редакция постов иногда клинит. malandrinus я именно о повторной загрузке говорю. Изменено 29 Октября 2013 пользователем VVV32768 Безглючная работа компа и модов, зависит от присутствия у юзера драйверов mozgi.sys и pryami_hands.vxd. Ссылка на комментарий
Malandrinus 615 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 Там как идет начисление Понятия не имею. Надо смотреть в скрипт. Если вообще что-то начисляется, то либо во фразе диалога, где задание сдаёшь, либо в скрипте, который выполняется при сдаче задания (тег задания function_complete) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Карлан 1 049 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 (изменено) @AndreySol, так сложно в менеджер посмотреть? Вся награда и прибавки к репутации, рангу и etc. прописаны в task_manager.ltx и черпаются оттуда. При создании любого(!) квеста награда должна задаваться явно(!), как это уже говорилось выше, только в зависимости от типа квеста(т.н. однотипный, или же полностью свой) награда задается по разному, только и всего. Хотя если приколоться, то можно и свой аналог написать под свои нужды...ну тут уже воля фантазии. Сегодня/завтра покопаюсь с goodwill'ами, потестирую и напишу как что работает. Пока в теории видно, что функционал методов установки отношений хорошо настраивается, а так же не используется весь функционал, который прописан... правда работает он, или нет, я пока не знаю. Изменено 29 Октября 2013 пользователем Карлан Ссылка на комментарий
Карлан 1 049 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 (изменено) Особо не ковырялся, но вроде там все и так ясно, параметры пока не тестировал, внесу кое какие разъяснения. Коридор изменения коэффициента отношений относительно группировки -3000, 1000; относительно персонажа -1000; 1000, скоро посмотрю для гулагов этот диапазон. goodwill ничем не отличается от relation, просто relation завязан на константы ALife::ERelationType, эти константы можно менять в конфиге. goodwill(game_object*) и general_goodwill(game_object*) эквивалентные функции, по крайней мере я пока отличий не выявил. Для гулагов функции с goodwill применяются такие же, как к группировкам. Изменено 29 Октября 2013 пользователем Карлан 1 Ссылка на комментарий
Artos 99 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 (изменено) @Карлан, не стОит засорять топик и мозги другим подобными постами. Если уж так хочется донести до других то, что им неведомо, то "особо не ковырялся, но вроде там" ... "пока не тестировал" - ну ни как не выжется с "внесу кое какие разъяснения". Разъяснять свои домыслы оставь наверное себе, а в топик, если пишешь, то потрудись и покопаться и перепроверить! Даже цифры в файле game_relations.ltx говорят о том, что упомянутые тобою "коридор" для community_goodwill ну никак не меньше +-5000! А то, что в том же файле этот "коридор" поделен на диапазоны (terrible ... excellent , и т,п.) не означает, что за упомянутыми границами идут недопустимые значения. Аналогично и для "персонального" goodwill - не приводи цифры с потолка... Вот лучше бы перепроверил бы допустимые границы для "коридоров", т.к. не все в курсе когда увеличение приводит к сбросу в минус... И, заодно, перепроверил бы и пояснил бы другим, как зависят изменения персональных репутаций и/или благосклонностей, от групповых, дабы не возникало непоняток типа: "меняю/добавляю, а перс не становится дружелюбнее?" Изменено 29 Октября 2013 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Карлан 1 049 Опубликовано 29 Октября 2013 Поделиться Опубликовано 29 Октября 2013 (изменено) Artos, так я коридоры как раз на практике и получал, методами change_xxx менял goodwill для группировок и персонажей как в минус, так и в плюс. И вот по достижению этих границ у меня далее goodwill не шагал. Ну я пишу то, что получил сам, возможно я не прав. А по зависимостям все подробно описано в конфиге, тут уже только для особо одаренных разъяснения нужны я считаю. Ну а на вопросы "меняю/добавляю, а перс не становится дружелюбнее?" какой смысл отвечать? Групповой goodwill - это групповой, а персональный - это персональный, так ясное дело если у группировки goodwill -3000, а ты персу этой группировки кинешь +1000 то он как был врагом, так и останется. Все же я готов поспорить на счет неправильности моих коридоров, т.к. я практикой их получал, и конфиг это подтверждает(иными словами жду весомых аргументов): personal_goodwill_limits = -1000, 1000 community_goodwill_limits = -3000, 1000 Возможно максимальные коридоры +-5000, но заданы они именно так. P.S. пишу я не ради того что бы кого-то запутать/оповестить, а что бы корректировать русло своих ковыряний по поводу данных методов, а то видишь, я уже коридоры не те нашел, я же не знал. Ранее просто спрашивал, никто не ответил, вот приступил к изучению сам. Еще надо покопаться в конфиге получше и вывести зависимости отношений персональных благосклонностей к групповым. P.S.S. Можно сразу узнать, reputation_relations и rank_relations если прописать(в конфиге), то они будут учитываться? Просто как проверить на учитывание я пока смутно представляю... Возможно открываю америку, но вот это применимо для ТЧ: friend_kill_reputation = -40 neutral_kill_reputation = -15 enemy_kill_reputation = 0 ...продолжаю дальше ковырять конфиги. Изменено 29 Октября 2013 пользователем Карлан 1 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти