Новое на сайте:
Новости:
Файлы:
Статьи:
Топ пользователей:
Обновления сайта:
Группа "Гости" не имеет право просмотра модуля
Модератор форума: romale |
Форум S.T.A.L.K.E.R. - Моддинг Разбираем S.T.A.L.K.E.R. Разборочная комната ТЧ (Задаем вопросы по скриптам/конфигам и другим файлам игры) |
Разборочная комната ТЧ |
Дата: Вторник, 17.04.2012, 22:43
Сообщение #1
Вы задаёте интересующий вас вопрос и тот, кто может вам на него ответить, пишет свой ответ. Правила темы: 1. Прежде чем задать вопрос, желательно прочитать все предыдущие страницы темы. Даже если вы не найдете там нужного ответа - я уверен, вы узнаете много нового. Второй вариант - воспользоваться поиском по ключевому слову. 2. Вы можете задавать вопросы, только непосредственно касающиеся создания модификаций и редактирования файлов игры 3. Личные вопросы не допускаются 4. Отвечать на вопросы желательно достаточно развернуто, задевая все аспекты касающиеся конкретного вопроса 5. Отвечать вы можете только в том случае если уверены в правильности ответа, если не знаете - просто не отвечайте. Авторы неправильных, вводящих в заблуждение ответов будут наказываться. 6.Соблюдайте грамотность и правильность построения вопросов и ответов, во избежание их удаления. "Спасибо / пожалуйста / не знаю" и прочие односложные и не несущие смысловой нагрузки сообщения, будут удаляться немедленно, а их авторы - наказываться. Основная цель темы - помочь новичкам-модостроителям, второстепенная - свести на нет тенденцию создания новых тем по каждому интересующему новичков вопросу.
|
Дата: Воскресенье, 12.05.2013, 19:45
Сообщение #461
Graff46, вот функция перевода группировки во врага:
Код function enemyactor(community1, community2) relation_registry.set_community_goodwill ("monolith", "actor", -5000) end Здесь указан монолит, вместо него подставляем нужную группировку |
Дата: Воскресенье, 12.05.2013, 19:52
Сообщение #462
Цитата (KADAR) это торговля, а он за бартер за арты Моя невнимательность. Тогда искать диалоги нужного торговца, в его диалогах будут прописаны экшены на функцию, которая выдает/забирает у ГГ арты. Ну и редактировать ее по своему усмотрению. |
Дата: Воскресенье, 12.05.2013, 19:58
Сообщение #463
Эсминец, рассмотрим на примере Холода:
вот часть кода из скрипта new_dialog.script : здесь в строках Код flamethrower.relocate_n_items_section(actor, "ammo_7.62x25_ps", "in", 5) видно, что Холод выдает за мухоморы(кстати, мухомор можно тоже изменить на что-то другое, но тогда нужно будет в функции проверки наличия трех мухоморов у актора, тоже сделать изменения=== а именно в этой функции: Код function act_have_tri_grib() return new_dialog.item_much("mushroom",3) ~= false end Так что вместо патронов аптечек и антирадов можно вписать то что нужно Вам... |
Дата: Понедельник, 13.05.2013, 18:20
Сообщение #470
Есть вопросы:
1) Какой файл отвечает за иконку ГГ, когда на нем одета броня (где пишутся коэффициенты стойкости к какому-либо воздействию); 2) Я поднимаю предмет и тутже спавнятся НПС. Это происходит через инфопоршни или нет? Если через инфопоршни, то как это выглядит? |
Дата: Понедельник, 13.05.2013, 19:11
Сообщение #471
Цитата (TA-06) где пишутся коэффициенты стойкости к какому-либо воздействию [Frankenshtayn]Здесь не викторина, и не Одесса... Поэтому вопросом на вопрос не нужно отвечать. Если есть ответ - добавляем, если нечего сказать, не нужно постить флуд.[/Frankenshtayn] |
Дата: Понедельник, 13.05.2013, 19:48
Сообщение #472
TA-06, если ты о ТЧ, то иконка прописывается в файле configs/misc/outfit.ltx. Параметр full_icon_name. В нем можно увидеть название текстуры в роде npc_icon_novice_outfit (в данном случае, иконка сталкера в комбезе новичка). Это отсылка к файлу configs/ui/ui_icons_npc.xml.
Код <ui_texture> <file_name>ui\ui_icons_npc</file_name> <texture id="npc_icon_without_outfit" x="384" y="384" width="128" height="320" /> <texture id="npc_icon_novice_outfit" x="0" y="704" width="128" height="320" /> <texture id="npc_icon_bandit_outfit" x="0" y="384" width="128" height="320" /> <texture id="npc_icon_killer_outfit" x="256" y="704" width="128" height="320" /> <texture id="npc_icon_monolit_outfit" x="384" y="704" width="128" height="320" /> <texture id="npc_icon_specops_outfit" x="256" y="384" width="128" height="320" /> <texture id="npc_icon_military_outfit" x="640" y="384" width="128" height="320" /> <texture id="npc_icon_stalker_outfit" x="896" y="704" width="128" height="320" /> <texture id="npc_icon_scientific_outfit" x="768" y="704" width="128" height="320" /> <texture id="npc_icon_exo_outfit" x="128" y="704" width="128" height="320" /> <texture id="npc_icon_svoboda_light_outfit" x="640" y="704" width="128" height="320" /> <texture id="npc_icon_svoboda_heavy_outfit" x="128" y="384" width="128" height="320" /> <texture id="npc_icon_dolg_outfit" x="512" y="704" width="128" height="320" /> <texture id="npc_icon_dolg_scientific_outfit" x="512" y="384" width="128" height="320" /> <texture id="npc_icon_ecolog_outfit" x="896" y="384" width="128" height="320" /> <texture id="npc_icon_protection_outfit" x="768" y="384" width="128" height="320" /> </ui_texture> Каждая текстура определяется координатами из файла textures/ui/ui_icons_npc.dds |
Дата: Понедельник, 13.05.2013, 20:13
Сообщение #473
А если хочешь поменять кэффициенты стойкости к какому-либо воздействию то тебе сюда: Идешь по пути Папка с игрой/gamedata/configs/creatures/actor. Ищещь такие строчки
Выбираешь сложность на которой играешь и меняешь так, чтобы все значения были 0.0005. Потом ищещь такую строчки и и меняешь значения на 999 и все, ты бессмертный. Если хочешь поменять максимальный вес, то потом попросишь-напишу.
Сообщение отредактировал ASSUR - Понедельник, 13.05.2013, 20:14 |
Дата: Понедельник, 13.05.2013, 20:34
Сообщение #474
TA-06, по второму вопросу:
По поводу получения инфопоршня при взятии предмета. Открываем bind_stalker.script и ищем такую функцию: Код function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) if xrs_ai then xrs_ai.actor_item_take(obj) end --game_stats.update_take_item (obj, self.object) inventory.on_item_take(obj) end И вносим в нее такие изменения: Код function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) if obj and obj:section() == "взяли_предмет" then db.actor:give_info_portion("получили инфопоршень") end if xrs_ai then xrs_ai.actor_item_take(obj) end --game_stats.update_take_item (obj, self.object) inventory.on_item_take(obj) end Здесь, при взятии ГГ предмета с именем "взяли предмет"(ну например wpn_vintorez) получаем инфопоршень "получили инфопоршень"(например vzjali_vinto) Или, если нужно отследить несколько предметов, то приводим эту функцию к такому виду: Код local my_info_table = { предмет1 = "инфопоршень1", предмет2 = "инфопоршень2" } function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) if my_info_table[obj:section()] then db.actor:give_info_portion( my_info_table[obj:section()]) end end В данном случае, таблицу можно заполнять практически бесконечно. А уж при получении инфопоршня, можно произвести великое множество действий, от запуска эффектов и озвучки, до спавна НПС и монстров, и до... В общем, куда фантазия заведет. ЗЫ. Естественно свои инфопоршни нужно регестрировать в info_локация.xml |
Дата: Понедельник, 13.05.2013, 21:08
Сообщение #475
Есть ещё кое-что: ГГ подходит к НПС, тот вращает головой как монолитовец в Припяти, затем я с ним разговариваю и он совершает самоубийство. Проверьте, пожалуйста, правильно ли я сделал логику:
Сообщение отредактировал TA-06 - Понедельник, 13.05.2013, 21:42 |
Дата: Вторник, 14.05.2013, 01:04
Сообщение #479
TA-06, начнем по порядку.
Для начала - активная схема "ремарк" в общем не используется... Но если уж нет возможности распаковать аллспавн, и если данный НПС "просто одноразовое мясо", то ладно, можно попробовать. Код [logic] active = remark@zombied danger = danger_condition meet = meet Хорошо, должно работать...(если этого НПС не "спугнут", если его монстр "не потревожит", ну и т.д.) Далее: Код [remark@zombied] anim = trans_zombied no_move = true target = actor on_timer = 60000 meet = meet@zombied danger = danger_condition И что это означает:? Код on_timer = 60000 Т.е. через 60 секунд у тебя происходит непонятно что... В данном случае эта строка не нужна. Код meet_dialog = escape_lager_guard_start_dialog Хорошо, это уникальный диалог для данного НПС, есть такое в логике. Код on_actor_dist_ge = 30| %+talk_with_crazy% здесь - если ГГ отошел на 30 метров от данного НПС, получаем инфопоршень talk_with_crazy - это работает, если он нужен вообще. Код on_info = {+talk_with_crazy} remark@suicide |
| |||