Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpargalka_AMK_v5.pdf
Скачиваний:
81
Добавлен:
07.02.2016
Размер:
367.13 Кб
Скачать

КОВЫРЯНИЕ

Правка свойств ГГ

Устанавливаем высоту прыжка ГГ:

В файле actor.ltx в папке gamedataconfigcreatures, найди параметр jump_speed и задай ему нужную тебе величину, чем больше тем выше ГГ будет прыгать.

Максимальный переносимый вес прописан в gamedata/config/creatures/actor.ltx строчка max_walk_weight

Отображение веса в инвентаре (выше этого значения нельзя бегать): gamedata/config/inventory_sect.ltx строчка max_weight.

Может кто-нибудь сказать как сделать бессмертие? Какой параметр в каком файле нужно подправить.

В папке gamedata\config\creatures есть файл actor.ltx. В нем находишь вот это (xxxxx - это уровень сложности на каком ты играешь, например master)

Код [actor_immunities_gd_xxxxx]

burn_immunity

 

= 1.0;коэффициенты иммунитета

strike_immunity

= 1.0

shock_immunity

 

= 1.0

wound_immunity

 

= 1.0

radiation_immunity

 

= 1.0

telepatic_immunity

 

= 1.0

chemical_burn_immunity

= 1.0

explosion_immunity

 

= 1.0

fire_wound_immunity

 

= 1.0

и меняешь цифры на 0 - ГГ будет бессмертным. Можно не все менять, тогда можно сделать, например, что ГГ будет пуленепробиваемым, но будет дохнуть в аномалиях и т. п.

Рассмотрим некоторые переменные на примере 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 – вес, с которым ГГ может бежать.

Страница 6

вращение камеры при попаданиях - рандомный баг на статике вроде правится выставлением cam_inert > 0 в user.tlx

стартовые рублики ГГ зашиты в allspawn-e. Проще всего в первом квесте Волка (gamedata/config/misck/task_manager.ltx строку найдешь сам) прописать нужную тебе сумму в вознаграждения

Открываем ...\S.T.A.L.K.E.R\gamedata\scripts\escape_dialog.script, и ищем такую функцию (строку):

function give_weapon_from_trader(trader, actor) 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, "ammo_9x18_fmj", "in") end

После выделенной строки вставляем такую конструкцию: dialogs.relocate_money(trader, здесь указываем необходиму сумму денег, "in") dialogs.relocate_item_section(trader, "wpn_spas12", "in")

Должно получиться примерно так:

function give_weapon_from_trader(trader, actor) 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, "ammo_9x18_fmj", "in") dialogs.relocate_money(trader, 10000, "in") dialogs.relocate_item_section(trader, "wpn_spas12", "in")

end

В итоге, после взятия у Сидоровича квеста на "Ночную звезду", в самом начале, ГГ будет выдано 10000 рублей и СПАС-12.

как отключить дрожание оптики в АМК 1.4? gamedata\config\misc\effectors.ltx [zoom_inertion_effector]

camera_move_epsilon = 0.03 disp_min = 0.0

speed_min = 0.001 zoom_aim_disp_k = 0.18 zoom_aim_speed_k = 0.00 delta_time = 1350 заменить на: [zoom_inertion_effector]

camera_move_epsilon = 0.03 disp_min = 0.00

speed_min = 0.000 zoom_aim_disp_k = 0.0 zoom_aim_speed_k = 0.00 delta_time = 2000

В actor.ltx поменял:

satiety_v = 0.000005 на 0.000025

теперь есть нужно почаще, раз в 4-6 часов, соответственно батоны не лишний вес в рюкзаке, порой и за кусок хлеба дратся прийдется:)

satiety_health_v = 0.0001 на 0.00001

Страница 7

Ну от чего так быстро восстанавливается здоровье? Теперь "кровь камня" будет приносить побольше пользы, а здоровье само по себе будет восстанавливатся довольно медленно.

bleeding_v = 0.0005 на 0.0025 wound_incarnation_v = 0.003 на 0.001 min_wound_size = 0.0256 на 0.005 Теперь без бинтов - никуды!

В каком файле правиться стартовый набор Меченого? который Сидорович выдает?

\gamedata\scripts\escape_dialog.script надеюсь ты найдёшь где там что кому отдаёт. функция transfer_deneg выдаёт после квеста ночная звезда... Когда отдал, ему. функция give_weapon_from_trader это когда перед выдачой квеста дает.

Очень интересно - реалезована зависимость ttx от ранга.

Урон (ttx) у оружия в той схеме при разных уровнях сложности разительно отличаеться а по идее должен быть одинаков.

Можно например оставить в конфигах верхний потолок ttx чтоб в дальнейшем избежать неприятностей типа (двух обойм на человека).

При зависимости ttx настроек и ранга игрока создаеться совершенно иная концепция "сложности" которая может быть очень полезна для геймплея. В общем правка баланса в игре - одна из самых сложных тем на сегодняшний момент.

В моем видение все таки интереснее ограничить сложность в игре в файле m.stalker а в частности на меткости врагов.

Вот мой вариант секции в файле астоr.ltx hit_probability_gd_novice = 0.20 hit_probability_gd_stalker = 0.40 hit_probability_gd_veteran = 0.60 hit_probability_gd_master = 0.80

При новичке шанс попадания около 20% что являеться довольно оптимальным вариантом для первого прохождения игры.

Далее слжность по рангам начинает расти в арифметической прогрессии и достигает 80% на мастере.

При мастере я намеренно не делаю упор на хардкор 1.0 т.к такая меткость абсолютно не соответствует действительности при том что уже при этих характеристиках ГГ уже начинает ощущать всю "прелесть" данного ранга.

Как отключить ограничение обьема в инвентаре?

Если у тебя АМК+два патча открываешь тот же amk_utils.script, в начале находишь вот это: RestrictionStock = 1

и меняешь на это: RestrictionStock = nil

Как приписать еде свойство приближения сна? ( я хочу чтобы через 3 минуты после употребления ГГ засыпал)

В AMK_MOD найди такую строчку:

--'elseif (section=="medkit" or section=="medkit_army" or section=="medkit_scientic") then --' stype="med"

а под ней допиши:

elseif (section=="conserva" or section=="kolbasa" or section=="bread") then stype="food"

теперь сьешь 4 консервы или 4 хлеба(можно например 2 хлеба и 2 колбасы) можно будет поспать(как раньше с аптечками).

Страница 8

Тайники\Награды

Файл отвечающий за тайники называется treasure_manager.ltx

Там их 2 на самом деле. Второй называется treasure_manager.script - отвечает за выдачу.

Редактирование тайников:

Частота выпадения:

treasure_manager.script - редактируешь его получаешь частоту выпадание тайников - 65 меняй на что-нить допустим на 10...

Редактирование содержимого:

treasure_manager.ltx в «миске» и во 4 строчке прописываешь, что ты хочешь, получится должно получится примерно так :

[esc_secret_bridge_vagon] target = 5000

name = esc_secret_0000_name description = esc_secret_0000_descr

items = ammo_5.45x39_ap,190,medkit_army,6, wpn_addon_scope,wpn_ak74u_m1,stalker_m1,outfit_specnaz_m1, wpn_groza_m1,wpn_spas12_m1,wpn_lr300_m1,wpn_svd_m1,wpn_sig_m1,wpn_colt_m1,wpn_val _m1,wpn_rg6_m1,outf it_dolg_m1

Правильно ли я понимаю, что награда за квесты прописана в E:\gamedata\config\misc\task_manager.ltx?

Если да, то где посмотреть награду за квесты Скряги, Макса и Кэпа? В указаннном файле я этих данных не нашёл...

В файле task_manager.ltx прописаны награды за однотипные квесты в ветке диалогов с квестовыми персонажами и торговцами: "Мне нужна работа, есть что на примете?" Это такие квесты как: принести предмет, найти артефакт, зачистить территорию от монстров, убить сталкера, защитить лагерь (например, в ангаре на Свалке).

Награды за квесты Скряги, Макса и Кэпа пожно посмотреть, и соответственно, поправить в файле dialogs_military.script.

Так, например, строка с наградой Макса выглядит так: function send_desert_eagle (actor, npc) dialogs.relocate_item_section(npc, "wpn_desert_eagle", "in") end

Подскажите, какие файлы отвечают за наполнение редких тайников в АМК? gamedata\scripts\treasure_manager.script

массив rare_list

Вероятность выпадения тайников - в treasure_manager.script rarets = 90 (чем меньше значение, тем чаще вападают тайники)

Страница 9

Слоты на пояс под арты

Ячейки под атрефакты тоже можно - я 16 штук делал. Делается просто - два файла менять всего надо, файл system.ltx, секция inventory, в АМК моде она вообще в отдельный файл вынесена - inventory_sect.ltx называется. Там всего пять строчек:

[inventory] take_dist = 2 max_weight = 80 max_ruck = 56 max_belt = 6 //16 slots = 11

Надо на вот что изменить: (заметьте, за двойным слешем стоит 16 - это количество слотов под атрефакты хотели сделать сами разработчики игры, потом переделали на 5, а команда АМК - на шесть)

[inventory] take_dist = 2 max_weight = 80 max_ruck = 56 max_belt = 16 slots = 11

Дальше надо изменить рисунок ячеек в инвентаре, штобы ячеек рисовалось не 6, а 16, по восемь в два ряда, типа как в АМК рисуется по три в два ряда. Делаем так: Берём файл inventory_new.xml, из папки gamedataconfigui, открываем его, находим секцию:

<dragdrop_belt x="786" y="118" width="156" height="104" cell_width = "52" cell_height="52" rows_num="2" cols_num="3"/>

Это так в моде АМК. Красным выделил ряды и колонки. То есть у нас есть два ряда по три колонки. Делаем маленько по-другому:

<dragdrop_belt x="590" y="118" width="410" height="104" cell_width = "52" cell_height="52" rows_num="2" cols_num="8"/>

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

Ячейки под атрефакты - 10 штук: файл system.ltx, секция inventory, в АМК моде она вообще в отдельный файл вынесена - inventory_sect.ltx называется. Там всего пять строчек:

[inventory] take_dist = 2 max_weight = 80 max_ruck = 56 max_belt = 6 //16 slots = 11

Надо на вот что изменить: (заметьте, за двойным слешем стоит 16 - это количество слотов под атрефакты хотели сделать сами разработчики игры, потом переделали на 5, а команда АМК - на шесть)

[inventory] take_dist = 2 max_weight = 80 max_ruck = 56 max_belt = 10 slots = 11

Дальше надо изменить рисунок ячеек в инвентаре, штобы ячеек рисовалось не 6, а 10, по пять в два ряда, типа как в АМК рисуется по три в два ряда. Делаем так: Берём файл inventory_new.xml, из папки gamedataconfigui, открываем его, находим секцию:

<dragdrop_belt x="786" y="118" width="156" height="104" cell_width = "52" cell_height="52" rows_num="2" cols_num="3"/>

Страница 10

Это так в моде АМК. Красным выделил ряды и колонки. То есть у нас есть два ряда по три колонки. Делаем маленько по-другому:

<dragdrop_belt x="733" y="118" width="410" height="104" cell_width = "52" cell_height="52" rows_num="2" cols_num="5"/>

Предметы

items.ltx:

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

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

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

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

cost – цена.

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

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

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

стить.)

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

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

В файле 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/config/misc находиш файл items.ltx в нем находиш секции [bread], [kolbasa], [conserva] и для каждой из них там есть параметр eat_health который нужно увеличить до нужных дебе значений. По дефолту для bread, eat_health = 0.05, для kolbasa 0.1 и для conserva 0.15

В этой статье я расскажу как создавать новые предметы:

Для начал находим файл items.ltx, находящийся в папке config/misc/, и копируем какой-ни- будь предмет, я, например, взял:

[bread]:identity_immunities GroupControlSection = spawn_group discovery_dependency =

Страница 11

$spawn = "food and drugs\bread" ;$prefetch = 32

class = II_FOOD cform = skeleton

visual = weapons\bred\bred.ogf description = enc_equipment_food_bread1 inv_name = Bread

inv_name_short = Bread inv_weight = 0.3 ;0.2 inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 11 inv_grid_y = 9

cost = 20

attach_angle_offset = -0.287979, 1.560923, 1.544060 attach_position_offset = 0.096910, -0.013594, 0.107925 attach_bone_name = bip01_r_hand

auto_attach = false

// should be deleted after update bone_name = bip01_r_hand position_offset = 0.0,0.0,0.0

angle_offset = 1.570790,1.570790,3.92699

;eatable item eat_health = 0.05 eat_satiety = 0.2 eat_power = 0 eat_radiation = 0 wounds_heal_perc = 0 eat_portions_num = -1

;food item

slot = 4 animation_slot = 4 ;hud item

hud = wpn_vodka_hud

Вставляем его копию в конец, меняем название: [bread]

На:

[test]

А также: inv_name = Bread

inv_name_short = Bread На:

inv_name = test inv_name_short = test

И description = enc_equipment_food_bread1 на description = enc_equipment_food_bread1_test И, также, "по желанию":

eat_health = 0.05 eat_satiety = 0.2 eat_power = 0 eat_radiation = 0 wounds_heal_perc = 0 eat_portions_num = -1

Всё, в item.ltx работа закончена, теперь переходим к редактированию описания, открываем string_table_enc_equipment "Блокнотом". Что мы там видим: все описания и названия прописаны по тегам:

<string id="название из inv_name"> <text>Название в игре</text> </string> И:

Страница 12

<string id="описание из description"> <text>Описание в игре</text> </string> Пишем:

<string id="test"> <text>Тестовый предмет</text> </string> И:

<string id="enc_equipment_food_bread1_test">

<text>Тестовый предмет, разработанный в сверхсекретных лабораториях Зоны :)</text> </string>

Сохраняем... Все! Основная работа завершена! Теперь добавим предмет торговцам, например, Сидоровичу.

Открываем trader_trader из папки config/misc (работа с ним подробно описана в этой статье), прописываем:

test = 0.3, 0.5 В секции:

