Все вперед.
========
1.Добавление Режима Freeplay в игру (Тень Чернобыля)
Делается это так: в файле gamedata/script/xr_effects.script ищем строку :function after_credits(actor, npc) и ниже находим вот что c:execute("disconnect") Меняем "disconnect" например на hud_crosshair 1 и все вместо того чтобы после концовок (похоже даже фальшивых) будет возможно продолжить игру... Теперь добавляйте точки перехода (например на Припять) и все freeplay работает.
========
2.Добавление статей в PDA
Добавление статей в PDA

Добавление статьи

На примере статьи из Artefact Activation Mod разберем их добавление в PDA:
Добавим в файл 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 (инфопорции уровня "Кордон") ссылку на получение статьи - скажем, к трупу у туннеля, при обыске которого выдается информация о аномалиях в туннеле (вы его обнаруживаете, проходя второе спецзадание от Сидоровича). Найдем эти строки и дополним их:
<!-- труп у аномалии -->
<info_portion id="esc_tutorial_dead_novice">
    <article>tutorial_moving_anomaly</article>
    '''<article>zone_anomalies_activation_basic</article>'''
</info_portion>

Главное - никогда не путайте article id, name и text статьи. Я в данном примере это сделать легко. Лучше называйте их непохожими друг на друга названиями.
Так как в статье у нас есть такое поле:
        <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>

Авторы

Статья создана: BAC9-FLCL
========
3.Выдирание оружия
****************************************************
Выдирание оружия из Arsenal_Mod
****************************************************
БУДЕТ ПРИВОДИТЬСЯ ПРИМЕР ПО АК-47
1.1 Для начала в каталоге с игрой создадим папку "gamedata"
1.2 В папке "gamedata" создадим ещё 4 папки 1)config 2)meshes 3)sounds 4)textures
1.3  Начнём с лёгкого: В папке "textures" создадим 2 папки Arsenal_Mod"ещё в этой папке может быть такая , ammo-эта папка для тексткр упаковок патронов" и ui .
P.S - в папку с Arsenal_Mod мы будем ложить текстуры оружия , в папку ui текстуру с иконками ui_icon_equipment.dds
1.4 В папку Arsenal_Mod кидаем файлы 762x39_clip2.dds/762x39_clip2_bump/ak47_skin1/lastochka/lastochka_bump/upg_sil_762ar/upg_sil_762ar_bump/upgrades1/upgrades1_bump
      в папку ammo файлы 762x39_AP/762x39_FMJ. В папку ui-ui_icon_equipment.Так с этим всё идём дальше.
1.5 В папке sounds создаём папку weapons в ней находяться звуки выстрелов,перезарядки в общем всё что связанно с оружием.
      в неё кидаем такие файлы ak47_shot/ak_reload1/ak_silent1/gp25_reload/gp25_shot/gp25_switch. Посмотреть какие звуки относяться к тому или иному оружию можно посмотреть из конфига самого оружия, ну к этому я ещё вернусь
1.6 Далее идёт папка meshes в ней храняться модели сталкеров,машин,монстров и т.д Но нам нужно оружие , в этой папке создаём ещё одну Arsenal_Mod , в неё кидаем 1)wpn_ak47_sk1.ogf 2)wpn_ak47_sk1_hud.ogf . Так же в этой же папке
      создадим Ammo-папка для моделей патронов , в неё ложим 1)762x39_ap.ogf  2)762x39_fmj.ogf
1.7 Так ну с самым простым рвзобрались , теперь пришла пора КОНФИГОВ...В папке config создаём 3 папки 1)mp 2)text 3)weapons
      И так в папку weapons кидаем 1)weapons.ltx 2)Arsenal.ltx ......В папке weapons.ltx нужно прописать инклуд , выглядит он так    #include "Arsenal.ltx"
      Далее открываем файл в нашей папке Arsenal.ltx удаляем из него всё ненужное
      ОСТАВЛЯЕМ ТОЛЬКО
      ;;;;; Assault Rifles ;;;;;
      #include "Arsenal_Mod\AR\ak47_sk1.ltx"
      ;;;;; Ammo ;;;;;
      #include "Arsenal_Mod\Ammo\762x39.ltx"
1.8 В папке weapons срздаём папку Arsenal_Mod , в папке с Arsenal_Mod создадим ещё 2 , 1)Ammo 2)AR
      в папку Ammo кидаем 762x39.ltx-конфиг патронов,в папку AR кидаем ak47_sk1.ltx-собственно конфиг нашего калаша
