Вы не подключены. Войдите или зарегистрируйтесь

На страницу : Предыдущий  1, 2

Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 2 из 2]


1Модостроение - Страница 2 Empty Модостроение Чт 9 Июн 2011 - 20:59


Satur

Satur

Сталкер Нейтрал

Сталкер Нейтрал
Первое сообщение в теме :

Создание новых предметов


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

Для начал находим файл items.ltx, находящийся в папке config/misc/, и копируем какой-нибудь предмет, я, например, взял:
[bread]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$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 "Блокнотом". Что мы там видим: все описания и названия прописаны по тегам:

Название в игре

И:

Описание в игре

Пишем:

Тестовый предмет

И:



Тестовый предмет, разработанный в сверхсекретных лабораториях Зоны Smile



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

Открываем 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

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

О том как, делать иконки для новых предметов, детально описано в статье BAC9-FLCL.

11Модостроение - Страница 2 Empty Re: Модостроение Чт 9 Июн 2011 - 21:14



Satur

Сталкер Нейтрал

Сталкер Нейтрал
Создание нового торговца
Сейчас мы научимся создавать нового торговца - Петровича:
1.Для начала создадим нового NPC, к которому и привяжем функцию торговли.
Cоздадим описание нашего NPC, для этого в папке gamedata\config\gameplay создадим xml файл, содержащий описание нашего торговца. Назовем его к примеру
character_by_escape.xml (вообще называть можно как угодно).
В нем пишем:




Петрович
ui_npc_u_stalker_sv_balon_1

petrovich_trader

petrovich_trader
stalker

stalker_terrain

730
96
actors\svoboda\stalker_sv_balon_1
characters_voice\human_02\freedom\
-1


[spawn] \n
wpn_sig220 \n
ammo_11.43x23_hydro = 1 \n
wpn_sig550 \n
ammo_5.56x45_ap = 1 \n


hello_dialog




За тем прописываем его в npc_profile.xml(gamedata\config\gameplay), т.е под строчкой Новые Профиля пишем:

petrovich_trader
petrovich_trader

После этого регистрируем описание нашего торговца в файле gamedata\config\system.ltx
В секцию [profiles] дописываем в конец после запятой character_by_escape.
3.Чтобы персонаж появился, нужно его заспавнить, для этого:
В папке gamedata\config\creatures есть замечательный файл spawn_sections.ltx
Будем править его.
Дабы не путаться потом, в самое его начало пишем:

[petrovich_trader_spawn]:stalker_trader
character_profile = petrovich_trader
spec_rank = veteran
community = stalker
use_single_item_rule = off
can_select_items = off
custom_data = scripts\petrovich_trader.ltx
Далее создаем скрипт с названием, например my_spawns.script в папке gamedata\scripts\
Прописываем в него функцию:

function petrovich_trader_spwn1()
local obj
local a = vector() -- Задаем тип переменной
local dir = db.actor:direction()

a.x = -246.51 -- координата X
a.y = -19.52 -- высота Y
a.z = -144.60 -- координата Z

obj = alife():create("petrovich_trader_spawn",a,13193,8,65535)
alife():create_ammo("ammo_9x18_fmj",
obj.position,
obj.m_level_vertex_id,
obj.m_game_vertex_id,
obj.id,
20) -- число патронов, которые будут спавнится при убиистве Петровича
end

Открываем блокнотом escape_dialog.script(gamedata\scripts\) и там в диалоге с Сидоровичем, например, после квеста с флешкой Шустрого,
функция: "function give_wounded_flash(first_speaker,second_speaker)"
(Можно впринципе в любой диалог)
вставляем:

my_spawns.petrovich_trader_spwn1()

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

function give_wounded_flash(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out")
dialogs.relocate_money(second_speaker, 1500, "in" )
my_spawns.petrovich_trader_spwn1() -- Вызов Петровича
end
Т.е наш персонаж появится только после выполнения задания с флешкой Шустрого, и когда Сидорович выдаст вам деньги за это задание, а торговец появляется по нашим координатам рядом с лагерем новичков.
4.Теперь в папке \gamedata\config\scripts создаем файл petrovich_trader.ltx
Этот файл является проводником к файлу торговли и логикой персонажа.
И в нем пишем:
[logic]
trade = misc\trade_petrovich.ltx
active = remark

[remark]
anim = wait

5.Теперь создаем в папке \gamedata\config\misc файл trade_petrovich.ltx
Это и есть файл торговли.
И в начале пишем:
[trader]
buy_condition = petrovich_generic_buy
sell_condition = petrovich_start_sell
buy_supplies = supplies_start

и потом как у других торговцев,т.е у бармена например [barman_generic_buy], а у нас будет [petrovich_generic_buy]
Если кому то не понятно можете посмотреть мой файл торговли: [Гости не могут видеть ссылки,регистрация не отнимет много времени Smile ]

Все, торговец создан.
Спасибо за материал по созданию NPC - Pereiro
За все остальное - участникам форума http://sdk.stalker-game.com/
И лично мне


Поясню некоторые нюансы:
1.

Петрович
ui_npc_u_stalker_sv_balon_1

petrovich_trader

petrovich_trader
stalker -- группировка, которая будет указана при разговоре с ним
-- деньги, на которые он покупает оружие и все, что принесет на продажу сам игрок
stalker_terrain

730
96
actors\svoboda\stalker_sv_balon_1 --модель героя, можно поменять, указав путь другой модели
characters_voice\human_02\freedom\ -- озвучка, тоже можно заменить на другую
-1 --оставлять также, не трогать


[spawn] \n
wpn_sig220 \n
ammo_11.43x23_hydro = 1 \n
wpn_sig550 \n
ammo_5.56x45_ap = 1 \n


hello_dialog


2.
--id указывайте тот, который указан в созданном файле описания торговца (предыдущий пункт), т.е. можно назвать как угодно торговца, но id сохранять в каждом файле
petrovich_trader
petrovich_trader


Quote
В секцию [profiles] дописываем в конец после запятой character_by_escape

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

3.
[petrovich_trader_spawn]:stalker_trader
character_profile = petrovich_trader -- это наш id, который будет использоваться в файлах как ссылка на нашего персонажа, типа, связки
spec_rank = veteran
community = stalker
use_single_item_rule = off
can_select_items = off
custom_data = scripts\petrovich_trader.ltx

Quote (qwerty111)
Далее создаем скрипт с названием, например my_spawns.script в папке gamedata\scripts\

Называйте как угодно, главное потом в файле escape_dialog.script(gamedata\scripts\) укажите в функции function give_wounded_flash(first_speaker,second_speaker) ссылку на ваш скрипт. Например, в указанном здесь my_spawns.petrovich_trader_spwn1() , где my_spawns. - наш созданный скрипт, а petrovich_trader_spwn1() - выполнение функции в этом скрипте.

4.
[logic]
trade = misc\trade_petrovich.ltx --указываем на созданный файл торговца (где и будет находится ассортимент оружия)
active = remark

[remark]
anim = wait

5. Здесь объяснять ничего не нужно, и так все ясно уже давно

12Модостроение - Страница 2 Empty Re: Модостроение Чт 9 Июн 2011 - 21:16


Satur

Satur

Сталкер Нейтрал

Сталкер Нейтрал
Работа с all.spawn
По распаковке алл.спавна с помощью acdc.
Расскажу, как делать это без батников.
Если надо распаковать алл.спавн.
1. Помещаем файл алл.спавн в папку, где находятся файлы от acdc. Лучше создать ее на диске С:
2. Нажимаем ПУСК - Выполнить. Появляется командное окно.
3. Вводим команду cmd. Появляется черное окно.
4. В нем пишем cd\ Далее нажимаем enter. Происходит перенос на другую строчку. Эта команда задает диск С для работы с ним.
5. Далее пишем cd C:\"название папки, куда поместили acdc". Нажимаем enter. Переход на другую строчку. Теперь задали папку с которой будем работать. Вот здесь и надо будет вводить команды для acdc.
6. Вводим acdc.pl -d all.spawn Нажимаем enter.
7. Если асдс подходит для данного алл.спавна, то вскоре все распакуется и распакованные файлы можно будет обнаружить в папке с асдс.
8. Если асдс не подходит, то он выдаст ошибку. Тут же в этом черном окне. Надо будет внимательно прочитать о чем ошибка. Обычно для разных модов не хватает какого-нибудь описания чего-нибудь. Например, может ругаться что не может найти af_soul.
Тогда надо будет открыть файл acdc.pl блокнотом. Там найти, где описываются артефакты и в конце строк с артефактами сделать запись для af_soul, напримере других артефактов. После сохранить файл и заново набрать команду по распаковке.
9. После того, как сделали изменения в алл.спавне, надо будет таким же образом войти в папку с acdc, как описывалось раньше.
10. Набрать следующую команду: acdc.pl -c all.ltx
11. Если все сделали правильно в алл.спавне, то через некоторе время в папке с асдс появится файл all.spawn.new. Его надо будет переименовать в all.spawn
12. Правило при работе с алл.спавном - не забывайте правильно пронумеровывать вновь создаваемые секции. Для этого надо найти самый большой номер секции в алл.спавне. И присваивать своим секциям номера по порядку за этим номером.

Работа с ACDC

Сегодня мы разберем основу работы с ACDC. Но... Для начала небольшое отступление. Вы зададите вопрос, почему же лучше работать с ACDC нежели чем с xrSpawner? Отвечаю: xrSpawner при всех его преимуществах имеет множество более значительных минусов. Во первых, xrSpawner не определяет не game_vertex, ни level_vertex. А также он измеряет только позицию. Я думаю работающие с xrSpawner, замечали что, порой обьекты которые они спаунят спаунером не всегда появляются на месте. Или вообще не появляются. Потому что повторяю xrSpawner не определяет вертексы т.е. точная позиция и распределение по АИ-сетке. Итак начнём работу! У нас есть программа ACDC, руки и мозги в голове. Кладём all.spawn в папку utils и жмём на батник "распаковка". Итак all.spawn распакован!Мы там видим файлы alife и way. В файлах alife только обьекты которые спаунятся. А в way только пути. Я думаю с алайфом всё понятно. Разберем way. Пути. Путь это и ест путь. По которому может двигаться живой обьект.Сейчас мы это рассмотрим: Для начала устроим текстовый беспредел Найдём файл alife_l01_escape, а в нём
Код
[869]
; cse_abstract properties
section_name = actor
name = level_prefix_actor_0001
s_rp = 0
position = -139.449829101563,-29.6908683776855,-351.492797851563
direction = 0,0.00895109120756388,0
s_flags = 0x29

[dont_spawn_character_supplies]

[spawn]
wpn_binoc
novice_outfit
device_torch
END

; cse_visual properties
visual_name = actors\hero\stalker_novice

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0x75732029
upd:creature_flags = 0x70
upd:position = -139.449829101563,-29.6908683776855,-351.492797851563
upd:o_model = 0
upd:o_torso = 0.00895109120756388,0,-0.999959945678711
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_trader_abstract properties
money = 40
trader_flags = 0
character_profile = actor

; cse_ph_skeleton properties

; cse_alife_creature_actor properties

upd:actor_state = 0xd20
upd:actor_accel_header = 0
upd:actor_accel_data = 0
upd:actor_velocity_header = 0
upd:actor_velocity_data = 0
upd:actor_radiation = 0
upd:actor_weapon = 110
upd:num_items = 0

Примерно такие строки. Для начала расщедримся Припишем актору в [dont_spawn_character_supplies]
[spawn] такие строки.
[dont_spawn_character_supplies]

Код
[spawn]
wpn_binoc
wpn_vintorez
ammo_9x39_pab9 = 20
wpn_usp
ammo_11.43x23_hydro = 22
novice_outfit
device_torch

Получиться что мы подарим Меченому при начале игры Винторез, 600 патронов к нему, пистолет USP и 420 патронов к нему. Так. Теперь Меченый у нас будет крутым рэмбо Теперь ещё и подарим ему денежек.
Код
; cse_alife_trader_abstract properties
money = 40
trader_flags = 0
character_profile = actor

В строчке money напишем любое число. Тока астрономические не надо(не проверял). Ну теперь Меченый не только рэмбо но и миллионер. Теперь займемся кординатами. У нас они такие:
Код
position = -139.449829101563,-29.6908683776855,-351.492797851563
direction = 0,0.00895109120756388,0

Это наши позиция и дирекция.
Код
; cse_alife_object properties
game_vertex_id = 19 (Тот самный вертекс на игре)
distance = 0.699999988079071
level_vertex_id = 111256 (вертекс на уровне)
object_flags = 0xffffffbf
custom_data = <
А теперь пропишем туда такие кординаты:
Код
position = -167.232299804688,-25.4363708496094,-354.692901611328
direction = 0,-0.365248799324036,0

; cse_alife_object properties
game_vertex_id = 0
distance = 0.699999988079071
level_vertex_id = 82413
object_flags = 0xffffffbf
custom_data = <upd:health = 1
upd:timestamp = 0x75732029
upd:creature_flags = 0x70
upd:position = -167.232299804688,-25.4363708496094,-354.692901611328
upd:o_model = 0
upd:o_torso = -0.365248799324036,0,0.930909931659698
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

Тепер игра начнётся в здании блокпоста на 2 этаже. С этим мы закончим. Теперь создадим нового НПС:
Код
[871]
; cse_abstract properties
section_name = stalker
name = esc_bridge_soldier1
position = -133.27989196777,-30.146812438965,-372.0263671875
direction = 0.028013030067086,0,0.9996075630188

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_soldier_regular

; cse_alife_object properties
game_vertex_id = 20
distance = 16.1000003814697
level_vertex_id = 118083
object_flags = 0xffffffbf
custom_data = <[logic]
active = walker

[walker]
path_walk = hodim_dvor
END

; cse_visual properties
visual_name = actors\soldier\soldier_bandana_3

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -133.27989196777,-30.146812438965,-372.0263671875
upd:o_model = 0
upd:o_torso = 0.028013030067086,0,0.9996075630188
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,2,2,1,2
predicate4 = 0,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

Так вот он наш друг НПС солдат на блокпосте Тут уже знакомы строки. Позиция, дирекция вертексы... Но есть кое что новое
Код
[logic]
active = walker

[walker]
path_walk = hodim_dvor

Элементарная логика НПС. hodim_dvor-Это путь по которому будет ходить НПС. НПС есть всё готово. Но путя то у нас нет Создадим его в файле way_l01_escape. Припишем вот такие строчки.
[hodim_dvor]
points = p0,p1
p0:name = name00
p0:position = -120.44634246826,-30.15016746521,-363.68786621094
p0:game_vertex_id = 24
p0:level_vertex_id = 132887
p0:links = p1(1)

p1:name = name01 номер точки
p1:position = -132.61611938477,-30.142726898193,-363.87365722656 - только позиция
p1:game_vertex_id = 19 вертекс на игре
p1:level_vertex_id = 118862 вертекс на уровне
p1:links = p0(1) на какую точку после этой перейдёт НПС. (тут он будет ходить туда сюда, если не написать линкс то он остановиться на месте)



Моя судьба загадка,и мне предстоит её разгадать.

13Модостроение - Страница 2 Empty Re: Модостроение Чт 9 Июн 2011 - 21:17


Satur

Satur

Сталкер Нейтрал

Сталкер Нейтрал
Новые мисии
На PDA Меченого поступило очередное задание — найти и уничтожить в глухой чащобе волка-отшельника. Темный-темный лес. Звенящая тишина. Отсутствие видимых признаков жизни. Внезапно Меченый видит на опушке домик, заходит внутрь и встречается с хозяином, который рассказывает главному герою обо всех ужасах, творящихся в здешних местах.

Нет, это не сюжет продолжения «Сталкера», а всего лишь одна дополнительная миссия, разработанная в нашей игрострой-лаборатории. В прошлых статьях по модифицированию «Сталкера» мы изучили интерфейс редактора карт из официального SDK, а также научились конструировать несложные уровни для игры на основе стандартных объектов и новых сцен, изготовленных в 3DS Max. Сегодня мы двинемся дальше — осветим тему написания несложных типовых квестов для игры.
Быстрый старт

Поскольку официальный редактор не позволяет править уровни одиночной игры, а как следствие — редактировать файлы скриптов, путей следования NPC и другие ресурсы, мы будем писать квесты в... обычном «Блокноте». У данного подхода есть всего лишь один минус, который отпугивает большинство модмейкеров, — отсутствие удобной оболочки, редактора для просмотра содержимого файлов просто нет. Зато плюсов куда больше: возможность правки любых параметров, открытые для редактирования исходные коды и многое другое. Игра стоит свеч.


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

Запустите «Блокнот» и подгрузите в него файл task_manager.ltx из директории gamedata\config\misc с распакованной игрой (если у вас есть лишь недавно установленная версия «Сталкера», разархивируйте базы данных игры при помощи утилиты S.T.A.L.K.E.R. Data Unpacker).

Файл содержит информацию о простейших игровых заданиях. Структура его следующая. В первой части файла — от оператора [list] до кейворда sar_monolith — объявляются специальные метки, ответственные за подключение новых квестов к игре. Пример одной из таких конструкций — буквосочетание tm_kill_stalker_5, это название типовой миссии. Во второй части файла — после ключевого слова sar_monolith — размещаются тексты заданий: цели, задачи, ссылки на диалоги. Разберем структуру одного из квестов, начинающегося со специальной метки [tm_kill_stalker_3] (обратите внимание, что при объявлении задания в первой части файла квадратные скобки ставить не нужно):

[tm_kill_stalker_3]

type = kill_stalker

community = actor

text = tm_kill_stalker_3_text

description = tm_kill_stalker_3_descr

parent = trader

target = sim_stalker_novice

;reward_money = 1000

reward_reputation = -5

reward_rank = 2

reward_item = af_blood

time = 86400

prior = 2

Рассмотрим основные параметры. Самый первый — type — отвечает за тип задания, в данном случае — уничтожить сталкера (kill_stalker). В игре предусмотрено несколько видов стандартных заданий: уничтожение/защита лагеря (параметр eliminate_lager/defend_lager), убийство сталкера (kill_stalker), поиск артефакта/конечности монстра/предмета (artifact/monster_part/find_item).
Поскольку специальных редакторов и утилит для изменения «Сталкера» нет, приходится править скрипты в «Блокноте», а игровые тексты — в табличном редакторе Excel. Не очень удобно, но альтернативы просто нет.



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

text — название записи в файле stable_task_manager.xml, содержащей текст задания. Текст отображается в диалогах.

description — запись в файле stable_task_manager.xml. Здесь собран текст миссии, выводимый на PDA Меченого.

Следующая настройка — атрибут parent — определяет имя заказчика, в данном случае trader (торговец Сидорович).

target — цель миссии, в текущем квесте — убийство одного из сталкеров — novice (sim_stalker_novice).

reward_money — награда, которую получит игрок после выполнения задания.

reward_reputation — число очков репутации, добавляемое игроку после прохождения квеста. Вы можете понизить Меченому репутацию за выполнение задания, выставив в качестве значения атрибута любое целое отрицательное число.

reward_rank — количество ранговых очков за выполнение миссии.

reward_item — бонусные предметы, вручаемые главному герою, за прохождение квеста.

time — время (в секундах), в течение которого игрок должен пройти миссию.

prior — приоритет данного задания перед остальными. Цифра 1 ставится в том случае, если задание крайне важно, и далее по нисходящей.

Самое время попрактиковаться и модифицировать какой-нибудь оригинальный игровой квест. Отыщите строку [tm_kill_stalker_5] (для вызова меню поиска в «Блокноте» воспользуйтесь комбинацией горячих клавиш Ctrl+F) и модифицируйте параметры данной миссии. Например, вы можете просто повысить/понизить сложность игры, увеличив или уменьшив время, отведенное игроку на выполнение задания (параметр time), снять значок блокировки строки (символ Wink, reward_money (денежное вознаграждение) или, скажем, придать параметру reward_reputation значение ноль, чтобы Меченый не терял репутацию в Зоне.
Текстовый беспредел

С правкой исходного кода миссии мы разобрались. Движемся дальше и приступаем к модификации игровых текстов. Загляните в каталог gamedata\config\text\rus установленной игры, отыщите в директории файл stable_task_manager.xml и откройте его при помощи табличного редактора Microsoft Excel.

После запуска программы вы увидите, что вся информация из XML-файла будет распределена по двум столбцам — A и B, которым соответствуют названия id (идентификационный номер) и text (текст). Если спускаться плавно вниз по столбцу id, то нетрудно установить так называемую закономерность. Строки 3, 6, 9 и далее в арифметической прогрессии содержат заголовок типовой миссии. Строки 4, 7, 10, 13, 16 с окончанием _descr — краткое описание (цель задания), выводимое на PDA главного героя. Ну а строки 5, 8, 11, 14 и далее, заканчивающаяся на _text, содержат текст, отображаемый во время диалога с персонажем, у которого вы получили задание.

Таким образом, для изменения текстов того или иного одноуровневого задания, прописанного в файле task_manager.ltx, вам нужно проделать следующие нехитрые манипуляции. Первым делом скопируйте в «Блокнот» название определенной миссии из task_manager.ltx (без квадратных скобок), ее описание для вывода на PDA (параметр description) и текст диалога (text). Затем поочередно отыщите выписанные ключевые слова в XML-файле stable_task_manager.xml и модифицируйте текст каждой из записей. Закончив правку задания, сохраните все изменения и протестируйте квест в игре.Тонкости квестостроения


Чтобы оставить свой собственный авторский след в файле task_manager.ltx, да и вообще в любом конфигурационном файле «Сталкера», нужно всего-то лишь поставить в нужном месте (после кода или с новой строки) символ точки с запятой и после него вживить комментарий, например: tm_eliminate_camp_4 ; игроманский комментарий, не удалять.
Далеко не все квесты, написанные разработчиками, вошли в оригинальную игру. Что, никогда о таком не слышали? Тогда имейте в виду, что, например, в файле task_manager.ltx содержится ряд закомментированных, но вполне рабочих заданий, цель которых сводится к убийству сталкеров и поиску полезных вещиц. После тщательного прочесывания документа на наличие такого рода заданий мы обнаружили следующие заблокированные квесты:

;--[barmen_eliminate_camp_3]

;--[barmen_find_item_1]

;--[barmen_find_item_2]

;--[barmen_find_item_3]
Для преобразования геймплея S.T.A.L.K.E.R. достаточно поправить всего лишь несколько параметров каждой типовой миссии в файле task_manager.ltx. Как вариант, вы можете значительно сократить время, отведенное на выполнение каждого квеста, занизить очки репутации за прохождение той или иной миссии, но в то же время в несколько раз увеличить число бонусов и денежных средств.

Квестострой

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

Запустите «Блокнот» и подгрузите в него файл task_manager.ltx из директории gamedata\config\misc. Отыщите ключевое слово sar_monolith и после него с новой строки добавьте следующую конструкцию:

; Ваш авторский комментарий

[mission_name]

Здесь [mission_name] — произвольное наименование квеста, например, tm_kill_stalker_7.

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


Далее скопируйте какое-нибудь типовое задание, например, [tm_kill_stalker_2] в буфер обмена и поместите дубликат в самый конец документа. Измените название клонированной миссии, заключенное в квадратные скобки, на название квеста, объявленного вами в списке заданий. Модифицируйте параметры оригинальной миссии, при необходимости добавьте в код миссии дополнительные команды. Самое главное — не забудьте поправить значения параметров text и description, которые соответствуют названиям текстовых записей в файлах gamedata\config\gameplay\storyline_info_taskmanager.xml и gamedata\config\text\rus\stable_task_manager.xml. Затем откройте «Блокнотом» XML-файл storyline_info_taskmanager.xml из каталога gamedata\config\gameplay с игрой и добавьте в конец файла следующий блок:



[descr]



В данном фрагменте кода [descr] — значение параметра description в теле миссии, (в нашем случае — tm_kill_stalker_7_descr).

Осталось внести изменения в файл stable_task_manager.xml, содержащий тексты заданий на русском языке. Перейдите в каталог gamedata\config\text\rus и при помощи любого табличного редактора — скажем, Excel — откройте файл stable_task_manager.xml. Передвиньте ползунок в правой части программы в нижнюю часть документа. В ячейке на пересечении 391 строки и первого столбца введите ключевое слово, соответствующее названию вашего квеста в файле task_manager.ltx. После этого в поле напротив (ячейка B-391) напечатайте название будущего задания.

В поле A-392 (A — название столбца, 392 — порядковый номер строки) вбейте название, прописанное в качестве параметра description вашей миссии, а в области B-392 — текст сообщения, который будет подан на PDA главного героя. В ячейке A-393 пропишите значение характеристики text вашей миссии и в поле напротив наберите текст задания для отображения во время беседы между Меченым и работодателем. Сохраните изменения и закройте табличный редактор.
* * *

Мы изучили азы создания несложных квестов для S.T.A.L.K.E.R. и попутно разобрали структуру скриптовых файлов. Если тема создания новых миссий для «Сталкера» вам интересна, обязательно загляните в раздел «Игрострой» на нашем DVD. Там вас поджидает подробное руководство по разработке сложных миссий и написанию нелинейных диалогов для S.T.A.L.K.E.R.. Заранее предупреждаем — материал рассчитан на модмейкеров со стажем.



Моя судьба загадка,и мне предстоит её разгадать.


Спонсируемый контент


Предыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 2 из 2]

На страницу : Предыдущий  1, 2

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

      Top.Mail.Ru   Яндекс.Метрика   
COPYRIGHT ST-COP™ © 2009-2021
DESIGN BY KAMIKAZE
ВСЕ ПРАВА ЗАЩИЩЕНЫ
ЛЮБОЕ ИСПОЛЬЗОВАНИЕ МАТЕРИАЛОВ САЙТА ВОЗМОЖНО ТОЛЬКО С РАЗРЕШЕНИЯ ЕГО АДМИНИСТРАЦИИ