[trader_generic_buy]

Идалее в: [supplies_start] test = 10, 1

В [supplies_after_fabric] test = 10, 1

В [trader_start_sell]

Ив:

[trader_after_fabric_sell] test = 1. 3

Сохраняем, запускаем игру, торгуем с Сидоровичем и видим у него два вида хлеба: один из них - наш :)

Как сделать возможность, чтоб к примеру ногу кабана можно было сожрать?

Открываем файл gamedata\config\misc\monster_items.ltx Находим секцию [mutant_boar_leg]

И меняем параметр class = II_ATTCH на class = II_FOOD Нога съедается на раз, но эффект 0, поэтому добавляем eat_health = 1.0

eat_satiety = 0 eat_power = 0 eat_radiation = 0.3 wounds_heal_perc = 0 eat_alcohol = 0 eat_portions_num = -1

Теперь нога лечит как аптечка ученых, но из-за нее повышаться радиация

Как использовать первый слот для детектора?

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

Для установки детекторов в 1-й слот: (везде) gamedata\config\misc\items.ltx

Изменить в разделе "devices" Для простого детектора строка 631

;slot = 3 на

slot = 1

аналогично для других детекторов.

Теперь детектор можно носить как в первом слоте, так и на поясе.

Страница 13

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

во-первых, в файле amk_mod.script надо раскомментировать строки:

Код

--'elseif (section=="medkit" or section=="medkit_army" or section=="medkit_scientic") then --' stype="med"

то есть сделать так:

Код

elseif (section=="medkit" or section=="medkit_army" or section=="medkit_scientic") then stype="med"

затем в этом же файле раскомметировать функцию:

Код

--[[

function test_for_need_sleep_med(oid) if alife():object(oid)==nil then

amk.save_variable("gg_need_sleep",amk.load_variable("gg_need_sleep",0)+5) test_sleep_pp()

end end ]]--

то есть сделать так:

Код

function test_for_need_sleep_med(oid) if alife():object(oid)==nil then

amk.save_variable("gg_need_sleep",amk.load_variable("gg_need_sleep",0)+5) test_sleep_pp()

end end

наконец, в файле amk.script раскомментировать следующее:

Код

--[[

if select_string=="sleep_med" then mod_call("test_for_need_sleep_med",params_string) end

]]-- то есть сделать так:

Страница 14

Код

if select_string=="sleep_med" then mod_call("test_for_need_sleep_med",params_string) end

Сообщения и ПДА

Как добавлять свои "новости Зоны"? Я хочу их побольше сделать... Да и под дух Зоны приспособить.

PS Но и без того - они оживляют игру...

в папке с игрой, в gamedata scripts лежат: amk_death_lists.script (от чего умер и где) amk_names_lists.script (кто - имя)

amk_news_lists.script (место, время события, тело сообщения, добавочный мат) amk_uniq_news_lists.script (уникальные новости)

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

Возможно ли добавить в "новости" новые тексты, или только переделать те что есть?

Ответ:

Вот навскидочку файлы: amk_news_lists.script amk_uniq_news_lists.script amk_modders.script

но в каком-то(каких-то?) файлах новости не для оффлайн - A-Life, а чисто для атмосферы. Может быть вспомнил не все файлы.

Броня

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 - коэффициент защиты от огнестрельных ранений

Страница 15

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

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

Все просто. Всего то нужно дописать outfit_exo_m1="hud_exo" в amk_mod.script в котором все комбинезоны, для которых применяется интерактивный худ, перечисляются через запятую с указанием текстуры худа. А в unique_items я только actor_visual = actors\killer\stalker_ki_exoskeleton добавил для этого экзоскелете, что бы при включении камеры от третьего лица, он выглядел как экзоскелет наемников, без этих красных "габаритных огней". Теперь он шарового цвета, примерно как комбинезоны наемников. Правда иконки в полный рост для экзоскелета наемников нет... ну да и хрен с ней. По аналогии можно исправить и другие комбинезоны для которых не прописан худ.

Как сделать что-бы можно было бегать в экзе?

в файле outfits.ltx находишь нужную броню и вписываешь эту строку. sprint_allowed = false

sprint_allowed = true - чтобы низя было бегать

Как изменить переносимый вес у экзы?

Изменяй значение этих строк в секции нужной брони: additional_inventory_weight = 15 additional_inventory_weight2 = 15 ; 40+

Подскажите, плз, как изменить у экзоскелета свободы ПНВ с зеленого на улучшенный, как у ССП99-М?

в папке gamedata-config-misc лежит файл amk_mod_outfits.ltx там находишь строчку: [svoboda_yellow_exo_outfit_m1]:outfit_base наже находишь еще одну строчку: nightvision_sect = effector_nightvision_bad и меняешь на: nightvision_sect = effector_nightvision_good

[outfit_stalker_m1]:stalker_outfit

;Комбинезон призрачного сталкера - название костюма

$spawn

= "outfit\uniq\outfit_stalker_m1

inv_name

= stalker_outfit_name_m1

inv_name_short

= stalker_outfit_name_m1

description

= stalker_outfit_description_m1

health_restore_speed

= 0.0 - скорость востановления здоровья ( при значении "-"

будет убывать)

 

 

radiation_restore_speed

= -0.001

- Скорость убывания радиации

satiety_restore_speed

= 0.0

- Голод ( значение "-" увеличит время

между приемами пищи)

 

 

power_restore_speed

= 0.0009

- Скорость востановления бодрости

bleeding_restore_speed

= 0.0

- Скорость остановки кровотечения (при

значении "-" будет останавливать)

 

inv_grid_x

= 16

 

inv_grid_y

= 24

 

additional_inventory_weight

= 60

- + к переносимому весу ГГ

additional_inventory_weight2

= 60

- максимальное значение переносимого

веса

= effector_nightvision_good - тип ПНВ ( гоод - синий.

nightvision_sect

burn_protection

= 0.1

- защита от Ожога

strike_protection

= 0.2

- Удара

shock_protection

= 0.3

- Электрошока

wound_protection

= 0.4

- Разрыва

radiation_protection

= 0.5

- Радиации

Страница 16

telepatic_protection

= 0.6

- Телепатии

chemical_burn_protection

= 0.7

- Химического ожога

explosion_protection

= 0.8

- Взрыва

fire_wound_protection

= 0.9

- Пулестойкость

burn_immunity

= 0.001

- Износостойкость к выше перечисленному

(значение "0" - вечный костюм)

 

 

strike_immunity

= 0.001

 

shock_immunity

= 0.001

 

wound_immunity

= 0.001

 

radiation_immunity

= 0.00

 

telepatic_immunity

=0.00

 

chemical_burn_immunity

= 0.001

 

explosion_immunity

= 0.001

 

Вопрос: bones_koeff_protection = gilet_antigas_damage - как работает эта строка в конфиге костюма (принцип или действие оной)?

Каждый костюм ГГ (и визуал непися) помимо иммунитетов имеет защиту различных участков тела. Защита задаётся в виде различных коэффициентов повреждения для различных костей модели. Если повреждение наносится в конкретную кость, то производится учёт соответствующих коэффициентов. Приведённая вами строка указывает на секцию в damages.ltx, в которой и заданы такие коэффициенты.

А нельзя поковырять конфиг самого ПНВ? Например, сделать его четким, но уменьшить дальность видимости...

Ковыряю. Вывих мозга уже заработал, не смотря на знание ассемблера и представления машинных кодов. Постпроцессы весьма сложны для понимания, нужно изучать. Пока могу предложить следующее:

1. в файле \gamedata\config\misc\postprocess.ltx в конце в секции Postprocess изменяем nightvision_bad.ppe на nightvision.ppe

ПНВ остается зеленым и довольно паршивым, но хотя-бы не двоится в глазах или 2. там же секцию

[effector_nightvision_bad] pp_eff_name = nightvision_bad.ppe pp_eff_cyclic = 1

заменяем на [effector_nightvision_bad] pp_eff_name = psy_antenna.ppe

self.base_amplitude = color(0.2,0.15,0.0) pp_eff_cyclic = 1

blur = 5 gray = 0 noise = 0

noise_scale = 0

noise_color = 0.535, 0.493, 0.389, 0 self.gray_color = 0.535, 0.493, 0.389 self.base_color = 0.535, 0.493, 0.389 ПНВ становится гораздо симпатичнее.

Вообще на данный момент без супер-напряга можно включить в игру 4 вида уже готовых ПНВ: абсолютно никакой с косоглазием, плохонький без косоглазия, желтый среднего качества и голубой цифровой. Пси ПНВ я еще не пробовал.

Дальность видимости уменьшить нельзя, также нельзя сделать "настоящий" тепловизор, только светоусилитель. Ну, насколько я пока понял.

[Добавлено]

Страница 17

Попробовал ПНВ из секции [effector_nightvision_psy] pp_eff_name = psy_antenna.ppe pp_eff_cyclic = 1

симпатично и удобно, правда на ПНВ не очень похоже. Хотя в принципе можно подключать как пятый вид ПНВ.

Никто не подскажет как создать новый эффектор ПНВ?

На тебе черно-белый ПНВ на эффекте как от пси-антен: [effector_nightvision_blackwhite]

pp_eff_name = psy_antenna.ppe self.base_amplitude = color(0.2,0.15,0.0) pp_eff_cyclic = 1

blur = 5 gray = 0 noise = 0

noise_scale = 0

noise_color = 0.535, 0.493, 0.389, 0 self.gray_color = 0.535, 0.493, 0.389 self.base_color = 0.535, 0.493, 0.389 noise_color = 0.535, 0.493, 0.389, 0 ; цвет шума

self.gray_color = 0.535, 0.493, 0.389 ; цвет добавленного оттенка - вобщем делает пнв подсвеченным например синим

;( как effector_nightvision_good ) или зеленым (effector_nightvision_bad)

self.base_color = 0.535, 0.493, 0.389 ;изменение цвета окружающей среды, по старой технологии РГБ притушить одни цвета и сделать более яркими друг

НПС

Как поменять плату за проход под мостом на Кордоне: gamedata.scripts.escape_dialog.script

Почти в самом конце функции has_soldiers_bribe и give_soldiers_bribe, увеличил 500 до 5000.

Конфиг Петрухи gamedata/config/gameplay/charecter_esc_desc.xml, Петруха называется esc_ranger

<object_story_id>bar_dolg_guard_commander</object_story_id> здесь указываются данне из game_story_ids (bar_dolg_guard_commander это и есть Пличко)

Вопросы: что бы "переодеть" НПС редактируем эту строку в его конфиге: <visual>actors\novice\green_stalker_8</visual> ?

И что-бы изменить иконку ОДЕТОГО костюма в инвентаре - какую строку надо исправить в конфиге костюма?

1.Да.

2.Иконка меняется здесь: <icon>ui_npc_u_stalker_neytral_balon_1</icon>

Редактирование профиля НПС:

\config\gameplay\character_desc_[название локации].xml

Каждый из них разбит на секции - по одной на NPC. Используются следующие параметры: <name>...</name> - Имя (ссылка на строку в текстовом массиве).

<icon>ui_npc_...</icon> - Иконка для диалогов/торговли.

Страница 18

<bio>..._bio</bio> - Биография (в игре не используется).

<class>...</class> - Класс (лучше не трогать).Imp 12:46, 12 августа 2007 (EEST)Нужно для того что-бы автоматические респавнеры могли спавнить немного разных персонажей. То есть например в игре есть описание восьми (кажеться может и больше) разных новичков и что бы при автоматическом респавне не получалась куча братьев-близнецов, респавнер настраивается на класс персонажей и спавнит случайным образом разных персонажей одного класса.

<community>...</community> - Группировка. <rank>...</rank> - Ранг.

<reputation>...</reputation> - Репутация.

<money min="..." max="..." infinitive="..."/> - Количество денег (infinitive="1" - бесконечные день-

ги).

<snd_config>...</snd_config> - Набор звуков. <crouch_type>-1</crouch_type> - Тип приседания. Лучше не трогать.

<visual>actors\...</visual> - Внешность. Влияет как на внешний вид костюма, так и на его свойства. Укажите здесь экзоскелет - и персонаж действительно в нем окажется: как по внешности, так и по свойствам.

<supplies>...</supplies> - Предметы, находящиеся у него в инвентаре. Некоторые из них в игре не отображаются, поэтому не удивляйтесь присутствию здесь предметов вроде рации или фонарика.

В каких файлах, что нужно прописать, чтобы добавить нового торговца, например на Кордон?

Совсем нового? Или существующему НПС добавить функцию торговли? Первое через спавн и всем, что с этим связано. Второе, через файл гулага, к которому прописан НПС. Вот, для примера как прописать торговлю повару на базе свободы. Берем файл gulag_mil_freedom1.ltx, находим секцию повара и пишем:

[logic@mil_freedom_cook]

active = walker1@mil_freedom_cook actor_dialogs = dialogs@mil_freedom_cook trade = misc\trade_povar.ltx

on_death = on_death@mil_freedom_cook

Дальше создаешь файл trade_povar.ltx похожий на trade_generic.ltx

Спавн персонального НПС (типа Волка)

1) Создаем профиль твоего непися аналогично тому же Волку или Лукашу в одном из файлов character_desc_.... вообщем в том где ты хочешь чтобы непись спавнилась. Для примера вот:

<!---------------------------dan----------------------> <specific_character id="esc_dan" team_default = "1"> <name>Дэн</name>

<icon>ui_npc_u_actor</icon> <map_icon x="0" y="0"></map_icon> <bio>sim_stalker_novice_bio</bio> <class>esc_dan</class>

<community>trader</community> <terrain_sect>stalker_terrain</terrain_sect> <money min="100000" max="110000" infinitive="1"></money> <rank>259</rank>

<reputation>100</reputation> <visual>actors\svoboda\stalker_sv_exoskeleton</visual> <snd_config>characters_voice\human_02\bandit\</snd_config> <crouch_type>0</crouch_type>

<supplies> [spawn] \n wpn_groza \n ammo_9x39_ap \n wpn_spas12 \n

