Сложный квест на оборону лагеря — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
TuMaN (обсуждение | вклад) (привел в порядок) |
TuMaN (обсуждение | вклад) |
||
Строка 34: | Строка 34: | ||
В '''system.ltx''' находим раздел '''[dialogs]''' и проделываем то, что делали с '''info_portions''' - дописываем в конце '''dialogs_new''' | В '''system.ltx''' находим раздел '''[dialogs]''' и проделываем то, что делали с '''info_portions''' - дописываем в конце '''dialogs_new''' | ||
− | Создадим этот файл в ''config | + | Создадим этот файл в ''config/gameplay'' |
Название: '''dialogs_new.xml''', а в нём такая схема: | Название: '''dialogs_new.xml''', а в нём такая схема: | ||
Строка 45: | Строка 45: | ||
Зарегистрируем XML файл для квеста: | Зарегистрируем XML файл для квеста: | ||
− | Находим в ''config | + | Находим в ''config/gameplay'' файл с названием '''game_tasks.xml''', а в нём после |
'''include "gameplay\game_tasks_by_vendor.xml"''' вставляем | '''include "gameplay\game_tasks_by_vendor.xml"''' вставляем | ||
<xml>include "gameplay\tasks_new.xml"</xml> | <xml>include "gameplay\tasks_new.xml"</xml> | ||
− | |||
− | |||
Создаём файл в папке gameplay с названием '''tasks_new.xml'''. | Создаём файл в папке gameplay с названием '''tasks_new.xml'''. | ||
Строка 58: | Строка 56: | ||
Допишите в раздел '''specific_characters_files''' (там где '''[profiles]''') '''new_profils_chareng''' | Допишите в раздел '''specific_characters_files''' (там где '''[profiles]''') '''new_profils_chareng''' | ||
− | а так же в раздел ''' | + | а так же в раздел '''file''' - '''npc_profile_new.xml''' |
Создадим в папке ''gameplay'' 2 файла, с названиями '''new_profils_chareng.xml''' и '''npc_profile_new.xml''' | Создадим в папке ''gameplay'' 2 файла, с названиями '''new_profils_chareng.xml''' и '''npc_profile_new.xml''' | ||
Строка 64: | Строка 62: | ||
В '''npc_profile_new.xml''' пишем: | В '''npc_profile_new.xml''' пишем: | ||
− | < | + | <pre><?xml version='1.0' encoding="UTF-8"?> |
<xml> | <xml> | ||
− | </xml> </ | + | </xml> </pre> |
В '''new_profils_chareng.xml''' пишем: | В '''new_profils_chareng.xml''' пишем: | ||
− | < | + | <pre><?xml version='1.0' encoding="windows-1251"?> |
</xml> | </xml> | ||
− | </xml></ | + | </xml></pre> |
===Файл для скрипта=== | ===Файл для скрипта=== | ||
Создаём в папке ''gamedata/scripts'' файл с названием '''new_dialog.script'''. | Создаём в папке ''gamedata/scripts'' файл с названием '''new_dialog.script'''. | ||
Строка 87: | Строка 85: | ||
<xml><specific_character id="esc_new_atack_bandit1" no_random = "1"> | <xml><specific_character id="esc_new_atack_bandit1" no_random = "1"> | ||
− | <name>Петушара</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit1_bio</bio> | + | <name>Петушара</name> |
+ | <icon>ui_npc_u_stalker_bandit_3</icon> | ||
+ | <map_icon x="1" y="4"></map_icon> | ||
+ | <bio>esc_new_atack_bandit1_bio</bio> | ||
− | <class>esc_new_atack_bandit1</class> <community>bandit</community> | + | <class>esc_new_atack_bandit1</class> |
+ | <community>bandit</community> | ||
<money min="10000" max="100000" infinitive="0"></money> | <money min="10000" max="100000" infinitive="0"></money> | ||
Строка 96: | Строка 98: | ||
<visual>actors\bandit\stalker_bandit_3</visual> | <visual>actors\bandit\stalker_bandit_3</visual> | ||
− | <snd_config>characters_voice\human_01\bandit\</snd_config> <crouch_type>1</crouch_type> | + | <snd_config>characters_voice\human_01\bandit\</snd_config> |
+ | <crouch_type>1</crouch_type> | ||
<supplies> | <supplies> | ||
Строка 109: | Строка 112: | ||
<specific_character id="esc_new_atack_bandit2" no_random = "1"> | <specific_character id="esc_new_atack_bandit2" no_random = "1"> | ||
− | <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit2_bio</bio> | + | <name>GENERATE_NAME_stalker</name> |
+ | <icon>ui_npc_u_stalker_bandit_3</icon> | ||
+ | <map_icon x="1" y="4"></map_icon> | ||
+ | <bio>esc_new_atack_bandit2_bio</bio> | ||
− | <class>esc_new_atack_bandit2</class> <community>bandit</community> | + | <class>esc_new_atack_bandit2</class> |
+ | <community>bandit</community> | ||
<money min="10000" max="100000" infinitive="0"></money> | <money min="10000" max="100000" infinitive="0"></money> | ||
Строка 132: | Строка 139: | ||
<specific_character id="esc_new_atack_bandit3" no_random = "1"> | <specific_character id="esc_new_atack_bandit3" no_random = "1"> | ||
− | <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit3_bio</bio> | + | <name>GENERATE_NAME_stalker</name> |
+ | <icon>ui_npc_u_stalker_bandit_3</icon> | ||
+ | <map_icon x="1" y="4"></map_icon> | ||
+ | <bio>esc_new_atack_bandit3_bio</bio> | ||
− | <class>esc_new_atack_bandit3</class> <community>bandit</community> | + | <class>esc_new_atack_bandit3</class> |
+ | <community>bandit</community> | ||
<money min="10000" max="100000" infinitive="0"></money> | <money min="10000" max="100000" infinitive="0"></money> | ||
Строка 155: | Строка 166: | ||
<specific_character id="esc_new_atack_bandit4" no_random = "1"> | <specific_character id="esc_new_atack_bandit4" no_random = "1"> | ||
− | <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit4_bio</bio> | + | <name>GENERATE_NAME_stalker</name> |
+ | <icon>ui_npc_u_stalker_bandit_3</icon> | ||
+ | <map_icon x="1" y="4"></map_icon> | ||
+ | <bio>esc_new_atack_bandit4_bio</bio> | ||
− | <class>esc_new_atack_bandit4</class> <community>bandit</community> | + | <class>esc_new_atack_bandit4</class> |
+ | <community>bandit</community> | ||
<money min="10000" max="100000" infinitive="0"></money> | <money min="10000" max="100000" infinitive="0"></money> | ||
Строка 178: | Строка 193: | ||
<specific_character id="esc_new_atack_bandit5" no_random = "1"> | <specific_character id="esc_new_atack_bandit5" no_random = "1"> | ||
− | <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit5_bio</bio> | + | <name>GENERATE_NAME_stalker</name> |
+ | <icon>ui_npc_u_stalker_bandit_3</icon> | ||
+ | <map_icon x="1" y="4"></map_icon> | ||
+ | <bio>esc_new_atack_bandit5_bio</bio> | ||
− | <class>esc_new_atack_bandit5</class> <community>bandit</community> | + | <class>esc_new_atack_bandit5</class> |
+ | <community>bandit</community> | ||
<money min="10000" max="100000" infinitive="0"></money> | <money min="10000" max="100000" infinitive="0"></money> | ||
Строка 201: | Строка 220: | ||
<specific_character id="esc_new_atack_bandit6" no_random = "1"> | <specific_character id="esc_new_atack_bandit6" no_random = "1"> | ||
− | <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit6_bio</bio> | + | <name>GENERATE_NAME_stalker</name> |
+ | <icon>ui_npc_u_stalker_bandit_3</icon> | ||
+ | <map_icon x="1" y="4"></map_icon> | ||
+ | <bio>esc_new_atack_bandit6_bio</bio> | ||
− | <class>esc_new_atack_bandit6</class> <community>bandit</community> | + | <class>esc_new_atack_bandit6</class> |
+ | <community>bandit</community> | ||
<money min="10000" max="100000" infinitive="0"></money> | <money min="10000" max="100000" infinitive="0"></money> | ||
Строка 225: | Строка 248: | ||
Открываем файл: '''npc_profile_new.xml''', и в нём пишем: | Открываем файл: '''npc_profile_new.xml''', и в нём пишем: | ||
<xml> | <xml> | ||
− | <character id="esc_new_atack_bandit1"> <class>esc_new_atack_bandit1</class> | + | <character id="esc_new_atack_bandit1"> |
+ | <class>esc_new_atack_bandit1</class> | ||
<specific_character>esc_new_atack_bandit1</specific_character> | <specific_character>esc_new_atack_bandit1</specific_character> | ||
</character> | </character> | ||
− | <character id="esc_new_atack_bandit2"> <class>esc_new_atack_bandit2</class> | + | <character id="esc_new_atack_bandit2"> |
+ | <class>esc_new_atack_bandit2</class> | ||
<specific_character>esc_new_atack_bandit2</specific_character> | <specific_character>esc_new_atack_bandit2</specific_character> | ||
</character> | </character> | ||
<character id="esc_new_atack_bandit3"> | <character id="esc_new_atack_bandit3"> | ||
− | <class>esc_new_atack_bandit3</class> <specific_character>esc_new_atack_bandit3</specific_character> | + | <class>esc_new_atack_bandit3</class> |
+ | <specific_character>esc_new_atack_bandit3</specific_character> | ||
</character> | </character> | ||
<character id="esc_new_atack_bandit4"> | <character id="esc_new_atack_bandit4"> | ||
− | <class>esc_new_atack_bandit4</class> <specific_character>esc_new_atack_bandit4</specific_character> | + | <class>esc_new_atack_bandit4</class> |
+ | <specific_character>esc_new_atack_bandit4</specific_character> | ||
</character> | </character> | ||
<character id="esc_new_atack_bandit5"> | <character id="esc_new_atack_bandit5"> | ||
− | <class>esc_new_atack_bandit5</class> <specific_character>esc_new_atack_bandit5</specific_character> | + | <class>esc_new_atack_bandit5</class> |
+ | <specific_character>esc_new_atack_bandit5</specific_character> | ||
</character> | </character> | ||
<character id="esc_new_atack_bandit6"> | <character id="esc_new_atack_bandit6"> | ||
− | <class>esc_new_atack_bandit6</class> <specific_character>esc_new_atack_bandit6</specific_character> | + | <class>esc_new_atack_bandit6</class> |
+ | <specific_character>esc_new_atack_bandit6</specific_character> | ||
</character></xml> | </character></xml> | ||
Строка 317: | Строка 346: | ||
[remark@search] | [remark@search] | ||
combat_ignore_cond = true | combat_ignore_cond = true | ||
− | combat_ignore_keep_when_attacked = false anim = hide | + | combat_ignore_keep_when_attacked = false |
+ | anim = hide | ||
target = actor | target = actor | ||
on_info = {=see_enemy} | on_info = {=see_enemy} | ||
Строка 405: | Строка 435: | ||
<xml><actor_dialog>tm_wolf_reward</actor_dialog></xml> | <xml><actor_dialog>tm_wolf_reward</actor_dialog></xml> | ||
вставляем | вставляем | ||
− | <xml><actor_dialog> | + | <xml><actor_dialog>esc_new_wolf_my1_dialog_dialog</actor_dialog> |
− | <actor_dialog> | + | <actor_dialog>esc_new_wolf_my2_dialog_dialog</actor_dialog> |
</xml> | </xml> | ||
===Добавление в ПДА=== | ===Добавление в ПДА=== | ||
Открываем '''tasks_new.xml''' и в нём пишем: | Открываем '''tasks_new.xml''' и в нём пишем: | ||
− | <xml><game_task id="new_my_test_kqest"> <title>Помoщь Волку</title> | + | <xml><game_task id="new_my_test_kqest"> |
+ | <title>Помoщь Волку</title> | ||
<objective> | <objective> | ||
<text>Помощь Волку</text> | <text>Помощь Волку</text> | ||
Строка 437: | Строка 468: | ||
<xml><info_portion id="new_my_test_kqest_start"> | <xml><info_portion id="new_my_test_kqest_start"> | ||
− | <task>new_my_test_kqest</task> </info_portion> | + | <task>new_my_test_kqest</task> |
+ | </info_portion> | ||
<info_portion id="new_my_test_kqest_done"></info_portion> | <info_portion id="new_my_test_kqest_done"></info_portion> | ||
Строка 445: | Строка 477: | ||
<lua> | <lua> | ||
function esc_new_atack_bandit1() | function esc_new_atack_bandit1() | ||
− | alife():create("esc_new_atack_bandit1_spawn",vector():set(-143.35,-14.14,-148.33),106957,45) end | + | alife():create("esc_new_atack_bandit1_spawn",vector():set(-143.35,-14.14,-148.33),106957,45) |
+ | end | ||
function esc_new_atack_bandit2() | function esc_new_atack_bandit2() | ||
− | alife():create("esc_new_atack_bandit2_spawn",vector():set(-143.35,-14.14,-148.33),106957,45) end | + | alife():create("esc_new_atack_bandit2_spawn",vector():set(-143.35,-14.14,-148.33),106957,45) |
+ | end | ||
function esc_new_atack_bandit3() | function esc_new_atack_bandit3() | ||
− | alife():create("esc_new_atack_bandit3_spawn",vector():set(-148.29,-16.89,-138.57),101805,45) end | + | alife():create("esc_new_atack_bandit3_spawn",vector():set(-148.29,-16.89,-138.57),101805,45) |
+ | end | ||
function | function | ||
esc_new_atack_bandit4() | esc_new_atack_bandit4() | ||
− | alife():create("esc_new_atack_bandit4_spawn",vector():set(-148.29,-16.89,-138.57),101805,45) end | + | alife():create("esc_new_atack_bandit4_spawn",vector():set(-148.29,-16.89,-138.57),101805,45) |
+ | end | ||
function esc_new_atack_bandit5() | function esc_new_atack_bandit5() | ||
− | alife():create("esc_new_atack_bandit5_spawn",vector():set(-156.04,-18.30,-153.79),93649,45) end | + | alife():create("esc_new_atack_bandit5_spawn",vector():set(-156.04,-18.30,-153.79),93649,45) |
+ | end | ||
function esc_new_atack_bandit6() | function esc_new_atack_bandit6() | ||
− | alife():create("esc_new_atack_bandit6_spawn",vector():set(-156.04,-18.30,-153.79),93649,45) end | + | alife():create("esc_new_atack_bandit6_spawn",vector():set(-156.04,-18.30,-153.79),93649,45) |
+ | end | ||
Версия 01:28, 15 июля 2011
Сейчас мы создадим сложный квест на оборону лагеря!
Что нам потребуется?
- system.ltx
- character_desc_escape.xml
- spawn_sections.ltx
Содержание
Создание и подготовка файлов
Инфопоршны
Зарегистрируем пустой файл для info_portions.
Открываем файл system.ltx, находим вот это – [info_portions]. Нужно дописать в конец этого раздела, через запятую info_new
Создадим этот файл (info_new.xml).
В config/gameplay создаём файл с названием info_new.xml, в нём пишем это:
<?xml version="1.0" encoding="windows-1251" ?> <game_information_portions> </game_information_portions>
Диалоги
Зарегистрируем пустой файл для диалогов
В system.ltx находим раздел [dialogs] и проделываем то, что делали с info_portions - дописываем в конце dialogs_new
Создадим этот файл в config/gameplay
Название: dialogs_new.xml, а в нём такая схема:
<?xml version="1.0" encoding="windows-1251" standalone="yes" ?> <game_dialogs> </game_dialogs>
Инфо для квеста
Зарегистрируем XML файл для квеста:
Находим в config/gameplay файл с названием game_tasks.xml, а в нём после include "gameplay\game_tasks_by_vendor.xml" вставляем
include "gameplay\tasks_new.xml"
Создаём файл в папке gameplay с названием tasks_new.xml.
Профили
Зарегистрируем файл с профилями.
Допишите в раздел specific_characters_files (там где [profiles]) new_profils_chareng
а так же в раздел file - npc_profile_new.xml
Создадим в папке gameplay 2 файла, с названиями new_profils_chareng.xml и npc_profile_new.xml
В npc_profile_new.xml пишем:
<?xml version='1.0' encoding="UTF-8"?> <xml> </xml>
В new_profils_chareng.xml пишем:
<?xml version='1.0' encoding="windows-1251"?> </xml> </xml>
Файл для скрипта
Создаём в папке gamedata/scripts файл с названием new_dialog.script.
Заполнение файлов
Профили
Создадим профили нападающих на лагерь NPC.
Открываем файл: new_profils_chareng.xml и в нём пишем между <xml> и </xml>:
<specific_character id="esc_new_atack_bandit1" no_random = "1"> <name>Петушара</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit1_bio</bio> <class>esc_new_atack_bandit1</class> <community>bandit</community> <money min="10000" max="100000" infinitive="0"></money> <rank>1300</rank> <reputation>50</reputation> <visual>actors\bandit\stalker_bandit_3</visual> <snd_config>characters_voice\human_01\bandit\</snd_config> <crouch_type>1</crouch_type> <supplies> [spawn] \n wpn_ak74 = 1, scope \n ammo_5.45x39_fmj = 1 \n </supplies> <start_dialog>hello_dialog</start_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> </specific_character> <specific_character id="esc_new_atack_bandit2" no_random = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit2_bio</bio> <class>esc_new_atack_bandit2</class> <community>bandit</community> <money min="10000" max="100000" infinitive="0"></money> <rank>1200</rank> <reputation>50</reputation> <visual>actors\bandit\stalker_bandit_3</visual> <snd_config>characters_voice\human_01\bandit\</snd_config> <crouch_type>1</crouch_type> <supplies> [spawn] \n wpn_ak74 = 1, scope \n ammo_5.45x39_fmj = 1 \n </supplies> <start_dialog>hello_dialog</start_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> </specific_character> <specific_character id="esc_new_atack_bandit3" no_random = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit3_bio</bio> <class>esc_new_atack_bandit3</class> <community>bandit</community> <money min="10000" max="100000" infinitive="0"></money> <rank>1200</rank> <reputation>50</reputation> <visual>actors\bandit\stalker_bandit_3</visual> <snd_config>characters_voice\human_01\bandit\</snd_config> <crouch_type>1</crouch_type> <supplies> [spawn] \n wpn_ak74 = 1, scope \n ammo_5.45x39_fmj = 1 \n </supplies> <start_dialog>hello_dialog</start_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> </specific_character> <specific_character id="esc_new_atack_bandit4" no_random = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit4_bio</bio> <class>esc_new_atack_bandit4</class> <community>bandit</community> <money min="10000" max="100000" infinitive="0"></money> <rank>1200</rank> <reputation>50</reputation> <visual>actors\bandit\stalker_bandit_3</visual> <snd_config>characters_voice\human_01\bandit\</snd_config> <crouch_type>1</crouch_type> <supplies> [spawn] \n wpn_ak74 = 1, scope \n ammo_5.45x39_fmj = 1 \n </supplies> <start_dialog>hello_dialog</start_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> </specific_character> <specific_character id="esc_new_atack_bandit5" no_random = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit5_bio</bio> <class>esc_new_atack_bandit5</class> <community>bandit</community> <money min="10000" max="100000" infinitive="0"></money> <rank>1200</rank> <reputation>50</reputation> <visual>actors\bandit\stalker_bandit_3</visual> <snd_config>characters_voice\human_01\bandit\</snd_config> <crouch_type>1</crouch_type> <supplies> [spawn] \n wpn_ak74 = 1, scope \n ammo_5.45x39_fmj = 1 \n </supplies> <start_dialog>hello_dialog</start_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> </specific_character> <specific_character id="esc_new_atack_bandit6" no_random = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_stalker_bandit_3</icon> <map_icon x="1" y="4"></map_icon> <bio>esc_new_atack_bandit6_bio</bio> <class>esc_new_atack_bandit6</class> <community>bandit</community> <money min="10000" max="100000" infinitive="0"></money> <rank>1200</rank> <reputation>50</reputation> <visual>actors\bandit\stalker_bandit_3</visual> <snd_config>characters_voice\human_01\bandit\</snd_config> <crouch_type>1</crouch_type> <supplies> [spawn] \n wpn_ak74 = 1, scope \n ammo_5.45x39_fmj = 1 \n </supplies> <start_dialog>hello_dialog</start_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> </specific_character>
Открываем файл: npc_profile_new.xml, и в нём пишем:
<character id="esc_new_atack_bandit1"> <class>esc_new_atack_bandit1</class> <specific_character>esc_new_atack_bandit1</specific_character> </character> <character id="esc_new_atack_bandit2"> <class>esc_new_atack_bandit2</class> <specific_character>esc_new_atack_bandit2</specific_character> </character> <character id="esc_new_atack_bandit3"> <class>esc_new_atack_bandit3</class> <specific_character>esc_new_atack_bandit3</specific_character> </character> <character id="esc_new_atack_bandit4"> <class>esc_new_atack_bandit4</class> <specific_character>esc_new_atack_bandit4</specific_character> </character> <character id="esc_new_atack_bandit5"> <class>esc_new_atack_bandit5</class> <specific_character>esc_new_atack_bandit5</specific_character> </character> <character id="esc_new_atack_bandit6"> <class>esc_new_atack_bandit6</class> <specific_character>esc_new_atack_bandit6</specific_character> </character>
Открываем spawn_sections.ltx, и в самом конце пишем:
[esc_new_atack_bandit6_spawn]:stalker_trader character_profile = esc_new_atack_bandit6 spec_rank = veteran community = bandit use_single_item_rule = off can_select_items = off custom_data = scripts\esc_new_atack_bandit6.ltx [esc_new_atack_bandit5_spawn]:stalker_trader character_profile = esc_new_atack_bandit5 spec_rank = veteran community = bandit use_single_item_rule = off can_select_items = off custom_data = scripts\esc_new_atack_bandit5.ltx [esc_new_atack_bandit4_spawn]:stalker_trader character_profile = esc_new_atack_bandit4 spec_rank = veteran community = bandit use_single_item_rule = off can_select_items = off custom_data = scripts\esc_new_atack_bandit4.ltx [esc_new_atack_bandit3_spawn]:stalker_trader character_profile = esc_new_atack_bandit3 spec_rank = veteran community = bandit use_single_item_rule = off can_select_items = off custom_data = scripts\esc_new_atack_bandit3.ltx [esc_new_atack_bandit2_spawn]:stalker_trader character_profile = esc_new_atack_bandit2 spec_rank = veteran community = bandit use_single_item_rule = off can_select_items = off custom_data = scripts\esc_new_atack_bandit2.ltx [esc_new_atack_bandit1_spawn]:stalker_trader character_profile = esc_new_atack_bandit1 spec_rank = veteran community = bandit use_single_item_rule = off can_select_items = off custom_data = scripts\esc_new_atack_bandit1.ltx
Логика
Открываем gamedata\config\scripts и там создаём 6 файлов логики:
1-й файл логики – esc_new_atack_bandit1.ltx, в нём пишем:
[logic] active = remark@search on_death = death [death] on_info = %+esc_new_atack_bandit1_dead% [remark@fire] combat_ignore_cond = {!is_sniper_enemy} radius = 0 anim = hide on_info = {=health_le(0.5)} remark@search wounded = wounded@work sniper = true [remark@search] combat_ignore_cond = true combat_ignore_keep_when_attacked = false anim = hide target = actor on_info = {=see_enemy} remark@fire wounded = wounded@work [smart_terrains] none = true [wounded@work] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false
Остальные файлы создаются с аналогичным содержанием, но в названии меняется цифра на следующую и в
[death] on_info = %+esc_new_atack_bandit1_dead%
также меняется цифра на номер следующего профиля.
Диалоги
Открываем dialogs_new.xml, и в нём пишем между <game_dialogs> и </game_dialogs>:
<dialog id="esc_new_wolf_my1_dialog"> <has_info>new_my_test_kqest_done</has_info> <dont_has_info>new_my_test_kqest_ok</dont_has_info> <phrase_list> <phrase id="0"> <text>Волк, ну ты как, жив?</text> <next>1</next> </phrase> <phrase id="1"> <text>Да, Ха-ха, как мы их?</text> <next>2</next> </phrase> <phrase id="2"> <text>Плохо, друг мой, плохо...</text> <next>3</next> </phrase> <phrase id="3"> <text>Вот спасибо тебе... Вот, держи, чем богат...</text> <action>new_dialog.buxlo_1</action> <next>4</next> </phrase> <phrase id="4"> <text>Спасибо!</text> <give_info>new_my_test_kqest_ok</give_info> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> <dialog id="esc_new_wolf_my2_dialog"> <dont_has_info>new_my_test_kqest_start</dont_has_info> <phrase_list> <phrase id="0"> <text>Волк, а что ты весь дрожишь?</text> <next>1</next> </phrase> <phrase id="1"> <text>Да с минуты на минуту бандиты нападут...</text> <next>2</next> </phrase> <phrase id="2"> <text>Я тебе помогу отбиться, хорошо?</text> <next>3</next> </phrase> <phrase id="3"> <text>Вот спасибо тебе Меченый, век буду благодарен!</text> <next>4</next> </phrase> <phrase id="4"> <text>Хватит сопли распускать, с минуты на минуту бандиты подойдут!</text> <give_info>new_my_test_kqest_start</give_info> <action>new_dialog.esc_new_atack_bandit1</action> <action>new_dialog.esc_new_atack_bandit2</action> <action>new_dialog.esc_new_atack_bandit3</action> <action>new_dialog.esc_new_atack_bandit4</action> <action>new_dialog.esc_new_atack_bandit5</action> <action>new_dialog.esc_new_atack_bandit6</action> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog>
Открываем character_desc_escape.xml ищем
<specific_character id="esc_wolf" team_default = "1">
и после
<actor_dialog>tm_wolf_reward</actor_dialog>
вставляем
<actor_dialog>esc_new_wolf_my1_dialog_dialog</actor_dialog> <actor_dialog>esc_new_wolf_my2_dialog_dialog</actor_dialog>
Добавление в ПДА
Открываем tasks_new.xml и в нём пишем:
<game_task id="new_my_test_kqest"> <title>Помoщь Волку</title> <objective> <text>Помощь Волку</text> <icon>ui_iconsTotal_kill_stalker</icon> <infoportion_complete>new_my_test_kqest_ok</infoportion_complete> </objective> <objective> <text>Отбиться от атаки бандитов.</text> <icon height="50" width="50" x="100" y="50">ui\ui_icons_task</icon> <function_complete>new_dialog.bandit_esc_new_atack1</function_complete> <infoportion_set_complete>new_my_test_kqest_done</infoportion_set_complete> </objective> <objective> <text>Поговорить с Волком.</text> <map_location_type hint="Волк">blue_location</map_location_type> <object_story_id>Escape_novice_lager_volk</object_story_id> <infoportion_complete>new_my_test_kqest_ok</infoportion_complete> </objective> </game_task>
Инфопоршны
Открываем info_new.xml и между <game_information_portions> и </game_information_portions> пишем:
<info_portion id="new_my_test_kqest_start"> <task>new_my_test_kqest</task> </info_portion> <info_portion id="new_my_test_kqest_done"></info_portion> <info_portion id="new_my_test_kqest_ok"></info_portion>
Открываем папку gamedata/scripts, находим файл с названием new_dialog.script, а в нём пишем:
function esc_new_atack_bandit1() alife():create("esc_new_atack_bandit1_spawn",vector():set(-143.35,-14.14,-148.33),106957,45) end function esc_new_atack_bandit2() alife():create("esc_new_atack_bandit2_spawn",vector():set(-143.35,-14.14,-148.33),106957,45) end function esc_new_atack_bandit3() alife():create("esc_new_atack_bandit3_spawn",vector():set(-148.29,-16.89,-138.57),101805,45) end function esc_new_atack_bandit4() alife():create("esc_new_atack_bandit4_spawn",vector():set(-148.29,-16.89,-138.57),101805,45) end function esc_new_atack_bandit5() alife():create("esc_new_atack_bandit5_spawn",vector():set(-156.04,-18.30,-153.79),93649,45) end function esc_new_atack_bandit6() alife():create("esc_new_atack_bandit6_spawn",vector():set(-156.04,-18.30,-153.79),93649,45) end function bandit_esc_new_atack1(task, info) if (db.actor:has_info("esc_new_atack_bandit1_dead") and db.actor:has_info("esc_new_atack_bandit2_dead") and db.actor:has_info("esc_new_atack_bandit3_dead") and db.actor:has_info("esc_new_atack_bandit4_dead") and db.actor:has_info("esc_new_atack_bandit5_dead") and db.actor:has_info("esc_new_atack_bandit6_dead")) then return db.actor:give_info_portion("new_my_test_kqest_done") end return false end function buxlo_1(first_speaker, second_speaker) dialogs.relocate_money(second_speaker, 10000, "in") end
Всё, поздравляю, вы написали новый квест! Он будет у Волка. Желательно его выполнять после квеста с флешкой Шустрого!