Мануал для начинающих - Подфорум модбилдеров - Моды - Форум фанатов игры S.T.A.L.K.E.R.
S.T.A.L.K.E.R
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]



Страница 1 из 11
Модератор форума: Lev$h@, Спам 
Форум фанатов игры S.T.A.L.K.E.R. » Моды » Подфорум модбилдеров » Мануал для начинающих
Мануал для начинающих
Dim-ZER-manДата: Вторник, 10/03/09, 12:24 | Сообщение # 1
Отмычка
Группа: Свобода
Сообщений: 118
Награды: 3
Репутация: 26
Статус: Вышел
Если вы не знаете, как сделать невидимые аномалии, как изменить силу оружия, как изменить носимый вес и пр., то вы пришли по адресу. В этой статье мы рассмотрим структуру файлов и папок Сталкера, а также вы сможете научиться создавать свои собственные модификации.
Программы нужные для создания модов:

Распаковщик архивов ТЧ STALKER Data Unpacker 1.0
Распаковщик архивов ЧН Clear Sky unpacker 1.3
Текстовый редактор Notepad ++ подойдёт любой другой, но у данного есть подсветка синтаксиса ЛУА
Декомпилер-компилер SPAWN ACDC 2.0 в архиве для всех версий игры
Просмотрщик моделей на Сталкер OgfViewer 1.0 beta 2 также возможна конвертация в .smd с последующим редактрирование
Просмотрщик текстур WTV
SDK для ТЧ Бета-версия MP-SDK
SDK для ЧН X-Ray 1.5 beta SDK
X-ray asset tools pack FINAL окончательная версия пака утилит от bardak'а

Вступление:
Как вы наверно заметили, в папке с игрой содержатся несколько файлов типа 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:
Параметры предметов:
В этом файле в квадратных скобках написан тот предмет, чьи параметры идут ниже, за квадр. скобками. Например: [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_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 - первая цифра минимальная цена продажи, вторая - максимальная (точнее множитель на "истинную цену" предмета).
В итоге должно получиться:
[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]
Метод я проверял, вроде как работает.
Чтобы после покупки персонаж не выкидывал купленное оружие(а также чтобы подбирал его с земли), в файле 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
monste rs\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 и пишем после(без комментарие естественно(или перед ними ставьте + значения после знака = можно менять):
;addons
[B]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

Как изменить носимый вес?
В файле \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
И в зависимости что вам надо и где можете менять и изменять, тут всё предельно просто и понятно...

Я ни коим образом не претендую на авторство! Статья взята с офф. сайта команды Sol team, где модер указал что нашел её на форуме журнала ИГРОМАНИЯ.

Сообщение отредактировал Dim-ZER-man - Вторник, 10/03/09, 12:33
 
iZEKДата: Вторник, 10/03/09, 14:17 | Сообщение # 2
Отмычка
Группа: Новички
Сообщений: 34
Награды: 0
Репутация: 5
Статус: Вышел
Quote (Dim-ZER-man)
Программы нужные для создания модов: Распаковщик архивов ТЧ STALKER Data Unpacker 1.0 Распаковщик архивов ЧН Clear Sky unpacker 1.3 Текстовый редактор Notepad ++ подойдёт любой другой, но у данного есть подсветка синтаксиса ЛУА Декомпилер-компилер SPAWN ACDC 2.0 в архиве для всех версий игры Просмотрщик моделей на Сталкер OgfViewer 1.0 beta 2 также возможна конвертация в .smd с последующим редактрирование Просмотрщик текстур WTV SDK для ТЧ Бета-версия MP-SDK SDK для ЧН X-Ray 1.5 beta SDK X-ray asset tools pack FINAL окончательная версия пака утилит от bardak'а

Где мона взять эти проги? И все ли обязательно нужны?

-=ничто не истина, всё иллюзия и все дозволено=-
 
Dim-ZER-manДата: Вторник, 10/03/09, 14:43 | Сообщение # 3
Отмычка
Группа: Свобода
Сообщений: 118
Награды: 3
Репутация: 26
Статус: Вышел
нет. Достаточно взять прогу Распаковщик архивов ТЧ STALKER Data Unpacker 1.0.
http://www.stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewdownload&cid=22 скачай здесь!STALKER! Data Unpacker 1.0 и почитай оба Readme перед использованием

Сообщение отредактировал Dim-ZER-man - Вторник, 10/03/09, 14:44
 
iZEKДата: Вторник, 10/03/09, 14:43 | Сообщение # 4
Отмычка
Группа: Новички
Сообщений: 34
Награды: 0
Репутация: 5
Статус: Вышел
Где её взять???

-=ничто не истина, всё иллюзия и все дозволено=-
 
Dim-ZER-manДата: Вторник, 10/03/09, 14:48 | Сообщение # 5
Отмычка
Группа: Свобода
Сообщений: 118
Награды: 3
Репутация: 26
Статус: Вышел
(смотри постом выше) можна канешь и другие проги, но в основном для создания модов подходит data unpacker, а огф вьюверы и прочие проги - это по желанию

Сообщение отредактировал Dim-ZER-man - Вторник, 10/03/09, 14:49
 
WARHAMMERДата: Вторник, 10/03/09, 15:18 | Сообщение # 6
Отмычка
Группа: Новички
Сообщений: 8
Награды: 0
Репутация: 13
Статус: Вышел
Все сылки на проги стоят у нас на сайте! (с нашего сайта и взят этот мануал) biggrin

-=SOL TEAM=-
http://stalker-pcgame.ucoz.ru/
Официальный сайт команды SOL TEAM
 
iZEKДата: Вторник, 10/03/09, 16:04 | Сообщение # 7
Отмычка
Группа: Новички
Сообщений: 34
Награды: 0
Репутация: 5
Статус: Вышел
Quote (WARHAMMER)
Все сылки на проги стоят у нас на сайте!

dry где?я не увидел....

Dim-ZER-man, дай ещё ссылочку на унпакер от ЧН, плиииззз


-=ничто не истина, всё иллюзия и все дозволено=-
 
Dim-ZER-manДата: Вторник, 10/03/09, 16:17 | Сообщение # 8
Отмычка
Группа: Свобода
Сообщений: 118
Награды: 3
Репутация: 26
Статус: Вышел
ять)) вот => http://stalker-pcgame.ucoz.ru/publ/5-1-0-48
 