Страница 19

ammo_12x70_buck \n bar_tiran_pda \n

#include "gameplay\character_food.xml" \n #include "gameplay\character_drugs.xml" </supplies>

#include "gameplay\character_criticals_6.xml" <actor_dialog>informator_pda_give</actor_dialog> <actor_dialog>prinesi_hvost</actor_dialog> <start_dialog>hello_dialog</start_dialog>

#include "gameplay\character_dialogs.xml" </specific_character>

2) Дальше прописываем его в файле npc_profile вот так: <character id="esc_provodnik"> <class>esc_provodnik</class>

</character>

<character id="esc_dan"> <class>esc_dan</class> </character>

3)прописываем его в файле spawn_sections вот так: [esc_dan]:stalker

$spawn = "respawn\esc_dan" character_profile = esc_dan spec_rank = veteran community = trader

4) Создаем свой скриптовый файл и в нем пишем функцию спавна вот такую: function esc_shustryi()

local obj = alife():create("esc_dan",vector():set(112.3336,-7.41105,-42.5093),413823,124) local params=amk.read_stalker_params(obj)

params.custom="[logic]\nactive=walker\n[walker]\npath_walk = esc_dan_walk1\npath_look = esc_dan_look1\ncombat_ignore_cond=always"

params.sid=481520 amk.write_stalker_params(params,obj) end

esc_shustryi название нашей функции local params=amk.read_stalker_params(obj) params.sid=481520

amk.write_stalker_params(params,obj) при помощи этой функции(кстати она работает только в amk) присваиваем неписю номер

path_walk = esc_dan_walk1 это путь твоего непися

path_look = esc_dan_look1 это точка(точки) куда будет смотреть твой непись И walk и look могут состоять как из одной точки так и из множества точек

5) Де компелируем all.spawn и ишем соответствующий файл way_.... ( в примере это way_l01_escape) и пропишем ему путь и look вот так :

[esc_dan_walk1] points = p0,p1,p2 p0:name = wp00|a=run

p0:position = -8.28458690643311,2.47888994216919,61.6851959228516 p0:game_vertex_id = 88

p0:level_vertex_id = 268486 p1:name = wp01|a=hide

p1:position = -87.5448226928711,-4.86890649795532,-76.5067977905273 p1:game_vertex_id = 75

p1:level_vertex_id = 177755

Страница 20

p2:name = wp02|a=sneak

p2:position = -13.3662910461426,0.638113260269165,259.589599609375 p2:game_vertex_id = 184

p2:level_vertex_id = 263975 [esc_dan_look1]

points = p0,p1,p2 p0:name = wp00

p0:position = 5.22266483306885,2.47839999198914,61.6714706420898 p0:game_vertex_id = 89

p0:level_vertex_id = 281623 p1:name = wp01

p1:position = -160.825149536133,-30.1117496490479,-359.227966308594 p1:game_vertex_id = 31

p1:level_vertex_id = 88416 p2:name = wp02

p2:position = 164.339752197266,-8.24007034301758,-12.4323778152466 p2:game_vertex_id = 137

p2:level_vertex_id = 468145

как ты видешь здесь путь и look состоят из 3 точек(минимум по одной)Теперь твоя непись будет ходить и смотреть по прописанным тобой точкам. Компелируем all.spawn и начинаем(обязательно новую игру)

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

<phrase id="111"> <text>escape_shustryi_start_111</text> <action>new_spawn.esc_shustryi</action> <next>1111</next>

</phrase> <phrase id="11">

<text>escape_shustryi_start_11</text> <next>111</next>

</phrase>

new_spawn - название файла(скриптового) esc_shustryi -название функции

Как экзоскелету увеличить защиту головы? С одного выстрела ПБ в голову, челы в экзоскелетах валяться!

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

outfit.ltx -> bones_koeff_protection = exo_helmet_damage

damages.ltx -> [exo_helmet_damage]:body_exo_damage,head_helmet_damage [head_helmet_damage]

bip01_neck = 1.0, 0.2 bip01_head = 1.0, 0.2 eyelid_1 = 1.0, 0.2 eye_left = 1.0, 0.2 eye_right = 1.0, 0.2 jaw_1 = 1.0, 0.2

Есть вопрос: в каких файлах и какие параметры (и на какие) надо менять, чтобы стало больше "раненных" сталкеров (те к-ые орут дай аптечку). И раз уж на то пошло расскажите про damage.ltx

Попробуй в файле xr_wounded.script изменить это:

Страница 21

Код:

 

def.hp_state

= "10|"..state.."@help_heavy"

def.hp_state_see = "10|"..state.."@help_heavy"

на это:

 

Код:

 

def.hp_state

= "50|"..state.."@help_heavy"

def.hp_state_see = "50|"..state.."@help_heavy

Торговля

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

[b]trade_barman.ltx[.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

Страница 22

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

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

gamedata\meshes\weapons, gamedata\meshes\food. Заметьте, что wpn_gauss нужно писать без расширения .ogf Значения:

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

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

А второе:

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

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

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

В итоге должно получиться: [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, 0.6

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

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 .

Транспорт

Страница 23

Транспорт в игре есть! Пока способ заспаунить его не известен общественности, но тем не менее в сети появился файл all.spawn, копируйте его в папку gamedata\spawns. Мод предназначен только для пропатченной версии игры(1.0001). После начала новой игры в первой локации рядом с Сидоровичем появятся несколько машин, в т. ч. и Камаз. Чтобы включить двигатель в консоли пишем [b]bind turn_engine kb[b], закрываем консоль, жмём кнопку b и насла-

ждаемся….

Рассмотрим параметры машин, конфиги находятся в папке gamedata\config\models\vehicles.

[car_definition] – после строки идут коментарии на русском языке, перейдём сразу к следующему.

--Factory parameters of Engine -- - параметры двигателя(описание не претендует на совершенно точное)

fuel_tank – вместимость бака. engine_power – мощность двигателя. hand_break_torque - сила торможения

[damage_items] – повреждения частей машины back_left_wheel - заднее левое колесо back_right_wheel -заднее правое колесо front_left_wheel -переднее левое колесо front_right_wheel - переднее правое колесо left_door - левая дверь

right_door - правая дверь [immunities]

burn_immunity = 0.5 ;коэффициенты иммунитета strike_immunity = 0.1

shock_immunity = 0.0 wound_immunity = 0.01 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.0 explosion_immunity = 0.4

fire_wound_immunity = 0.0005

P.S. Чтобы сделать вид от третьего лица, в файле user.ltx(ну если не знаете где он находится, то специально для вас в Microsoft сделали поиск в Windows) пишем после строки

unbindall:

bind cam_1 kF1 bind cam_2 kF2 bind cam_3 kF3

В игре жмём кнопки F1, F2 или F3 для смены вида. Очень нужно при езде на БТР

Оружие

файл unique.ltx - там прописаны отличия уникального оружия от оригиналов. Там и правьте. В этом файле прописаны только те которые отличаются от оригиналного оружия. Например берешь Грозу 5.45:

[wpn_groza_m1]:wpn_groza ;Гроза генерала Воронина $spawn = "weaponsuniqwpn_groza_m1"

description = enc_weapons1_wpn-groza_m1 inv_name = wpn-groza_m1

inv_name_short = wpn-groza_m1

ammo_class = ammo_5.45x39_fmj, ammo_5.45x39_ap condition_shot_dec = 0.00005

Страница 24

inv_grid_x = 5 inv_grid_y = 29

тебе надо изменить например емкость магазина тепер идеш в оригинал фаил Грозы (не модификации) и копируешь оттуда параметр:

ammo_mag_size = хх

теперь меняешь параметр как надо и копируешь его под параметры которые стоят для модификата Грозы все выглядит так:

[wpn_groza_m1]:wpn_groza ;Гроза генерала Воронина $spawn = "weaponsuniqwpn_groza_m1"

description = enc_weapons1_wpn-groza_m1 inv_name = wpn-groza_m1

inv_name_short = wpn-groza_m1

ammo_class = ammo_5.45x39_fmj, ammo_5.45x39_ap condition_shot_dec = 0.00005

inv_grid_x = 5 inv_grid_y = 29 ammo_mag_size = хх

Преодолел свою лень, поискал в распакованной игре ... и нашел "магическое слово" ...

В конфиге любого патрона надо написать tracer_color_ID = 0 или другое значение в соответ-

ствии с таблицей цветов ...

И будут трассеры разных цветов для разных патронов ...

P.S. По умолчанию в игре tracer_color_ID = 0 ...

... естественно таблицу можно разнообразить ... добавить пару, тройку выразительных цве-

тов ...

В добавление к сказанному ... после включения трассеров у боеприпасов для более гибкой

конфигурации можно выключать трассеры в конфигах оружия ... сразу после ammo_class = ...

пишем строку tracers = off ...

Пример применения: включим трассеры у Пара патронов (ammo_9x19) в weapons.ltx ... Затем

у всех пистолетов использующих этот патрон и у МР5 с глушителем впишем соотв. строку

(см. выше) ... и тогда только обычный МР5 будет стрелять трассерами ...

Я у себя также запретил трассеры у всех снайперских модификаций ... АН-94, Sig550, LR300

и у модификаций с встроенными глушителями ...

Как сделать так, чтобы при прицеливании (оптики нет) приближения не происходило?

Cтрока в конфиге оружия:

scope_zoom_factor = 90 степень приближения худа при прицеливании - чем больше значение - тем меньше зум.

Раздал военным ПКМ, а они ими что-то не очень хотят пользоваться - стреляют одиночными хоть ты тресни. И так крутил конфиг оружия, и так - не хотят. Тут вспомнил как kwendy крутил параметры weapon_min_queue_size_far и weapon_max_queue_size_far. Незадача, если этот параметр выкрутить в m_stalker.ltx, то все НПС будут стрелять как сумасшедшие. Рискнул засунуть эти параметры в конфиг ПКМ'а в следующем виде:

weapon_min_queue_size_far = 15 weapon_max_queue_size_far = 15 weapon_min_queue_interval_far = 500 weapon_max_queue_interval_far = 700 weapon_min_queue_size_medium = 30 weapon_max_queue_size_medium = 30 weapon_min_queue_interval_medium = 400 weapon_max_queue_interval_medium = 600 weapon_min_queue_size_close = 100 weapon_max_queue_size_close = 100

Страница 25

weapon_min_queue_interval_close = 300 weapon_max_queue_interval_close = 500

Опа! Военные стали из ПКМ шмалять именно с такими настройками - на дальних дистанциях очередями по 15, на средних - по 30, а на близких весь цинк в 100 патронов расстреливать за раз. При этом на других сталкеров этот параметр не влияет - они стреляют так как прописано в m_stalker.ltx

Так что таким способом можно задавать логику использования каждого оружия на разных дистанциях.

Для Сайга-12С и остальных гладкостволок себе просписал: Угу, перед секцией отвечающей за HUD всунул. weapon_min_queue_size_far = 1 weapon_max_queue_size_far = 2 weapon_min_queue_interval_far = 500 weapon_max_queue_interval_far = 700 weapon_min_queue_size_medium = 2 weapon_max_queue_size_medium = 4 weapon_min_queue_interval_medium = 400 weapon_max_queue_interval_medium = 600 weapon_min_queue_size_close = 4 weapon_max_queue_size_close = 8 weapon_min_queue_interval_close = 300 weapon_max_queue_interval_close = 500

В игре есть такой аддон к оружию как "глушитель". В его конфигурации есть следующие стро-

ки:

(все данные беруться из распакованых ресурсов оригинальной игры без каких-либо модификаций)

bullet_hit_power_k = 0.8 bullet_speed_k = 0.8 fire_dispersion_base_k = 1.25 cam_dispersion_k = 0.8

Так же в конфигурации оружия (абакан), есть такие строки: silencer_hit_power = 0.42

silencer_hit_impulse = 120 silencer_fire_distance = 600 silencer_bullet_speed = 310

Как разобраться какой параметр, когда применяются? Мои предположения:

при silencer_status = 0 (глушитель поставить нельзя) ни один параметр не учитывается

при silencer_status = 1 (глушитель интегрирован)

берутся данные из конфига оружия (silencer_hit_power, silencer_hit_impulse, silencer_fire_distance, silencer_bullet_speed)

при silencer_status = 2 (глушителя нет, но поставить можно)

беруться данные из конфига аддон "глушитель" (bullet_hit_power_k, bullet_speed_k, fire_dispersion_base_k, cam_dispersion_k)

Вслучае silencer_status = 1, данные представлены сразу в готовом виде и тупо заменяют соответствующие данные оружия

Вслучае silencer_status = 2, данные оружия нужно множить на коэффициент указанный в аддоне "глушитель".

Как сделать что-бы у мертвых NPC с новым оружием в инвентаре были и новые патроны. Подскажи пожалуйста где ковырять?

В папке misc, такие файлы:

Страница 26

death_generic.ltx - привязывается оружие к патронам (разобраться не сложно);

death_items_by_communities.ltx - вероятность заспаунить предметы или нет (можно расписать у каждой группировки). В секции [stalker] указываются дефолтные значения;

death_items_by_levels.ltx - указывается возможность появления в инвентаре предметов в зависимости от локации (т.е. можно запретить появление определённых предметов на конкретной локации вне зависимости от группировки;

death_items_count.ltx - указывается количество (от и до) предметов в зависимости от уровня сложности.

Все файлы для игры на чистом АМК надо извлекать из db архива либо смотреть самую первую версия Weapons Pack, а в NLC часть из них уже есть.

Новые боеприпасы

Обязательно ли новые боеприпасы нужно прописывать в:

1._g.script (и для чего это делается?)

2.death_generic.ltx (и для чего это делается?)

3.death_items_by_levels.ltx (и для чего это делается?)

4.death_items_count.ltx (и для чего это делается?)

1. _g.script

Используется в двух местах.

function object_type(obj) - функция не рабочая, там кривые clsid.

ammo_section = {} - объявляет глобальный массив, который может использоваться из различных скриптов (например, treasure_manager)

2. death_generic.ltx

Для оригинала. Для задания зависимости типа выпадающих патрон от оружия в слотах. 3. death_items_by_levels.ltx

Для оригинала. Возможность появления вещи в инвентаре npc в зависимости от местности. 4. death_items_count.ltx

Для оригинала. Колличество патрон в инвентаре npc в зависимости от уровня сложности. Есть ещё файлы ph_box_xxx.ltx

Там тоже фигурируют патроны. Это лут для разбиваемых ящиков.

Кто знает какой параметр отвечает за размер перекрестия оружия, к примеру мне надо увеличить крестик прицел не уменьшая разброс определенного ствола

В файле \gamedata\config\system.ltx ищещь такие строки: [hud_cursor]

;все размеры в процентах от длины экрана cross_length = 0.01 ;длина "палочки" прицела

min_radius = 0.0 ;минимальный радиус прицела (при нулевой дисперсии) max_radius = 1.0 ;максимальный радиус

radius_lerp_speed = 0.08 ;скорость интерполяции положений прицела cross_color = 240,217,182,255 ;цвет прицела

disp_scale = 0.08 ;масштаб прицела (относительно радиан)

Изменение использование оружия НПСами. Для этого добавляем в конфиг оружия эти строки:

;---FIRE QUEUE PARAMETERS

weapon_min_queue_size_far

= 1; минимальная очередь на дальние дистанции. Одиночные.

Логично?

 

weapon_max_queue_size_far

= 6; Максимум - 6 патронов в очереди. В принципе, здесь мож-

но и поменьше, но практика показывает, что такой огонь довольно эффективен.

weapon_min_queue_interval_far = 500; Периодичность выстрелов. Как я понял, в миллисекундах. Без изменений: пусть успевают прицелиться перед выстрелом :)

weapon_max_queue_interval_far = 1000; Секунда на прицеливание их же устроит? Но дальше уж надо жать на курок.

Страница 27

weapon_min_queue_size_medium = 6; тут ничего не менял... вроде. weapon_max_queue_size_medium = 10 weapon_min_queue_interval_medium= 500; также без изменений weapon_max_queue_interval_medium= 750

weapon_min_queue_size_close = 10; вблизи (почти в упор) им надо шмалять не щадя обоймы. Пока сталкер Меченый не опомнился.

weapon_max_queue_size_close = 30; при удаче они даже всадят всю обойму :)

weapon_min_queue_interval_close = 100; интервал на ближних дистанциях также минимальный: с такого расстояния нужно стрелять не думая.

weapon_max_queue_interval_close = 300

А какие значения должны быть, для стрельбы трассерами, хотя бы через один

Папка weapons\weapons ltx.

найди строку time_step =1; 33 и убери единицу с точкой запятой и будет тебе счастье.

Каким образом можно редактировать оружие в игре - от характеристик до описания. Характеристики оружия хранятся здесь:

...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx Разбор структуры конфига

Возьмем, для примера, конфиг w_g36.ltx. Он делится на разделы: Первый раздел:

Здесь хранится общая информация о оружии - его класс, тип, ссылки на спавн и т.д. Нас интересуют следующие строки:

description = enc_weapons1_wpn-g36 - ссылка на string_id, из которого игра подгружает описание этого оружия.

ef_main_weapon_type = 2 - основной тип, к которому принадлежит оружие ef_weapon_type = 6 - подтип, к которому принадлежит оружие

Второй раздел

Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках:

holder_range_modifier = 1.85 - во сколько раз увеличивается eye_range holder_fov_modifier = 0.3 - во сколько раз увеличивается eye_fov Третий раздел

Содержит данные о самом оружии, его некоторых характеристиках:

cost = 18000 - базовая цена (торговцы умножают её на некоторый коэффициент) weapon_class = assault_rifle - класс оружия (здесь - штурмовая винтовка) ammo_mag_size = 30 - размер магазина

ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов grenade_class = ammo_m209 - тип используемых гранат

fire_modes = 1, -1 - режимы ведения огня

hand_dependence = 1 - засивимость о рук (?) - возможно, речь идет о качании ствола single_handed = 0 - держится ли только в одной руке

slot = 2 - слот в инвентаре

animation_slot = 2 - вид анимации (для пистолета/для винтовки)

inv_name = wpn-g36 - ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание

inv_name_short = wpn-g36 - короткое имя; в данном случае используется то же самое inv_weight = 3.6 - вес

inv_grid_width = 5 - координаты первого угла иконки по x inv_grid_height = 2 - координаты первого угла иконки по y inv_grid_x = 0 - координаты второго угла иконки по x inv_grid_y = 10 - координаты второго угла иконки по y

Страница 28

Четвертый раздел

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

cam_relax_speed = 5.7 - скорость возврата в исходное положение

cam_dispersion = 0.2 - увеличения угла (в градусах) с каждым выстрелом fire_dispersion_condition_factor = 5 - увеличение дисперсии в процентах при максимальном

износе

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

misfire_condition_k = 0.05 - порог (в данном случае - 5%), после которого оружие может заклинивать

condition_shot_dec = 0.0002 - увеличение износа при каждом выстреле Пятый раздел:

Здесь хранится множество параметров, из которых наиболее интересны эти: hit_power = 0.50, 0.54, 0.57, 0.60 - сила выстрела

hit_impulse = 105 - импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела)

