КАК ИЗМЕНИТЬ НОСИМЫЙ ВЕС?




В файле \gamedata\config\creatures\actor.ltx находим переменную max_item_mass – это максимальный вес при достижении которго игрок перестает двигаться

max_walk_weight - максимальный вес, до достижения которого можно передвигаться

В файле \gamedata\config\ system.ltx изменяем переменную max_weight – это вес который игрок несет не напрягаясь.

 

Как убрать/увеличить время для обычных квестов?:

В файле gamedata\config\misc\task_manager.ltx найти и изменить все строки вида time = 86400

Чтобы совсем убрать лимит - просто закомментировать их (--)

 

Как убрать intro-ролики в начале?:

В свойствах ярлыка прописываем после пути к exe-шнику: -nointro

Получиться должно что то вроде(это как у меня):

"D:\Games\S.T.A.L.K.E.R. Shadow of Chernobyl\bin\XR_3DA.exe" -nointro

 

Как включить motion blur?:

В свойствах ярлыка прописываем после пути к exe-шнику: -mblur

В файле user.ltx(можно и в консоли) параметру r2_mblur присваиваем значение например 0.15

Работает только на DirectX 9.

 

Как увеличить время спринта?:

В файле actor.ltx меняем параметр sprint_koef.

Как поменять кол-во жизни монстрам?:

В файле m_*.ltx(где * - название монстра, например m_controller.ltx; находится в папке gamedata\config\creatures) меняем параметр health

 

Как повесить на пояс больше артефактов?:

В файле system.ltx изменяем параметр max_belt с 5 на 10 (max_belt = 10)

 

Ищем файл inventory_new.xml и в нём меняем

 

<dragdrop_belt x="645" y="136" width="410" height="60"

cell_width = "60" cell_height="60" rows_num="1" cols_num="5"/>

 

на

 

<dragdrop_belt x="590" y="118" width="410" height="104"

cell_width = "52" cell_height="52" rows_num="2" cols_num="5"/>

 

что соответствует 10 артефактам.

При желании поправив соответствующим образом файлы system.ltx и inventory_new.xml

можно получить 12,14,16 и более слотов под артефакты.

 

Создание новых веток диалога:

Создание новых веток диалога.

1) Списки веток диалогов содержатся в файлах вида gamedata/config/gameplay/character_desc_*.xml

 

Это например:

character_desc_zombied.xml

character_desc_stalker.xml

character_desc_g arbage.xml

итд.

 

Файлы character_desc_*.xml можно сравнить со стволом дерева диалогов.

В них перечисляется названия прикрепляемых веток диалогов

 

Например вот список веток диалога с Сидоровичем взятый из файла character_desc_escape.xml

 

<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>< br>

В свою очередь каждая ветка диалога также может ветвится.

 

2) Ветвление веток прописывается уже в других файлах.

Например ветвление веток диалога с Сидоровичем содержится в файле gamedata/config/gameplay/dialogs_escape.xml

Возьмем оттуда к примеру ветвление ветки escape_trader_jobs

(ветвление веток обычно очень большое поэтому я приведу только часть):

 

<dialog id="escape_trader_talk_info">

<precondition>escape_dialog.trader_has_talk_info _w r</precondition >

<has_info>tutorial_end</has_info>

<phrase_list>

<phrase id="1">

<text>escape_trader_talk_info_1</text>

<next>100</next>

<next>99</next>

<next>9995</next>

</phrase>

 

<phrase id="0">

<text>escape_trader_talk_info_0</text>

<next>1</next>

</phrase>

</phrase_list>

</dialog>

 

Здесь <precondition>…</precondition> - это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется.

Конкретно <precondition>escape_dialog.trader_has_talk_info _w r</precondition> из ветки escape_trader_talk_info есть обращение к функции trader_has_talk_info_wr находящейся в файле скрипте gamedata/scripts/escape_dialog*****ipt

 

Функция выглядит так:

 

function trader_has_talk_info_wr(trader, actor)

return true

end

 

Насколько понимаю она возвращает true только в случае если мы разговариваем с trader_ом т.е. с Сидоровичем.

Т.е проверкой условия <precondition>escape_dialog.trader_has_talk_info _w r</precondition> проверяется с кем ведется диалог,