1.9 Папка text она по крайности и не нужна название и описание можно прописать в конфиге оружия.
2.0 Папка mp в неё кидаем родной mp_ranks.ltx из Arsenal_Modа

Всё , теперь прописываем торговцу или спавним в рюкзаке, но я делаю через "скрипт" как это сделать описано ниже
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
КАК СДЕЛАТЬ ЧТО БЫ НОВОЕ ОРУЖИЕ ВЫДАЛ ВОЛК.
1.1 Создаём gamedata/scripts-в него кидаем "escape_dialog.script"
1.2 Открываем его ищем такую строку

    dialogs.relocate_item_section(trader, "wpn_pm", "in")
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "wpn_knife", "in")     

добавим сюда наш калаш вот таким кодом

    dialogs.relocate_item_section(trader, "wpn_ak47_sk1", "in")     

так же добавим наши патроны

    dialogs.relocate_item_section(trader, "ammo_7.62x39_fmj", "in")     

должно получиться так:

    dialogs.relocate_item_section(trader, "wpn_pm", "in")
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "wpn_knife", "in")     
    dialogs.relocate_item_section(trader, "wpn_ak47_sk1", "in")     
    dialogs.relocate_item_section(trader, "ammo_7.62x39_fmj", "in")     

Всё после взятия задания с флешкой у торговца , при разговоре с "Волком" вам бкдет выдам ваш АК47

Автор: DOC_VENOM  (3 октября 2010 года)
ICQ автора мода: 405806080
========
4.Активация артефактов
Активация артефактов

Распишу по пунктам как добавить например к "огненому шару" аномалию Жарка...

Открываете файл: gamedata/config/misc/artefacts.ltx

И там в самом начале файла такая секция:
;Артефакты, которые при активизации создают аномальные зоны
;формат: {секция_артефакта} = {секция_зоны},Radius,Power
[artefact_spawn_zones]
af_medusa = zone_mosquito_bald_weak, 2.0, 30.0

Обозначает что артефакт af_medusa при активации создаст аномальную зону zone_mosquito_bald_weak с радиусом 2 метра и мощностью 30 (возможно влияет и на время жизни аномалии)

Кончается этот список по идее строчкой: mp_af_electra_flash = zone_witches_galantine, 3, 50.0

и сразу после неё пишете: af_fireball = zone_zharka_static, 3, 30.0

В принципе можно прописать там не статик а zone_zharka_weak незнаю что из них правильнее использовать... статик работает тоже.В той-же папке есть файл zone_zharka, где описаны свойства зон _weak, _average, _strong( слабая, средняя, сильная), а также зона zone_zharka_static.

После этого у вас игра станет вылетать с ошибкой про невозможность обнаружить последовательность описывающую анимацию активации аномалии.

А это всё там же в начале файла чуть ниже того где вы добавили новый артефакт в список есть такие строчки:
[af_activation_gravi]
;----------------------------------------------------------------------------------------------------------------------------------------
;format:                        time(sec),    sound_name,                 light_R,G,B,      light_range,        particle_name,                        af_animation_name
;----------------------------------------------------------------------------------------------------------------------------------------
starting                    =    5.0,        anomalygravi_idle00,    0.5, 1.0, 1.5,      5.0,            "anomaly2artefact_gravi_blast_start",    "idle"
flying                        =    2.0,        anomalygravi_idle01,    0.8, 1.0, 1.2,      3.0,            "anomaly2artefactartefact_gravi",                "idle"
idle_before_spawning        =    5.0,        anomalygravi_blowout5,    1.0, 1.0, 1,        0.0,            "anomaly2artefact_gravi_blast_finished",    "idle"               
spawning                    =    1,          anomalygravity_entrance,    0.9, 1.1, 1.01,      0.0,        "",        "idle"

Что как раз и описывает анимацию..

По-хорошему надо написать свою анимацию к жарке но это честно говоря не обязательно... потому что нам сейчас важна не красота а работоспособность.... Так вот... из заголовка "[af_activation_gravi]" берем название последовательности af_activation_gravi и ищем сам артефакт af_fireball (кто уже забыл зачем, мы на него собирались вешать новую активацию)

Найдете что-то вроде:
[af_fireball]:af_base
GroupControlSection    = spawn_group
$spawn             = "artifactszharka fireball"
$npc            = on                ; option for Level Editor
;$prefetch         = 3
cform           = skeleton
class           = ARTEFACT

visual                = physicsanomalyartefact_fire.ogf
description            = enc_zone_artifact_af-fireball
inv_name            = af-fireball

И где-нибудь тут добавляете строчку: artefact_activation_seq = af_activation_gravi

