Страница 1 из 11
Форум настоящего сталкера » S.T.A.L.K.E.R. Shadow of Chernobyl » Теория модостроения » Создание группировки (Урок)
Создание группировки (Урок)
Уатто Дата: Понедельник, 15.06.2009, 19:20:08 | Сообщение # 1

Ранг: Мастер
Группа: Сталкер
Сообщений: 2548
Награды: 304
Регистрация: 11.12.2008
Статус: Offline
Пол: Мужчина
Город: Заполярье  


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

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

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

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


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

;названия группировок
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, wind, 18,

Отсчет идет построчно начиная сверху. Хотя есть небольшой нюанс. У первых трех строк - нумерация начинается с нуля, с остальных группировок она идет как надо. Для wind выставили 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
d olg  =  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 и в скобках добавляем название своей группировки:
Code

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 - название вашей группировки):

Code
[...]
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 = { после строчек с зомбированными сталкерами строку:

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

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

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

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


пишем

Code
dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,


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

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

Code
<?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.
Квесты

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

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

<actor_dialog>[что-нибудь]_dialog</actor_dialog>
<actor_dialog>[что-нибудь]_reward</actor_dialog>


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

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

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

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

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

Code
function init_dolg_task_dialog(dlg)
get_random_task():init_task_dialog(dlg, "dolg")

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

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

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

Code
-------------------------------------------------------
-- 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'ом вида
Code
<action>actor_set_wind</action>
. Советую изучить урок, посвященный диалогам.
Новые NPC

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

Статья BAC9-FLCL.
Способ открыт Arhet (SRP Team).
 
NARUTO_STALKER Дата: Суббота, 23.01.2010, 15:22:35 | Сообщение # 2

Катана и АК-74 - вот мои аргументы

Ранг: Сталкер
Группа: Сталкер
Сообщений: 300
Награды: 24
Регистрация: 07.11.2009
Статус: Offline
Пол: Мужчина
Город:   


У меня проблема:
всё сделал кроме ключевых НПС и диологов.
Обыскал всю игру, нету групперовки. Только Волк и Информатор носятся по опасным локациям (они за мою групперовку).
И как прикрепить индевидуальные текстуры к НПС групперовки?
Надо же переименовать фаил с нужными текстурами на:
act_green_stalker_(НАЗВАНИЕ ГРУППЕРОВКИ),
act_stalker_(НАЗВАНИЕ ГРУППЕРОВКИ) и т.д.
Правильно?


Если мой аватар мельтешит то сотона за вашей спиной :О
 
Уатто Дата: Суббота, 23.01.2010, 15:41:25 | Сообщение # 3

Ранг: Мастер
Группа: Сталкер
Сообщений: 2548
Награды: 304
Регистрация: 11.12.2008
Статус: Offline
Пол: Мужчина
Город: Заполярье  


Нет. Создавать новые визуалы новой группировке а также собственные новые текстуры .
 
NARUTO_STALKER Дата: Суббота, 23.01.2010, 15:48:15 | Сообщение # 4

Катана и АК-74 - вот мои аргументы

Ранг: Сталкер
Группа: Сталкер
Сообщений: 300
Награды: 24
Регистрация: 07.11.2009
Статус: Offline
Пол: Мужчина
Город:   


ya,
Я нашёл фаил m_stalker, но я не нашёл секцию где ставить кординаты.
И ещё в string_table_general.xml я не нашёл вообще.
Создаю мод для ЧН.


Если мой аватар мельтешит то сотона за вашей спиной :О
 
Сашка_из_Шебекино Дата: Среда, 27.01.2010, 17:49:55 | Сообщение # 5

Мастер в создании модов

Ранг: Разведчик
Группа: Заблокированные
Сообщений: 193
Награды: 9
Регистрация: 26.03.2009
Статус: Offline
Пол: Мужчина
Город: Шебекино, Белгородская область  


NARUTO_STALKER, он тебе правильно сказал:
gamedata/configs/text/rus
В этой папке ищи названия группировок и когда найдеш вписывай свою группировку

Добавлено (27.01.2010, 17:49:55)
---------------------------------------------
NARUTO_STALKER, он тебе правильно сказал:
gamedata/configs/text/rus
В этой папке ищи названия группировок и когда найдеш вписывай свою группировку



 
[STREL0K] Дата: Четверг, 02.09.2010, 18:27:31 | Сообщение # 6

Ранг: Разведчик
Группа: Сталкер
Сообщений: 249
Награды: 8
Регистрация: 20.05.2010
Статус: Offline
Пол: Мужчина
Город: Казань  


Я создал группировку а как сделать чтобы они спавнились сами на кордоне хотя бы в костюмах новичка или еще как нить


В разработке I.T.S. mod v2.0
 
BotKILLer Дата: Четверг, 02.09.2010, 18:54:41 | Сообщение # 7

Ранг: Разведчик
Группа: Сталкер
Сообщений: 249
Награды: 9
Регистрация: 04.09.2009
Статус: Offline
Пол: Мужчина
Город:   


[STREL0K], В алл.спавне создать респавнер короче нужно самому научится ну если че могу расказать или туториал сделать!!!




В разработке: B.O.L. mod and Crusader Land

 
8gray8 Дата: Пятница, 10.09.2010, 14:50:00 | Сообщение # 8

Ранг: Новичок
Группа: Сталкер
Сообщений: 34
Награды: 5
Регистрация: 01.07.2010
Статус: Offline
Пол: Мужчина
Город: Ставропольский край  


Чето у меня не получилось может поможите лог вылета такой
Expression : no_assert
Function : CIni_IdToIndex<1,struct COMMUNITY_DATA,class shared_str,int,class CHARACTER_COMMUNITY>::GetById
File : e:\stalker\patch_1_0004\xr_3da\xrgame\ini_id_loader.h
Line : 134
Description : item not found, id
Arguments : grom

Группировку совут grom.
или киньте ссылочку чтобы я скачал и посмотрел

Добавлено (10.09.2010, 14:50:00)
---------------------------------------------
ой извините я просто гейм релэйтионс забыл перекинуть теперь лог вылета такой
Expression : table_ini.Data.size() == table_size
Function : CIni_Table<int,class CHARACTER_COMMUNITY,0>::table
File : e:\stalker\patch_1_0004\xr_3da\xrgame\ini_table_loader.h
Line : 112
Description : wrong size for table in section
Arguments : communities_relations

 
Сева_Барон Дата: Понедельник, 10.01.2011, 12:48:56 | Сообщение # 9

Истинный Свободовец

Ранг: Прибывший
Группа: Сталкер
Сообщений: 6
Должность : Лидер
Награды: 2
Регистрация: 07.01.2011
Статус: Offline
Пол: Мужчина
Город: Припять  


Ну спасибо!:) Кстати, поначалу чтобы группировка по-человечески называлась прописывал
<string id="wind">
<text>Ветер</text>
</string>
в файле string_table_general.xml
Но она у меня называлась не так, а именно wind(ну у меня по-другому было, но это не столь важно...)
Так вот: прописал то же самое в файле stable_bio_name.xml - заработало! Почему так?:)
А, и ещё, те у кого что-то не получается вы не копируйте текст слово в слово, а пропишите всё сами. Это не отнимет много времени, зато работать будет точно т.к. (тут какая-то всё же ошибка в тексте есть...я копировал отсюда сначала - не получилось:) ) и, к тому же, вы лучше всё запомните...


Вступайте в "Свободу"! Поможем мирным гражданам всей планеты путём уничтожения "Долга" :)
 
ogorodnikov Дата: Воскресенье, 29.01.2012, 11:59:04 | Сообщение # 10

Ранг: Прибывший
Группа: Сталкер
Сообщений: 16
Награды: 0
Регистрация: 20.01.2012
Статус: Offline
Пол: Мужчина
Город:   


game_relations.ltx - где именно лежит етот файл распишите поподробней пожалуйста
 
comador Дата: Воскресенье, 29.01.2012, 12:14:05 | Сообщение # 11

Ранг: Знаток Зоны
Группа: Сталкер
Сообщений: 508
Награды: 71
Регистрация: 03.03.2011
Статус: Offline
Пол: Мужчина
Город:   


ogorodnikov, вот по этому пути config\creatures\game_relations.ltx.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
 
ogorodnikov Дата: Воскресенье, 29.01.2012, 12:19:13 | Сообщение # 12

Ранг: Прибывший
Группа: Сталкер
Сообщений: 16
Награды: 0
Регистрация: 20.01.2012
Статус: Offline
Пол: Мужчина
Город:   


comador, примногом благодарен
вот такй еще вопрос как мне сделать так чтобы в групировке было всего 10 человек и они неспавнились и чтоб непоумерали раньше времени


Сообщение отредактировал ogorodnikov - Воскресенье, 29.01.2012, 12:20:10
 
Stalkmod_97 Дата: Воскресенье, 11.03.2012, 10:38:13 | Сообщение # 13

Ранг: Прибывший
Группа: Сталкер
Сообщений: 11
Награды: 0
Регистрация: 26.01.2012
Статус: Offline
Пол: Мужчина
Город:   


Я делал всё как по инструкции. Однако Волк так и остался одиночкой. Может надо гачинать говую игру?


Невелик тебе расчёт думать в одиночку. Пуля — дура, попадёт сдуру прямо в точку! ( По А.Т. Твардовскому )
 
eFeM Дата: Воскресенье, 08.04.2012, 11:25:10 | Сообщение # 14

Ранг: Новичок
Группа: Сталкер
Сообщений: 24
Награды: 5
Регистрация: 14.02.2012
Статус: Offline
Пол: Парень
Город: ----Kam4a----  


Stalkmod_97, разумеется!


Россия жива, можешь идти бухать! Армия - это не страшно, страшно, если она слабая!
Если я вам, вдруг, не отвечу, значит у меня, просто, кончились деньги на счету...
 
Форум настоящего сталкера » S.T.A.L.K.E.R. Shadow of Chernobyl » Теория модостроения » Создание группировки (Урок)
Страница 1 из 11
Поиск:







Вверх >