и если диалог ведется с Сидоровичем в ветке <dialog id="escape_trader_talk_info"> по крайней мере этим условием пропускается в списк реплик.

Но для конкретной ветки может быть несколько precondition и других условий.

 

Далее <has_info>tutorial_end</has_info>Если я верно понимаю, это так же своего рода проверка условия В данном случае проверка на то закончена стадия tutorialа или нет. Т.е ветка допустится в список реплик если стадия tutorialа закончена.

 

А далее идут конкретные фразы содержащие ссылки на вытекающие фразы

 

Фраза:

 

<phrase id="0">

<text>escape_trader_talk_info_0</text>

<next>1</next>

</phrase>

 

это основа ветки escape_trader_talk_info.

(Вообще как я понял в любой основной ветке любого диалога фраза <phrase id="0"> будет основой из которой далее будет все вытекать)

 

<next>1</next> - это ссылка на вытекающую фразу <phrase id="1">:

 

<phrase id="1">

<text>escape_trader_talk_info_1</text>

<next>100</next>

<next>99</next>

<next>9995</next>

</phrase>

 

В свою очередь <next>100</next>, <next>99</next>, <next>9995</next> это ссылки на фразы веточки растущие из фразы

<phrase id="1">.

 

3) Текст каждой фразы содержится уже в четвертом файле. Для диалога с Сидоровичем тексты лежат в файле

gamedata/config/text/rus/stable_dialogs_escape.xml

 

<string id="escape_trader_talk_info_0">

<text>Есть несколько вопросов.</text>

</string>

<string id="escape_trader_talk_info_1">

<text>Спрашивай, только я ведь всего не знаю. Сам понимаешь, сижу тут целыми днями, а жизнь - она вся там, снаружи, в Зоне. Могу рассказать о Зоне вообще, а немного могу о ближайших окрестностях, где сам ходил.</text>

</string>

 

Эти строки содержат тексты для фраз <phrase id="0"> и <phrase id="1">

 

Итого диалоги разложены по 4 а то и более файлам.

 

Да кстати, путь по веткам может быть зацикленным если того требует диалог. Например так:

 

<phrase id="0">

<text>…</text>

<next>1</next>

<next>2</next>

</phrase>

<phrase id="1">

<text>…</text>

<next>11</next>

<next>12</next>

</phrase>

<phrase id="11">

<text>…</text>

<next>1</next> - Это возврат к фразе 1. (зацикливание)

<next>111</next>

</phrase>

 

Теперь пример практического применения того, о чем было сказано выше:

Добавим в диалог с Сидоровичем ветку своего собственного изготовления.

 

Например такую:

Меченый: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?

Сидорович: Чего?!!

Меченый: Ты их совсем, совсем не кормишь?

Сидорович: В следующий раз, как пойдешь в зону, бери-ка вместо водяры побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился… Шутник.

 

1) В файле gamedata/config/gameplay/character_desc_escape.xml в конце списка веток для trader_а суем свою ветку с произвольным названием. (например <actor_dialog>escape_trader_letat_gusi</actor_dialog>)

 

Т.е у нас получится так

<specific_character id="escape_trader" no_random = "1">

<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>< br> <actor_dialog>escape_trader_letat_gusi</actor_dialog>

</specific_character>

Записываем изменения и с файлом character_desc_escape.xml все.

 

2) Теперь берем файл gamedata/config/gameplay/dialogs_escape.xml

 

Диалогу:

 

Меченый: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?

Сидорович: Чего?!!

Меченый: Ты их совсем, совсем не кормишь?

Сидорович: В следующий раз, как пойдешь в зону, бери-ка вместо водяры побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился… Шутник.

 

Который мы хотим реализовать будет соответствовать такая структура:

 

<phrase id="0">

<text>escape_trader_ letat_gusi_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>escape_trader_ letat_gusi_1</text>

<next>2</next>

</phrase>

<phrase id="2">

<text> escape_trader_ letat_gusi_2</text>

<next>3</next>

</phrase>

<phrase id="3">

<text> escape_trader_ letat_gusi_3</text>

</phrase>

 

условия наличия ветки в диалоге можно взять из ветки <dialog id="escape_trader_talk_info">