И на этом всё. Прописываем в artefacts.ltx в блоке [af_base]:identity_immunities вместо ;slot=10 вот это: slot=1. Насколько я знаю, знак ; зоначает, что строка закомментирована(неактивна) У себя я прописывал slot=1 между строчками inv_name = af-electra-moonlight inv_name_short = inv_weight = 0.05 slot = 1 inv_grid_x = 10 inv_grid_y = 10 для того артефакта, который хочу активировать.

В игре берем артефакт в первый слот и активируем.

By XiaNi
========
5.Делаем прозрачный худ и инвентарь
Делаем прозрачный худ и инвентарь:
значит нам нужны файлы ui_hud.dds и ui_ingame2_common.dds из gamedata\textures\ui\
открываем их фотошопом, с помощью инструмента "прямоугольная область" (M)
выделяем им все изображение, затем выбираем один из каналов (красный, зеленый, синий)
ctrl+1, ctrl+2, ctrl+3... копируем тот что светлее (ctrl+c) и вставляем эту копию вместо альфа-канала (нажимаем ctrl+4 и ctrl+v)
затем сохраняем изменения (в настройках файла при сохранении выбираем Save Format: DXT5 (Interpolated Alpha)
MIP maps: No MIP maps)
запускаем игру, ценим... :)
========
6.Вычисляем координаты
Вычисляем координаты

Нашел на одном форуме, достаточно интересно.

Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает :) функция спавна имеет вид
alife():create(section,position,levelvertex,gamevertex)

Где:

section - имя того/чего спавним

position,levelvertex,gamevertex - координаты, позиция вершины обьекта, и сектора карты.

Напишу подробно, как очень про100 их узнать:

Заходим, предварительно распаковав, в каталог gamedata/scripts/ И там в файле ui_main_menu.script в конце дописываем это:
function main_menu:OnButton_credits_clicked()
local text
local vid
local gvid
local a = vector() 
local text
a = db.actor:position() 
vid = db.actor:level_vertex_id() 
gvid = db.actor:game_vertex_id() 
text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end

Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу СОЗДАТЕЛИ (CREDITS) - соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё - F12 или на бумажку.

By Pereiro, added by loxotron
========
7.Описание Actor.ltx
Actor.ltx

Параметры передвижения
max_item_mass = ; необходимо изменить также параметр max_weight в system.ltx
jump_speed =  ;высота прыжка
crouch_coef = ;скорость передвижения главного героя на корточках
climb_coef = ;скорость перемещения гг по лестницам
run_coef = ;скорость обычного бега
sprint_koef = ;коеффициент, умножая на который, получаем скорость бега в спринте
run_back_coef = ;коеффициент, умножая на который, получаем скорость бега спиной вперед
walk_back_coef = ;коеффициент, умножая на который, получаем скорость движения спиной вперед
air_control_param =
walk_accel =

Параметры сложности
hit_probability_gd_novice = 0.20 Пули, попадающие в цель и выпущенные NPC. Уровень игры "Новичок" - меткость NPC 20%
hit_probability_gd_stalker = 0.30 - меткость NPC 30%
hit_probability_gd_veteran = 0.40 - меткость NPC 40%
hit_probability_gd_master = 0.50 - 50% пуль, выпущенные НПС, попадают в цель
В частности, если прописать эти 4-ре параметра "hit_probability_gd_*" в каждый файл с оружием "wpn_*.ltx", то в результате npc из разного оружия будут стрелять с разной точностью, с той, которую вы укажете для разного уровня сложности игры.

Пример: В игре автомат Абакан точнее АК74, но из-за того что параметры hit_probability_gd_* едины для всех видов оружия, НПС будут стрелять из этих двух автоматов с одинаковой точностью. Чтобы исправить это, можно прописать эти параметры к Абакану и а АК74, но поменяв значения:
Абакан (wpn_abakan.ltx) - hit_probability_gd_master = 0.55
AK74 (wpn_ak74.ltx) - hit_probability_gd_master = 0.50

Теперь НПС на уровне игры "Мастер" будут стрелять из Абакана чуть точнее (на 5%) чем из АК74.

