S.T.A.L.K.E.R.: Shadow of Chernobyl - Модификации - Создание модов - Создание новой группировки

 Создание новых группировок

Для создания новой группировки нам понадобятся файлы:

game_relations.ltx – регистрация группировки в строке с другими, таблице отношений и симпатии

death_manager.script точно не знаю для чего. Наверное чтоб объекты спавнились в трупах этой группировки

death_items_by_communities.ltx – для спавна предметов в трупах НПС новой группировки

se_respawn.script – респавн бойцов новой группировки

xr_statistic.script - статистика

character_desk_x.xml (вместо х название локации, к примеру escape-кордон)

dialogs.script – для вступление в нашу группировку

string_table_general.xml – регистрация группировки не как anarhistа как Анархист

dialogs_escape.xml – для вставки функции активации вступления в новую группировку

 

 

1. Определитесь, как вы хотите назвать свою группировку ну, к примеру, Анархисты. 
2. В файле game_relations.ltx необходимо добавить свою группировку: 
А) В таблицу отношений:

communities_relations 

;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg 
|freedom|bandit |zombied|strange|trader|arena_enemy| anarhist | 
;===== 
actor = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0 
actor_dolg = 0, 0, 0, 0, -5000, -500, -5000, 5000, 600, -5000, -5000, -5000, 0, 0, -5000 
actor_freedom = 0, 0, 0, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, -5000, 0

stalker = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0 
m -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, 5000, 5000, -5000, 0, -5000, 0 
military = -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, -5000, -5000, -5000, 0, 0, -5000, 0 
killer = -5000, -5000, 0, -5000, -5000, -5000, 5000, -5000, -5000, -5000, 0, -5000, -5000, 0, -5000, 0 
ecolog = 0, 600, -5000, 0, -5000, 1000, -5000, 5000, 500, -5000, -500, -5000, 0, 0, 0, 0 
dolg = 0, 600, -5000, 0, -5000, -500, -5000, 5000, 5000, -5000, -5000, -5000, 0, 0, 0, 0 
freedom = 0, -5000, 600, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, 0, 0 
bandit = -5000, -5000, 0, -5000, -5000, -500, 0, -5000, -5000, 0, 0, -5000, -5000, 0, -5000, 0 
zombied = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, 0 
stranger = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -500, -5000, 0, 0, 0, 0 
trader = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 
arena_enemy = -5000, -5000, -5000, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, 0, 0, 0

anarhist = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0, 600

 

(если в таблице не будет указано отношение т. е.  в ячейке на пересечении группировок то она определяется как 0 – нейтралы!)

б) такжевстрочкупередтаблицей communities: 
;названиягруппировок 
communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, 
freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16, anarhist, 18,

в) Вразделе communities_sympathy добавить: 
communities_sympathy 
actor = 0.0 
actor_dolg = 0.0 
actor_freedom = 0.0 
stalker = 0.0 
m 0.0 
military = 0.0 
killer = 0.0 
ecolog = 0.0 
dolg = 0.1 
freedom = 0.1 
bandit = 0.0 
zombied = 0.0 
trader = 0.0 
stranger = 0.0 
arena_enemy = 0.0 
anarhist = 0.0

3) В death_manager.script ищемстроку local community_list идобавляемсвоюгруппировкувскобки: 
function init_drop_settings() 
local community_list = { "stalker", "dolg", "freedom", "bandit", "military", "zombied", "ecolog", "killer", "monolith", 
"arena_enemy", "actor_dolg", " anarhist " }

4) Вфайле death_items_by_communities.ltx пишем: 
af_dummy_spring = 0 
af_fuzz_kolobok = 0

;Еда 
vodka = 0

arena_enemy 
actor_dolg

[anarhist] : stalker 
bread = 0 
kolbasa = 0 
vodka = 0 
energy_drink = 0.3
 

5) Дляреспавнабойцовгруппировкив se_respawn.script пишем local simMaxCount = {послезомби: 
anarhist_novice = 20, anarhist_regular = 20, anarhist_veteran = 20, anarhist_master = 6, 

6) ЧтобыприубийствеНПСновойгруппировкииграневылеталав xr_statistic.script послестрочексзомби: 
zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4, 
пишем: 
anarhist _stalker_novice = 1, anarhist _stalker_experienced = 2, anarhist _stalker_veteran = 3, anarhist _stalker_master = 4, 

 

Далее ищем строчку functiongetNpcType(npc) и после:

 

elseif npc:character_community() == "zombied" then

                                   community = "zombied"

добавляем:

elseif npc:character_community() == "anarhist" then

                                   community = "apple-converted-space">anarhist"

 

7) Теперь в character_desk_x.xml (вместо х название локации, к примеру escape-кордон) выбираем любого НПС и в разделе: 
stalker --группировка к которой относиться НПС (в данном случае сталкер)
поменять на:

anarhist

7) Чтобы группировка отображалась как Анархист зарегистрируем ее в в файле string_table_general.xml: 
<</strong>string_table> 
<</span>
stringid="anarhist"> 
<</span>
text>Анархистыtext> 
string> 

8) Ну и конечно же вступление в нашу новую группировку!

А) Открываем game_relations.ltx и добавляем следующее:

В названия группировок:

communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, 
freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16, anarhist, 18, actor_anarhist, 19,

 

и в таблицу отношений:

 

communities_relations 

;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg 
|freedom|bandit |zombied|strange|trader|arena_enemy| anarhist | actor_anarhist|
;===== 
actor = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0 
actor_dolg = 0, 0, 0, 0, -5000, -500, -5000, 5000, 600, -5000, -5000, -5000, 0, 0, -5000 
actor_freedom = 0, 0, 0, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, -5000, 0

stalker = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0 
m -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, 5000, 5000, -5000, 0, -5000, 0 
military = -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, -5000, -5000, -5000, 0, 0, -5000, 0 
killer = -5000, -5000, 0, -5000, -5000, -5000, 5000, -5000, -5000, -5000, 0, -5000, -5000, 0, -5000, 0 
ecolog = 0, 600, -5000, 0, -5000, 1000, -5000, 5000, 500, -5000, -500, -5000, 0, 0, 0, 0 
dolg = 0, 600, -5000, 0, -5000, -500, -5000, 5000, 5000, -5000, -5000, -5000, 0, 0, 0, 0 
freedom = 0, -5000, 600, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, 0, 0 
bandit = -5000, -5000, 0, -5000, -5000, -500, 0, -5000, -5000, 0, 0, -5000, -5000, 0, -5000, 0 
zombied = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, 0 
stranger = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -500, -5000, 0, 0, 0, 0 
trader = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 
arena_enemy = -5000, -5000, -5000, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, 0, 0, 0

anarhist = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0, 600

actor_anarhist = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0, 600, 600

 

встрочку

communities_sympathy добавить: 
communities_sympathy 
actor = 0.0 
actor_dolg = 0.0 
actor_freedom = 0.0 
stalker = 0.0 
m 0.0 
military = 0.0 
killer = 0.0 
ecolog = 0.0 
dolg = 0.1 
freedom = 0.1 
bandit = 0.0 
zombied = 0.0 
trader = 0.0 
stranger = 0.0 
arena_enemy = 0.0 
anarhist = 0.0

actor_anarhist = 0.0

 

в) В death_manager.script ищемстроку local community_list идобавляем

 

local community_list = { "stalker", "dolg", "freedom", "bandit", "military", "zombied", "ecolog", "killer", "monolith", 
"arena_enemy", "actor_dolg", " anarhist ",  " actor_anarhist "}

 

г) В dialogs.script в раздел:

-- Community

Добавляем:

 

functionactor_set_anarhist (actor, npc) –это функция вступления в нашу новую группировку

printf ("ACTOR NOW IN [anarhist] COMMUNITY")

if db.actor then

db.actor:set_character_community ("actor_anarhist", 0, 0)

end

return true

end

 

Ну и осталось активировать данную функцию! Активация будет происходить через диалог следующим образом:

Если мы хотим активировать на кордоне то выбираем dialogs_escape.xml и ищем там любой диалог (конечно лучше создать свой диалог специально для вступления но покажу на примере любого другого чтоб было понятно) к примеру вот:

 

                escape_trader_start_dialog_3

                dialogs.actor_set_anarhist

                31

                32

           

И после того как Сидорович скажет: Ну как мы с тобой поступим вы будете в группировке Анархист!

Автор: Byurrer

Комментарии: 17
Ваш комментарий

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

3

Прикольно...Замысловато, но прикольно +10

2

Валентин Зубко Это же группировка,бойцов нужно отдельно спавнить через скрипты)

1

Да где найти файл death_items_by_communities.ltx!

1

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

1

Автору научиться бы членораздельно писать и понятно излогать мысль... Желаю ему этого! P. S. - для новичков и чайников нужна четкая, простая и ясная конкретика. А так спасибо и на этом.

1

эх....а где эти файлы в геймы искать написать можно было!

0

Всё нашёл в следующий раз пиши что и где находить!

0

А как Xml открывать блокнотом да? Ответь пожалуйста автор стотьи!!!!!!!!!!!!!!!!

0

Ну ладно что будет то будет!

0

Nik_Bal Ну да автор бы всё немного понятней все изложил а так я уже разобрался что надо блокнотом открывать

0

Nik_Bal Хотя если смотреть видео там всё проще и легко

0

Игра запускается но стоит начать новою игру или загрузить сохранение на этапе клиент сихронизацыя вылет скажите что делать

0