Lev$h@Дата: Среда, 11/03/09, 02:24 | Сообщение # 9
Тени Чернобыля
Мастер
Группа: Модераторы
Сообщений: 3768
Награды: 24
Репутация: 168
Статус: Вышел
Да, точно, это взято с Мании, но скажу, что это наиболее удачное подспорье для начинающего мододела. Ничего получше в интернете я не находил, ну кроме портала по мододельству: Портал для мододелов

 
Dim-ZER-manДата: Среда, 11/03/09, 12:51 | Сообщение # 10
Отмычка
Группа: Свобода
Сообщений: 118
Награды: 3
Репутация: 26
Статус: Вышел
iZEK, вот тебе унпакеры все (и регится не нада) http://www.stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewdownload&cid=22
 
iZEKДата: Воскресенье, 15/03/09, 12:55 | Сообщение # 11
Отмычка
Группа: Новички
Сообщений: 34
Награды: 0
Репутация: 5
Статус: Вышел
Ass@ssin, чё такое Download Master?
А воще-то я уже скачал унпакер....более простым способом biggrin !!!(Dim-ZER-manу спасибо)

Добавлено (15/03/09, 12:55)
---------------------------------------------
А как в ЧН менять характеристики ГГ(и не только)???Вначале темы даны ведь примеры к ТЧ!


-=ничто не истина, всё иллюзия и все дозволено=-

Сообщение отредактировал iZEK - Воскресенье, 15/03/09, 12:56
 
Ass@ssinДата: Воскресенье, 15/03/09, 18:53 | Сообщение # 12
Опытный
Группа: Свобода
Сообщений: 521
Награды: 3
Репутация: 71
Статус: Вышел
Quote (iZEK)
Ass@ssin, чё такое Download Master?

iZEK, менеджер закачек.
Quote (iZEK)
А как в ЧН менять характеристики ГГ(и не только)???Вначале темы даны ведь примеры к ТЧ!

Параметры ГГ меняются в файле Actor.ltx. В общем все осталось почти так, как в ТЧ. Только новые возможности добавились. Например, в actor.ltx добавились строчки которые отвечают за индетификацию брошенных в вас гранат:
(pickup_info_radius = 5 ;3
feel_grenade_radius = 10.0 ;расстояние (в метрах) на котором актер чувствует гранату (любую)
feel_grenade_time = 0.5 ;время гранаты (сек) после которого актер чувствует гранату) - это дефолтная настройка
Чтобы убрать отображение надо сделать так:
(pickup_info_radius = 0.0
feel_grenade_radius = 0.0 ;расстояние (в метрах) на котором актер чувствует гранату (любую)
feel_grenade_time = 0.5 ;время гранаты (сек) после которого актер чувствует гранату) - после этого вы узнаете что в вас кинули гранату только по словам НПС
У оружия также большая часть не потерпела изменений. Добавился лишь апгрейд.