Коэффициэнты иммунитета при повышении сложности в секциях [actor_immunities_gd_*]:
1 - новичок
2 - сталкер
3 - ветеран
4 - мастер Параметр    1 2 3 4 название
burn_immunity    = 0.5 0.65 0.8 1.0 огонь (костры, огненные аномалии и т.п.)
strike_immunity    = 0.5 0.65 0.8 1.0 удар (падение с большой высоты, столкновение, аномалии типа "трамплин" и т.п.)
shock_immunity    = 0.5 0.65 0.8 1.0 электрошок
wound_immunity    = 0.5 0.65 0.8 1.0 разрыв (порезы, атаки животных и т.п.)
radiation_immunity = 0.5 0.65 0.8 1.0 радиация
telepatic_immunity = 0.5 0.65 0.6 1.0 пси воздействие
chemical_burn_immunity = 0.5 0.65 0.8 1.0 химческие вещества
explosion_immunity = 0.1 0.3 0.6 1.0 стойкость к взрывам
fire_wound_immunity = 0.5 0.65 0.8 1.0 пулестойкость

Значение "0.0" - абсолютная стойкость к воздействию Значение "1.0" - без иммунитета к воздействию
========
8.Описание Alife.ltx
Alife.ltx

Содержание
1 Alife.ltx
2 Смена длительности дня и ночи
3 Время и дата старта игры
4 Период автосохранения
5 Радиус загрузки локации
6 Авторы

Alife.ltx

Я думаю каждый из вас натыкался на это файл? Сейчас я объясню, что в нём можно изменить.

Смена длительности дня и ночи
За это отвечает строка
#time_factor           = 10; 1; ;396.0;
если значение 10 поменять на 1, то время в игре начнёт тянуться как у нас с вами в настоящей жизни (при это будет иметь смысл спать, сидеть у
костра, есть и т.п.))
Время и дата старта игры

Строчки
start_time        = 6:10:00
start_date        = 10.09.2011

отвечают за время и дату начала игры (пригодится для модификаций с новым сюжетом)

Период автосохранения

Строка
autosave_interval    = 01:05:00

отвечает за промежуток между автоматическим сохранением игры.

Радиус загрузки локации

Строка
switch_distance        = 150;0 ;150 ;75.0

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

Авторы

Статья создана:
Хемуль
========
9.Описание Inventory new.xml
Inventory new.xml

Оформление инвентаря:

По пути gamedata.db0/config/ui/ лежит файл inventory_new.xml содержащий координаты объектов инвентаря.

Инвентарные слоты состоят из багграундных текстур, и слотовых сеток.

К примеру строки
<belt_slots x="0" y="80" width="1024" height="172">       
     <texture>ui_slots_belt</texture>
</belt_slots>

содержат координаты (x="0" y="80") и размер (width="1024" height="172") багграундной текстурки ui_slots_belt для двух оружейных слотов и слота ремня.

А строки
<dragdrop_belt x="645" y="136" width="410" height="60"
      cell_width = "60" cell_height="60" rows_num="1" cols_num="5"/>

содержат координаты (x="645" y="136"), размер сетки(width="410" height="60"), размер одной ячейки сетки (cell_width = "60" cell_height="60"), число строк (rows_num="1") и столбцов (cols_num="5") слотовой сетки инвентаря.

Отсчет координат x y идет с левого верхнего угла.

Меняя значения приведенных значения можно изменять внешний вид инвентаря.

Примеры:

Изменив значения в строках
<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"/>

у нас в ременном отделении под артефакты вместо 5ти, будет 10ть слотовых ячеек.

Или изменив координаты (x="870" y="725") в строках
<exit_button x="870" y="725" width="157" height="48">
....     
....   
</exit_button>

на координаты (x="10" y="10"), можно перенести кнопку Выхода(из инвентаря) из правого нижнего угла в левый верхний угол.
========
10.Описание System.ltx
System.ltx

Параметры slot_persistent_*
slot_persistent_1  = true    ;knife
slot_persistent_2  = false    ;pistol
slot_persistent_3  = false    ;automatic
slot_persistent_4  = true    ;grenades
slot_persistent_5  = true    ;binocular
slot_persistent_6  = true    ;bolt
slot_persistent_7  = false    ;outfit
slot_persistent_8  = true    ;pda
slot_persistent_9  = true    ;detector
slot_persistent_10  = true    ;torch

Эти параметры проверяются когда игрок обшаривает контейнер или начинает торговаться с кем-то.

Если стоит false то вещь находящаяся в слоте при обшаривании или торговле будет автоматически выложена из слота в рюкзак. Если стоит true то при обшаривании/торговле вещь останется в слоте.

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

Если для параметров:
slot_persistent_1  = true    ;knife
slot_persistent_5  = true    ;binocular
slot_persistent_6  = true    ;bolt
slot_persistent_8  = true    ;pda
slot_persistent_9  = true    ;detector
slot_persistent_10  = true    ;torch

вместо true выставить false при обшаривании или торговле в рюкзаке можно увидеть ПДА, фонарик, детектор, нож, болты, которые в обычном режиме в инвентаре не отображаются.
========