hit_type = fire_wound - тип причиняемых повреждений, в данном случае - пулевые ранения (параметр в синглплеере ни на что не влияет)

fire_distance = 600 - максимальная дистанция для выстрела bullet_speed = 925 - начальная скорость пули

hud = wpn_g36_hud - внешний вид оружия Шестой раздел:

position = -0.026, -0.132, 0.0 - позиция по отношению к игроку (?) orientation = 0, 0, 0 - направление, в которое смотрит ствол (?) Седьмой раздел:

Содержит описания визуальной стороны оружия и некоторые другие параметры:

startup_ammo = 90 - как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)

visual = weapons\g36\wpn_g36.ogf - модель оружия, используемая NPC, а также игроком при виде от третьего лица

ph_mass = 4 - физическая масса, используемая при расчетах scope_status = 1 - ситуация со съемным прицелом silencer_status = 0 - ситуация со съемным глушителем

grenade_launcher_status = 0 - ситуация с подствольным гранатометом Параметры:

0 - нет, новый прикрепить нельзя

1 - уже есть, несъемный

2 - нет, но можно установить новый zoom_enabled = true - есть ли зум (прицеливание)

scope_zoom_factor = 33.3 - какой зум дает прицеливание (здесь - 1.8х) scope_texture = wpn\wpn_crosshair_g36 - текстура прицельной сетки shell_point = 0.15, 0.0, -0.05 - точка вылета гильз

shell_dir = 0.0, 1.0, 0.0

fire_point = -0.000000,0.062000,0.134000 - точка выстрела fire_point2 = 0.30, 0.00, 0.05 - точка выстрела (2) fire_bone = wpn_body

orientation = 0, 0, 0 - направление position = 0, 0, 0 - позиция

visual = weapons\g36\wpn_g36_hud.ogf - модель, отображаемая у нас в руках

Изменение описаний:

Описания оружия хранятся в файле:

...\S.T.A.L.K.E.R\gamedata\config\text\rus\string_table_enc_weapons.xml

В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:

Страница 29

[...]

<string id="enc_weapons1_wpn-g36">

<text>Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец современного оружия - лёгкого, надёжного и эргономичного.\n Боеприпасы:\n обычный 5,56x45 мм

SS109,\n бронебойный 5,56x45 мм АР.</text> [...]

<string id="wpn-g36"> <text>ГП37</text>

[...] Меняя их содержимое, мы меняем описания/названия данного оружия.

Параметры патронов хранятся в файле:

...\S.T.A.L.K.E.R\gamedata\config\weapons\weapons.ltx

Найдем, например, раздел, отвечающий за патроны к тому же G36 (о них мы узнали из параметра ammo_class), и разберем, что означает каждый параметр:

visual = weapons\ammo\ammo_556x45_ss190.ogf - модель коробки с патронами

description = enc_weapons1_ammo_ammo-5.56x45-ss190 - ссылка на string_id, из которого игра подгружает описание этого типа патронов

cost = 320 - стоимость одной коробки

box_size = 30 - количество патронов в одной коробке

inv_name = ammo-5.56x45-ss190 - ссылка на string_id, содержащий имя для инвентаря

inv_name_short = ammo-5.56x45-ss190_s - ссылка на string_id, содержащий краткое имя для инвентаря

inv_weight = 0.33 - вес

inv_grid_width = 2 - координаты первого угла иконки по x inv_grid_height = 1 - координаты первого угла иконки по y inv_grid_x = 14 - координаты второго угла иконки по x inv_grid_y = 11 - координаты второго угла иконки по y

k_dist = 1 - коэффициент дальности, сама дальность - в стволе, тупо расстояние. k_disp = 2.5 - кучность, завязана с кучностью в стволе

k_hit = 1 - убойность, завязана с убойностью в стволе k_impulse = 1 - передоваемый импульс

k_pierce = 1 - бронебойный эффект влияет на пробивание предметов и на пробивание иммунитетов брони НПС.

impair = 1 - коэффициент износа ствола от пули

buck_shot = 1 - кол-во составляющих в пуле (напр картечь - 4, пуля - 1) tracer = on - является ли патрон трассирующим (on/off)

wm_size = 0.05 - визуальный размер дырки на стене от пули

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

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

bind_stalker.hide_weapon()

bind_stalker.restore_weapon()

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

restore_weapon()

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

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