Т.е берем условия <precondition>escape_dialog.trader_has_talk_info _w r</precondition > и <has_info>tutorial_end</has_info>

(Можно было конечно прописать в скрипте еще одно условие для ветки, чтоб она появилась только один раз,

а потом больше не возникала. Но об этом как нибудь позже допишу.)

 

В итоге у нас получилась такая структура:

 

<dialog id="escape_trader_letat_gusi">

<precondition>escape_dialog.trader_has_talk_info _w r</precondition >

<has_info>tutorial_end</has_info>

<phrase_list>

<phrase id="0">

<text>escape_trader_letat_gusi_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>escape_trader_letat_gusi_1</text>

<next>2</next>

</phrase>

<phrase id="2">

<text> escape_trader_letat_gusi_2</text>

<next>3</next>

</phrase>

<phrase id="3">

<text> escape_trader_letat_gusi_3</text>

</phrase>

</phrase_list>

</dialog>

 

Которую нужно вставить в любом месте между dialog id_шниками других веток в файле dialogs_escape.xml.

Главное не промахнутся и засунуть именно между, а не внутрь одного из dialog id

Все что находится между тегами <dialog id="***"> и </dialog> это внутенности конкретного dialog id

Т.е совать наш

<dialog id="escape_trader_letat_gusi">

….

</dialog>

 

надо

 

<dialog id="*** ">

</dialog>

здесь

<dialog id="*** ">

</dialog>

 

но

 

<dialog id="*** ">

не здесь

</dialog>

 

После сохранения внесенных изменений с файлом dialogs_escape.xml все.

 

3) Теперь вбиваем сами текстовички в файле gamedata/config/text/rus/stable_dialogs_escape.xml

 

 

Т.е нам надо в файле stable_dialogs_escape.xml вставить такую конструкцию:

 

<string id="escape_trader_letat_gusi_0">

<text>Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?</text>

</string>

<string id="escape_trader_letat_gusi_1">

<text>Чего?!!</text>

</string>

<string id="escape_trader_letat_gusi_2">

<text>Ты их совсем, совсем не кормишь?</text>

</string>

<string id="escape_trader_letat_gusi_3">

<text>В следующий раз, как пойдешь в зону, бери-ка вместо водяры побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился… Шутник.</text>

</string>

 

в любом месте между уже существующими string id

 

<string id="*** ">

</string>

сюда

<string id="*** ">

</string>

 

Но не внутрь одного из существующих string id

<string id="*** ">

не сюда

</string>

 

После сохранения изменений, у нас все готово. Можно грузить игру и смотреть что получилось.

 

Оружие загораживает пол-экрана. Как это исправить?:

В файле конфига выбранного оружия меняем:

position = 0, -0.075, 0; было 0,0,0

zoom_offset = -0.112400,0.091800,-0.115000; было -0.112400,0.016800,-0.115000

 

Где найти файл user.ltx?:

Для Windows XP в директории X:\Documents and Settings\All Users\ Общие документы \STALKER-SHOC

Для Windows Vista в директории X:\Users\Public\Documents\STALKER-SHOC

 

Как изменить силу врагов?:

В файле gamedata\config\creatures\actor.ltx найти строки

hit_probability_gd_novice = 0.20

hit_probability_gd_stalker = 0.30

hit_probability_gd_veteran = 0.40

hit_probability_gd_master = 0.50

Они отвечают за вероятность попадания по вам при разных уровнях сложн

 

 

Гармошка:

Для возврата в игру губной гармошки, ищем в папке gamedata\scripts файл xr_kamp*****ipt и открываем его блокнотом. Далее ищем строку -- играть на гармошке. Сам скрипт выглядит так:

-- играть на гармошке

-- if npcbject("harmonica_a") then

-- self.npc[npc_id].states["play_harmonica"] = true

-- self.npc[npc_id].states["wait_harmonica"] = true

-- self.kamp_states["pre_harmonica"] = true

-- self.kamp_states["harmonica"] = true

-- self.kamp_states["post_harmonica"] = true

-- else

self.npc[npc_id].states["play_harmonica"] = false

self.npc[npc_id].states["wait_harmonica"] = false

self.kamp_states["pre_harmonica"] = false

