Перейти к контенту
potap

Создание квеста

Рекомендуемые сообщения

@NL-Vincenz создаешь-то в ТЧ? Не знаю как в ЗП, но в ТЧ последнее подзадание должно быть продублировано в начало блока перед первым заданием, куда и должен быть вписан article. То есть в твоем случае должно быть так (не спрашивай зачем разработчики так сделали, это не игра, а сплошные тайны):

Скрытый текст

 

<game_task id="start_pes_kvest">
            <title>start_pes_kvest_0</title>

            <objective>
                    <text>start_pes_kvest_2</text> <!-- последнее подзадание дубль в начале -->
                    <infoportion_complete>start_pes_quest_complete_0</infoportion_complete> <!-- последнее подзадание дубль в начале -->

                    <article>start_pes_kvest</article> <!-- сюда же пихаем артикл -->
            </objective>
            <objective>
                    <text>start_pes_kvest</text> <!-- вот и пошел уже сам квест от первого подзадания -->
                    <icon>ui_iconsTotal_tutorial_find_artefact</icon>
                    <infoportion_complete>start_pes_quest_complete_0</infoportion_complete> </objective>
            <article>start_pes_kvest</article>
            <objective>
                    <text>start_pes_kvest_1</text>
                        <function_complete>acz_quest_function.start_pes_quest</function_complete>
            </objective>
            <objective>
                    <text>start_pes_kvest_2</text>
                    <infoportion_complete>start_pes_quest_complete_0</infoportion_complete>
            </objective>
</game_task>

 

Это при условии, что у тебя ТЧ.

Изменено пользователем HellRatz
  • Спасибо 1
  • Полезно 1

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2


