Сложный квест на оборону лагеря — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(заслал всё в коды) |
|||
Строка 15: | Строка 15: | ||
Открываем файл system.ltx, находим вот это – «[info_portions]» . Нашли? Нет? Ну тогда «Ctrl+f» и задаёте [info_portions]… Теперь наверно нашли… Мы видим под этой «штукой» вот такое: | Открываем файл system.ltx, находим вот это – «[info_portions]» . Нашли? Нет? Ну тогда «Ctrl+f» и задаёте [info_portions]… Теперь наверно нашли… Мы видим под этой «штукой» вот такое: | ||
список xml файлов, содержащих info_portions | список xml файлов, содержащих info_portions | ||
− | + | <code> | |
− | files = info_portions, info_portions_light, info_portions_test, info_lchanger_ico, info_level_tips, info_known_objects, info_l01escape, info_l02garbage, info_l03agroprom, info_l04agroprom_u, info_l05dark_valley, info_l06dark_valley_u, info_l07rostok, info_l08yantar, info_l08deadcity, info_l08rostok_bar, info_l09marshes, info_l09rostok_dolg, info_l10military, info_l11pripyat, info_l11yantar, info_l12yantar_u, info_l13deadcity, info_l14swamp, info_l10radar, info_l16radar_antena, info_l17monolith_control, info_l19stanciya, info_l12u_sarcofag, info_l21generators, info_l22warlab, info_stories | + | files = info_portions, info_portions_light, info_portions_test, info_lchanger_ico, info_level_tips, info_known_objects, info_l01escape, info_l02garbage, info_l03agroprom, info_l04agroprom_u, info_l05dark_valley, info_l06dark_valley_u, info_l07rostok, info_l08yantar, info_l08deadcity, info_l08rostok_bar, info_l09marshes, info_l09rostok_dolg, info_l10military, info_l11pripyat, info_l11yantar, info_l12yantar_u, info_l13deadcity, info_l14swamp, info_l10radar, info_l16radar_antena, info_l17monolith_control, info_l19stanciya, info_l12u_sarcofag, info_l21generators, info_l22warlab, info_stories</code> |
А мы дописываем в конец «info_new» (укажите перед ней запятую) и получим вот такую конструкцию: | А мы дописываем в конец «info_new» (укажите перед ней запятую) и получим вот такую конструкцию: | ||
список xml файлов, содержащих info_portions | список xml файлов, содержащих info_portions | ||
− | + | <code> | |
files = info_portions, info_portions_light, info_portions_test, info_lchanger_ico, info_level_tips, info_known_objects, info_l01escape, info_l02garbage, info_l03agroprom, info_l04agroprom_u, info_l05dark_valley, info_l06dark_valley_u, info_l07rostok, info_l08yantar, info_l08deadcity, info_l08rostok_bar, info_l09marshes, info_l09rostok_dolg, info_l10military, info_l11pripyat, info_l11yantar, info_l12yantar_u, info_l13deadcity, info_l14swamp, info_l10radar, info_l16radar_antena, info_l17monolith_control, info_l19stanciya, info_l12u_sarcofag, info_l21generators, info_l22warlab, info_stories, info_new | files = info_portions, info_portions_light, info_portions_test, info_lchanger_ico, info_level_tips, info_known_objects, info_l01escape, info_l02garbage, info_l03agroprom, info_l04agroprom_u, info_l05dark_valley, info_l06dark_valley_u, info_l07rostok, info_l08yantar, info_l08deadcity, info_l08rostok_bar, info_l09marshes, info_l09rostok_dolg, info_l10military, info_l11pripyat, info_l11yantar, info_l12yantar_u, info_l13deadcity, info_l14swamp, info_l10radar, info_l16radar_antena, info_l17monolith_control, info_l19stanciya, info_l12u_sarcofag, info_l21generators, info_l22warlab, info_stories, info_new | ||
− | + | </code> | |
1.2 Создадим этот файл: (В config\ gameplay) создаём файл с названием (без кавычек), а в нём такую схему: | 1.2 Создадим этот файл: (В config\ gameplay) создаём файл с названием (без кавычек), а в нём такую схему: | ||
− | <?xml version="1.0" encoding="windows-1251" ?> | + | <code><?xml version="1.0" encoding="windows-1251" ?> |
<game_information_portions> | <game_information_portions> | ||
− | </game_information_portions> | + | </game_information_portions></code> |
2. Шаг №2: Зарегистрируем пустой файл для диалогов… В этом же файле находим: | 2. Шаг №2: Зарегистрируем пустой файл для диалогов… В этом же файле находим: | ||
− | [dialogs] files = dialogs_test, dialogs, dialogs_escape, dialogs_garbage, dialogs_agroprom, dialogs_deadcity, dialogs_darkvalley, dialogs_pripyat, dialogs_bar, dialogs_yantar, dialogs_military, dialogs_labx18, dialogs_radar, dialogs_aes, dialogs_teloxranitel | + | <code>[dialogs] files = dialogs_test, dialogs, dialogs_escape, dialogs_garbage, dialogs_agroprom, dialogs_deadcity, dialogs_darkvalley, dialogs_pripyat, dialogs_bar, dialogs_yantar, dialogs_military, dialogs_labx18, dialogs_radar, dialogs_aes, dialogs_teloxranitel |
− | + | </code> | |
И проделываем то, что делали с info_portions… (Приписываем ещё одну ветку) | И проделываем то, что делали с info_portions… (Приписываем ещё одну ветку) | ||
Строка 44: | Строка 44: | ||
Название: (Без кавычек) «dialogs_new.xml», а в нём такая схема: | Название: (Без кавычек) «dialogs_new.xml», а в нём такая схема: | ||
− | <?xml version="1.0" encoding="windows-1251" standalone="yes" ?> <game_dialogs> | + | <code><?xml version="1.0" encoding="windows-1251" standalone="yes" ?> <game_dialogs> |
− | </game_dialogs> | + | </game_dialogs></code> |
3. Шаг №3 Зарегистрируем XML файл для квеста: | 3. Шаг №3 Зарегистрируем XML файл для квеста: | ||
Находим: (В config\gameplay) файл с названием (Без кавычек) «game_tasks.xml», а в нём находим строки: | Находим: (В config\gameplay) файл с названием (Без кавычек) «game_tasks.xml», а в нём находим строки: | ||
− | include "gameplay\tasks_escape.xml" | + | <code>include "gameplay\tasks_escape.xml" |
include "gameplay\tasks_garbage.xml" | include "gameplay\tasks_garbage.xml" | ||
include "gameplay\tasks_agroprom.xml" | include "gameplay\tasks_agroprom.xml" | ||
Строка 62: | Строка 62: | ||
include "gameplay\tasks_yantar.xml" | include "gameplay\tasks_yantar.xml" | ||
include "gameplay\tasks_sarcofag.xml" | include "gameplay\tasks_sarcofag.xml" | ||
− | include "gameplay\game_tasks_by_vendor.xml" | + | include "gameplay\game_tasks_by_vendor.xml"</code> |
И заменяем на: | И заменяем на: | ||
− | include "gameplay\tasks_escape.xml" | + | <code>include "gameplay\tasks_escape.xml" |
include "gameplay\tasks_new.xml" | include "gameplay\tasks_new.xml" | ||
include "gameplay\tasks_garbage.xml" | include "gameplay\tasks_garbage.xml" | ||
Строка 77: | Строка 77: | ||
include "gameplay\tasks_yantar.xml" | include "gameplay\tasks_yantar.xml" | ||
include "gameplay\tasks_sarcofag.xml" | include "gameplay\tasks_sarcofag.xml" | ||
− | include "gameplay\game_tasks_by_vendor.xml" | + | include "gameplay\game_tasks_by_vendor.xml"</code> |
− | P.S. Мы в него добавили одну строку - #include "gameplay\tasks_new.xml" | + | P.S. Мы в него добавили одну строку - <code>#include "gameplay\tasks_new.xml"</code> |
3.2 Заполним этот файл: (В gameplay) Создаём файл с названием (Без кавычек) «gameplay\tasks_new.xml»… | 3.2 Заполним этот файл: (В gameplay) Создаём файл с названием (Без кавычек) «gameplay\tasks_new.xml»… | ||
Строка 87: | Строка 87: | ||
Заменить: | Заменить: | ||
− | [profiles] | + | <code>[profiles] |
список xml файлов, содержащих профили сталкеров и торговцев | список xml файлов, содержащих профили сталкеров и торговцев | ||
Строка 94: | Строка 94: | ||
specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag | specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag | ||
− | + | </code> | |
На: | На: | ||
− | [profiles] | + | <code>[profiles] |
список xml файлов, содержащих профили сталкеров и торговцев | список xml файлов, содержащих профили сталкеров и торговцев | ||
Строка 104: | Строка 104: | ||
specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag, new_profils_chareng | specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag, new_profils_chareng | ||
− | + | </code> | |
4.2 Создадим в папке «gameplay» 2 файла, с названиями (без кавычек) «new_profils_chareng.xml» и «npc_profile_new.xml»… | 4.2 Создадим в папке «gameplay» 2 файла, с названиями (без кавычек) «new_profils_chareng.xml» и «npc_profile_new.xml»… | ||
В «npc_profile_new.xml» пишем: | В «npc_profile_new.xml» пишем: | ||
− | <?xml version='1.0' encoding="UTF-8"?> | + | <code><?xml version='1.0' encoding="UTF-8"?> |
<xml> | <xml> | ||
− | </xml> | + | </xml></code> |
4.3 В «new_profils_chareng.xml» пишем: | 4.3 В «new_profils_chareng.xml» пишем: | ||
− | <?xml version='1.0' encoding="windows-1251"?> | + | <code><?xml version='1.0' encoding="windows-1251"?> |
<xml> | <xml> | ||
− | </xml> | + | </xml></code> |
5. Создаём в папке «gamedata\scripts» файл с названием «new_dialog.script». | 5. Создаём в папке «gamedata\scripts» файл с названием «new_dialog.script». | ||
Строка 131: | Строка 131: | ||
Открываем файл: «new_profils_chareng.xml» и в нём пишем между <xml> и </xml>: | Открываем файл: «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> | + | <code><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> | <class>esc_new_atack_bandit1</class> <community>bandit</community> <money min="10000" max="100000" infinitive="0"></money> | ||
Строка 213: | Строка 213: | ||
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> | <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> | ||
− | </specific_character> | + | </specific_character></code> |
6. Создадим их профили! Открываем файл: «npc_profile_new.xml», а в нём пишем: | 6. Создадим их профили! Открываем файл: «npc_profile_new.xml», а в нём пишем: | ||
− | + | <code> | |
− | + | ||
<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> 7. Открываем «spawn_sections.ltx», и в самом конце пишем: | <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> 7. Открываем «spawn_sections.ltx», и в самом конце пишем: | ||
Строка 232: | Строка 231: | ||
[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 | [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 | ||
− | + | </code> | |
8. Открываем «gamedata\config\scripts» и там создаём 6 файлов логики: | 8. Открываем «gamedata\config\scripts» и там создаём 6 файлов логики: | ||
1 файл логики – «esc_new_atack_bandit1.ltx», в нём пишем: | 1 файл логики – «esc_new_atack_bandit1.ltx», в нём пишем: | ||
− | + | <code> | |
− | + | ||
− | + | ||
[logic] active = remark@search on_death = death | [logic] active = remark@search on_death = death | ||
Строка 250: | Строка 247: | ||
[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 | [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 | ||
− | + | </code> | |
2 файл логики – «esc_new_atack_bandit2.ltx», в нём пишем: | 2 файл логики – «esc_new_atack_bandit2.ltx», в нём пишем: | ||
− | + | <code> | |
− | + | ||
− | + | ||
[logic] active = remark@search on_death = death | [logic] active = remark@search on_death = death | ||
Строка 265: | Строка 260: | ||
[smart_terrains] none = true | [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 | + | [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</code> |
3 файл логики – «esc_new_atack_bandit3.ltx», в нём пишем: | 3 файл логики – «esc_new_atack_bandit3.ltx», в нём пишем: | ||
− | + | <code> | |
− | + | ||
− | + | ||
[logic] active = remark@search on_death = death | [logic] active = remark@search on_death = death | ||
Строка 282: | Строка 275: | ||
[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 | [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 | ||
+ | </code> | ||
− | + | 4 файл логики – «esc_new_atack_bandit4.ltx», в нём пишем: | |
− | 4 файл логики – «esc_new_atack_bandit4.ltx», в нём пишем: | + | <code> |
− | + | ||
− | + | ||
− | + | ||
[logic] active = remark@search on_death = death | [logic] active = remark@search on_death = death | ||
Строка 299: | Строка 290: | ||
[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 | [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 | ||
− | + | </code> | |
5 файл логики – «esc_new_atack_bandit5.ltx», в нём пишем: | 5 файл логики – «esc_new_atack_bandit5.ltx», в нём пишем: | ||
− | + | <code> | |
− | + | ||
[logic] active = remark@search on_death = death | [logic] active = remark@search on_death = death | ||
Строка 317: | Строка 307: | ||
[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 | [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 | ||
− | + | </code> | |
6 файл логики – «esc_new_atack_bandit6.ltx», в нём пишем: | 6 файл логики – «esc_new_atack_bandit6.ltx», в нём пишем: | ||
− | + | <code> | |
− | + | ||
[logic] active = remark@search on_death = death | [logic] active = remark@search on_death = death | ||
Строка 333: | Строка 322: | ||
[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 | [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 | ||
− | + | </code> | |
Всё, логика прописана! | Всё, логика прописана! | ||
9. Открываем «dialogs_new.xml», и в нём пишем: | 9. Открываем «dialogs_new.xml», и в нём пишем: | ||
− | (Между <game_dialogs> и </game_dialogs>): | + | <code>(Между <game_dialogs> и </game_dialogs>): |
<dialog id="esc_new_wolf_my1_dialog"> | <dialog id="esc_new_wolf_my1_dialog"> | ||
<has_info>new_my_test_kqest_done</has_info> | <has_info>new_my_test_kqest_done</has_info> | ||
Строка 399: | Строка 388: | ||
</phrase_list> | </phrase_list> | ||
</dialog> | </dialog> | ||
− | + | </code> | |
10. Открываем «character_desc_escape.xml» и заменяем: | 10. Открываем «character_desc_escape.xml» и заменяем: | ||
Строка 416: | Строка 405: | ||
На: | На: | ||
− | + | <code> | |
<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> | <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> | ||
Строка 430: | Строка 419: | ||
<start_dialog>escape_lager_volk_talk</start_dialog> <start_dialog>dm_hello_dialog</start_dialog> <actor_dialog>dm_cool_info_dialog</actor_dialog> <actor_dialog>esc_new_wolf_my1_dialog _dialog</actor_dialog> <actor_dialog>esc_new_wolf_my2_dialog _dialog</actor_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <actor_dialog>tm_wolf_dialog</actor_dialog> <actor_dialog>tm_wolf_reward</actor_dialog> </specific_character> | <start_dialog>escape_lager_volk_talk</start_dialog> <start_dialog>dm_hello_dialog</start_dialog> <actor_dialog>dm_cool_info_dialog</actor_dialog> <actor_dialog>esc_new_wolf_my1_dialog _dialog</actor_dialog> <actor_dialog>esc_new_wolf_my2_dialog _dialog</actor_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <actor_dialog>tm_wolf_dialog</actor_dialog> <actor_dialog>tm_wolf_reward</actor_dialog> </specific_character> | ||
− | + | </code> | |
11. Открываем «tasks_new.xml» и в нём пишем: | 11. Открываем «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> | + | <code><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> | <icon height="50" width="50" x="100" y="50">ui\ui_icons_task</icon> | ||
Строка 443: | Строка 432: | ||
<object_story_id>Escape_novice_lager_volk</object_story_id> | <object_story_id>Escape_novice_lager_volk</object_story_id> | ||
− | <infoportion_complete>new_my_test_kqest_ok</infoportion_complete> </objective> </game_task> | + | <infoportion_complete>new_my_test_kqest_ok</infoportion_complete> </objective> </game_task></code> |
12. Открываем «info_new.xml» и между <game_information_portions> и </game_information_portions> пишем: | 12. Открываем «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> | + | <code><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> | <info_portion id="new_my_test_kqest_done"></info_portion> <info_portion id="new_my_test_kqest_ok"></info_portion> | ||
− | + | </code> | |
13. Открываем папку «gamedata\scripts», находим файл с названием «new_dialog.script», а в нём пишем: | 13. Открываем папку «gamedata\scripts», находим файл с названием «new_dialog.script», а в нём пишем: | ||
− | + | <code> | |
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 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 | ||
Строка 467: | Строка 456: | ||
end | end | ||
− | + | </code> | |
Всё, поздравляю, вы написали новый квест! Он будет у Волка… Желательно его выполнять после квеста с флешкой Шустрого! | Всё, поздравляю, вы написали новый квест! Он будет у Волка… Желательно его выполнять после квеста с флешкой Шустрого! | ||
− | [[Категория: | + | [[Категория:Конфиги]] |
Версия 11:12, 29 марта 2011
Сейчас мы создадим сложный квест на оборону лагеря!
Что нам потребуется?
• system.ltx • character_desc_escape.xml • spawn_sections.ltx
Хватит страдать фигнёй, приступим к работе!
Пошаговое создание:
Часть 1 (Создание и подготовка файлов):
1. Зарегистрируем пустой файл для info_portions …
Открываем файл system.ltx, находим вот это – «[info_portions]» . Нашли? Нет? Ну тогда «Ctrl+f» и задаёте [info_portions]… Теперь наверно нашли… Мы видим под этой «штукой» вот такое: список xml файлов, содержащих info_portions
files = info_portions, info_portions_light, info_portions_test, info_lchanger_ico, info_level_tips, info_known_objects, info_l01escape, info_l02garbage, info_l03agroprom, info_l04agroprom_u, info_l05dark_valley, info_l06dark_valley_u, info_l07rostok, info_l08yantar, info_l08deadcity, info_l08rostok_bar, info_l09marshes, info_l09rostok_dolg, info_l10military, info_l11pripyat, info_l11yantar, info_l12yantar_u, info_l13deadcity, info_l14swamp, info_l10radar, info_l16radar_antena, info_l17monolith_control, info_l19stanciya, info_l12u_sarcofag, info_l21generators, info_l22warlab, info_stories
А мы дописываем в конец «info_new» (укажите перед ней запятую) и получим вот такую конструкцию: список xml файлов, содержащих info_portions
files = info_portions, info_portions_light, info_portions_test, info_lchanger_ico, info_level_tips, info_known_objects, info_l01escape, info_l02garbage, info_l03agroprom, info_l04agroprom_u, info_l05dark_valley, info_l06dark_valley_u, info_l07rostok, info_l08yantar, info_l08deadcity, info_l08rostok_bar, info_l09marshes, info_l09rostok_dolg, info_l10military, info_l11pripyat, info_l11yantar, info_l12yantar_u, info_l13deadcity, info_l14swamp, info_l10radar, info_l16radar_antena, info_l17monolith_control, info_l19stanciya, info_l12u_sarcofag, info_l21generators, info_l22warlab, info_stories, info_new
1.2 Создадим этот файл: (В config\ gameplay) создаём файл с названием (без кавычек), а в нём такую схему:
<?xml version="1.0" encoding="windows-1251" ?>
<game_information_portions>
</game_information_portions>
2. Шаг №2: Зарегистрируем пустой файл для диалогов… В этом же файле находим:
[dialogs] files = dialogs_test, dialogs, dialogs_escape, dialogs_garbage, dialogs_agroprom, dialogs_deadcity, dialogs_darkvalley, dialogs_pripyat, dialogs_bar, dialogs_yantar, dialogs_military, dialogs_labx18, dialogs_radar, dialogs_aes, dialogs_teloxranitel
И проделываем то, что делали с info_portions… (Приписываем ещё одну ветку)
И получим: [dialogs] files = dialogs_test, dialogs, dialogs_escape, dialogs_garbage, dialogs_agroprom, dialogs_deadcity, dialogs_darkvalley, dialogs_pripyat, dialogs_bar, dialogs_yantar, dialogs_military, dialogs_labx18, dialogs_radar, dialogs_aes, dialogs_teloxranitel, dialogs_new
2.2 Создадим этот файл (В config\gameplay):
Название: (Без кавычек) «dialogs_new.xml», а в нём такая схема:
<?xml version="1.0" encoding="windows-1251" standalone="yes" ?> <game_dialogs>
</game_dialogs>
3. Шаг №3 Зарегистрируем XML файл для квеста:
Находим: (В config\gameplay) файл с названием (Без кавычек) «game_tasks.xml», а в нём находим строки:
include "gameplay\tasks_escape.xml"
include "gameplay\tasks_garbage.xml"
include "gameplay\tasks_agroprom.xml"
include "gameplay\tasks_bar.xml"
include "gameplay\tasks_military.xml"
include "gameplay\tasks_darkvalley.xml"
include "gameplay\tasks_deadcity.xml"
include "gameplay\tasks_radar.xml"
include "gameplay\tasks_aes.xml"
include "gameplay\tasks_yantar.xml"
include "gameplay\tasks_sarcofag.xml"
include "gameplay\game_tasks_by_vendor.xml"
И заменяем на:
include "gameplay\tasks_escape.xml"P.S. Мы в него добавили одну строку -
include "gameplay\tasks_new.xml"
include "gameplay\tasks_garbage.xml"
include "gameplay\tasks_agroprom.xml"
include "gameplay\tasks_bar.xml"
include "gameplay\tasks_military.xml"
include "gameplay\tasks_darkvalley.xml"
include "gameplay\tasks_deadcity.xml"
include "gameplay\tasks_radar.xml"
include "gameplay\tasks_aes.xml"
include "gameplay\tasks_yantar.xml"
include "gameplay\tasks_sarcofag.xml"
include "gameplay\game_tasks_by_vendor.xml"
#include "gameplay\tasks_new.xml"
3.2 Заполним этот файл: (В gameplay) Создаём файл с названием (Без кавычек) «gameplay\tasks_new.xml»…
4. Шаг №4 Зарегистрируем файл с профилями! (Я уже устал разъяснять, буду просто писать «что» на «что» заменить)
Заменить:
[profiles]
список xml файлов, содержащих профили сталкеров и торговцев
files = npc_profile
список xml файлов, содержащих описания конкретных сталкеров и торговцев
specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag
На:
[profiles]
список xml файлов, содержащих профили сталкеров и торговцев
files = npc_profile, npc_profile_new
список xml файлов, содержащих описания конкретных сталкеров и торговцев
specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag, new_profils_chareng
4.2 Создадим в папке «gameplay» 2 файла, с названиями (без кавычек) «new_profils_chareng.xml» и «npc_profile_new.xml»…
В «npc_profile_new.xml» пишем:
<?xml version='1.0' encoding="UTF-8"?>
<xml>
</xml>
4.3 В «new_profils_chareng.xml» пишем:
<?xml version='1.0' encoding="windows-1251"?>
<xml>
</xml>
5. Создаём в папке «gamedata\scripts» файл с названием «new_dialog.script».
Часть 2 (Заполнение файлов):
1. Создадим профиль нападающих на лагерь NPC.
Открываем файл: «new_profils_chareng.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>
6. Создадим их профили! Открываем файл: «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> 7. Открываем «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
8. Открываем «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
2 файл логики – «esc_new_atack_bandit2.ltx», в нём пишем:
[logic] active = remark@search on_death = death
[death] on_info = %+esc_new_atack_bandit2_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
3 файл логики – «esc_new_atack_bandit3.ltx», в нём пишем:
[logic] active = remark@search on_death = death
[death] on_info = %+esc_new_atack_bandit3_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
4 файл логики – «esc_new_atack_bandit4.ltx», в нём пишем:
[logic] active = remark@search on_death = death
[death] on_info = %+esc_new_atack_bandit4_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
5 файл логики – «esc_new_atack_bandit5.ltx», в нём пишем:
[logic] active = remark@search on_death = death
[death] on_info = %+esc_new_atack_bandit5_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
6 файл логики – «esc_new_atack_bandit6.ltx», в нём пишем:
[logic] active = remark@search on_death = death
[death] on_info = %+esc_new_atack_bandit6_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
Всё, логика прописана!
9. Открываем «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>
10. Открываем «character_desc_escape.xml» и заменяем:
<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>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
<rank>434</rank> <reputation>5</reputation> <money min="600" max="2000" infinitive="0"/>
<snd_config>characters_voice\human_01\stalker\</snd_config> <crouch_type>-1</crouch_type>
<visual>actors\neytral\stalker_neytral_balon_1</visual> <supplies> [spawn] \n wpn_pm \n ammo_9x18_fmj = 1 \n wpn_ak74u \n ammo_5.45x39_fmj \n device_torch \n hand_radio \n </supplies> include "gameplay\character_criticals_4.xml"
<start_dialog>escape_lager_volk_talk</start_dialog> <start_dialog>dm_hello_dialog</start_dialog> <actor_dialog>dm_cool_info_dialog</actor_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <actor_dialog>tm_wolf_dialog</actor_dialog> <actor_dialog>tm_wolf_reward</actor_dialog> </specific_character>
На:
<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>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
<rank>434</rank> <reputation>5</reputation> <money min="600" max="2000" infinitive="0"/>
<snd_config>characters_voice\human_01\stalker\</snd_config> <crouch_type>-1</crouch_type>
<visual>actors\neytral\stalker_neytral_balon_1</visual> <supplies> [spawn] \n wpn_pm \n ammo_9x18_fmj = 1 \n wpn_ak74u \n ammo_5.45x39_fmj \n device_torch \n hand_radio \n </supplies>
include "gameplay\character_criticals_4.xml"
<start_dialog>escape_lager_volk_talk</start_dialog> <start_dialog>dm_hello_dialog</start_dialog> <actor_dialog>dm_cool_info_dialog</actor_dialog> <actor_dialog>esc_new_wolf_my1_dialog _dialog</actor_dialog> <actor_dialog>esc_new_wolf_my2_dialog _dialog</actor_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <actor_dialog>tm_wolf_dialog</actor_dialog> <actor_dialog>tm_wolf_reward</actor_dialog> </specific_character>
11. Открываем «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>
12. Открываем «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>
13. Открываем папку «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
Всё, поздравляю, вы написали новый квест! Он будет у Волка… Желательно его выполнять после квеста с флешкой Шустрого!