Rambler's Top100

AVANTURE

Объявление

Сайт доступен по адресу
http://avanture.org.ua
http://forum.avanture.org.ua
Приглашаем всех кто решил остаться с нами на "АВАНТЮРУ"

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » AVANTURE » S.T.A.L.K.E.R. Clear Sky » Мануал по созданию модов


Мануал по созданию модов

Сообщений 1 страница 13 из 13

1

Если вы не знаете, как сделать невидимые аномалии, как изменить силу оружия, как изменить носимый вес и пр., то вы пришли по адресу. В этой статье мы рассмотрим структуру файлов и папок Сталкера, а также вы сможете научиться создавать свои собственные модификации.

Вступление:

Как вы наверно заметили, в папке с игрой содержатся несколько файлов типа gamedata.dbN , где N – это число или буква.  Это игровые архивы, в которые запакованы все файлы конфигураций, видеоролики, музыка, звуки, скрипты и прочее. Можно их править HEX-editor’ом, но лучше скачать специальную утилитку STALKER_Data_Unpacker и распаковать в отдельную папку(с именем gamedata, позже поймёте почему) их содержимое. Вот после этого можно начать разгребать весь тот мусор, который вы извлекли.

Структура файлов и папок:

Рассмотрим, что-же содержится в папке gamedata:

Папка ai – в ней содержатся файлы типа *.efd, через которые очевидно управляется искусственный интеллект тех же npc например.

Папка anims – здесь и так всё понятно, игровая анимация, а также эффекты камеры.

Папка config содержит в себе многие игровые параметры, к ней мы ещё вернёмся.

Папка levels – это игровые уровни, ака локации, на которые поделена игра (как карты в CS)

Папка meshes – игровые модели, в формате .ogf

Папка scripts – скрипты

Папка shaders – шейдеры, для двух рендеров(DX8 и 9)

Папка sounds – звуки и музыка, кот. используются в игре. Формат .ogg*

Папка spawns – отвечает за самую ужасную вещь в игре – респаун противников и др. людей, животных.

Папка textures – в ней содержаться текстуры домов, оружия, монстров и др. Формат - .dds(DirectDraw Surface Image)

Файлы:

game.graph, gamemtl.xr, lanims.xr, particles.xr, resource.h, senvironment.xr, shaders.xr, shaders_xrlc.xr, stalkergame.inf.

Введение в моддинг:

Именно с папкой config придётся работать для редактирования многих параметров игры.

Но начнём сначала:

Перед тем, как начать редактирование файлов игры, нужно в каталог Сталкера поместить ту самую папку gamedata, в которую были извлечены игровые файлы.

*Все файлы нам не понадобятся, поэтому можно оставить только папки config, scripts(а конкретно файл se_respawn*****ipt), textures, sounds, а всё остальное удалить(а можно и не удалять)

Также хочу заметить, что если распаковать все архивы .dbN в папку с игрой, то это может дать несколько дополнительных FPS.

Текстуры:

В папке textures лежат файлы формата .dds, которые можно открыть программой Adobe Photoshop с установленным DDS-плагином.

Плагин.

Скрин с корректными настройками.

Скрипты:

se_respawn.sсript – файл, отвечающий за респаун. Время респауна можно уменьшить, путём небольших изменений в этом файле. Он открывается обычным блокнотом(notepad). Ищем в нём строку

idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)

и меняем её на

idle_time:setHMSms( math.random(X, Y), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)

где X  и Y  - числа, задают диапазон случайной переменной в часах отвечающей за респаун.

Звуки и музыка:

Любой файл в папке sounds можно заменить на другой, но при этом нужно сохранить все параметры звукового файла, который был использован в игре. Например, чтобы заменить музыку в приёмнике у Сидоровича, нужно файл sounds\scripts\magnitofon\magnitofon_2.ogg, заменить на любой другой.(У оригинального файла винамп мне выдал свойства:

Average bitrate : 60 kbps

Nominal bitrate : 80 kbps

Channels : 1

Sampling rate: 44100 Hz.

Config/Weapons:

Параметры оружия вы можете найти в папке config\weapons, файлы типа w_ak74.ltx открываются тоже блокнотом. Разберём содержимое файла например w_groza.ltx

Во первых стоит обратить внимание на значение пременной(буду их так называть) cost, это цена оружия, т.е. сколько гроза будет стоить у продавца.

Переменная weapon_class означает, к какому классу относится оружие, в данном случае - assault_rifle.

ammo_limit – лимит боеприпасов(в игре не используется)

ammo_mag_size – размер магазина. Можно поставить например 900, тогда о перезарядке можно совсем не вспоминать.

ammo_class – класс патронов, используемых оружием. Здесь [/b]ammo_9x39_pab9[/b], ammo_9x39_sp5, ammo_9x39_ap.

hit_power – сила оружия. Чем больше, тем лучше

silencer_hit_power - сила оружия, когда на него одет глушитель.

misfire_probability - вероятность осечки при максимальном износе.

condition_shot_dec - увеличение износа при каждом выстреле.

visual – модель оружия.

zoom_enabled - поддерживается ли оптика.

Config/Сreatures:

actor.ltx – параметры главного героя. В этой же папке находятся файлы с параметрами npc, монстров и пр.

Рассмотрим некоторые переменные на примере actor.ltx

visual – модель персонажа.

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

pickup_info_radius – радиус от ГГ, в котром над предметами выводятся их названия.

camera_height_factor – высота ГГ. По умолчанию стоит 0.85, но можно увеличить рост ГГ до 0.95 например.

disp_base – разброс. Если уменьшать, то и разлёт уменьшается соответственно.

wound_incarnation_v - скорость заживления раны.

cant_sprint_power_begin - порог силы меньше которого актер не может бежать в спринте.

hit_probability_gd_novice

hit_probability_gd_stalker

hit_probability_gd_veteran

hit_probability_gd_master

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

Также в файле присутсвуют комментарии на русском языке, так что разобраться в остальных переменных не составит труда.

Config/System.ltx:

start_blood_size - размер раны чтоб начала капать кровь.

stop_blood_size - размер раны чтоб кровь остановилась.

max_weight – вес, с которым ГГ может бежать.

Config/Misc:

В дополнение к конфигам оружия:

cвойства патронов находятся в файле weapons.ltx, а бронежилетов – в outfit.ltx.

Свойства артефактов находятся в файле artefacts.ltx и файлах zone_ART.ltx, предметов – items. ltx,

где ART – название артефакта(например zone_gravi.ltx).

Параметры артефактов:

health_restore_speed - скорость восстановления здоровья (0.0001 = +100%)

radiation_restore_speed - скорость накопления радиации (0.0004 = 4). Если поставить отрицательное число, то артефакт будет ускорять выведение радиации.

idle_particles – если закоментить её символами «--« -, то аномалия исчезнет. Чтобы отключить звуковое оповещение, то находим строку visible_by_detector и меняем on на off.

Иммунитеты:

strike_immunity - удар.

shock_immunity  - электрошок.

chemical_burn_immunity - химический ожог.

telepatic_immunity - телепатия.

radiation_immunity - радиация.

wound_immunity - разрыв.

explosion_immunity - взрыв.

fire_wound_immunity  - огнестрел.

items.ltx:

+1

2

Параметры предметов:

В этом файле в квадратных скобках написан тот предмет, чьи параметры идут ниже, за квадр. скобками. Например: [kolbasa]:identity_immunities.

Параметры на примере колбасы:

class – к какому классу принадлежит предмет.

visual – модель.

cost – цена.

eat_health – сколько восстанавливает здоровья.(если будет 0, то колбаса лечить не будет.)

eat_power - сколько восстанавливает силы.

eat_radiation - сколько выводит/или добавляет радиации. (Насчёт этого не уверен, надо тестить.)

inv_weight – вес предмета.

Outfit.ltx:

Параметры костюмов:

actor_visual – модель костюма.

inv_weight – вес костюма.

cost – цена костюма.

коэффициенты иммунитета самого костюма:

burn_immunity см.  коэффиц.

...

fire_wound_immunity

; NO RESISTANCE

burn_protection     - коэффициент защиты от огня

strike_protection     - коэффициент защиты от пуль

shock_protection     - коэффициент защиты от молний

wound_protection - коэффициент защиты от кровотечений (?)

radiation_protection - коэффициент защиты от радиации

telepatic_protection - коэффициент защиты от телепатии

chemical_burn_protection - коэффициент защиты от хим. ожогов.

explosion_protection - коэффициент защиты от взрыва

fire_wound_protection      - коэффициент защиты от кровотечений(от огня)

nightvision_sect – тип ночного видения(плохой/хороший). Если ПНВ нету, то строку добавить, если его нужно убрать, строку закомментируйте(--).

Торговцы:

Вещи, которые продают торговцы можно отредактировать(добавить/убрать) в файлах с именем trade_[b]YYY.ltx[.B], где YYY[.B] – это имя торговца(например [b]trade_barman.ltx[.B])

Итак, поехали:

Структура файла на самом деле очень проста, под зачком [b]; прописаны сами предметы, а после него – комментарий(чтоб понятно было). Например ;Аммуниция.

В квадратные скобки заключены([barman_generic_buy]), как бы сказать, “условия”. Лучше показать на примере:

В самом начале(практически) файла trade_barman.ltx идёт строка содержания [barman_generic_buy], т.е. она означает, что ниже прописанные предметы торговец может купить.

Сами предметы например:

;Артефакты

af_medusa        = 1, 0.3

af_cristall_flower    = 1, 0.3

af_night_star    = 1, 0.3

af_vyvert        = 1, 0.3

af_gravi        = 1, 0.3

af_gold_fish    = 1, 0.3

af_blood        = 1, 0.3

af_mincer_meat    = 1, 0.3

или

;ADDONS

wpn_addon_scope        = 0.7, 0.2

wpn_addon_scope_susat    = 0.7, 0.2

Посмотрим какие ещё “условия” содержит этот файл и их значение:

[supplies_start] - начальный ассортимент

[supplies_after_darkvalley] - ассортимент, после выполнения квеста в тёмной долине

[supplies_after_brain] - ассортимент, после “выжигателя мозгов”

[barman_start_sell] - цены по которым торговец(бармен в данн. сл.) продает в начале

[barman_after_darkvalley_sell]    - аналогично

[barman_after_brain_sell]

Итак: чтобы добавить предмет к торговцу, после строки [supplies_start], находим интересующую нас категорию(а это может быть:  ;Аммуниция/;Оружие/;Броники/;Медикаменты/;Еда и др.) и после всех прописанных в данной категории предметов добавляем ещё одну строчку для своего предмета(а именно название модели(т.к. оно совпадает с названием самого предмета) и после знака = параметры(о них чуть ниже)). Ну я так и знал что вы ничего не поймёте, поэтому пример:

Чтобы добавить бармену винтовку Гаусса, находим строки после условия [supplies_start] -

;Оружие

wpn_pb        = 3, 0.6

wpn_walther        = 3, 0.6

wpn_mp5        = 3, 0.6

wpn_ak74u        = 3, 0.5

и внизу прописываем wpn_gauss        = N, n.n

*о значениях после знака = см. ниже.

Все имена оружия, амуниции, снаряжения и т.п. можно найти в папках gamedata\meshes\equipments,

gamedata\meshes\weapons, gamedata\meshes\food.

Заметьте, что wpn_gauss нужно писать без расширения .ogf

Значения:

После знака = у вальтера например стоит цифра 3, а после запятой – 0,6.

Первое, для гаусса у нас стоит N, это количество(в штуках)  предметов. Т.е. если поставить значение 999, то у бармена будет 999 гауссов.

А второе:

1. В разделах supplies вторая цифра это вероятность появления данного предмета (от 0.1 до 1).

2. В разделе buy - первая цифра максимальная цена покупки, вторая минимальная (зависит от отношения торговца к Меченному - рейтинг, репутация)[Предположительно. – прим.]

3. Соответственно в разделах sell - первая цифра минимальная цена продажи, вторая - максимальная (точнее множитель на "истинную цену" предмета).

0

3

В итоге должно получиться:

[supplies_start] 

;Оружие

wpn_pb        = 3, 0.6

wpn_walther        = 3, 0.6

wpn_mp5        = 3, 0.6

wpn_ak74u        = 3, 0.5

wpn_gauss        = 6, 1

И тогда у торговца мы получим ровно 6 винтовок Гаусса.

Создание рандомного выбора муз. заставки главного меню:

При заходе на экран главного меня муз. заставка будет выбираться случайно из добавленных вами.

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 укажите их количество.

Автор идеи - VM

NPC покупают оружие:

Чтобы обычные сталкеры и др. npc могли покупать у  ГГ оружие, нужно править файл gamedata\config\misc\trade_generic.ltx. Его структура точно такая же, как и у любого другого торговца.

После строки [generic_buy]  находим строку ;Оружие и после неё у каждого вида ставим зачения N  и  n.n.

Можно например так:

;Оружие

wpn_pm        = 0.08, 0.12

wpn_pb        ;NO TRADE

wpn_fort        = 0.08, 0.12

wpn_hpsa        = 0.08, 0.12

wpn_beretta        = 0.08, 0.12

wpn_walther        = 0.08, 0.12

wpn_sig220        ;NO TRADE

А чтобы у npc продавалось оружие, нужно проделать тоже самое, только после строки [generic_sell]

Метод  я проверял, вроде как работает.

0

4

Чтобы после покупки персонаж не выкидывал купленное оружие(а также чтобы подбирал его с земли), в файле gamedata\config\creatures\m_stalker.ltx строку can_select_items = off меняем на  can_select_items = on

и строку  use_single_item_rule = on  меняем на use_single_item_rule = off .

Объекты, которые можно перемещать:

В файле system.ltx в конце есть строка [ph_capture_visuals], после неё идёт список перетаскиваемых вещей. Например чтобы можно было таскать монстров, в конец  добавляем:

//Monsters

monsters\mutant_boar\mutant_boar

monsters\krovosos\krovosos

monsters\kontroler\kontroler

monsters\dog\dog

monsters\flesh\flesh

monsters\dog\dog_cmn_1

monsters\flesh\flesh

monsters\poltergeist\poltergeist

monsters\pseudodog\pseudodog

monsters\snork\snork

monsters\burer\burer

monsters\chimera\chimera

monsters\cat\cat

monsters\zombi\zombi_1

monsters\rat\rat_1

monsters\tushkano\tushkano

Как сделать так, чтоб не убиралось из рук оружие в некоторых локациях?:

В файле gamedata\scripts\sr_no_weapon*****ipt найти и закомментировать (поставить перед ними --) строки

bind_stalker.hide_weapon()

bind_stalker.restore_weapon()

и в файле zone_no_weapon*****ipt ищем строки hide_weapon()  и заменяем их на restore_weapon()

Способ подходит и для предыдущего файла.

Как приделать к оружию оптику, глушитель, подствольник?:

Находим в файле оружия строку  ;addons и пишем после(без комментарие естественно(или перед ними ставьте http://forum.igromania.ru/images/smilies/1bluewinky.gif + значения после знака = можно менять):

;addons

scope_status = 2      0 - нет,1 - несъемный, 2 - можно ставить прицел

silencer_status = 0     0 - нет,1 - несъемный, 2 - можно ставить глушитель

grenade_launcher_status= 0     0 - нет,1 - несъемный, 2 - можно ставить подствольник

zoom_enabled = true     Вкл/выкл возможность зума

scope_zoom_factor = 50     значение зума

scope_name = wpn_addon_scope      название прицепляемого прицела

scope_x = 47     положение прицела на картинке, x

scope_y = 0     положение прицела на картинке, y

silencer_name = wpn_addon_silencer     название глушителя

silencer_x = 218     положение глушителя на картинке, x

silencer_y = 9       положение глушителя на картинке, y

grenade_launcher_name= wpn_addon_grenade_launcher название подствольника

grenade_launcher_x = 126     положение подствольника на картинке, x

grenade_launcher_y = 24     положение подствольника на картинке, y

0

5

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

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

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

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

0

6

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

В файле 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 и других условий.

0

7

Далее <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 все.

0

8

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 npchttp://forum.igromania.ru/images/smilies/str.gifbject("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 npchttp://forum.igromania.ru/images/smilies/str.gifbject("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 новых опции, а именно: смена камеры  и кнопка включения двигателя. Также можно добавлять сюда др. клавиши(если знать консольные команды)

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

Покажу вам на примере, как открыть дверь в саркофаге без дешифра) мы просто сделаем дверь открытой по умолчанию, этот трюк можно использовать в любом направлении, в том числе и для новых квестовhttp://forum.igromania.ru/images/smilies/1bluewinky.gif

Идём в 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

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

0

9

Улучшения игры, делая своими руками для STALKER CLEAR SKY.

  Для начала скачиваем распоковщик файлов. Распаковываем архив, в нем видем файл example-CS.bat открываем его при помощи блокнота, меняем путь : (converter.exe -unpack -xdb c:\STALKER-ClearSky\mp\mp_agroprom.db на converter.exe -unpack -xdb C:\STALKER-ClearSky\resources\configs.db), короче говоря указываем путь к тому месту где у вас лежит игра. Внимание! путь должен содержать только латинские буквы. Сохраняем изменения в этом файле. Запускаем его и ждем пока в папке с распоковщиком не появится папка Сonfigs. Открываем эту папку, ищем ...\configs\configs\creatures\actor.ltx - здесь меняются параметры Главного героя:

Ищем в открытом файле строки

1. max_walk_weight = 60 - Масса переносимого груза меняем число 60 на желаемый вес.

2. walk_power = 0.00001 умешьшение силы за секнду во время ходьбы без учета веса ноши,ставим перед этими значениями знак "-" и вот теперь мы уже не устаем.

3. walk_weight_power = 0.00005 умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса, ставим перед этими значениями знак "-"

4. health_restore_v = 0.0003 скорость востоновления крови. тут кому, что хотите бессмертия ставти большо положительное число и вы уже бессмертны. Лично я ставил health_restore_v = 9.0 умирал только при взрыве гранаты и от выстрелов из крупнокалиберного оружия.

5. jump_speed = 6 сила прыжка. Ставим 16 и этого хватает чтобы прыгать на крыши домов и перепрыгнуть через поднятый мост на Лиманск.

6. radiation_v = 0.0001 скорость уменьшения радиации. Я поставил: = 0,1 и радиация стала пох...

7. radiation_health_v = 0,004 уменьшение здоровья при воздействие радиации. Добавте нулей по вкусу.

8. psy_health_v = 0.001 скорость востановления psy-здаровья. Ставим число побольше и нам можно идти в зону без протатипа ПСИ-защиты Сахорова.   ;)

9. bleeding_v = 0.002 ;0.005 ;потеря крови при номин ране. Добовляем нули по вкусу.

10. wound_inkarnation_v = 0.0001 ;0.003 скорость заживления раны. Здесь убираем нули.

  Этого наверное хватит для Главного героя. Перейдем теперь к его оружию. Открываем ...\configs\configs\weapons\ здесь лежат файлы для каждого оружия. Лично я выбрал бы для себя, какое-нибудь одно оружие и настроил бы его полностью под себя. Лучше всего выбирать такое оружие которое реже всего встречается в рюкзаках у других обитателей зоны. Например пистолет Кольт-919. В принцепе пистолетами мало кто пользуется, не смотря на их наличие в рюкзаках других персонажей. Все это для того чтобы тебя самого не убили этим оружием, ибо характеристики оружия станут "АДСКИМИ". Приступаем к модернизации: открываем путь ...\configs\configs\weapons\w_colt1911.ltx Ищем в этом файле:

1. cost = 1500 стоимость оружия при покупке. ставим цену поменьше и покупем подешевле.

Ниже еще встретится cost = 350 это стоимость при продаже, меняем его на 150000 и продаем его подароже.

2. ammo_mag_size = 9 вместимость обоймы, меняем на = 50 и у вас в обойме пуль больше чем в рожке автомата.

А сейчас буде самое интересное...

3. ammo_class = ammo_11.43x23_fmj, ammo_11.43x23_hydr это калибры поддерживаемые этим пистолетом. меняем все что за знаком равно на эту строчку ( ammo_9x39_pab9, ammo_9x39_ap ;ammo_9x39_sp5; ammo_12x70_buck, ammo_12x76_zhekan, ammo_12x76_dart, ammo_5.45x39_fmj, ammo_5.45x39_ap, ammo_9x19_fmj, ammo_9x19_pbp, ammo_11.43x23_fmj, ammo_11.43x23_hydro, ammo_5.56x45_ss190, ammo_5.56x45_ap, ammo_7.62x54_7h1, ammo_7.62x54_7h14) теперь пистолет стреляет потронами всех калибров.

4. далее ищем следующий блок, в нем все строки идут по порядку:

;-------------------------------------------------------------------------------;базовая дисперсияfire_dispersion_base = 0.5 ;угол (в градусах) базовой дисперсии оружия (оружия зажатого в тисках) ;отдачаcam_relax_speed = 7 ;скорость возврата в исходное положениеcam_relax_speed_ai = 360cam_dispersion = 1.2 ;увеличения угла (в градусах) с каждым выстреломcam_dispersion_inc = 1.2 ;увеличениe cam_dispersion с каждым выстреломcam_dispersion_frac = 1.0 ;ствол будет подыматься на cam_dispersion*cam_dispersion_frac +- cam_dispersion*(1-cam_dispersion_frac)cam_max_angle = 10.0 ;максимальный угол отдачиcam_max_angle_horz = 10.0 ;(degree) maximum shot horizontal degreecam_step_angle_horz = 1.2 ;(degree) size of step camera moved in horizontal position while shooting fire_dispersion_condition_factor = 5 ;увеличение дисперсии в процентах при максимальном износеmisfire_probability = 0.001 ;вероятность осечки при максимальном износеmisfire_condition_k = 0.05condition_shot_dec = 0.0002 ;увеличение износа при каждом выстреле;-------------------------------------------------------------------------------

меняем этот блок на этот:

;-------------------------------------------------------------------------------;базовая дисперсияfire_dispersion_base = 0.0 ;угол (в градусах) базовой дисперсии оружия (оружия зажатого в тисках) ;отдачаcam_relax_speed = 7 ;скорость возврата в исходное положениеcam_relax_speed_ai = 360cam_dispersion = 0.0 ;увеличения угла (в градусах) с каждым выстреломcam_dispersion_inc = 0.0 ;увеличениe cam_dispersion с каждым выстреломcam_dispersion_frac = 0.0 ;ствол будет подыматься на cam_dispersion*cam_dispersion_frac +- cam_dispersion*(1-cam_dispersion_frac)cam_max_angle = 3.0 ;максимальный угол отдачиcam_max_angle_horz = 10.0 ;(degree) maximum shot horizontal degreecam_step_angle_horz = 1.2 ;(degree) size of step camera moved in horizontal position while shooting fire_dispersion_condition_factor = 0 ;увеличение дисперсии в процентах при максимальном износеmisfire_probability = 0.000 ;вероятность осечки при максимальном износеmisfire_condition_k = 0.00condition_shot_dec = 0.0000 ;увеличение износа при каждом выстреле;-------------------------------------------------------------------------------

и теперь наше оружие стреляет с 1000% точностью.

5. ищим эти стороки:

hit_power = 0.5, 0.5, 0.5, 0.5 мощность выстрела, меняем на 9.5, 9.5, 9.5, 9.5

hit_impulse = 75 на 2000

fire_distance = 50 дальность стрельбы меняем на 1500, (больше нет смысла)

bullet_speed = 150 скорость пули, меняем на 1500, (теперь даже NEO из матрици не увернётся.)

Далее идут параметры с присоединенным глушителем, меняй их по вкусу.

silencer_hit_power = 0.52 на 9.5

silencer_hit_impulse = 105 на 2000

silencer_fire_distance = 100 на 1500

silencer_bullet_speed = 240 на1500

Теперь так, как у нас нет оптики делаем прицеливание по своему, находим

scope_zoom_factor = 55 ; fov for zoom mode \\ чем больше число, тем ближе цель при нажатии ПКМ

Наверное на этом мы и остановимся. По анологии можно модернизировать и другое оружие, в том числе и гранаты.

Теперь нам нужно, чтобы это все работало. Для этого сохраняем все отредактированые файлы, возвращаемся до папки CONFIG (внимание в этой папке должны лежат подпапки ( ai anims config scripts spawns)) копируем эти папки в папку gamedata которую нужно создать в корневой папке игры C:\STALKER-ClearSky\gamedata\ -  Запускаем игру и начянаем радоваться жизни.

0

10

Riziy написал(а):

scope_zoom_factor = 55 ; fov for zoom mode \\ чем больше число, тем ближе цель при нажатии ПКМ

чем меньше число тем больше увеличение!!!

0

11

Riziy написал(а):

1. max_walk_weight = 60 - Масса переносимого груза меняем число 60 на желаемый вес.

Функция неработает, можно хоть "0" поставить, а носить хоть Тонну...

;)  ;)  ;)

0

12

NEKSUS написал(а):

Можно их править HEX-editor’ом, но лучше скачать специальную утилитку STALKER_Data_Unpacker

Пожалуйста скинь где скачать! Потомучто гогда жмеш ссылку, открывается пустая страница.(заранее  спасибо!)

0

13

NEKSUS написал:

Можно их править HEX-editor’ом, но лучше скачать специальную утилитку STALKER_Data_Unpacker

AKIM1979 написал: Пожалуйста скинь где скачать! Потомучто гогда жмеш ссылку, открывается пустая страница.(заранее  спасибо!)

Лови ссылку  -  http://neksus.ifolder.ru/16770869  Развлекайся :D

+1


Вы здесь » AVANTURE » S.T.A.L.K.E.R. Clear Sky » Мануал по созданию модов