Подарки

  • 2
  • Ссылка на комментарий

    Народ, нужна помощь. Значит, ситуация такая: на кордоне в деревне новичков есть непись Н и он по логике стоит на месте, чешит репу. По задумке, после определённого диалога он должен прогуляться с гг до элеватора и вернуться обратно в деревеньку, но что-то я не понял, как ему можно сменить логику прямо в игре через диалог, какой функцией, каким скриптом. Сайт поиском прошерстил, толкого ответа не нашел, прошу помощи)) (или ткните носом на пост, который решает мою проблему). Буду благодарен!

    Ссылка на комментарий
    1 час назад, Grishamen сказал:

    как ему можно сменить логику прямо в игре через диалог, какой функцией, каким скриптом.

    Выдать в диалоге инфо-порцию, а в логике прописать необходимые действия. Про логику читать по ссылке ниже:

    http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_0

    Ссылка на комментарий

    Прогулка на расстояния типа от ДН до элеватора - это плохая идея.

    Хорошая, на стандартной кодовой базе - сделать отдельный смарт с работами в ДН и на элеваторе, и переключаться между ними. Либо, используя 2 существующих смарта, прописать в оба работы с проверкой имени непися, и гонять его из одного смарта в другой.

    Ссылка на комментарий
    35 минут назад, Dennis_Chikin сказал:

    гонять его из одного смарта в другой

    Гонять - это конечно хорошо. Но!

    15 часов назад, Grishamen сказал:

    он должен прогуляться с гг до элеватора

    Я так понимаю, тут нужны независимые от смартов секции логики. Иначе получится, что не непись с ГГ гуляет, а ГГ тупо бежит за неписем...

    Ссылка на комментарий

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

    Ссылка на комментарий
    3 часа назад, _Val_ сказал:

    Я так понимаю, тут нужны независимые от смартов секции логики. Иначе получится, что не непись с ГГ гуляет, а ГГ тупо бежит за неписем...

    Если не ошибаюсь, в оригинале ТЧ(за другие части не знаю) нет схем логики, которые бы позволили "пришпилить" непися к ГГ. Тут только добавление чего-то типа "Напарники"...

    Ссылка на комментарий
    39 минут назад, AndreySol сказал:

    нет схем логики, которые бы позволили "пришпилить" непися к ГГ.

    А ГГ к неписю - есть))

    Ссылка на комментарий

    Есть вот такая схема, когда НПС идет за ГГ куда бы он не пошел.

     
    
    ----------------------------------------------
    -- Karavan simple
    -- Схема каравана простая - гг ведет чудиков
    -- 2008 - 2009 Rulix aka Bak
    ----------------------------------------------
    
    
    class "evaluator_end" (property_evaluator)
    function evaluator_end:__init(name,storage) super (nil,name)
    	self.st = storage
    end
    function evaluator_end:evaluate()
    	return not xr_logic.is_active(self.object,self.st)
    end
    
    class "evaluator_karavan" (property_evaluator)
    function evaluator_karavan:__init(name,storage) super (nil, name)
      self.st = storage
    end
    function evaluator_karavan:evaluate()
    	return db.actor and xr_logic.is_active(self.object,self.st) and self.st.enabled == true
    end
    
    class "action_karavan" (action_base)
    function action_karavan:__init(name,storage) super (nil, name)
    	self.st = storage
    end
    function action_karavan:initialize()
    	action_base.initialize(self)
    	local npc = self.object
    	npc:set_desired_position()
    	npc:set_desired_direction()
    	npc:set_detail_path_type(move.curve)
    	npc:set_path_type(game_object.level_path)
    	self.offset = vector():set(math.random()*6-3,0,math.random()*6-3)
    	self.offset:normalize()
    end
    function action_karavan:execute()
    	action_base.execute(self)
    	local npc = self.object
    	if xr_logic.try_switch_to_another_section(npc,self.st,db.actor) then
    		return
    	end
    	local dist = db.actor:position():distance_to(npc:position())
    	local state,look,anim = state_mgr.get_state(npc)
    	if dist <= self.st.radius then
    		state,look,anim = self.st.close_state,nil,true
    	elseif dist < self.st.close_dist then
    		state,look,anim = self.st.close_state,nil,true
    	elseif dist >= self.st.faraway_dist then
    		state,look,anim = self.st.wait_state,nil,true
    	elseif dist < self.st.near_dist then
    		state,look,anim = self.st.near_state,nil,true
    	elseif not (state and state_lib.states[state].movement == move.stand) then
    		state,look,anim = self.st.faraway_state,nil,true
    	end	
    	if self.st.look == true and state_lib.states[state].movement == move.stand then
    		look = true
    	end
    	if look == true then
    		look = {look_object = db.actor}
    	end
    	if anim == true then
    		anim = {animation = true}
    	end
    	if state then
    		state_mgr.set_state(npc,state,nil,nil,look,anim)
    	end
    	if state_lib.states[state].movement ~= move.stand then
    		local vertex_id = level.vertex_in_direction(db.actor:level_vertex_id(),self.offset,self.st.radius)
    		utils.send_to_nearest_accessible_vertex(npc,vertex_id)
    	end
    end
    function action_karavan:finalize()
    	self.object:clear_animations()
    end
    
    prop_karavan = 9651
    prop_end = prop_karavan+1
    act_karavan = prop_karavan
    
    function add_to_binder(object,char_ini,scheme,section,st)
    	local manager = object:motivation_action_manager()
    	manager:add_evaluator(prop_karavan,evaluator_karavan("evaluator_karavan",st))
    	local action = action_karavan("action_karavan",st)
    	action:add_precondition(world_property(stalker_ids.property_alive,true))
    	action:add_precondition(world_property(stalker_ids.property_enemy,false))
    	action:add_precondition(world_property(stalker_ids.property_danger,false))
        xr_motivator.addCommonPrecondition(action)
    	if watcher_act then
    		action:add_precondition(world_property(watcher_act.evid_near_stuff,false))
    		action:add_precondition(world_property(watcher_act.evid_see_body,false))
    		action:add_precondition(world_property(watcher_act.evid_see_stuff,false))		
    	end
    	action:add_precondition(world_property(prop_karavan,true))
    	action:add_effect(world_property(prop_karavan,false))
    	manager:add_action(act_karavan,action)
    	local atbl = {xr_actions_id.alife}
    	for i,id in ipairs(atbl) do
    		action = manager:action(id)
    		if action then
    			action:add_precondition(world_property(prop_karavan,false))
    		end
    	end
    end
    
    function set_scheme(npc,ini,scheme,section,gulag_name)
    	local st = xr_logic.assign_storage_and_bind(npc,ini,scheme,section)
    	st.logic = xr_logic.cfg_get_switch_conditions(ini,section,npc)
    	st.close_dist = utils.cfg_get_number(ini,section,"close_dist",npc,false) or 7
    	st.near_dist = utils.cfg_get_number(ini,section,"near_dist",npc,false) or 14
    	st.faraway_dist = utils.cfg_get_number(ini,section,"faraway_dist",npc,false) or 32
    	st.close_state = utils.cfg_get_string(ini,section,"close_state",npc,false,"") or "guard"
    	st.near_state = utils.cfg_get_string(ini,section,"near_state",npc,false,"") or "rush"
    	st.faraway_state = utils.cfg_get_string(ini,section,"faraway_state",npc,false,"") or "sprint"
    	st.wait_state = utils.cfg_get_string(ini,section,"wait_state",npc,false,"") or "hide"
    	st.look = utils.cfg_get_bool(ini,section,"look_on_actor",npc,false)
    	st.radius = utils.cfg_get_number(ini,section,"radius",npc,false) or 4
    	st.no_loot = utils.cfg_get_bool(ini,section,"no_loot",npc,false)
    	if st.no_loot ~= true then
    		st.no_loot = nil
    	end
    	st.enabled = true
    end
    function disable_scheme(npc,scheme)
    	rx_ai.printf("disable")
    	local st = db.storage[npc:id()][scheme]
    	if st then
    		st.enabled = false
    	end
    end
    • Полезно 1

    Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

    Ссылка на комментарий

    В логике

    Скрытый текст

    [karavan]
    close_dist = 2
    near_dist = 10
    faraway_dist = 31
    close_state = guard
    near_state = rush
    faraway_state = sprint
    wait_state = rush
    look_on_actor = false
    radius = 1
    combat_ignore_cond = always
    combat_type = monolith
    no_loot = true
    on_info = {+поршень} walker3@lexa

    переход в схему

    Скрытый текст

    [walker2@lexa]
    path_walk = jupiter_lexa_walk
    path_look = jupiter_lexa_look  
    meet = meet
    danger = danger_condition
    combat_ignore_cond = always
    on_info = {+поршень} karavan 

     

    • Полезно 1

    Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

    Ссылка на комментарий

    Здравствуйте уважаемые.

     

    Вопрос такой.

    Допустим есть диалог с Сидоровичем. В результате которого получаем задание "Взорвать звезду смерти".

    Берём задание и уходим.

    Ходим. Бродим.

    И варианты:

    0) Взорвали. Обследовали местность. Подобрали непонятное. Вернулись. Сдали неизвестное.

    1) Взорвали. Вернулись. И нас как лошару посылают таки обломки этого гадюшника на колёсиках исследовать и принести что-то непривычное. Нашли. Вернули.

    2) Не взорвали. Прошло определённое игровое время. Гадюшник исчез. На земле обломки. Слышим задание "принести то не знаю что". Находим. Приносим.

    3) Не взорвали. Обобрали. Голое поле. Возвращаемся. Нас посылают к кому-то узнать кто это (взорвать и обнести) мог.  Уходим. Узнаём. Находим. Убиваем. Забираем. Сдаём.

     

    Таким макаром можно закрутить квест?

     

     

    Ссылка на комментарий
    В 29.07.2018 в 07:49, Saboteur сказал:

    Здравствуйте уважаемые.

     

    Вопрос такой.

    Допустим есть диалог с Сидоровичем. В результате которого получаем задание "Взорвать звезду смерти".

    Берём задание и уходим.

    Ходим. Бродим.

    И варианты:

    0) Взорвали. Обследовали местность. Подобрали непонятное. Вернулись. Сдали неизвестное.

    1) Взорвали. Вернулись. И нас как лошару посылают таки обломки этого гадюшника на колёсиках исследовать и принести что-то непривычное. Нашли. Вернули.

    2) Не взорвали. Прошло определённое игровое время. Гадюшник исчез. На земле обломки. Слышим задание "принести то не знаю что". Находим. Приносим.

    3) Не взорвали. Обобрали. Голое поле. Возвращаемся. Нас посылают к кому-то узнать кто это (взорвать и обнести) мог.  Уходим. Узнаём. Находим. Убиваем. Забираем. Сдаём.

     

    Таким макаром можно закрутить квест?

    Да,но писать много,учти

    Ссылка на комментарий

    Не знаю в нужный форум я пишу или нет.

     

    Делаю свой мод на ТЧ. Возникли проблемы при создании квеста.

     

    Квест типа "Найди и принеси мне эту штуковину".

     

    Семёнов выдает квест на поиск артефакта "Мамины Бусы". 

     

    В задании всего два пункта:

     

    - Найти Артефакт

    - Принести Артефакт

     

    Дело в том что я не знаю как реализовать следующее: при подборе артефакта пункт Найти артефакт отмечается как выполненный.

     

    Когда я подбираю артефакт он не отмечается, а когда я возвращаюсь к Семёнову, я сдаю ему квест и все задание выполнено полностью. 

     

    Прошу помощи.

    Добавлено  Murarius,

    Перемещено.

    Ссылка на комментарий

    @PARENTAL ADVISORY EXPLICIT CONTENT, следует сделать проверку в этом пункте на наличие этого артефакта:

    function название_функции(task, objective)
    if db.actor ~= nil then 
    return db.actor:object("название_артефакта") ~= nil
    end
    return false
    end

    Вписать так:<function_complete>название_скрипта.название_функции</function_complete>

    ищу человека, который смог бы заняться разработкой погоды на OGSR.
    кто может помочь - пишите в ЛС.

    Ссылка на комментарий

    Здравствуйте. Надеюсь, пишу куда надо, т.к. ничего другого, вроде, не нашёл. Пытаюсь сделать правку на ТЧ 1.0006 (без модов, оригинал) на то, чтобы время всех квестов было либо увеличено до 100 дней, либо убрано полностью. В итоге, после ковыряния в task_manager время выполнения квестов стало 14 часов. Теперь решил не трогать, пока не подскажут, как сделать правильно.

    Ссылка на комментарий

    Здравствуйте Друзья, такой к вам вопрос 

     Я ставлю чистую игру (Сталкер ТЧ 1.0004.), плюс правку на Вырезанный сюжет (которую нашел на этом сайте), она стабильно работает. 

     А я хочу на этом пустом месте (без сюжетном) создать свой, новый. Подскажите как это реализовать, я уже добавил своего персонажа, но он к сожалению при попытке с ним поговорить, дает сбои/вылеты.

     Вылеты без лога, понятия не имею почему. Все инфопоршни/диалоги/скрипты вроде работают как должны, прошу помочь. Я мог что-то упустить из виду, из-за невнимательности. 

    Проблемная Gamedata 

    Изменено пользователем W.A.S.P.
    пунктуация
    Ссылка на комментарий
    23 часа назад, EGER.OVERKILL WF сказал:

    Здравствуйте Друзья, такой к вам вопрос 

     Я ставлю чистую игру (Сталкер ТЧ 1.0004.), плюс правку на Вырезанный сюжет (которую нашел на этом сайте), она стабильно работает. 

     А я хочу на этом пустом месте (без сюжетном) создать свой, новый. Подскажите как это реализовать, я уже добавил своего персонажа, но он к сожалению при попытке с ним поговорить, дает сбои/вылеты.

     Вылеты без лога, понятия не имею почему. Все инфопоршни/диалоги/скрипты вроде работают как должны, прошу помочь. Я мог что-то упустить из виду, из-за невнимательности. 

    Проблемная Gamedata 

    Upd: Уже решил. 

    Добавлено  Опричник,

    Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

    Ссылка на комментарий

    Подскажите, пожалуйста, где можно почитать про создание типовых возобновляемых квестов торговцев на поиск артефактов, частей монстров и т.д. Нашел один урок, но игра постоянно вылетает при попытке поговорить с квестовым НПС с руганью на task_manager.script (не получает ожидаемую таблицу - что-то такое). Моих знаний в скриптах не хватает, чтобы устранить проблему. Хотелось бы еще где-то почитать про это, может удастся найти ошибку. 

    Ссылка на комментарий

    @Muzafir

    А зачем знания скриптов, если надо просто правильно конфиги этих регулярных квестов настроить?

    Читать тут.

    • Спасибо 1
    Ссылка на комментарий
    15 часов назад, AndreySol сказал:

    А зачем знания скриптов?

    Согласен, поэтому и искал, где можно еще почитать про это. Спасибо за ссылку. Почему-то через Гугл не нашел

    Ссылка на комментарий

    Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

    Комментарии могут оставлять только зарегистрированные пользователи

    Создать аккаунт

    Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

    Зарегистрировать новый аккаунт

    Войти

    Есть аккаунт? Войти.

    Войти
    • Недавно просматривали   0 пользователей

      Ни один зарегистрированный пользователь не просматривает эту страницу.

    AMK-Team.ru

    ×
    ×
    • Создать...