Находим в файле оружия строку ;addons и пишем после(без комментарие естественно(или перед ними ставьте + значения после знака = можно менять):

;addons

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

Страница 30

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

Новое оружие мы будем делать на базе оригинальных конфигурационных файлов. Создадим АК101 на базе конфигов АК74.

Свойства оружия Скопируем файл из папки: gamedata\config\ak74.ltx Назовем его ak101.ltx.

Отредактируем свойства по своему усмотрению (но лучше - в соответствии с достоверной информацией о характеристиках оружия, т.к. АК101 - всё-таки оружие реально существующее). Редактирование конфигов оружия подробно описано в отдельном уроке. В данном случае конфиг был составлен таким образом:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[wpn_ak101]:identity_immunities

GroupControlSection

= spawn_group

discovery_dependency

 

 

$spawn

= "weapons\ak-101" ; name and section in level editor

$npc

= on

 

$prefetch

= 8

 

scheduled

= off

;[] option for ALife Simulator

Cform

= skeleton

 

Class

= WP_AK74

; class of the weapon that corresponding to

CPP class

 

 

min_radius

= 30 ; [] for AI

max_radius

= 100 ; [] for AI

description

= enc_weapons1_wpn-ak101

ef_main_weapon_type

=2

 

ef_weapon_type

=6

 

;-----------------------------------------------------------------------------------

 

 

holder_range_modifier

= 1.0

; во сколько раз увеличивается eye_range

holder_fov_modifier

= 0.7

; во сколько раз увеличивается eye_fov

;-----------------------------------------------------------------------------------

 

 

Cost

= 2;4000

 

weapon_class

= assault_rifle

ammo_limit

= 210

 

ammo_elapsed

= 30

 

Страница 31

ammo_mag_size

= 30

fire_modes

= 1, -1

ammo_class

= ammo_5.56x45_ss190, ammo_5.56x45_ap

grenade_class

= ammo_vog-25, ammo_vog-25p

launch_speed

= 0

hand_dependence

=1

single_handed

=0

 

Slot

= 2

 

animation_slot

=2

 

inv_name

= wpn-ak101

inv_name_short

= wpn-ak101

inv_weight

= 3.3

inv_grid_width

= 5

 

inv_grid_height

= 2

 

inv_grid_x

= 11

 

inv_grid_y

= 29

kill_msg_x

= 0

 

kill_msg_y

= 28

 

kill_msg_width

= 84

 

kill_msg_height

= 28

 

;-----------------------------------------------------------------------------------

 

 

;params of weapon recoil

 

 

fire_dispersion_base

 

= 0.15;0.2

control_inertion_factor

 

= 1.1f;1.25f

;отдача

 

 

cam_relax_speed

 

=6;5;3.5; 0.15

cam_dispersion

 

= 0.1;0.15

cam_dispersion_inc

 

= 0.2;0.3

cam_dispertion_frac

 

= 0.8;0.9

cam_max_angle

 

= 10.0

cam_max_angle_horz

 

= 20.0

cam_step_angle_horz

 

= 1.1;1

fire_dispersion_condition_factor

= 5.7;5

misfire_probability

 

= 0.0055;0.003

misfire_condition_k

= 0.06;0.05

condition_shot_dec

= 0.00035;0.0001

;-----------------------------------------------------------------------------------

 

 

fire_point

=

0,0.216,0.638

fire_point2

=

0,0.216,0.730

flame_particles

= weapons\generic_weapon05

smoke_particles

= weapons\generic_shoot_00

Страница 32

grenade_flame_particles

= weapons\generic_weapon01

shell_point

= 0,0.216,0.174

shell_particles

= weapons\generic_shells

PDM_disp_base

= 1.0

PDM_disp_vel_factor

= 1.3

PDM_disp_accel_factor

= 1.3

PDM_crouch

= 1.0

PDM_crouch_no_acc

= 1.0

; ttc

 

hit_power

= 0.36, 0.4, 0.43, 0.46

hit_impulse

= 140

hit_type

= fire_wound

fire_distance

= 1700

bullet_speed

= 1000

Rpm

= 750

use_aim_bullet

= true

time_to_aim

= 1.0

;params when silencer is attached

;similar to corresponding params without prefix silencer_

silencer_hit_power

= 0.38

silencer_hit_impulse

= 120

silencer_fire_distance

= 250

silencer_bullet_speed

= 600

hud

= wpn_ak101_hud

Position

= -0.026,-0.172,0

orientation

= 0,0,0

;--STRAP PARAMETERS-----------------------------------------------------------------

strap_position

= -0.16,-0.40,0.15

strap_orientation

= -10,-5,10

strap_bone0

= bip01_spine2

strap_bone1

= bip01_spine1

visual

= weapons\ak-101\wpn_ak101

light_color

= 0.6,0.5,0.3

light_range

= 5

light_var_color

= 0.05

light_var_range

= 0.5

light_time

= 0.2

ph_mass

= 5

;addons

 

scope_status

= 2

Страница 33

silencer_status

= 2

grenade_launcher_status

= 0;2

zoom_enabled

= true

scope_zoom_factor

= 50

scope_name scope_x scope_y silencer_name silencer_x silencer_y

grenade_launcher_name grenade_launcher_x grenade_launcher_y

=wpn_addon_scope

=42

=3

=wpn_addon_silencer

=218

=13

=wpn_addon_grenade_launcher

=116

=23

;sounds (name of the sound, volume (0.0 - 1.0), delay (sec))

snd_draw

= weapons\ak74_draw

snd_holster

= weapons\generic_holster

snd_shoot

= weapons\ak74_shot_0

snd_shoot1

= weapons\ak74_shot_1

snd_shoot2

= weapons\ak74_shot_2

snd_shoot3

= weapons\ak74_shot_3

snd_empty

= weapons\gen_empty, 0.5

snd_reload

= weapons\ak74_reload, 0.7, 0.35

snd_shoot_grenade

= weapons\gen_grenshoot

snd_reload_grenade

= weapons\gen_grenload, 1.0, 0.8

snd_switch

= weapons\groza_switch, 1.0, 0.5

;params when silencer is attached

;similar to corresponding params without prefix silencer_

;silencer_flame_particles

= weapons\generic_weapon01

silencer_smoke_particles

= weapons\generic_shoot_00

snd_silncer_shot

= weapons\w_ak74_shot1

silencer_light_color

= 0.6,0.5,0.3

silencer_light_range

= 0.01

silencer_light_var_color

= 0.05

silencer_light_var_range

= 0.5

silencer_light_time

= 0.2

;-----------------------------------------------------------------------------

 

;-- HUD DESCRIPTION

 

;-----------------------------------------------------------------------------

 

[wpn_ak101_hud]

 

allow_inertion

= true

;similar to corresponding params in weapon section but for 1st person view

Страница 34

shell_point shell_dir

fire_point fire_point2 fire_bone

Orientation Position visual

grenade_bone

; animation names

anim_idle anim_idle_aim anim_reload anim_draw anim_holster anim_shoot

=-0.065000,0.000000,-0.045000

=0.0, 1.0, 0.0

=0.09,0.020,-0.06

=0.30, 0.00, 0.05

=wpn_body

=0, 0, 0

=0, 0, 0.05

=weapons\ak-101\wpn_ak101_hud

=wpn_grenade

=idle

=idle_aim

=reload

=draw_wo_gl

=holster_wo_gl

=shoot

;animation names

;attached grenade launcher [GRENADE fire mode]

anim_idle_g

= idle_grenade

anim_idle_g_aim

= idle_g_aim

anim_reload_g

= reload_grenade

anim_shoot_g

= shoot_grenade

anim_switch_grenade_on

= switch_grenade

anim_switch_grenade_off

= switch_grenade_off

anim_draw_g

= draw_grenade_mode

anim_holster_g

= holster_grenade_mode

; attached grenade launcher [NORMAL fire mode]

anim_idle_gl

= idle_w_gl

anim_idle_gl_aim

= idle_w_gl

anim_reload_gl

= reload_w_gl

anim_draw_gl

= draw_w_gl

anim_holster_gl

= holster_w_gl

anim_shoot_gl

= shoot_w_gl

anim_idle_sprint

= idle_sprint

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;HUD offset in zoom mode (to all)

;(use CONSOLE: hud_adjust_mode 0,1,2, then keys WSADQE and P to show current value in console)

zoom_offset

= -0.112400,0.016800,-0.115000

zoom_rotate_x

= 0.000200

zoom_rotate_y

= 0.017500

zoom_hide_crosshair

= true

 

Страница 35

;same as above, but for attached grenade launcher for

;in NORMAL shoot mode

grenade_normal_zoom_offset

= -0.112500,0.014000,0.000000

grenade_normal_zoom_rotate_x

= -0.000900

grenade_normal_zoom_rotate_y

= 0.017200

;same as above, but for attached grenade launcher for

;in GRENADE mode

grenade_zoom_offset = -0.039600,-0.433100,0.000000 grenade_zoom_rotate_x = -0.538700 grenade_zoom_rotate_y = -0.033800

Регистрация

Итак, с характеристиками разобрались. Теперь зарегистрируем оружие в файле weapons.ltx. Для этого пропишем в него строку следующего вида:

#include "w_ak101.ltx"

Также, необходимо прописать модели, используемые для отображения оружия, в prefetch.ltx: [...]

weapons\abakan\wpn_abakan weapons\abakan\wpn_abakan_hud weapons\ak-101\wpn_ak101 weapons\ak-101\wpn_ak101_hud weapons\ak74\wpn_ak74 weapons\ak74\wpn_ak74_hud

[...]

Так же не забудте в файле mp_ranks.ltx прописать после available_items (которое внизу) прописать название своего оружия. Это предотвратит вылет при убийстве ГГ.

Осталось добавить оружие в игру.

А где менять цвет трассеров? Хочу попробовать аля "Star Wars"

В секции tracers_color_table

Коды в формате RGB нужно подбирать. Стандартные трассеры:

Color_0 = 1.0, 0.54, 0.0

; yellow

Color_1 = 1.0, 1.0, 1.0

; white

Color_2 = 1.0, 0.1, 0.0

; red

Color_3 = 0.3, 1.0, 0.3

; green

color_4 = 0.0, 0.0, 0.1 ; blue

 

В файле weapon.ltx замени на это и будут зелёные трассеры. [tracers_color_table] ;color_table

color_0 = 0.0, 1.1, 0.1 ; yellow color_1 = 1.0, 1.0, 1.0 ; white color_2 = 1.0, 0.1, 0.0 ; red color_3 = 0.3, 1.0, 0.3 ; green color_4 = 0.0, 0.0, 0.1 ; blue

Как заменить текстуру прицела?

Страница 36

1.Качаем нужный архив

2.Распаковываем.

3.Открываем его проводником (winexplorer, Far, Total commander etc.) видим файлы текстур

формата *.DDS.

4. Допустим хотим заменить оригинальный (АМК) прицел винтовки H&K G36 на свежескачан-

ный:

a) открываем папку с игрой, и идем следующим путем /gamedata/textures/wpn

б) находим файл под названием G-36-AMK_1680-w.DDS у меня он называется так ибо разрешение 1680 х 1050, у вас название сего файла будет меняться в зависимости от того, какое разрешение вы выбрали при установке АМК это может быть G-36-AMK_1280-N и т.д., нажимаем правлй кнопкой на файл в меню выбираем переименовать, копируем название файла можно через контекстное меню правого клика мыши можно нажатием клавиш Ctrl + C.

в)Заходим в папку распакованного архива с новыми текстурами.

г)Находим нужный а именно в данном случае H&K G36 N.dds или H&K G36 W.dds (если wide монитор), и повторяем нереальную процедуру с правым кликом мыши и кнопкой переименовать, нажимаем Ctrl + V или же правая кнопка => Вставить, и жмем Enter или кликаем левой

кнопкой мимо файла.

5. Берем свежепереименованный файл и кладем его в папку игры откуда мы копировали для него название /gamedata/textures/wpn, выскочит матюк с вопросом Заменить? нуно тыкнуть

ДА!

6. Ищем на рабочем столе ярлык STALKER тыкаем на него пару раз а дальше по обстоятельствам...

ПРЕЖДЕ ЧЕМ ПРОВОДИТЬ ЭТИ ПРОЦЕДУРЫ СДЕЛАЙТЕ BACKUP ПАПКИ /gamedata/textures/wpn - так на случай ядерной войны или если не понравится то что увидите.

Кто подскажет. В конфиге оружия строка " time_to_aim = 1.0" за что отвечает?

Время, которое нужно чтобы прицелиться.

Кто нибуть занет где записаны конфиги дымовой гранаты? Очень хочется покапатся. w_f1.ltx

[grenade_gd-05]:grenade_f1

Как параметр ef_weapon_type влияет на способ ведения стрельбы?

5 - стрелять по пистолетному - быстрои и почти не целясь 6 - как из автомата (очередями)

7 - прицелиться и выстрелить одиночным

8 - ОЧЕНЬ долго целиться и выстрелить (снайпер) про 9 не помню....

Как регулировать шатание оружия в руках при прицеливании:

Правим параметр "PDM_disp_base" в конфиге оружия.

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

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

Average bitrate : 60 kbps Nominal bitrate : 80 kbps Channels : 1

Sampling rate: 44100 Hz.

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

Страница 37

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

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

Артефакты

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

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 - огнестрел.

И еще вопрос обьясните подробно плз как включить подсветку артов?

Открываешь artefacts.ltx из S.T.A.L.K.E.R\gamedata\config\misc Ищешь артефакт и меняешь параметры (если нет, добавляешь): ;подсветка арта

lights_enabled = true(false) (включено(отключено)) trail_light_color = х, х, х (R,G,B.)

trail_light_range = х (радиус свечения)

Как настройть спавн артефактов в АМК?

Смотри файлы zone_.....

Вот из файла zone_gravi [zone_gravi_zone_weak]:zone_gravi_zone $spawn = "zones\gravi_zone_weak" hit_impulse_scale = 0.1

effective_radius = 0.7

BirthProbability = 0.2 это вероятность появления

artefacts = af_vyvert,0.8, af_gravi, 0.2, af_gold_fish, 0.0 это вероятность того какой артефакт появиться.

Страница 38

Активация артефактами аномалии:

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

Открываете файл: 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] ;-------------------------------------------------------------------------------------------------------------------------------------

---

 

time(sec),

sound_name,

light_R,G,B,

light_range,

 

;format:

 

 

particle_name,

 

 

af_animation_name

 

 

 

 

;-------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

 

 

---

=

5.0,

anomalygravi_idle00,

0.5, 1.0, 1.5,

5.0,

 

 

starting

 

 

"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

Страница 39

И на этом всё. Прописываем в 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 для того артефакта, который хочу активировать.

В игре берем артефакт в первый слот и активируем длительным нажатием на ЛКМ.

Как изменить время трансмутации арта?

В файле amk_mod.script ищи строчки вида(там есть такие для каждого модификата): af_start_transform_timer(af_start_transform(70,25,af_sect,"af_spirit_1"), pos ,0,4,0,"Душа") 70 - вероятность удачной трансмутации; 25 - вероятность вырождения (правь по желанию).

0,4,0 - время трансмутации дней, часов, минут

Для тех, кто всё-таки хочет получить рецепты МБГ и эл. дикобраз:

в файле \gamedata\config\gameplay\dialogs_yantar.xml ищем строку <give_info>info_amk_recipt_tears_fire</give_info>

и под неё добавляем ещё две: <give_info>info_amk_recipt_tears_fire</give_info> <give_info>info_amk_recipt_electra_dikoobraz</give_info> <give_info>info_amk_recipt_giant_small_brother</give_info>

Теперь за квест "костюм призрака" у Сахарова получаем сразу три рецепта: слезы огня эл. дикобраз

младший брат гиганта Квест "костюм призрака" взят для примера

Монстры

Как сделать тушканов нейтральными?

Посмотри в самом конце файла ...S.T.A.L.K.E.R\gamedata\config\creatures\game_relations.ltx Там найдёшь таблицу отношений монстров к неписям (human) и ГГ (actor).

Таблица построена по принципу координат x и y. Сводишь по "осям координат" нужного тебе монстра (тушканы самые последние в списке) и , например, ГГ (он самый первый в списке) и выставляешь нужную цифру. Сейчас там стоит "-1" (см. первую цифру в строке tushkano), а ты выстави "0". И тушканы будут нейтральны к ГГ. Желательно в строке actor, самую последнюю цифру - "-1" тоже заменить на "0". Это, по идее наоборот, отношение ГГ к тушканам...

Как сделать что бы хвосты\копыта попадались чаще?

1.Заходим в папку gamedata/config/creatures

2.Открываем конфиг монстра, например m_pseudodog.ltx

3.Находим строку Spawn_Inventory_Item_Probability

4.Ставим значение = 1

Все! Теперь у измененного монстра всегда будут появляться запчасти.

Запчасти будут появляться только у вновь заспавненых монстров, а у тех которые были до изменения значения вероятность останется старой. Если хотите чтобы 100% вероятность была сразу, начните новую игру.

Как убрать эл.химере эффкут электры? gamedata/scripts/bind_monster и ищи там: amk.on_monster_hit(obj, amount, local_direction, who, bone_index)

if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then

Страница 40

amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spin e"),sound="anomaly\\electra_blast1"})

local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine")) if dist < 20 then

local h = hit() h.impulse = 0 h.draftsman = db.actor

h.direction = vector():set(0,0,0) h:bone("bip01_spine") h.power = 1/dist

h.type = hit.strike db.actor:hit(h) h.power = 15/dist h.type = hit.shock db.actor:hit(h) end

self.charge_time=time_global() end

Измени это так.

amk.on_monster_hit(obj, amount, local_direction, who, bone_index)

if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then

amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spin e"),sound="anomaly\\electra_blast1"})

local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine")) if dist < 20 then

local h = hit() h.impulse = 0 h.draftsman = db.actor

h.direction = vector():set(0,0,0) h:bone("bip01_spine") h.power = 0/dist

h.type = hit.strike db.actor:hit(h) h.power = 0/dist h.type = hit.shock db.actor:hit(h) end

self.charge_time=time_global() end

Как ослабить электрохимеру.

Файл gamedata/scripts/bind_monster.script , кусок кода: Код

if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then

amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spin e"),sound="anomaly\\electra_blast1"})

local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine")) if dist < 20 then

local h = hit() h.impulse = 0 h.draftsman = db.actor

h.direction = vector():set(0,0,0) h:bone("bip01_spine")