Инвентарь Рикошета
КПК Рикошета


Сообщение отредактировал Ass@ssin - Воскресенье, 15/03/09, 18:54
 
iZEKДата: Воскресенье, 15/03/09, 19:22 | Сообщение # 13
Отмычка
Группа: Новички
Сообщений: 34
Награды: 0
Репутация: 5
Статус: Вышел
Quote (Ass@ssin)
Параметры ГГ меняются в файле Actor.ltx

В какой папке лежит этот файл?

-=ничто не истина, всё иллюзия и все дозволено=-
 
Ass@ssinДата: Понедельник, 16/03/09, 12:34 | Сообщение # 14
Опытный
Группа: Свобода
Сообщений: 521
Награды: 3
Репутация: 71
Статус: Вышел
Quote (iZEK)
В какой папке лежит этот файл?

gamedata/configs/creatures


Инвентарь Рикошета
КПК Рикошета
 
СарсДата: Понедельник, 16/03/09, 12:36 | Сообщение # 15
Опытный
Группа: Грех
Сообщений: 559
Награды: 0
Репутация: 48
Статус: Вышел
Вот группировку свою муторно делать( Да ещё потом при убийстве людей из этой группировки, игра вылетает... sad


Снаряга Сарса
PDA Сарса
 
ФёдырычДата: Понедельник, 16/03/09, 21:56 | Сообщение # 16
Разводящий
Опытный
Группа: Свобода
Сообщений: 723
Награды: 5
Репутация: 71
Статус: Вышел
Quote (Сарс)
( Да ещё потом при убийстве людей из этой группировки, игра вылетает...

Юзай фронт, я там видел как убрать данный глюк...

 
iZEKДата: Вторник, 17/03/09, 14:25 | Сообщение # 17
Отмычка
Группа: Новички
Сообщений: 34
Награды: 0
Репутация: 5
Статус: Вышел
Блин, скажите как изменить характеристики ГГ в ЧН, а не в ТЧ.

-=ничто не истина, всё иллюзия и все дозволено=-

Сообщение отредактировал iZEK - Вторник, 17/03/09, 14:25
 
СпамДата: Вторник, 17/03/09, 14:29 | Сообщение # 18
Лидер Теней Чернобыля
Легенда Зоны
Группа: Модераторы
Сообщений: 1444
Награды: 24
Репутация: 94
Статус: Вышел
Quote (Сарс)
Вот группировку свою муторно делать

Да ну, довольно просто, по-моему.
Quote (Сарс)
Да ещё потом при убийстве людей из этой группировки, игра вылетает...

Просто их надо прописать в death_manager, в скриптах.


 
СарсДата: Вторник, 17/03/09, 15:27 | Сообщение # 19
Опытный
Группа: Грех
Сообщений: 559
Награды: 0
Репутация: 48
Статус: Вышел
Спам, да прописывал, не тупой же я... всё равно такая байда


Снаряга Сарса
PDA Сарса
 
МрачныйГостьДата: Воскресенье, Сегодня, 00:55 | Сообщение # 20
Отмычка
Группа: Сталкеры-одиночки
Сообщений: 4
Награды: 0
Репутация: 2
Статус: Вышел
Quote (iZEK)
Блин, скажите как изменить характеристики ГГ в ЧН, а не в ТЧ.

да точно так же как и в ТЧ
\gamedata\configs\creatures\actor
У меня вопрос:
(я его уже задал в другой теме,но по случаю этого поста решил добавить
тот же вопрос и здесь,не судите строго)
как восстановить в чистой ТЧ(6-й патч) вырезанных монстров
если можно поподробней
==================================
есть еще такой вопрос:
например я редактирую (в моде с восстановленными монстрами) количество спавнющихся
с 40 на 140 (к примеру)
а в игре всё как было так и осталось,никакого обилия живности
файл который я редактировал-se_respawn

Сообщение отредактировал МрачныйГость - Воскресенье, 26/04/09, 01:03
 
Форум фанатов игры S.T.A.L.K.E.R. » Моды » Подфорум модбилдеров » Мануал для начинающих
Страница 1 из 11
Поиск:

Мини-Чат
Общайтесь в реальном времени
Статистика
Самые активные на форуме:
Статистика сталкеров:
Статистика
Посетители за сутки:
Copyright Stalker-Zone.Ru © 2007-2009