Ну вот, долгожданый тутор по созданию квеста на тип "Убить сталкера"
Ну что, начнем!
Сдесь нам нужно будет создать нпс для его убийства
Автор: Johann
Открываем
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\creatures\spawn_sections_zaton.ltx
Пишим в самом верху это:
[test_smg-mod_test]:stalker
$spawn = "respawn\test_smg-mod_test"
character_profile = test_smg-mod_test
spec_rank = novice
community = stalker
story_id = test_smg-mod_test
Далее
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\character_desc_zaton.ltx
В самый конец пишим это перед </xml>
Code
<specific_character id="test_smg-mod_test" team_default="1">
<name>Скалолаз</name>
<icon>ui_inGame2_Soldier_2</icon>
<map_icon x="1" y="0">
</map_icon>
<bio>Опытный сталкер. Детальная информация отсутствует.</bio>
<class>test_smg-mod_test</class>
<community>stalker</community>
<terrain_sect>stalker_terrain</terrain_sect>
<snd_config>characters_voice\human_01\military\</snd_config>
<rank>40</rank>
<reputation>0</reputation>
<visual>actors\stalker_ucheniy\stalker_ucheniy_1_face_2</visual>
<supplies>
[spawn] \n
wpn_ak74u \n
ammo_5.45x39_fmj = 1 \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
grenade_rgd5 = 2 \n
#include "gameplay\character_items_nd.xml"
#include "gameplay\character_drugs.xml"
#include "gameplay\character_drugs_mil.xml"
</supplies>
#include "gameplay\character_criticals_4.xml"
</specific_character>
Тут же ищим строчку
<!-- Бармен на базе сталкеров -->
И пишим ниже строчкой после этого <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> это
Code
<actor_dialog>lapsh8_quest_dialog</actor_dialog>
<actor_dialog>lapsh8_quest_prines</actor_dialog>
Далее
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\dialogs_zaton.ltx
Пишим в начале ниже строкой <game_dialogs> это:
Code
<?xml version="1.0" encoding="windows-1251" ?>
<game_dialogs>
<dialog id="lapsh8_quest_dialog">
<dont_has_info>quest_lapsh8_done</dont_has_info>
<dont_has_info>quest_lapsh8_give</dont_has_info>
<phrase_list>
<phrase id="1">
<text>Есть, убить одного лошка и скажи спасибо сайту smg-mod.ucoz.ru</text>
<give_info>quest_lapsh8_give</give_info>
<action>dialogs_zaton.quest_kill_nps_start</action>
</phrase>
<phrase id="0">
<text>Работка есть? Я тест провожу квеста от smg-mod.ucoz.ru</text>
<next>1</next>
</phrase>
</phrase_list>
</dialog>
<dialog id="lapsh8_quest_prines">
<has_info>quest_lapsh8_give</has_info>
<dont_has_info>quest_lapsh8_done</dont_has_info>
<has_info>test_nps_mertv</has_info>
<phrase_list>
<phrase id="1">
<text>Ой радость то какая! Нубяра научился делать квест!</text>
<give_info>quest_lapsh8_done</give_info>
</phrase>
<phrase id="0">
<text>Грохнул я его...спасибо скажу smg-mod.ucoz.ru</text>
<next>1</next>
</phrase>
</phrase_list>
</dialog>
Далее
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\info_zaton.ltx
В начале после <game_information_portions> ниже строкой пишим это:
Code
<info_portion id="quest_lapsh8_done"></info_portion>
<info_portion id="quest_lapsh8_give"></info_portion>
<info_portion id="test_nps_mertv"></info_portion>
Далее
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\npc_profile.ltx
В начале после <xml> ниже строкой пшим это:
Code
<!-- наш нпс smg-mod-->
<character id="test_smg-mod_test">
<class>test_smg-mod_test</class>
</character>
Далее
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\misc\tm_zaton.ltx
В самый конец пишим это:
Code
[lapsh8_give]
icon = ui_inGame2_Bezopasnoe_mesto
prior = 2
storyline = false
title = {+test_nps_mertv}test_prinesti_name, test_naiti_name
descr = test_descr
target = {+test_nps_mertv} zat_a2_stalker_barmen, nps
condlist_0 = {+quest_lapsh8_done} complete
reward_money = 1
Далее
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\scripts
Создаем тут папку smg-mod, а там test_smg-mod_test.ltx
Должен получиться такой путь:
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\scripts\smg-mod\test_smg-mod_test.ltx
И в этом файле пишим:
Code
[logic]
on_death = death
active = remark1
danger = danger_ignore
[danger_ignore]
ignore_distance = 5
[death]
on_info = %+test_nps_mertv%
[remark1]
no_move = true
anim = sit_ass
on_actor_dist_le = 2| remark@hello
meet = meet_guide
[meet_guide]
abuse = false
use = true
allow_break = false
meet_on_talking = false
[remark@hello]
no_move = true
meet = meet_guide
on_actor_dist_le = 10| remark1
Далее идем сюда
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\text\rus\st_quests_general.ltx
В конце перед </string_table> пишим это:
Code
<string id="test_naiti_name">
<text>Убийство: Убить сталкера.</text>
</string>
<string id="test_descr">
<text>Убить сталкера.</text>
</string>
<string id="test_prinesti_name">
<text>Убийство: рассказать бармену.</text>
Так, теперь нам надо открыть скрипт с помощью блокнота
Идем сюда:
D:\S.T.A.L.K.E.R. - Зов Припяти\gamedata\scripts\dialogs_zaton.script
В самое начало пишим:
Code
function quest_kill_nps_start()
task_manager.get_task_manager():give_task("lapsh8_give")
end
Теперь находим распакованый all.spawn и находим там файл alife_zaton.ltx
В конец пишим это, но номер не должен повторяться!
Code
[1866]
; cse_abstract properties
section_name = stalker
name = test_smg-mod_test
position = 223.34001159668,55.243835449219,8.9725513458252
direction = 0,0,0
; cse_alife_trader_abstract properties
money = 500
character_profile = test_smg-mod_test
; cse_alife_object properties
game_vertex_id = 55
distance = 0
level_vertex_id = 1317923
object_flags = 0xffffffff
custom_data = <<END
[story_object]
story_id = nps
[logic]
cfg = scripts\smg-mod\test_smg-mod_test.ltx
END
; cse_visual properties
visual_name = actors\stalker_soldier\stalker_soldier_2
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 223.34001159668,55.243835449219,8.9725513458252
upd:o_model = 0
upd:o_torso = 0,0,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0
; cse_alife_monster_abstract properties
base_in_restrictors = yan_bunker_door_zomby_restrictor
upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0
; cse_alife_human_abstract properties
predicate5 = 2,2,1,1,2
predicate4 = 1,0,0,1
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties
Запаковываем и запускаем игру.