Страница 41

h.power = 1/dist h.type = hit.strike db.actor:hit(h) h.power = 15/dist h.type = hit.shock db.actor:hit(h)

end self.charge_time=time_global()

end

Если я правильно впиливаю, то значения отвечают за. time_global()>(self.charge_time or 0)+3000 - электрошок заряжается три секунды. if dist < 20 then - дальность действия разряда 20 метров.

h.power = 15/dist

h.type = hit.shock - собственно, повреждение электрошоком. Составляет аж 15 попугаев, причём для умерщвления голого существа, как я понимаю, достаточно одного попугая.

h.power = 1/dist

h.type = hit.strike - вот это мне не совсем понятно, но скорее всего должно вызвать постэффект и кровотечение, коих электра, очевидно, не вызывает. Свидетельствует об изощрённости садизма Создателей.

Выложено исключительно для ознакомления, каждый трактует в меру своей испорченности smile.gif Я себе уменьшил радиус до 10 метров и силу до 5, и смею надеяться, что химера станет теперь сильным и опасным монстром, а не поводом сразу искать кнопку load.

Настройка погоды и освещения

Материал из Mod Wiki.

* 1 Значение параметров погодных и относящихся к ним конфигов o 1.1 Параметры погоды

o 1.2 Параметры бликов

o 1.3 Параметры фонарика * 2 Авторы

Значение параметров погодных и относящихся к ним конфигов Параметры погоды

[sect_default_weather]

01:00:00 = default_weather_01 02:00:00 = default_weather_02

...

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

[default_weather_01] ; имя типа погоды, описание которого ведется в этом блоке.

flares = flares_gradient1 ; здесь указывается имя заготовки блика от солнца (заготовки прописаны в файле flares.ltx).

sky_texture = skysky_14_cube ; это имя используемого скайбокса. cкайбокс - это куб,

Страница 42

окружающий всю локацию, на 6 граней которого натянуты 6 текстур из файла, указанного в этой строке. нужно обратить внимание, что строка содержит еще и путь к файлу.

sky_rotation = 0 ; определяет положение (азимут) скайбокса на описываемый час.

sky_color = 1.0, 1.0, 1.0 ; это цвет неба, или, точнее, цвет рассеянного света, формат из 3 цифр, как и в параметрах ниже, подразумевает цветовую модель RGB, учитывая то, что здесь максимальная интенсивность цвета (255), здесь равна 1.0.

например, цвет неба, равный [1.0, 0.0, 0.0] - зальет окрестность ярко красным светом. стоит учитывать, что здесь описывается не цвет, а свет, поэтому параметр, например, [0,0,0] - даст не черный цвет, а отсутствие вообще какого либо света. аналогично эффекту смешивания в фотошопе (screen).

clouds_texture = skysky_oblaka ; это - имя тектуры облаков. не путать со скайбоксом.

clouds_color = 0.333, 0.341, 0.431, 0.7, 1.7 ; это цвет облаков, первые 3 цифры - это RGB (см.выше), четвертая - это видимость (непрозрачность) текстуры облаков, т.е 0 - облаков не видно, а 1 - полная видимость. пятая цифра - скорость движения облаков.

far_plane = 350 ; это, судя по всему, дальность видимости (расстояние, на котором обрезается карта).

fog_distance = 350 ; в DX9 это расстояние, на котором туман фактически "прекращает" действовать. непосредственно дымка, интенсивность которой задаётся fog_density, висит в радиусе fog_distance. за пределами этого радиуса часть геометрии "съедается"

ивместо неё отображается небо (скайбокс). правильно подобранная текстура неба имитирует вдали клубы тумана. а уже дальше снова проявляется геометрия уровня (холмы

ит.д.). в DX8-режиме туман рудиментарен и обсуждать его нет особого смысла.

fog_color = 0.043, 0.043, 0.055 ; непосредственно сам цвет тумана.

fog_density = 0.9 ; это плотность тумана, выставив значение в 0, можно увидеть четкие края карты.

rain_density = 0.2 ; это плотность дождя, действует, видимо, как и туман.

rain_color = 0.21, 0.21, 0.27 ; цвет (непосредственно капель) падающего дождя.

thunderbolt = thunderbolt_collection_default ; это имя заготовки грозы, если грозы не предусмотрено, значение можно оставить пустым.

bolt_period = 4.5f ; это время между вспышками молний. значение прописано не в секундах. В принципе, эмпирически установлено, что в грозовую погоду желательно ставить значения около 20f, в дождливую - в районе 50f.

bolt_duration = 0.35f ; это собственно продолжительность фазы вспышки молнии. выставив высокое значение, можно вовсе получить не молнию, а некое плавно нарастающее свечение.

wind_velocity = 0.0 ; сила ветра.

wind_direction = 0.0 ; направление ветра.

Страница 43

ambient = 0.0425, 0.045, 0.0475 ; общее освещение локации, те тона, в которые она