self.kamp_states["harmonica"] = false

self.kamp_states["post_harmonica"] = false

-- end

 

В данном случае знак -- означает, что строки скрипта игра не использует, а просто пропускает их, переходя к следующей части. Значит нужно убрать знак – из тех строк, которые нам нужны. Должно получится:

-- играть на гармошке

if npcbject("harmonica_a") then

self.npc[npc_id].states["play_harmonica"] = true

self.npc[npc_id].states["wait_harmonica"] = true

self.kamp_states["pre_harmonica"] = true

self.kamp_states["harmonica"] = true

self.kamp_states["post_harmonica"] = true

else

self.npc[npc_id].states["play_harmonica"] = false

self.npc[npc_id].states["wait_harmonica"] = false

self.kamp_states["pre_harmonica"] = false

self.kamp_states["harmonica"] = false

self.kamp_states["post_harmonica"] = false

end

Всё, теперь можете запускать игру и наслаждаться.*

 

Как менять скорострельность и удобность оружия?:

В папке gamedata/config/weapons в файлах конфигурации оружия ищи

 

control_inertion_factor

 

чем меньше параметр - тем выше удобство.

и

rpm - скорострельность.

 

Как положить оружие в другой слот?:

В папке gamedata/config/weapons в файлах конфигурации оружия ищи

SLOT и меняй на 1 (вместо ножа) или 2 (пистолетный слот)

Добавление новых опций в меню игры?:

Открываем файл gamedata\config\ui\ui_keybinding.xml. В нём находим строку

<group name="kb_grp_common">

и после неё пишем:

<command id="kt_turn_engine" exe="turn_engine"/>

<command id="kb_cam_1" exe="cam_1"/>

<command id="kb_cam_2" exe="cam_2"/>

<command id="kb_cam_3" exe="cam_3"/>

Таким образом в меню игры добавляются 4 новых опции, а именно: смена камеры и кнопка включения двигателя. Также можно добавлять сюда др. клавиши(если знать консольные команды)

 

Скрипты дверей:

Покажу вам на примере, как открыть дверь в саркофаге без дешифра) мы просто сделаем дверь открытой по умолчанию, этот трюк можно использовать в любом направлении, в том числе и для новых квестов

Идём в gamedata\config\scripts и ищем скрипт нужной двери или объекта, нам нужна дверь в саркофаге и это sar_door.ltx

Вот вам скрипт с моими комментариями, мои комментарии после символа;, в вашем скрипте они не нужны, так что удалите их если будете копировать отсюда...

 

[logic];Основное действие

active = ph_door@locked; При нажатии кнопки "Действия" выполняется скрипт [ph_door@locked]

 

[ph_door@locked]; То что выполняется сейчас

locked = true; Закрыто на замок, значение правда ("Закрыто", при нажатии на кнопку действия ничего не произойдёт)

closed = true; Прикрыта, правда ("Прикрыта", при нажатии на кнопку действия дверь октроется)

tip_open = tip_door_coded; Всплывающая подсказка "Дверь закодирована"

on_info = {=actor_has_decoder} ph_door@coded; При нажатии на кнопку действия идёт проверка есть ли декодер

 

[ph_door@coded]; Если есть декодер то...

locked = true;Закрыто, правда

closed = true;Прикрыто, правда

tip_open = tip_door_decode; Всплывающая подсказка "Декодировать"

on_info = {!actor_has_decoder} ph_door@locked

on_use = ph_door@decoding %+sar_access_decoding%; При начале декодирования, пошёл процесс декодирования и выполняется скрипт sar_access_decoding

 

[ph_door@decoding]; В процессе декодирования

locked = true

closed = true

tip_open = tip_door_decoding

on_info = {+sar_finish_decoding} ph_door@unlocked; Завершение скрипта sar_finish_decoding и выполнение ph_door@unlocked

 

[ph_door@unlocked]; Дверь разкодирована и открыта

locked = false

closed = false

show_tips = false

 

Если мы хотим увидеть правдивые концовки, но мы уже в саркофаге и у нас нет дешифра, то мы просто можем изменить везде

locked = false на true

closed = false на true

И в зависимости что вам надо и где можете менять и изменять, тут всё предельно просто и понятно...



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: