13:43 Мануал по созданию новой группировки в Сталкере Тень Чернобыля

Автор: Byurrer

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

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

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 необходимо добавить свою группировку:
А) В таблицу отношений:

Code
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  
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

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

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

б) также в строчку перед таблицей communities:

Code
;названия группировок  
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 добавить:

Code
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  
anarhist = 0.0

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

Code
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 пишем:

Code
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

Code
simMaxCount = {после зомби:  
anarhist_novice = 20, anarhist_regular = 20, anarhist_veteran = 20, anarhist_master = 6,

6) Чтобы при убийстве НПС новой группировки игра не вылетала в xr_statistic.script после строчек с зомби:

Code
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,

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

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

community = "zombied"

добавляем:

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

community = "anarhist"

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

Code
<community>anarhist</community>

7) Чтобы группировка отображалась как Анархист зарегистрируем ее в в файле string_table_general.xml:

Code
<string_table>  
<string id="anarhist">  
<text>Анархисты</text>  
</string>

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

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

Code
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,

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

Code
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  
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

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 добавить:

Code
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  
anarhist = 0.0  

actor_anarhist = 0.0

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

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

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

-- Community

Добавляем:

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

Code
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 и ищем там любой диалог (конечно лучше создать свой диалог специально для вступления но покажу на примере любого другого чтоб было понятно) к примеру вот:

Code
<phrase id="3">

<text>escape_trader_start_dialog_3</text>

<action>dialogs.actor_set_anarhist</action>

<next>31</next>

<next>32</next>

</phrase>

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

Всего комментариев: 7
[7] SaDiL (12.04.2012 16:31)
+0
Прикольно, попробуем...
[6] neketa777 (12.04.2012 16:31)
+0
прикольно
[5] :D (12.04.2012 16:31)
+0
не чет не получается ;D
[4] меченый (12.04.2012 16:31)
+0
ничё не понял
[3] Исполнитель1130 (12.04.2012 16:31)
+1
это будет круто(если без приколов)
[2] IMM()RT@L (12.04.2012 16:31)
+0
Если Tramp говорил, что он по этому мануалу сделал свою новую группировку, значит это действительно работает.
[1] Пригоршня (12.04.2012 16:31)
+1
Познавательно
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]