будет окрашена (цвет и интенсивность света фонового освещения там, где не светит солнце

-

выставив значения в [0,0,0] - получим кромешную тьму в зданиях и под навесами. работает только на R2.

lmap_color = 1.0, 1.0, 1.0 ; видимо, цвет лайтмапа.

hemi_color = 0.0425, 0.045, 0.0475, 0.1 ;по слухам, параметр, идентичный амбиенту, только предназначенный для статичного освещения. насчет четвертой цифры - не в курсе.

sun_color = 0.0, 0.0, 0.0 ; свет солнца, его интенсивность также влияет на тени, если солнце не светит, теней от него не будет.

sun_dir = -18.0, 291 ; положение солнца, первая цифра - это высота, знак минус означает, что солнце выше горизонта. от горизонта до горизонта солнце описывает полукруг, значения

в игре соотносятся с градусами, то есть от -0 до -180, зенит -90, вторая цифра определяет положение солнца относительно сторон горизонта, нулевое значение вроде соответствует

югу.

env_ambient = ambient_env_rain ; это набор звуков окружения.

Параметры бликов

Находятся в файле flares.ltx.

[flares_sun_rise] ; название cекции, параметры которой описываются ниже

flare_opacity = 0.340, 0.260, 0.500, 0.420, 0.260, 0.260 ; непрозрачность каждого отражения, в порядке от дальнего к ближнему.

flare_position = 1.300, 1.000, 0.500, -0.300, -0.600, -1.000 ; позиция каждого отражения на оси, порядок соотв. верхнему.

flare_radius = 0.080, 0.120, 0.040, 0.080, 0.120, 0.300 ; радиус каждого отражения, порядок соотв. верхнему.

flare_textures = fxfx_flare1.tga, fxfx_flare2.tga, fxfx_flare2.tga, fxfx_flare2.tga, fxfx_flare3.tga, fxfx_flare1.tga

; имена текстур, использованных на каждое отражение, порядок аналогичен. можно заметить, что прописан формат *.tga, в действительности используются, как и везде, текстуры *.dds, а вообще - поддержка формата *.tga под вопросом.

flare_shader = effectsflare ; шейдер.

flares = on ; параметр включает или выключает блики, например, для луны - они не уместны.

gradient = on ; параметр, включающий/выключающий ореол вокруг светила, дающий эффект ослепления.

gradient_opacity = 1.0 ; непрозрачность ореола.

Страница 44

gradient_radius = 0.7 ; радиус ореола.

gradient_texture = fxfx_gradient.tga ;имя текстуры ореола.

gradient_shader = effectsflare ; аналогично [flare_shader].

source = on ;параметр, включающий/выключающий отображение источника, то есть самого солнца или луны.

source_radius = 0.03 ; радиус источника.

source_texture = fxfx_sun_rise.tga ;имя используемой для источника текстуры.

source_shader = effectssun ; аналогично [flare_shader].

source_ignore_color = false ; игнорирование цвета источника.

Параметры фонарика

Файл находится по следующему пути: config\models\objects\light_night.ltx

[torch_definition]

range = 30 ; дистанция в метрах.

range_r2 = 30 ; дистанция в метрах (для динамического освещения).

color = 0.22,0.22,0.22,0.2 ; цвет, из 4 компонентов <r,g,b,a> значением от 0 до 3.

color_r2 = 1.1,1.1,1.1,0.0 ; цвет, из 4 компонентов <r,g,b,a> значением от 0 до 3 (для динамического освещения).

omni_range = 3 ; дистанция освещения от фонариков неписей в метрах.

omni_range_r2 = 3 ; дистанция освещения от фонариков неписей в метрах (для динамическо-

го освещения).

omni_color = 1.0,1.0,1.0,0.1 ; цвет фонариков неписей, из 4 компонентов <r,g,b,a> значением от 0 до 3.

omni_color_r2 = 1.0,1.0,1.0,0.1 ; цвет фонариков неписей, из 4 компонентов <r,g,b,a> значением от 0 до 3 (для динамического освещения).

color_animator = empty ; цвет аниматора (empty - аниматор не используется).

spot_texture = internalinternal_light_torch_r2 ; текстура яркой точки (для динамического освещения).

spot_angle = 45 ; угол освещения в градусах.

glow_texture = glowglow_torch_r2 ; текстура свечения фонарика, когда он направлен в глаза

Страница 45

(обязательный параметр).

glow_radius = 0.3 ; радиус свечения в метрах.

guide_bone = lights_bone ; кость, к направлению которой привязывается фонарик (изменять строго не рекомендуется).

Замки на тайники от кражи НПС

(автор Ferrari314)

Играл помнится в АМК НЛЦ и НС и мод на минирование-обыскивание тайников. Накопилась большая куча оружия, ложить в тайник, от осознания того, что через часок все покоммуниздят и спионерят было тошно, а выкидыватьт, как водится - жалко. Решил сделать кодовый замок - такую штучку, которую можно приобрести только за большущие деньги, но уж точно

быть увереным, что твой тайник никто не тронет. И вот оно чудо!

Для удобности адаптации к любой сборке сделал все кусочками, что бы не адаптировать к каждой солянке отдельно (не пугайтесь, установка совсем, не сложная, если делать все пра-

вильно).

PS. Мод приемущественно для солянщиков ny_thumbsup.gif или для тех кто собирает солянки "под себя".

Собственно установка:

1.Для начала находим в S.T.A.L.K.E.R./gamedata/scripts/bind_stalker.script

2.ищем в нем функцию actor_binder:on_item_drop (obj)

3.пишем перед последним end в этой функции

Цитата

if obj:section() == "zamok" then local box = obj:parent()

if box ~= nil then

get_console():execute("load ~~~ protect box") table.insert(amk_offline_alife.protected, box:id()) end

end

4.затем находим в той-же папке amk_offline_alife.script и открываем его

5.ищем, почти в начале строчку

Цитата

local protected = {

и удаляем local, что бы получилось: Цитата

protected = {

6.Теперь находим файл gamedata/config/misc/devises.ltx

7.Добавляем вконце файла секцию:

Цитата [zamok]:identity_immunities

GroupControlSection = spawn_group discovery_dependency =

$spawn = "food and drugs\bread_a" cform = skeleton

class = II_ATTCH

visual = ferrari314\zamok.ogf cost = 30000

inv_name = zamok inv_name_short = zamok

Страница 46

description = zamok_desc inv_weight = .2 inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 2

inv_grid_y = 36

attach_angle_offset = -0.287979, 1.560923, 1.544060 attach_position_offset = 0.096910, -0.013594, 0.107925 attach_bone_name = bip01_r_hand

auto_attach = false

// should be deleted after update bone_name = bip01_r_hand position_offset = 0.0,0.0,0.0

angle_offset = 1.570790,1.570790,3.92699

8.качаем архив по одной из ссылок и распаковываем его: http://slil.ru/26501775 http://depositfiles.com/files/jlq1jeift

9.положите файл prop_hanglock3.dds в папку textures/prop/, а файл zamok.ogf в дирректорию meshes/ferrari314/

10.теперь фотошопом суем себе в солянку иконку и не забываем прописать её координаты в devises.ltx

11.заходим gamedata\config\text\rus\string_table_enc_equipment.xml и вставляем в конце, перед </string_table> вот это:

Цитата

<string id="zamok"> <text>Замок</text> </string>

<string id="zamoc_desc">

<text>Кодовый замок из титанового сплава, сломать его невозможно, равно как и подобрать код. Этот дорогой гаджет 100% защитит ваш тайник от всяких посягательств.</text>

</string>

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

Выброс

как выброс во фриплее отключить?

STALKER-gamedata-config-blowout.ltx прописать в файле blowout.ltx : [blowout_period]

enabled = 0 time = 1800.0 shift = 180.0

Кстати, а есть возможность поставить рандомный интервал между Выбросами? А то по часам элементарно засекается, за недельку привыкаешь smile.gif

Код [blowout_period]

enabled

= 1.0

time

= 1440.0;время между выбросами

 

Страница 47

shift

= 180.0;максимальное отклонение выброса от времени

Просто шифт ставишь больше - и у тебя фактически рандомный выброс будет.

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

в amk_mod вот эти строчки amk.g_start_timer("blowout",0,0,3,1) amk.g_start_timer("blowout",0,0,3,2) amk.g_start_timer("blowout",0,0,3,3) amk.g_start_timer("blowout",0,0,3,4)

Как отключить выброс на ЧАЭС?

В принципе, можно сделать так, как в NLC сделал Мастер Сяк. Функция, которая переписывает кастом_дата рестриктора выглядит так:

Код:

function switch_timer_stancia_cheat() for a=2000,2100,1 do

local obj=alife():object(a)

if (obj and obj.name and obj:name() == "aes_space_restrictor_timer") then local params=get_restrictor_data(obj)

params.custom="[logic]\ncfg = scripts\\aes\\aes_space_timer_cheat.ltx" set_restrictor_data(params,obj)

end end

end

В файле логики (scripts\aes\aes_space_timer_cheat.ltx) написать:

Код:

[logic]

active = sr_idle

[sr_idle]

on_info = {+aes_actor_road} nil

теперь надо как-то вызвать эту функцию (switch_timer_stancia_cheat()). Это можно сделать или в диалоге или вообще сделать вызов через главное меню - уж читить, так читить smile.gif

ps: если будете все это ставить на NLC, то надо будет делать чуточку по-другому - отключить сяковский таймер вообще, или просто подменить его нашим.

Часы на худ

(левый нижний угол)

ЧАСЫ НЫ ХУД _ КРАСИВЫЕ

правим в файле ui_custom_msgs.xml правим секцию hud_show_time:

<hud_show_time x="160" y="690" width="80" height="40" complex_mode="1"> <text x="80" y="25" font="graffiti32" r="238" g="155" b="23" a="255" align="l"/> <texture>ui_hud_frame_clock</texture>

</hud_show_time>

2. В файле sak.script правим функцию show_time()

Страница 48

function show_time() local hud = get_hud()

local cs = hud:GetCustomStatic("hud_show_time") if cs == nil then hud:AddCustomStatic("hud_show_time", true)

cs = hud:GetCustomStatic("hud_show_time") end

local time_h = level.get_time_hours() local time_m = level.get_time_minutes() local msg

if time_m >= 10 then if time_h>= 10 then

msg = string.format("%d:%d\\n", time_h, time_m) else

msg = string.format("0%d:%d\\n", time_h, time_m) end

else

if time_h>= 10 then

msg = string.format("%d:0%d\\n", time_h, time_m) else

msg = string.format("0%d:0%d\\n", time_h, time_m) end

end

if cs ~= nil then cs:wnd():SetText(msg) end

end

Как поменять размер текста, отображающего время?

В файле ui_custom_msgs.xml, где ты вставляешь объявление поля для написания времени,

типа: <hud_show_time ......

есть объявление шрифта, типа <text font="letterica18"

если вместо него проставить <text font="graffiti32"

будут большие цифры с шрифтом типа граффити (похоже у тебя именно это и стоит), а если

<text font="graffiti22"

то тоже будет граффити, но поменьше.

РАЗНОЕ

Подскажите, какой файл отвечает за изображение в телевизоре?

\gamedata\textures\fx\fx_stalker_001.dds - fx_stalker_030.dds

Как убрать фонарик?

Что-бы убрать фонарик, открываем файл gamedata\config\misc\items.ltx Находим секцию [device_torch]:identity_immunities

Меняем строчку slot = 9

на

Страница 49

slot = 1

Тепер фонарик располагается в слоте пистолета, убираем его в рюкзак и все.

Вот я хочу сократить время "жизни" трупа. Неохота их самому утилизировать. И нагрузка на комп лишняя, обсчитай-ка их всех

\gamedata\config\creatures

monsters.ltx

stalkers.ltx

corpse_remove_game_time_interval = xx ; in hours stay_after_death_time_interval = xx ; in hours

вместо 'xx' сколько в часах будет валятся труп,для квестовых нпс не действует

Подскажите пожалуйста, как увеличить время между респавном нпс ? А то при установке АМК 1.4 вроде выбираю 24-32 часа, а неписи спавнятся гораздо чаще, как в оригинале. В 1.3.1 всё работало корректно.

gamedata\scripts\se_repawn.scripts

idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000) исправить на

idle_time:setHMSms( math.random(Первое число, Второе число), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)

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

Где прописаны имена НПС?

Секции:

string id="lname_bandit_хх - бандиты string id="lname_captain_хх - капитаны

string id="lname_lieutenant_хх - лейтенанты string id="lname_private_хх - рядовые string id="lname_science_хх - учёные

string id="lname_sergeant_хх - сержанты string id="lname_stalker_хх - сталкеры string id="Osoznanie" - О-сознание

Но всё таки - как сделать ночи светлее самому ? Мне они всё ещё докучают (хоть и не так как раньше)

Если очень хочется - поступи проще: набери в консоли r2_sun_lumscale_amb n, где n - величина амбиентной освещённости. В моём дефолтном конфиге этот параметр равен 0.5. Попробуй другие значения в диапазоне, скажем 0.6...0.8. Правда, и днём станет немного посветлее... В общем, найди устраивающий лично тебя компромисс.

Ну и не забывай о настройке монитора.

Извиняюсь, совсем забыл спросить, как восстановить отметки врагов и пр. в бинокле?

gamedata\config\weapons\w_binoc.ltx, находим строку vision_present = false, меняем на vision_present = true.

Подскажите пожалуйста, как увеличить время между респавном нпс ? А то при установке АМК 1.4 вроде выбираю 24-32 часа, а неписи спавнятся гораздо чаще, как в оригинале. В 1.3.1 всё работало корректно.

gamedata\scripts\se_repawn.scripts

idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000) исправить на

idle_time:setHMSms( math.random(Первое число, Второе число), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)

Страница 50

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

Как сделать сетку в русофицированном фотошопе,для того что бы прописать иконку?

Прошу описать пошагово.

На старом сайте было,теперь приходится задавать вопрос заново. Чтобы включить её отображение, зайдите в меню:

Редактирование -> Установки -> Направляющие, сетка и фрагменты И установите в нем следующие значения:

Линия через каждые: 50 Единицы измерения: пиксели Внутреннее деление на: 1 После чего выберите пункт:

Просмотр -> Показать -> Сетку ( Ctrl+' )

Изменение иконок предметов

Внимание! Данный урок предполагает наличие у вас базовых навыков работы в Photoshop. Детальный пошаговый разбор работы в Photoshop в данном уроке производится не будет.

Разберем изменение файла:

...\gamedata\textures\ui\ui_icon_equipment.dds

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

Нам понадобится следующее:

*Adobe Photoshop (я использовал CS2, CS и 7.0 различаются незначительно)

*плагин для работы с .dds-изображениями (скачать)

Итак, мы установили плагин и запустили Photoshop. Откройте в нем наш файл. Иконки расположены по сетке 50х50 пикселей.

Чтобы включить её отображение, зайдите в меню:

Редактирование -> Установки -> Направляющие, сетка и фрагменты И установите в нем следующие значения:

*Линия через каждые: 50

*Единицы измерения: пиксели

*Внутреннее деление на: 1 После чего выберите пункт:

Просмотр -> Показать -> Сетку ( Ctrl+' )

Всё, сетка теперь правильно настроена и отображается. Выберем место для иконки.

Иконка будет размером 4х2, то есть 200х100 пикселей - это обычный размер иконки для автоматических винтовок. Нарисуем её:

Иконка АК47У была нарисована следующим образом: я нашел качественную фотографию с однородным фоном (благо, фотографий АК в интернете немерено), открыл её в Photoshop, выделил с помощью второго вида инструмента "Лассо", нажал Ctrl+C, открыл файл с иконками, нажал Ctrl+V, нажал Ctrl+T, зажал Shift ("Сохранение пропорций") и потянул за край выделения, сжимая изображение до нужного размера.

После чего применил трансформацию, перетащил изображение на нужное место и нажал Shift+Ctrl+E ("Слить слои").

Теперь соответственно иконке изменим и альфа-канал.

Выделим иконку оружия, и перейдем в окне со слоями на закладку: Каналы -> Alpha

После чего залейте выделение белым. Всё, мы сделали иконке альфа-канал. Теперь нужно сохранить файл в правильном формате. Выберите:

Файл -> Сохранить И выставьте в появившемся окне окне следующие настройки:

Крайне важно выставить следующие параметры:

Страница 51

*Save Format: DXT5 (Interpolated Alpha)

*MIP maps: No MIP maps

Нажмите Save. Вот всё, мы добавили новую иконку.

Теперь присвоим её предмету.

Допустим, у вы создали некий wpn_ak47u, которому и нарисовали иконку. Зайдем в его кон-

фиг: gamedata\config\weapons\w_ak47u.ltx

И найдем такие строки:

inv_grid_width

4

inv_grid_height

= 2

inv_grid_x

inv_grid_y

Где:

 

*inv_grid_width - ширина в сетке 50х50

*inv_grid_height - высота в сетке 50х50

*inv_grid_x - местонахождение по х

*inv_grid_y - местонахождение по y

Изменение текстур моделей

Заменим, например, текстуру банки с энергетиком. Для этого откроем файл item_drink_nonstop.dds:

И отредактируем его по своему усмотрению:

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

Выделяем элементы синего цвета, закрашиваем выделение зеленым, идем дальше.

В конце инструментом "Текст" (иконка в виде буквы "Т") и шрифтом Space Age (не суть важно) была сделана надпись. После чего я нажал Ctrl+T ("Свободная трансформация"), повернул текст набок, и применил трансформацию, выбрав любой другой инструмент.

Не забываем на всякий случай сохранить резервную копию текстуры. Делаем Save со следующими параметрами:

*Save Format: DXT5 (Interpolated Alpha)

*MIP maps: Generate MIP maps

Создание новых visual для использования с новыми объектами

К чему изменять текстуры обычных предметов, лучше сделать свои - с собственной внешностью. Сделаем новый visual (модель+текстура), который можно будет указать в свойствах нового предмета.

Возьмем модель банки энергетика drink_nonstop.ogf, сделаем её копию и назовем, скажем, drink_green.ogf, после чего откроем в Hex-редакторе (в принципе, можно и Блокнотом). Метод кустарный, но работающий.

В начале файла вы увидите имя текстуры: item\item_drink_nonstop

Изменим эту строку на: item\item_drink_green_1

Внимание! Очень важно, чтобы длина строки с текстурой осталась той же, иначе файл не будет работать.

Всё, теперь вы можете указать в конфиге своего нового предмета новый visual: [energy_drink_green]:vodka

$spawn

= "food and drugs\energy_drink"

inv_name

= energy_drink_green_name

inv_name_short

= energy_drink_green_short_name

visual

= '''equipments\drink_green.ogf''' ;equipments\drink_stalker.ogf

description

= enc_equipment_energy_drink_green

Cost

= 75

 

Страница 52

[...]

гемдата\скриптс\amk_uniq_news_lists - атмосферные новости

Впапке gamedata\config\creatures лежат файлы m_*.ltx для каждого монстра.

Вэтих файлах есть по три секции типа weak, normal и strong. В каждой из этих секций есть подсекция которая отвечает за иммунитет монстра данного типа, к примеру вот:

[bloodsucker_immunities_weak]

....

fire_wound_immunity = 0.18 - так вот чем больше значение этого параметра, тем легче убить мутанта из огнестрельного оружия.

Эти значания есть коэффициенты на которые множиться урон нанесенный данному обьекту. Тоесть можно ставить и больше чем единица.

Health не трож, так как от нее толку очень мало.

Еще есть один способ ослабить монстров, это изменить им damage. Вот например damage кровососа:

[m_bloodsucker_damage]

;bone_name = <hit_scale>,-1,<wound_scale>

;<hit_scale> - коэфф. изменения хита (уменьшения здоровья) ;<wound_scale> - коэфф. изменения величины открытой раны default = 0.5, -1, 0.5

bip01_spine = 0.5, -1, 0.5 bip01_spine1 = 0.5, -1, 1.0 bip01_spine2 = 0.5, -1, 1.0 bip01_spine3 = 0.5, -1, 1.0

....

Чем больше здесь первый параметр тем уязвимее это место у данного мутанта.

Как на существо с определённым ID повесить метку на миникарте? Задолбали контролёры с их вылетом...

с определенным ID или определенные классы монстров?

вот какая функция есть в se_monster.script - но она отмечает ВСЕХ монстров? если же поставить условие на определенный класс - то можно видеть только тех кого нужно.

function se_monster:on_register() cse_alife_monster_base.on_register( self ) --'self:fill_exclusives()

--' Нарисовать мапспот с собой

if self:alive() and sim_statistic.show_monster_spot == true then local community, rank = sim_statistic.getNpcType(self)

level.map_add_object_spot_ser(self.id, "alife_presentation_monstr", self:name().." "..community) end

end

--------------------

function se_monster:on_unregister() cse_alife_monster_base.on_unregister( self )

--' Убрать мапспот с собой

if sim_statistic.show_monster_spot == true then

local community, rank = sim_statistic.getNpcType(self) level.map_remove_object_spot(self.id, "alife_presentation_monstr") end

smart_terrain.unregister_npc(self)

Страница 53

end

--------------------

function se_monster:on_death(killer) cse_alife_monster_base.on_death(self, killer)

--' Убрать мапспот с собой

if sim_statistic.show_monster_spot == true then

local community, rank = sim_statistic.getNpcType(self) level.map_remove_object_spot(self.id, "alife_presentation_monstr") end

end

Эффект выжигатея заменяющий шейдер плохого ПНВ в Priboj Stori.

Файл: "c:\Program Files\GSC World

Publishing\S.T.A.L.K.E.R\gamedata\config\misc\postprocess.ltx" Замени все в секции на effector_nightvision_bad:

[effector_nightvision_bad] pp_eff_name = psy_antenna.ppe

self.base_amplitude = color(0.2,0.15,0.0) pp_eff_cyclic = 1

blur = 5 gray = 0 ;.9 noise = 0 ;.5

noise_scale = 0

noise_color = 0.535, 0.493, 0.389, 0 self.gray_color = 0.535, 0.493, 0.389 self.base_color = 0.535, 0.493, 0.389

Как поменять скорость течения времени в игре?

Нашёл в alife.ltx. такие строчки

time_factor = 10; 1; ;396.0;скорость для демонстрации смены дня и ночи

...

Как я понимаю надо начинать новую игру ?

Все правильно - если поменять time_factor на 5 - время будет идти в два раза медленнее. Больше ничего менять кажется не надо. Новую игру начинать не обязательно - скорость времени изменится если поспать.

А как уже имеющемуся НПС заспавнить что-то в инвентарь. Это реально?

Пожалуйста. Спавн Сига и патронов в инвентарь Волка: Код

local npc,obj

for i=0,65534 do -- перебираем онлайн-объекты npc = level.object_by_id(i)

if npc and npc:name() == "esc_wolf" then -- если объект(непись) существует -- и его имя такое-то

obj = alife():object(npc:id()) -- определяем его по id end

end

alife():create("wpn_sig550", -- ну, и спавним предметы, какие надо...

obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id, obj.id) -- ему в инвентарь

alife():create_ammo("ammo_5.56x45_ss190", -- патроны, какие надо...

Страница 54

obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id, obj.id, -- ему в инвентарь 30)

Если непись был только что заспавнен, то ещё легче - перебор делать не надо, сразу получаем его как объект, а по id его определяем сдедующим образом:

obj = alife():object(npc.id)

Если известен story_id - тоже перебирать не надо.

PS у меня не получается таким образом заспавнить более одной пачки патронов, чтобы было больше, надо ещё раз писать полностью: alife():create_ammo и т.д.

Например, спавн тушканов в лагере новичков, на дороге напротив костра:

Код: amk.spawn_item("m_tushkano_e",vector():set(-206,-20.5,-145),61,46567) amk.spawn_item("m_tushkano_normal",vector():set(-206,-20.5,-145),61,46567) amk.spawn_item("tushkano_normal",vector():set(-206,-20.5,-145),61,46567)

-- или alife():create("m_tushkano_e",vector():set(-206,-20.5,-145),46567,61) alife():create("m_tushkano_normal",vector():set(-206,-20.5,-145),46567,61) alife():create("tushkano_normal",vector():set(-206,-20.5,-145),46567,61)

Во-первых, обратите внимание, что амк-шной функции spawn_item сначала ставится гейм_вертекс, а потом левел_вертекс (61,46567),

а если напрямую использовать глобальную функцию alife(), то наоборот (46567,61). Аналогично, если вы будете привязывать координаты к координатам актора.

Во-вторых, спавн монстров происходит, когда от актора до места спавна 50 метров и больше. То есть, если спавните рядом с актором, то надо отойти от этого места на 50 метров и монстры появятся или спавнить сразу на расстоянии. Если спавн происходит за расстоянием а-лайфа или вообще на другой локации, то монстры будут в офлайне, пока актор не приблизится к ним на расстояние а-лайфа.

А как сделать чтобы метку на волка поставить? А лучше не на Волка а какого-нибудь обычного непися? И еще, если я хочу привязать свой спаун к заходу на локацию, например зашел гг на локацию кордон и чтобы нужные мне неписи спавнились каждый раз при заходе на кордон. Где мне нужно создать инфопоршень?

По поводу метки... Получить Волка как объект (npc - см. моё предыдущее сообщение) и поставить на него метку:

level.map_add_object_spot_ser(npc.id, "blue_location","Волк") или

level_tasks.add_location(npc.id, "blue_location","Волк") treasure - Иконка тайника

green_location - Зеленая стандартная пометка квестов blue_location - Кружок с человечком

crlc_big - Большой круг типа где-то тут...

crlc_mdl - Средний круг crlc_small - Маленький круг

alife_presentation_monstr - Большая белая точка

По поводу спавна...

При загрузке уровня происходит спавн актёра и перевод его в онлайн, вызывается function actor_binder:net_spawn(data) (файл bind_stalker), соответственно, поместить сюда вызов вашей функции спавна, в которой перед спавном предмета проверять имя локации:

if level == "l01_escape" then

Страница 55

...

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

Кто-рибудь ответьте пожалуйста на вопрос: если перевооружить NPC на всей локации, при респавне новые NPC тоже будут с новым оружием или нет?

Нет. Для этого надо править

...\S.T.A.L.K.E.R\gamedata\config\gameplay\character_desc_simulation.xml Из него берутся респаунившиеся неписи.

В АМК этот файл не используется, надо брать из .db архива.

Как отключить излучатели в х16 и х10 с начала игры?

Ищем в оригинальной gamadata инфопоршни, которые выдаются при отключении x-16 и нахождении документов в х-18. Все инфопоршни находятся в файлах info_..... (те которые тебе нужны находятся скорей всего в файлах либо

info_l08yantar, либо info_l06dark_valley_u, либо info_l06yantar точнее не скажу потому как сам не искал эти инфопоршни). Находишь нужные инфопоршни и вставляешь в диалог например Сидору вот так :

phrase id="199"> <text>escape_trader_start_dialog_199</text> <action>escape_dialog.give_weapon_to_actor</action> <action>escape_dialog.give_knife_to_actor</action> <give_info>esc_trader_direct</give_info> <give_info>tutorial_wounded_start</give_info> <next>1999</next>

где вместо esc_trader_direct вставляешь свой инфопоршень. Все после разговора с Сидором у тебя

автоматом засчитывается отключение х-16 и и х-18.(да может быть такое что например за х- 16 отвечает несколько инфопоршней - 1)Принести доки Призрака бармену и 2) отключить пси-установку тогда тебе надо будет искать уже 2 инфопоршня и опять же вставлять оба в диалог Сидору.

Кто знает где прописаны конфиги квестовых трупов на кордоне?

а КТО ИМЕНО? По идее трупы должны прописываться там же где и живые в character_desc_escape

Особенно интересует труп у вагончика и труп на ферме. вот это помоему на ферме

<specific_character id="esc_stalker_novice_default3" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_green_stalker_3</icon> <bio>esc_stalker_novice_bio</bio>

со вторым сложнее, но помоему вот этот у вагончика <specific_character id="esc_stalker_novice_default4" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_green_stalker_3</icon> <bio>esc_stalker_novice_bio</bio

Кстати если тебе нужен гарантированный труп положи тому который лежит у входа в тунель с электрой

<specific_character id="esc_stalker_novice_default9" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_green_stalker_5</icon> <bio>esc_stalker_novice_bio</bio>

хотя там новичков трупов 5 или 6 esc_stalker_novice_default10 тоже труп. Все похожи друг на друга. Так что окончательно можно понять только по экспериментировав с ними . Я только за esc_stalker_novice_default9 уверен

Страница 56

Как править файлы описания "xml"? По цвету:какие команды?

Править в любом текстовом редакторе. Как видите, можно просто открыть чей-нибудь код и сделать по аналогии:

Код:

<string id="bandit_outfit_description">

<text>%c[255,1,255,255]Удар:%c[255,1,255,1] ... Электрошок:%c[255,1,255,1] +5%\n

%c[default]

Традиционная одежда бандита...</text> </string>

%c[255,1,255,255] - последние три цифры - цвет в системе RGB, первая - прозрачность (если не ошибаюсь).

%c[default] - понятно, цвет по умолчанию.

Как изменить скорость автовпгрейда в АИ паке?

в файле xrs_armor.script параметр: local upgrade_delta = 720

когда время шло 1:10 (в АМК 1.4) 720 соответствовало 3 игровым суткам, в 1.4.1 это будет 6 суток.

Как убрать эфект при обыске зомби?

открыть файл xr_motivator.script: найти в нём строчку sak.zombie_checkup()

и поставить перед ней два дефиса.

Как создать статью в ПДА?

<info_portion id="price_sidor"> <article>price_sidor</article>

</info_portion>

инфопошен "price_sidor" - дается в диалоге он добавляет вызов артикля: артикль price_sidor

артикль описывается в storyline_info_sak_way (или в другом стори лайн...):

<article article_type="journal" id="price_sidor" name="Сидорович предлагает" group="enc_price"> <text>price_sidor_text</text>

</article>

ну а сам текст в стрингах...

Т.е . я например создаю info_hunter_way.xml - и в нем пишу инфопошен в стори лайт пишем артикль и текст...

Еще где что писать?

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

Пример вызова дай (например для прайса)...

диалог сидора: dialogs_trading.xml <dialog id="trade_dialog_sidor">

<phrase_list> <phrase id="0">

<text>trade_dialog_sidor_0</text> <next>1</next>

</phrase> <phrase id="1">

<text>trade_dialog_sidor_1</text>

Страница 57

<give_info>price_sidor</give_info> вот этот инфопоршен...

<next>2</next>

<next>3</next>

<next>4</next>

<next>5</next>

</phrase>

Как вернуть ограничение инвентаря по кол-ву?

1.Взять файл restriction_stock.script из первого патча для АМК и заменить им существующий.

2.В файле amk_utils.script заменить

это:

--Callback на взятия предмета в инвентарь гг из ящика function actor_item_from_box(box, item)

end

--Callback на взятие предмета в инвентарь гг function actor_item_take(obj)

if obj ~= nil and RestrictionStock ~= nil then restriction_stock.restriction_of_stock(obj,0)

end end

--Callback на потерю предмета из инвенаря гг function actor_item_drop(obj)

if obj ~= nil and RestrictionStock ~= nil then restriction_stock.restriction_of_stock(obj,1)

end end

на это:

--Callback на взятия предмета в инвентарь гг из ящика function actor_item_from_box(box, item)

if item ~= nil then restriction_stock.restriction_of_stock(item)

end end

--Callback на взятие предмета в инвентарь гг function actor_item_take(obj)

if obj ~= nil then restriction_stock.restriction_of_stock(obj)

end end

--Callback на потерю предмета из инвенаря гг function actor_item_drop(obj)

end

З.Ы. Только новые вещи не забудь в restriction_stock.script по аналогии с существующими добавить, иначе ограничения на них не будут распространяться.

Страница 58

A как добавить новые классы обьема для инвентаря?

На данный момент мы имеем такие варианты: 4 объема оружия 2 объема брони

Плюс объем аптечек А я хочу пистолеты-пулеметы в отдельный класс вынести и броню поделить на три класса.

1.Добавляешь через запятую ещё одну вложенную таблицу, например: _weapons_C6 = {"оружие_раз","оружие_два","оружие_три"}

2.Добавляешь ещё одно условие в парсинге ниже:

elseif kk == "_weapons_C6" and count>2 then amk.send_tip("Не многовато ли стволов, рембо?",nil,nil,5) amk.drop_item(actor,_obj)

status = 1 break

здесь count>2 определяет, больше какого числа предметов будет срабатывать ограничение для этой группы.

Вот, собственно, и всё. По аналогии сделай и для остальных групп предметов. А ка сделать разные обьемы для разных костюмов?

1.Добавляешь через запятую вложенные таблицы по числу новых групп, например: _outfits_1 = {"костюм_раз"},

_outfits_2 = {"костюм_два"}, _outfits_3 = {"костюм_три"}

2.Добавляешь столько же условий в парсинге ниже:

elseif kk == "_outfits_1" and count>2 then

amk.send_tip("Для этого костюма в рюкзаке нет места",nil,nil,5) amk.drop_item(actor,_obj)

status = 1 break

elseif kk == "_outfits_2" and count>2 then

amk.send_tip("Для этого костюма в рюкзаке нет места",nil,nil,5) amk.drop_item(actor,_obj)

status = 1 break

elseif kk == "_outfits_3" and count>2 then

amk.send_tip("Для этого костюма в рюкзаке нет места",nil,nil,5) amk.drop_item(actor,_obj)

status = 1 break

А как сделать видимыми те штуки (аномалии) которые хим.ожог делают? gamedata\config\misc\zone_sakbuzz.ltx удалить точку с запятой

;idle_particles ;blowout_particles

Как с помощью скрипта заспавнить МЕРТВОГО нпс?

Заспавнить живого и прописать ему через нет_пакеты здоровье ноль. Примерно так:

Код:

local obj=amk.spawn_item("yan_ecolog_respawn_2",vector():set(187.84,5.18,-

360.68),938,386349)

local tbl = amk.read_stalker_params(obj) tbl.health = 0

tbl.updhealth = 0

Страница 59

amk.write_stalker_params(tbl, obj)

Исправление некорректного отображения ячеек рюкзака в Инвентори моде:

открыть inventory_new.xml просмотреть до строки dragdrop_bag

вэтой строке найти height="300" и исправить на height="207"

Ито же самое проделать для inventory_new_16.xml (это для широкоформатных мониторов)

Два сталкера на одном компе возможно?

Вот кстати сейчас решил поковырять реестр на свой страх и риск-)И получилось!Вообщем заходишь Пуск-выполнить,там пишешь regedit

Открывается окно редактора реестра,в нем находишь раздел HKEY_LOCAL_MACHINE\SOFTWARE\GSC Game World, удаляешь GSC Game World и вуаля! Старый сталкер работает и нового можно поставить.

Как отключить спавна НПС (засада) около тайников, удары по лицу, минирование трупов и "лучше тебе с ним не встречатся" (для аддона "Заминированные тайники")?

Для отключения спавна вставь после строки function empty_treasure(box_id)

строчку

do return end

Править файл amk_offline_alife.script

1.Удары по морде и "лучше тебе с ним не встречатся"...

Удалить функции set_be_enemy_f и set_be_enemy и их вызовы или удалить код из этих функций

2.Минирование трупов

Удалить функцию set_body_trap и ее вызовы или удалить код из тела этой функции

Как уменьшить радиус шмона до более-менее приемлемых 50-100 метров?

В файле scripts\amk_offline_alife.script надо найти строчки: local look_radius_box = 100

local look_radius_ruksak = 200

первая отвечает за радуис поиска стационарных тайников, вторая - за переносные рюкзаки.

Лечение "удара" наносимого ГГ тайником Кости на Радаре:

В файле spawn_teleport.script находим вот эту функцию

function polet() local h = hit() h.power = 5

h.direction = vector_rotate_y(db.actor:direction(), 90) h.draftsman = db.actor

h.impulse = 100 h.type = hit.wound db.actor:hit(h)

db.actor:give_info_portion("polet") end

В ней меняем значение h.power = 5. Уменьшение цифры приводит к уменьшению хита.

Как убрать аннимацию подбрасывания болта после каждого броска7

В конфиге болта (w_bolt) делаем так: "anim_show = draw3" меняем на "anim_show = draw" Страница 60

Как уменьшить вероятность выпадения броней?

В death_manager есть проценты по каждой из 5 групп броней - посмотри в конце моего скрипта. otf_1 = create_items(self.npc, sect, 1, 650). 650 - это 65%

Где правится состояние оружия НПС - т.е его износ когда оно попадает в руки ГГ?

В death_manager в функции keep_item в конце. Там две позиции - для первого слота и второго

...некорректно(очень жирно) отображаются текстуры колючей проволоки на заборах...

удали shaders.xr в геймдате

Страница 61

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]