Меню
Поиск модификаций
Авторизоваться
Категории раздела
Чернобыль [2]
Статьи про Чернобыль.
Обзоры книг серии S.T.A.L.K.E.R. [1]
Интересные обзоры книг всегда помогут помочь вам с дальнейшим выбором.
Работы фанатов [1]
В данном разделе вы можете разместить свою статью или какое-либо другое (литературное) произведение.
Настройка выделенных серверов [0]
КаСтатьи по настройке выделенных серверов.
Интервью [0]
Захватывающие интервью, которые помогут вам разобраться в чем-либо или просто подарят вам несколько приятных минут чтения.
Уроки модостроения [20]
Прохождение S.T.A.L.K.E.R. [2]
Эти статьи помогут вам пройти S.T.A.L.K.E.R. полностью!
Мини-профиль

Гость)

Сообщения:


Привет, сталкер! Заплутал?
Проходи, садись.Cогреем.
Ну что стоишь то как вкопанный?!
Давай уже проходи, чувствуй
себя как дома!
Пройти регистрацию
Войти к нам
Погода в Чернобыле
Опрос
Читаете ли вы статьи на нашем сайте?
Всего ответов: 54
Группировки
Сталкерские сайты
Stalker-Book.com
S.T.A.L.K.E.R. LAST EMISSION
Друзья
StalkerIdeas.com
Stalkeram.ru
Snipers-Elite
Фан Сайт Игры S.T.A.L.K.E.R.
Наш баннер
Код баннера можно найти на нашем основном форуме "Я-Сталкер"
Главная » Статьи » Уроки модостроения

Как создать новую группировку
Сегодня мы создадим новую группировку. Назовем её, скажем, "Ветер". Не суть важно.
Практика
Базовый уровень

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,

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

после строки:
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_desc_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:

<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>[что-нибудь]_dialog</actor_dialog>
<actor_dialog>[что-нибудь]_reward</actor_dialog>

Примеры названий: 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. Вот пример того, как это сделано для заданий "Долга":
<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")

По аналогии делаем и с нашим "Ветром".
Вступление в группировку

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

Прописываем в 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 ("actor_wind", 0, 0)
end
return true
end

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



Источник: http://modmeiker.at.ua
Категория: Уроки модостроения | Добавил: -[Душегуб]- (19.03.2011)
Просмотров: 15493 | Комментарии: 5 | Рейтинг: 5.0/1
Всего комментариев: 5
0  
5 Профи   (19.04.2014 13:42) [Материал]
сделал новую группировку ток даже после того как прописал скажем так мир с другими ну отношения всех кто в группировке считают врагами я пока не понял в чем проблема..

0  
4 павел   (04.02.2013 22:06) [Материал]
в каком сталкере можно сделать свою группировку?

0  
3 вылетает с ошибкой   (16.06.2012 21:33) [Материал]
вылетает с ошибкой
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: ...k.e.r freeplay\gamedata\scripts\death_manager.script:139: attempt to index field '?' (a nil value)

0  
2 -[Душегуб]-   (03.01.2012 16:54) [Материал]
Андрей, выдерни нужные файлы из любого мода с новыми группировками и всо :)

0  
1 Андрей   (29.12.2011 12:05) [Материал]
сделай пожалуйста группировку и скинь её сюда для сталкер тень чернобыля v.1.0004

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Яндекс.Метрика Рейтинг@Mail.ruRambler's Top100Счетчик и проверка тИЦ и PR

Авторское право на игру и использованные в ней материалы принадлежат GSC Game World.
Запрещено копирование любых материалов с данного сайта..
Copyright Ya-STALKER.ucoz.ru PORTAL © 2010-2011. Design by zdq team. Видоизменено by Winston. 
Используются технологии uCoz