Создание новой групировки.  Сегодня мы создадим новую группировку. Назовем её, скажем, 
 "Ветер". Не суть важно. 
 Практика: 
 Базовый уровень 
 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 набор новых заданий.  
 [...] 
 ;--------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*****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. Советую изучить урок, посвященный 
 диалогам.  Автор не я, мне принадлежит редактирование и мелкие правки по моему усмотрению...