Перейти к контенту

Уроки по модостроению


Zeka1996Korneev

Рекомендуемые сообщения

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


Добавим в файл config\gameplay\encyclopedia_zone.xml новую статью:

<!-------------------------------- Activation - Basic ----------------------------->
<article id="zone_anomalies_activation_basic" name="zone_anomalies_activation-basic" group="Anomalies">
<texture x="500" y="150" width="100" height="100">ui_icon_photo</texture>
        <text>enc_zone_anomalies_activation_basic</text>
    </article>

Здесь:


article id - внутреннее имя статьи, именно на него ссылаются в файлах игры
name - имя статьи, отображаемое в игре, подгружается из строкового массива
texture - картинка и её позиция в статье, в данном случае мы использовали обычный белый шум
text - текст статьи, отображаемый в игре, подгружается из строкового массива
 
Добавим например в config\gameplay\info_l01escape.xml (инфопорции уровня "Кордон") ссылку на получение статьи - скажем, к трупу у туннеля, при обыске которого выдается информация о аномалиях в туннеле (вы его обнаруживаете, проходя второе спецзадание от Сидоровича). Найдем эти строки и дополним их:

Так как в статье у нас есть такое поле:

<text>enc_zone_anomalies_activation_basic</text>

Да и название тоже не написано прямо, а ссылается на определенную строку, то добавим этот самый text в config\text\rus\string_table_enc_zone.xml, в нашем случае:

<string id="enc_zone_anomalies_activation-basic">
<text>Активация - базис</text>
</string>
<string id="enc_zone_anomalies_activation_basic">
<text>С артефактами связана, помимо всего прочего, ''(ну, и так далее, там большой текст)''...</text>
</string>

Дополнительно.
Чтобы статья добавлялась при получении определенного задания, в ..._task.xml (вместо ... стоит название уровня) нужно прописать конструкцию вида:

<article>название_задания_descr</article>

<!-- труп у аномалии -->
<info_portion id="esc_tutorial_dead_novice">
<article>tutorial_moving_anomaly</article>
<article>zone_anomalies_activation_basic</article>
</info_portion>
Главное - никогда не путайте article id, name и text статьи. Я в данном примере это сделать легко. Лучше называйте их непохожими друг на друга названиями.


В файле gamedata\scripts\xr_kamp.script находим:

-- играть на гармошке
-- if npc:object("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

Раскомментируем эти строки, для этого удалим --. перед строками, исключения строка "-- играть на гармошке"
Затем нужно добавить музыку. Например сталкерам, открываем папку gamedata\sounds\characters_voice\human_01\stalker\music и добавляем туда свою музыку. Имя файла должно быть harmonica_* (где *, 1, 2, 3 и т.д.). Формат файла должен быть *.ogg. Таким же образом добавляем музыку остальным группировкам.


При заходе на экран главного меня муз. заставка будет выбираться случайно из добавленных вами.
1. В директорию gamedata\sounds\music положить два канальных ogg-файла с нужной музыкой, например: my_music_l.ogg (левый канал) и my_music_r.ogg (правый канал)
2. Открыть файл gamedata\config\ui\ui_mm_main.xml, найти в нем строку:

<menu_sound random="0" >

и заменить на:

<menu_sound random="1" >

3. В этом же файле найти строку:

<menu_music>music\wasteland2</menu_music>

и ниже нее выставить следующую строку:

<menu_music>music\my_music</menu_music>

4. Сохранить файл.
5. Если требуется вставить больше муз. заставок, то в параметре random укажите их количество.

!!! Возьмите на заметку !!!
в строке <menu_sound random="0" >
вместо 0 указывайте не количество композиций, а количество композиций - 1, то есть, если вы добавили скажем еще одну мелодию, к той, что была по дефаулту у вас получится примерно так:

<menu_sound random="1" >
	<menu_music>music\wasteland2</menu_music>
<menu_music>music\my_music</menu_music>


1. Кладём ролик в папку gamedata\textures\sleep\. Собственно, в любую папку, лишь бы она была в каталоге textures. Просто в sleep лежат ролики сна в оригинале.
имя файла любое, формат ogm, а разрешение ролика вроде можно сделать любое. Я не стал заморачиваться и просто скопировал существующий ролик сна с монолитом.
2. Озвучку ролика кладем по той-же схеме в папку в корневом каталогу gamedata\sounds\. У меня папка называется my_sleep. Имена файлов для левого и правого канала должны выглядеть так

my_sleep_sound_l.ogg

и

my_sleep_sound_r.ogg

длина звуков может быть разной и вообще говоря не совпадать с длиной ролика.
3. Правим файл gamedata\config\ui\ui_movies.xml. Добавляем туда что-то в этом роде:

    <my_dream>
        <play_each_item>1</play_each_item>
        <global_wnd x="0" y="0" width="1024" height="768">
            <auto_static x="0" y="0" width="1024" height="768" stretch="1">
                <window_name>back</window_name>
                <texture>intro\intro_back</texture>
            </auto_static>
        </global_wnd>
	        <item type="video">
            <sound>my_sleep\my_sleep_sound</sound>
            <pause_state>on</pause_state>
            <function_on_stop>sleep_manager.stopper</function_on_stop>
            <video_wnd x="0" y="0" width="1024" height="768" stretch="1">
                <texture x="0" y="1" width="512" height="286">sleep\dream_sarcofag</texture>
            </video_wnd>
        </item>
    </my_dream>

Название тега my_dream - это моё имя для сна. Если я верно всё понимаю, то вся эта фигня описывает окно, в котором играется видеоролик.
4. Теперь собственно добавляем сон. Правим файл gamedata\config\misc\dream.ltx.
Там есть секции с именами [regular_dream#] где # - это номера снов. Сейчас там есть regular_dream1, regular_dream2 и regular_dream3. Добавляем секцию

[regular_dream4]
dream       = my_dream
probability = 40
type        = happy

параметры:
dream - это ранее заданное имя сна (в нашем случае my_dream).
probability - ясное дело, что нужно для вычисления вероятности появления именно этого сна. Но я пока не понял по какому алгоритму она вычисляется на основе этого параметра. Я просто сделал число побольше, дабы протестировать побыстрее.
type - может быть nightmare, normal и happy. По названию вроде понятно, что это. Но на что влияет пока не ясно.
 
5. Ну и завершающий этап. В этом же файле в секцию [dreams] к параметру regular добавляем к списку новый сон regular_dream4. Вроде такого:

regular = regular_dream1, regular_dream2, regular_dream3, regular_dream4

Тестируем... Опа! Новый сон. Поскольку я звуки взял случайно, то при этом в левом ухе у меня орет кот, а в правом играет мрачный эмбиент =)
Ну и естественно работать будет только при установленном АМК. Что там именно сделано, для того чтобы сон вообще был, я пока не разбирался.


  • Полезно 3

Thank you for your honesty.

Now fuck off and die.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...