Есть ли моды на сталкер в которых можно создать свою группировку

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

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

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

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>
stringidanarhist«> 
<</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

Источник

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

Новая группировка

Сегодня мы создадим новую группировку. Назовем её, скажем, «Ветер». Не суть важно.

Практика

Базовый уровень

1. Для начала в game_relations.ltx и в таблицу отношений группировок в конце и в заголовке добавляем название своей группировки и коэффициенты отношений к ней у других группировок. Также, не забываем прописать её собственное отношение к другим группировкам:

[communities_relations]
;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg |freedom|bandit |zombied|strange|trader|arena_enemy|wind|
;=================================================================================================================================
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
monolith = -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
 
wind = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0

Также, изменим эту строку, добавив туда имя и номер группировки:

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

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, wind, 18

Отсчет идет построчно начиная сверху. Хотя есть небольшой нюанс. У первых трех строк — нумерация начинается с нуля, с остальных группировок она идет как надо. Для wind выставили 18, так как мы эту группировку отделили от других.

Далее, в разделе [communities_sympathy] в конце добавляем свою группировку и коэффициент «впечатлительности» — чем он меньше, тем меньше отношение группировки будет меняться к вам в целом:

[communities_sympathy]
actor = 0.0
actor_dolg = 0.0
actor_freedom = 0.0
stalker = 0.0
monolith = 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
wind = 0.0

2. После этого в файле 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», «wind» }

3. В файле death_items_by_communities.ltx пишем [x]:stalker (вместо x — название вашей группировки):

[…]
af_dummy_spring = 0
af_fuzz_kolobok = 0
 
;Еда
vodka = 0
 
[arena_enemy]
[actor_dolg]
 
[wind]: stalker
bread = 0
kolbasa = 0
vodka = 0
energy_drink = 0.3
 

