• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: FAN, V@Dik008  
Создание группировки (Урок)
# 1
Понедельник, 15.06.2009, 19:20:08

Ранг: Мастер
Сообщений: 2546
Награды: 237
Репутация: 2302 Регистрация: 11.12.2008 Город: Заполярье    

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

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

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).




-Он счастлив.
-Он мёртв.
# 2
Суббота, 23.01.2010, 15:22:35
Катана и АК-74 - вот мои аргументы   Оффлайн

Ранг: Сталкер
Сообщений: 302
Награды: 24
Репутация: 387 Регистрация: 07.11.2009  

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


Унылый ник и ава - залог успеха среди школьников.
# 3
Суббота, 23.01.2010, 15:41:25

Ранг: Мастер
Сообщений: 2546
Награды: 237
Репутация: 2302 Регистрация: 11.12.2008 Город: Заполярье    

Нет. Создавать новые визуалы новой группировке а также собственные новые текстуры .




-Он счастлив.
-Он мёртв.
# 4
Суббота, 23.01.2010, 15:48:15
Катана и АК-74 - вот мои аргументы   Оффлайн

Ранг: Сталкер
Сообщений: 302
Награды: 24
Репутация: 387 Регистрация: 07.11.2009  

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


Унылый ник и ава - залог успеха среди школьников.
# 5
Среда, 27.01.2010, 17:49:55

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

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

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



# 6
Четверг, 02.09.2010, 18:27:31

Ранг: Разведчик
Сообщений: 252
Награды: 8
Репутация: 57 Регистрация: 20.05.2010 Город: Казань    

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


В разработке I.T.S. mod v2.0
# 7
Четверг, 02.09.2010, 18:54:41

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

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




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

# 8
Пятница, 10.09.2010, 14:50:00

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

Чето у меня не получилось может поможите лог вылета такой
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

# 9
Понедельник, 10.01.2011, 12:48:56

Ранг: Прибывший
Сообщений: 6
Награды: 2
Репутация: 2 Регистрация: 07.01.2011 Город: Припять    

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


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

Ранг: Прибывший
Сообщений: 16
Награды: 0
Репутация: 1 Регистрация: 20.01.2012  

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

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

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


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

Ранг: Прибывший
Сообщений: 16
Награды: 0
Репутация: 1 Регистрация: 20.01.2012  

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


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

Ранг: Прибывший
Сообщений: 16
Награды: 0
Репутация: 0 Регистрация: 26.01.2012  

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


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

Ранг: Разведчик
Сообщений: 140
Награды: 26
Репутация: 1316 Регистрация: 14.02.2012 Город: Петропавловск-Камчатский    

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


Храни Россию Боже, нет ничего дороже!


S.T.A.L.K.E.R. жил, S.T.A.L.K.E.R. жив, S.T.A.L.K.E.R. будет жить!
# 15
Понедельник, 04.06.2012, 19:24:46

Ранг: Прибывший
Сообщений: 11
Награды: 4
Репутация: 502 Регистрация: 20.12.2011 Город: марьина горка    

Подскажите пожалуйста, где находится файл character_desk_x.xml


Человек человеку волк, а зомби зомби зомби...

Сообщение отредактировал minotavr123 - Понедельник, 04.06.2012, 19:54:08
# 16
Понедельник, 04.06.2012, 19:55:12

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

minotavr123, вот здесь config\gameplay.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 17
Среда, 13.06.2012, 18:37:19

Ранг: Новичок
Сообщений: 47
Награды: 2
Репутация: 21 Регистрация: 16.04.2012  

Так у меня проблема: когда беру квест для Волка, то он показан на том месте где всегда и стоит , но его там нет! И он не провалился сквозь текстуры- проверял! Чё делать?!




  • Страница 1 из 1
  • 1
Поиск:
Вверх
Правила чата
Мини-чат
+Мини-чат
0