4. Если предусматривается респавн бойцов новой группировки, в se_respawn.script прописываем в local simMaxCount = { после строчек с зомбированными сталкерами строку:

wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6,

И в файле miscsmart_terrain_presets.ltx, в секциях требуемых уровней, на которых предусматривается респаун бойцов новой группировки, добавляем строки с названием своей группировки:

[l02_garbage]
wind = novice, experienced, veteran, master

5. Чтобы при убийстве непися новой группировки игра не вылетала в xr_statistic.script,

после строки:

zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,

пишем

wind_novice = 1, wind_experienced = 2, wind_veteran = 3, wind_master = 4,

и ниже в function getNpcType(npc) добавим:

elseif npc:character_community() == «wind» then
community = «wind»

6. Ну а в character_desk_x.xml выбираем любого NPC (или группу) и меняем группировку на свою:

<!—esc_wolf—>
<specific_character id=»esc_wolf» team_default = «1»>
<name>esc_wolf_name</name>
<icon>ui_npc_u_stalker_neytral_balon_1</icon>
<bio>esc_wolf_bio</bio>
 
<class>esc_wolf</class>
<community>wind</community>
[…]

7. Чтобы у персонажа в графе «Группировка» отображалось не «wind», а «Ветер», зарегистрируем соответствующую строку в файле string_table_general.xml:

<?xml version=»1.0″ encoding=»windows-1251″ ?>
<string_table>
<string id=»wind»>
<text>Ветер</text>
</string>
<string id=»actor»>
<text>Одиночка</text>
</string>
[…]

8. Существует возможность создать для нашей новой группировки места, где они будут ходить (*_terrain брать из m_stalker.ltx):

То есть, к примеру, существует секция:

 
[stalker_terrain]
255,000,255,255
008,001,255,255 ;Разрешено ходить по опасным местам на баре
012,001,255,255 ;Разрешено ходить по опасным местам на Милитари
 

Тогда можно создать новую, по аналогии:

 
[wind_terrain]
255,000,255,255
008,001,255,255 ;Разрешено ходить по опасным местам на баре
012,001,255,255 ;Разрешено ходить по опасным местам на Милитари
010,001,255,255 ;Разрешено ходить по опасным местам на янтаре
 

Здесь, очевидно, указаны координаты самого уровня. Для каждого уровня существует своя начальная координата.

Продвинутый уровень

Такой метод достаточно примитивен. Это не полноценная группировка. Нам нужны соответствующие диалоги, возможность получения квестов и вступления в группировку, уникальные NPC.

Квесты

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

Во-первых, пропишите в список диалогов персонажа следующие строки:

<actor_dialog>[tm_trader_diolog]_dialog</actor_dialog>
<actor_dialog>[tm_wolf_diolog]_reward</actor_dialog>

Примеры названий: tm_trader_dialog, tm_wolf_dialog

Внимание! Метод не проверен.

Этим мы добавили ему ветку диалога «Есть работа?», а также ветку для награды за квест/отказа от него. Теперь зарегистрируем в task_manager.ltx набор новых заданий.

Читайте также:  Можно ли есть шубу когда худеешь

[list]
 
[…]
 
;———Wind————————
;———-Kill Stalker—-
wind_kill_stalker
;———-Find Item—-
wind_find_item
 
[…]
 
;tasks for Wind
 
[wind_find_item]
type = find_item
community = actor
text = [ссылка на текст с рассказом заказчика о задании]
description = [ссылка на текст с описанием задания]
parent = [имя NPC-заказчика]
target = scientific_outfit
reward_money = 5000
reward_reputation = +5
reward_rank = 4
reward_item = wpn_sig_m1
time = 86400
 
 
[wind_kill_stalker]
type = kill_stalker
community = actor
text = [ссылка на текст с рассказом заказчика о задании]
description = [ссылка на текст с описанием задания]
parent = [имя NPC-заказчика]
target = sim_stalker_master_master
reward_money = 4000
reward_reputation = +5
reward_rank = 9
reward_item = ammo_5.56x45_ap, ammo_5.56x45_ap, ammo_5.56x45_ap
time = 86400

Не забудьте прописать описания заданий в текстовые массивы. Подробнее о редактировании task_manager.ltx читайте в уроке, посвященном однотипным квестам.

Да, и зарегистрируйте сами ветки диалогов в файле dialogs.xml. Вот пример того, как это сделано для заданий «Долга»:

<dialog id=»tm_dolg_dialog» priority=»-1″>
<init_func>task_manager.init_dolg_task_dialog</init_func>
</dialog>
<dialog id=»tm_dolg_reward» priority=»0″>
<init_func>task_manager.init_dolg_reward_dialog</init_func>
<precondition>task_manager.has_active_vendor_task</precondition>
</dialog>

Соответственно, пройдем туда, куда указывает строка task_manager.init_dolg_task_dialog — в task_manager.script:

function init_dolg_task_dialog(dlg)
get_random_task():init_task_dialog(dlg, «dolg») —(‘эта функция для взятия квеста)
 
function init_dolg_reward_dialog(dlg)
get_random_task():init_reward_dialog(dlg, «dolg») —(а эта функция для отказа от квеста)
end

По аналогии делаем и с нашим «Ветром».

Вступление в группировку

Реализуем возможность вступления в группировку.

Прописываем в dialogs.script такие action’ы:

————————————————————————————
— Community
————————————————————————————
 
[…]
 
function actor_set_wind(actor, npc)
printf(«ACTOR NOW IN [WIND] COMMUNITY»)
if db.actor then
db.actor:set_character_community(«wind», 0, 0)
end
return true
end
 

После чего создадим диалог, и сделаем в нем фразу с action’ом вида <action>dialogs.actor_set_wind</action>. Советую изучить урок, посвященный диалогам.

Новые NPC

Лучше всего всё вышеприведенное повесить на нового, уникального персонажа. Способ его спавна описан здесь.

Авторы

Статья BAC9-FLCL.
Способ открыт Arhet (SRP Team)
Статью поправил: Vikman

Альтернатива — статья SenseyVit

Источник

Топ 5 модов с Войной Группировок на S.T.A.L.K.E.R.

Думаю, многим игрокам понравилась представленная в Чистом Небе Война Группировок. Однако в самой игре реализация подкачала. Но есть множество модов, созданных как раз для этого. Ну а это значит, что если вам нравиться Война Группировок в Сталкере, то хотя бы одна игра из представленного топа должна заслужить ваше внимание. Поехали!

5. Last War

Сборка на Войну Группировок на платформе мода Call of Chernobyl, вобравшая в себя различные аддоны и дополнения с целью разнообразить войну. В основе лежит аддон «extended ofline» (EO). Здесь есть все для комфортной войны: оружейный пак, различные правки, адаптированный MLR последней версии, приносящий изменения в локации и геймплей, ну и все этому подобное.

4. Великая Война

Это тоже проект на платформе Call of Chernobyl.Правда, он наполняет игру немного иначе. Здесь не стоит слишком много аддонов, установили лишь оружейный пак и так, по мелочи. отличием является наличие новых группировок и различных режимов игры. Группировки здесь самые разные — как придуманные, так и заимствованные. От Мстителей до террористов, от СБУ до военных Сталкеров, от О-Сознания до Ренегатов. Группировок куча, и за каждую можно сыграть. Правда выбор оной реализован криво, так как сложно уместить такое количество выбора в меню. Поэтому в разделе начальных точек вы можете выбрать базу группировки, а затем заспаунить себе в «Повелителе Зоны» броню данной фракции. Касательно режимов, то тут все просто и интересно. Путем редактирования отношений между группировками или начальным населением Зоны было введено множество режимов. Один из них — Последний Рубеж. Суть в том, что вы появляетесь на южном блокпосте Кордона и ваша цель — захват как можно большего количества точек и их защита, ибо вся Зона заселена Зомбированными. Как пример.

3. Lost Path

Это модификация на все той же платформе Call of Chernobyl. Она так же может похвастаться своими фишками. На пример, здесь реализовано множество движковых правок и куча особенностей: необычные иконки точек, настраиваемая жирность тайников, прокачка, перки, сюжетная линия, топ группировок, измененная и дополненная их война. Даже есть две новые — Темные сталкеры и Исследователи. Начать игру можно только вольным сталкером. Чтобы вступить в другую — придется попотеть и поработать на желаемую группировку. Если хотите стать зомби или монолитовцем, нужно прогуляться по Радару без пси-защиты. Если бандитом — достаточно заработать ужасную репутацию, убивая братьев стелкеров. В общем, весьма занятная модификация.

2. New Vision Of War

На конец то мод не на платформе Call of Chernobyl. Данная модификация разработана на платформе S.T.A.L.K.E.R: Чистое Небо. Он появился довольно давно, наравне с вышеупомянутым, а то и раньше. Базируется все это дело на аддоне «Faction Commander», добавляющий в оригинал своеобразный фриплей и неограниченную Войну Группировок. В начале игры, когда вы просыпаетесь у Лебедева, вместо старта сюдета вам предложат вступить в какую-нибудь группировку. Их всего 10. Все из Зова Чернобыля + Ренегаты. Данная война может показаться вам менее интересной и качественной, тем те, что я перечислил ранее. Но не стоит забывать, что платформу и дату появления мода в сети. Тут присутствует оружейный пак, в котором вам будет где разгуляться, квесты за каждую группировку на каждой локации и награды за них и много другое. Стотт так же отметить топ группировок еще из оригинального Чистого Неба. Только по-моему мнению топ здесь работает лучше чем где либо. Именно корректный топ подогревает интерес к войне и является стимулом усердно играть за полюбившуюся группировку.

1. EOC на STATION 174

Я думаю, что такая сборка как сборка от Стасона не нуждается в представлении и объяснениях. Осенью прошлого года она вышла и с самым лучшим аддоном на войну группировок стала самым популярным и неудивительно, что в подобном топе занимает 1-е место. Рекомендую.

А какой ваш любимый мод на Войну Группировок

Источник

Как создать свою группировку?

Создание новой группировки
Новая группировка
Сегодня мы создадим новую группировку. Назовем её, скажем, «Ветер». Не суть важно.
Практика:
Базовый уровень
1. Для начала в game_relations.ltx и в таблицу отношений группировок в конце и в заголовке добавляем название своей группировки и коэффициенты отношений к ней у других группировок. Также, не забываем прописать её собственное отношение к другим группировкам:
[communities_relations]
;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg |freedom|bandit |zombied|strange|trader|arena_enemy|wind|
;================================================= ================================================== ==============================
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
monolith = -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

Читайте также:  Можно ли есть варенье десятилетней давности

wind = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
Также, изменим эту строку, добавив туда имя и номер группировки:
;названия группировок
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, wind, 18,
Отсчет идет построчно начиная сверху. Хотя есть небольшой нюанс. У первых трех строк — нумерация начинается с нуля, с остальных группировок она идет как надо. Для wind выставили 18, так как мы эту группировку отделили от других.
Далее, в разделе [communities_sympathy] в конце добавляем свою группировку и коэффициент «впечатлительности» — чем он меньше, тем меньше отношение группировки будет меняться к вам в целом:
[communities_sympathy]
actor = 0.0
actor_dolg = 0.0
actor_freedom = 0.0
stalker = 0.0
monolith = 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
wind = 0.0
2. После этого в файле death_manager*****ipt ищем строку local community_list и в скобках добавляем название своей группировки:
function init_drop_settings()
local community_list = { «stalker», «dolg», «freedom», «bandit», «military», «zombied», «ecolog», «killer», «monolith»,
«arena_enemy», «actor_dolg», «wind» }
3. В файле death_items_by_communities.ltx пишем [x]:stalker (вместо x — название вашей группировки):
[…]
af_dummy_spring = 0
af_fuzz_kolobok = 0

;Еда
vodka = 0

[arena_enemy]
[actor_dolg]

[wind]: stalker
bread = 0
kolbasa = 0
vodka = 0
energy_drink = 0.3
4. Если предусматривается респавн бойцов новой группировки, в se_respawn*****ipt прописываем в local simMaxCount = { после строчек с зомбированными сталкерами строку:
wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6,
5. Чтобы при убийстве непися новой группировки игра не вылетала в xr_statistic*****ipt,
после строки:
zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,
пишем
dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,

6. Ну а в character_desk_x.xml выбираем любого NPC (или группу) и меняем группировку на свою:

esc_wolf_name
ui_npc_u_stalker_neytral_balon_1
esc_wolf_bio

esc_wolf
wind
[…]
7. Чтобы у персонажа в графе «Группировка» отображалось не «wind», а «Ветер», зарегистрируем соответствующую строку в файле string_table_general.xml:

Ветер

Одиночка

[…]
8. Существует возможность создать для нашей новой группировки места, где они будут ходить (*_terrain брать из m_stalker.ltx):
То есть, к примеру, существует секция:
[stalker_terrain]
255,000,255,255
008,001,255,255 ;Разрешено ходить по опасным местам на баре
012,001,255,255 ;Разрешено ходить по опасным местам на Милитари
Тогда можно создать новую, по аналогии:
[wind_terrain]
255,000,255,255
008,001,255,255 ;Разрешено ходить по опасным местам на баре
012,001,255,255 ;Разрешено ходить по опасным местам на Милитари
010,001,255,255 ;Разрешено ходить по опасным местам на янтаре

Здесь, очевидно, указаны координаты самого уровня. Для каждого уровня существует своя начальная координата.
Продвинутый уровень:
Такой метод достаточно примитивен. Это не полноценная группировка. Нам нужны соответствующие диалоги, возможность получения квестов и вступления в группировку, уникальные NPC.
Квесты:
Добавим квесты, которые нужно выполнить для группировки. Пока — простые поручения распространенных типов.
Во-первых, пропишите в список диалогов персонажа следующие строки:
[что-нибудь]_dialog
[что-нибудь]_reward
Примеры названий: tm_trader_dialog, tm_wolf_dialog…
Внимание! Метод не проверен.
Этим мы добавили ему ветку диалога «Есть работа?», а также ветку для награды за квест/отказа от него. Теперь зарегистрируем в task_manager.ltx набор новых заданий. [list]

[…]

;———Wind————————
;———-Kill Stalker—-
wind_kill_stalker
;———-Find Item—-
wind_find_item

[…]

;tasks for Wind

[wind_find_item]
type = find_item
community = actor
text = [ссылка на текст с рассказом заказчика о задании]
description = [ссылка на текст с описанием задания]
parent = [имя NPC-заказчика]
target = scientific_outfit
reward_money = 5000
reward_reputation = +5
reward_rank = 4
reward_item = wpn_sig_m1
time = 86400

[wind_kill_stalker]
type = kill_stalker
community = actor
text = [ссылка на текст с рассказом заказчика о задании]
description = [ссылка на текст с описанием задания]
parent = [имя NPC-заказчика]
target = sim_stalker_master_master
reward_money = 4000
reward_reputation = +5
reward_rank = 9
reward_item = ammo_5.56x45_ap, ammo_5.56x45_ap, ammo_5.56x45_ap
time = 86400
Не забудьте прописать описания заданий в текстовые массивы. Подробнее о редактировании task_manager.ltx читайте в уроке, посвященном однотипным квестам.
Да, и зарегистрируйте сами ветки диалогов в файле dialogs.xml. Вот пример того, как это сделано для заданий «Долга»:

task_manager.init_dolg_task_dialog

task_manager.init_dolg_reward_dialog
task_manager.has_active_vendor_tas k

Соответственно, пройдем туда, куда указывает строка task_manager.init_dolg_task_dialog — в task_manager*****ipt:
function init_dolg_task_dialog(dlg)
get_random_task():init_task_dialog(dlg, «dolg»)
По аналогии делаем и с нашим «Ветром».
Вступление в группировку:
Реализуем возможность вступления в группировку.
Прописываем в dialogs*****ipt такие action’ы:
————————————————————————————
— Community
————————————————————————————

[…]

function actor_set_wind (actor, npc)
printf («ACTOR NOW IN WIND COMMUNITY»
if db.actor then
db.actor:set_character_community («actor_wind», 0, 0)
end
return true
end
После чего создадим диалог, и сделаем в нем фразу с action’ом вида actor_set_wind. Советую изучить урок, посвященный диалогам.
[править]
Новые NPC
Лучше всего всё вышеприведенное повесить на нового, уникального персонажа. Способ его спавна описан здесь.

Вычисляем координаты
Нашел на одном форуме, достаточно интересно.
Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает функция спавна имеет вид
alife():create(section,position,levelvertex,gameve rtex)
Где:
section — имя того/чего спавним
position,levelvertex,gamevertex — координаты, позиция вершины обьекта, и сектора карты.
Напишу подробно, как очень про100 их узнать:
Заходим, предварительно распаковав, в каталог gamedata/scripts/ И там в файле ui_main_menu*****ipt в конце дописываем это:
function main_menu:OnButton_credits_clicked()
local text
local vid
local gvid
local a = vector()
local text
a = db.actor:position()
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = «Позиция:\nX= «..a.x..»\nY= «..a.y..»\nZ= «..a.z..»\nlevel_vertex= «..vid..»\ngame_vertex_id= «..gvid
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу СОЗДАТЕЛИ (CREDITS) — соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё — F12 или на бумажку.

Источник