Это популярное сообщение. Expropriator 2 118 Опубликовано 12 Октября 2016 Это популярное сообщение. Поделиться Опубликовано 12 Октября 2016 (изменено) Я думаю, что назрела эта тема. Практика на отдельной локации. Мод для ЗП https://cloud.mail.ru/public/JT17/vLiwh4eqa На скрине - запуск квеста. Всё начиналось безобидным развлечением: А закончилось правкой движка. В этой теме, постараюсь подробно изложить практическое применение и сам процесс. 1.Как известно, в движке в один момент может отыгрываться только один туториал - это важно запомнить! 2.Для запуска туториала нам необходим собственно сам запуск. 3.Туториалы можно контролировать функциями скриптов. 4. По ходу беседы, можете поправлять меня, если считаете, что то неверным. Начнём работу с файла gamedata\configs\ui\game_tutorials.xml Что бы не захламлять сам файл, можно вывести свои туториалы в отдельный файл, сделав ссылку рядом с ссылкой титров: #include "ui\ui_credits.xml"#include "ui\tutorials.xml" Как выглядит сам туториал, примерно: <ostrova_mishen_01_guest_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\pda\pda_alarm</sound><auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">ui\ui_ostrova_tir_start</texture> </auto_static> </global_wnd><global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\pda\pda_alarm</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">ui\ui_ostrova_tir_start</texture> </auto_static> </global_wnd_16><item> <length_sec>4</length_sec><function_on_stop>ostrova_spawn.spawn_mishen_01a</function_on_stop> <grab_input>off</grab_input> <main_wnd/></item></ostrova_mishen_01_guest_death> Что бы запустить туториал, нам необходимо событие. Его обычно получают из диалогов, а в конкретном случае мы его получаем из смерти динамической модели. A: Для этого на локации спавнится разрушаемый объект в all.spawn: [256]; cse_abstract propertiessection_name = physic_destroyable_objectname = mishen_01_questposition = -169.268035888672,64.2635803222656,-195.247039794922direction = 0.714245021343231,-2.53366994857788,-0.0480710007250309; cse_alife_object propertiesgame_vertex_id = 0distance = 0level_vertex_id = 937950object_flags = 0xffffff3acustom_data = <[collide]small_object[logic]cfg = scripts\ostrova\ostrova_mishen_01_quest.ltxEND; cse_visual propertiesvisual_name = tir\mishen_01_quest; cse_ph_skeleton properties; cse_alife_object_physic propertiesphysic_type = 0x3mass = 10fixed_bones = root с логикой: [logic]active = ph_on_death[ph_on_death]on_info = %+mishen_01_quest_death% B: Для контроля квеста, нам понадобится спейс-рестриктор такого типа в алспавне: [375]; cse_abstract propertiessection_name = space_restrictorname = ostrova_tir_controlposition = -217.726089477539,42.432071685791,-34.122875213623direction = 1.99999999495049e-006,0,-1.99999999495049e-006; cse_alife_object propertiesgame_vertex_id = 0distance = 0level_vertex_id = 937950object_flags = 0xffffff3ecustom_data = <[logic]cfg = scripts\ostrova\ostrova_tir_control.ltxEND; cse_shape propertiesshapes = shape0shape0:type = boxshape0:axis_x = 17.7328681945801,0,0shape0:axis_y = 0,7.65130805969238,0shape0:axis_z = 0,0,29.5696659088135shape0:offset = 0,0,0; cse_alife_space_restrictor propertiesrestrictor_type = 3 с логикой [logic]active = sr_idle@tir_start[sr_idle@tir_start]on_info = {=actor_on_level(ostrova)} sr_idle@timer %=run_tutorial(ostrova_tir_start)%[sr_idle@timer]on_game_timer = 1 | {+mishen_01_quest_death} sr_idle@timer2 %=run_tutorial(ostrova_mishen_01_guest_death) =give_task(give_ostrova_tir_mishen_01a)%[sr_idle@timer2]on_game_timer = 50 | {+mishen_01a_death} sr_idle@timer3 %=run_tutorial(ostrova_mishen_01a_death) =give_task(give_ostrova_tir_mishen_01b)%[sr_idle@timer3]on_game_timer = 50 | {+mishen_01b_death} sr_idle@timer4 %=run_tutorial(ostrova_mishen_01b_death) =give_task(give_ostrova_tir_mishen_01c)%[sr_idle@timer4]on_game_timer = 50 | {+mishen_01c_death} sr_idle@timer5 %=run_tutorial(ostrova_mishen_01c_death) =give_task(give_ostrova_tir_mishen_01d)%[sr_idle@timer5]on_game_timer = 50 | {+mishen_01d_death} sr_idle@timer6 %=run_tutorial(ostrova_mishen_01d_death) =give_task(give_ostrova_tir_mishen_01e)%[sr_idle@timer6]on_game_timer = 50 | {+mishen_01e_death} sr_idle@timer7 %=run_tutorial(ostrova_mishen_01e_death) =give_task(give_ostrova_tir_mishen_01g)%[sr_idle@timer7]on_game_timer = 50 | {+mishen_01g_death} sr_idle@time %=run_tutorial(ostrova_mishen_01g_death)%[sr_idle@time]on_game_timer = 40 | sr_idle@nil %=run_tutorial(ostrova_tir_end) +tir_end%[sr_idle@nil] Что важно знать о следующем: =run_tutorial(имя_туториала) - старт туториала =give_task(имя_задания) - старт на выдачу задания. Возможна замена разрушаемого объекта на простое событие из диалога, но рестриктор для контроля всё равно необходим. Далее нам надо определится, что мы хотим получить в результате? Какой квест и наполнение? На примере видео про тир, рассмотрим вариант с мишенями. Для этого мы заспавнили уже в алспавн стартовую мишень, а остальные будем спавнить через скрипты: function spawn_mishen_01a()alife():create("ostrova_mishen_01a",vector():set(-101.05,50.04,-174.32),58343,0)endfunction spawn_mishen_01b()alife():create("ostrova_mishen_01b",vector():set(200.96,21.30,-441.99),58343,0)endfunction spawn_mishen_01c()alife():create("ostrova_mishen_01c",vector():set(178.17,31.14,441.98),58343,0)endfunction spawn_mishen_01d()alife():create("ostrova_mishen_01d",vector():set(-169.28,54.88,227.79),58343,0)endfunction spawn_mishen_01e()alife():create("ostrova_mishen_01e",vector():set(-32.02,44.36,-5.87),58343,0)endfunction spawn_mishen_01g()alife():create("ostrova_mishen_01g",vector():set(-159.79,29.50,-248.43),58343,0)endfunction spawn_mishen_01_quest()alife():create("ostrova_mishen_01_quest",vector():set(-71.97,60.66,-70.03),58343,0)end со следующими свойствами: [ostrova_mishen_01a]$spawn = "dynamic_objects\ostrova_mishen_01a"visual = tir\mishen_01a.ogffixed_bones = rootcustom_data = scripts\ostrova\ostrova_mishen_01a.ltxGroupControlSection = spawn_groupclass = O_DSTR_Sremove_time = 60; after this time unbreaked removable bone will be removedscript_binding = bind_physic_object.initstory_id = ostrova_mishen_01a[ostrova_mishen_01b]$spawn = "dynamic_objects\ostrova_mishen_01a"visual = tir\mishen_01a.ogffixed_bones = rootcustom_data = scripts\ostrova\ostrova_mishen_01b.ltxGroupControlSection = spawn_groupclass = O_DSTR_Sremove_time = 60; after this time unbreaked removable bone will be removedscript_binding = bind_physic_object.initstory_id = ostrova_mishen_01b[ostrova_mishen_01c]$spawn = "dynamic_objects\ostrova_mishen_01a"visual = tir\mishen_01a.ogffixed_bones = rootcustom_data = scripts\ostrova\ostrova_mishen_01c.ltxGroupControlSection = spawn_groupclass = O_DSTR_Sremove_time = 60; after this time unbreaked removable bone will be removedscript_binding = bind_physic_object.initstory_id = ostrova_mishen_01c[ostrova_mishen_01d]$spawn = "dynamic_objects\ostrova_mishen_01a"visual = tir\mishen_01a.ogffixed_bones = rootcustom_data = scripts\ostrova\ostrova_mishen_01d.ltxGroupControlSection = spawn_groupclass = O_DSTR_Sremove_time = 60; after this time unbreaked removable bone will be removedscript_binding = bind_physic_object.initstory_id = ostrova_mishen_01d[ostrova_mishen_01e]$spawn = "dynamic_objects\ostrova_mishen_01a"visual = tir\mishen_01a.ogffixed_bones = rootcustom_data = scripts\ostrova\ostrova_mishen_01e.ltxGroupControlSection = spawn_groupclass = O_DSTR_Sremove_time = 60; after this time unbreaked removable bone will be removedscript_binding = bind_physic_object.initstory_id = ostrova_mishen_01e[ostrova_mishen_01g]$spawn = "dynamic_objects\ostrova_mishen_01a"visual = tir\mishen_01a.ogffixed_bones = rootcustom_data = scripts\ostrova\ostrova_mishen_01g.ltxGroupControlSection = spawn_groupclass = O_DSTR_Sremove_time = 60; after this time unbreaked removable bone will be removedscript_binding = bind_physic_object.initstory_id = ostrova_mishen_01g имеющих свойства разрушаемого объекта: ;--- destroyed sections --------------------------------------------------------;-------------------------------------------------------------------------------;--- disable -------------------------------------------------------------------;-------------------------------------------------------------------------------[disable]linear_factor = 0.5angular_factor = 0.5;-------------------------------------------------------------------------------;--- collide -------------------------------------------------------------------;-------------------------------------------------------------------------------[collide]not_collide_parts;-------------------------------------------------------------------------------;--- destroyed part ------------------------------------------------------------;-------------------------------------------------------------------------------[destroyed]tir\mishen_01_crash[autoremove_parts]time = 60;-------------------------------------------------------------------------------;--- damage params -------------------------------------------------------------;-------------------------------------------------------------------------------[collision_damage]root = 0.9link = 0.2base = 1.40centr = 0.01;-------------------------------------------------------------------------------;--- particles -----------------------------------------------------------------;-------------------------------------------------------------------------------[particles]destroy_particles =;-------------------------------------------------------------------------------;--- particle_bones ------------------------------------------------------------;-------------------------------------------------------------------------------[particle_bones]link = 0.0, 1.0, 0.5root = 0.0, 1.0, 0.5centr = 0.0, 1.0, 0.5base = 0.0, 1.0, 0.5;-------------------------------------------------------------------------------;--- sound ---------------------------------------------------------------------;-------------------------------------------------------------------------------[sound]break_sound = material\human\step\n_grass_2;-------------------------------------------------------------------------------;--- damage_bones --------------------------------------------------------------;-------------------------------------------------------------------------------;bone_name = ,<-1>,; - коэфф. изменения хита (уменьшения здоровья); - коэфф. изменения величины открытой раны - незадействован;-------------------------------------------------------------------------------default = 1.0, -1, 0.0[immunities]burn_immunity = 0.0000005 ;коэффициенты иммунитетаstrike_immunity = 0.000005shock_immunity = 0wound_immunity = 0radiation_immunity = 0telepatic_immunity = 0chemical_burn_immunity = 0explosion_immunity = 0.4fire_wound_immunity = 1.7;-------------------------------------------------------------------------------;--- impulse_transition --------------------------------------------------------;-------------------------------------------------------------------------------[impulse_transition_to_parts]random_min = 2.0 ; величина случайно направленного импульса пропорционально массе нового объектаrandom_hit_imp = 1.0 ; величина случайно направленного импульса пропорционально разрушающему хиту;ref_bone ; кость из по которой определяется скорость для частей у который связь не задана, по умолчанию рутimp_transition_factor = 1.0 ; фактор с которым прикладывается хит по исходному объекту ко всем частямlv_transition_factor = 0.1 ; коэффициент передачи линейной скоростиav_transition_factor = 0.1 ; коэффициент передачи угловой скорости;-------------------------------------------------------------------------------;------ End params -------------------------------------------------------------;------------------------------------------------------------------------------- Для управления спавном, нам и понадобятся туториалы: <ostrova_tir_start> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\pda\pda_alarm</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768"></texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\pda\pda_alarm</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768"></texture> </auto_static> </global_wnd_16> <item> <length_sec>5.1</length_sec> <function_on_stop>xr_effects.zat_a1_tutorial_end_give</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_tir_start> <ostrova_tir_end> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\pda\pda_alarm</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">ui\ui_ostrova_tir_end</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\pda\pda_alarm</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">ui\ui_ostrova_tir_end</texture> </auto_static> </global_wnd_16> <item> <length_sec>5.1</length_sec> <function_on_stop>xr_effects.zat_a1_tutorial_end_give</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_tir_end> <ostrova_mishen_01_guest_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\pda\pda_alarm</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">ui\ui_ostrova_tir_start</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\pda\pda_alarm</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">ui\ui_ostrova_tir_start</texture> </auto_static> </global_wnd_16> <item> <length_sec>4</length_sec> <function_on_stop>ostrova_spawn.spawn_mishen_01a</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_mishen_01_guest_death> <ostrova_mishen_01a_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\bridge\motor_stop</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\bridge\motor_stop</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd_16> <item> <length_sec>2</length_sec> <function_on_stop>ostrova_spawn.spawn_mishen_01b</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_mishen_01a_death> <ostrova_mishen_01b_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\bridge\motor_stop</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\bridge\motor_stop</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd_16> <item> <length_sec>2</length_sec> <function_on_stop>ostrova_spawn.spawn_mishen_01c</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_mishen_01b_death> <ostrova_mishen_01c_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\bridge\motor_stop</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\bridge\motor_stop</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd_16> <item> <length_sec>2</length_sec> <function_on_stop>ostrova_spawn.spawn_mishen_01d</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_mishen_01c_death> <ostrova_mishen_01d_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\bridge\motor_stop</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\bridge\motor_stop</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd_16> <item> <length_sec>2</length_sec> <function_on_stop>ostrova_spawn.spawn_mishen_01e</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_mishen_01d_death> <ostrova_mishen_01e_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\bridge\motor_stop</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\bridge\motor_stop</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd_16> <item> <length_sec>2</length_sec> <function_on_stop>ostrova_spawn.spawn_mishen_01g</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_mishen_01e_death> <ostrova_mishen_01g_death> <global_wnd width="1024" height="768"> <pause_state>off</pause_state> <sound>device\bridge\motor_stop</sound> <auto_static x="1" y="1" width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd> <global_wnd_16 x="0" y="0" width="1024" height="768" stretch="1"> <sound>device\bridge\motor_stop</sound> <auto_static width="1024" height="768" stretch="1"> <texture x="1" y="1" width="1024" height="768">award\award_1</texture> </auto_static> </global_wnd_16> <item> <length_sec>2</length_sec> <function_on_stop>xr_effects.zat_a1_tutorial_end_give</function_on_stop> <grab_input>off</grab_input> <main_wnd/> </item> </ostrova_mishen_01g_death> Для отображения маркеров мишеней нам понадобится выдача заданий give_task [give_ostrova_tir_mishen_01a]icon = ui_inGame2_Mesta_evakuatsiiprior = 306storyline = falsetitle = title_ostrova_tir_mishen_01a_kaban_namedescr = descr_ostrova_tir_mishen_01a_kaban_texttarget = ostrova_mishen_01acondlist_0 = {+mishen_01a_death} completeon_complete = %=play_sound(shooting_target_hit)%[give_ostrova_tir_mishen_01b]icon = ui_inGame2_Mesta_evakuatsiiprior = 306storyline = falsetitle = title_ostrova_tir_mishen_01b_kaban_namedescr = descr_ostrova_tir_mishen_01b_kaban_texttarget = ostrova_mishen_01bcondlist_0 = {+mishen_01b_death} completeon_complete = %=play_sound(shooting_target_hit)%[give_ostrova_tir_mishen_01c]icon = ui_inGame2_Mesta_evakuatsiiprior = 306storyline = falsetitle = title_ostrova_tir_mishen_01c_kaban_namedescr = descr_ostrova_tir_mishen_01c_kaban_texttarget = ostrova_mishen_01ccondlist_0 = {+mishen_01c_death} completeon_complete = %=play_sound(shooting_target_hit)%[give_ostrova_tir_mishen_01d]icon = ui_inGame2_Mesta_evakuatsiiprior = 306storyline = falsetitle = title_ostrova_tir_mishen_01d_kaban_namedescr = descr_ostrova_tir_mishen_01d_kaban_texttarget = ostrova_mishen_01dcondlist_0 = {+mishen_01d_death} completeon_complete = %=play_sound(shooting_target_hit)%[give_ostrova_tir_mishen_01e]icon = ui_inGame2_Mesta_evakuatsiiprior = 306storyline = falsetitle = title_ostrova_tir_mishen_01e_kaban_namedescr = descr_ostrova_tir_mishen_01e_kaban_texttarget = ostrova_mishen_01econdlist_0 = {+mishen_01e_death} completeon_complete = %=play_sound(shooting_target_hit)%[give_ostrova_tir_mishen_01g]icon = ui_inGame2_Mesta_evakuatsiiprior = 306storyline = falsetitle = title_ostrova_tir_mishen_01g_kaban_namedescr = descr_ostrova_tir_mishen_01g_kaban_texttarget = ostrova_mishen_01gcondlist_0 = {+mishen_01g_death} completeon_complete = %=play_sound(shooting_target_hit)% Урок не закончен, пока я не скажу, что закончил. От автора: не советую тупо копировать со страницы скрипты и конфиги, скачайте архив вверху. Изменено 12 Октября 2016 пользователем Дизель 2 2 3 Ссылка на комментарий
Шиш 2 720 Опубликовано 12 Октября 2016 Поделиться Опубликовано 12 Октября 2016 Вечер добрый Дизель, это че ты за тему открыл? Че за туториалы, тьфу еле выговорил, а че их на ТЧ нет. Едешь так в транспорте рядом с человеком, нечего не подозреваешь. А он, эльф! 80 го уровня! Ссылка на комментарий
Expropriator 2 118 Опубликовано 12 Октября 2016 Автор Поделиться Опубликовано 12 Октября 2016 (изменено) @Шиш, они есть на ТЧ, ты через них интру, лого, все видеоролики короче и титры смотришь. Почему именно ЗП, потому как структура файлов отличается, да и сами функции тоже, однако. Я вот не уверен, что ТЧ поддерживает: %=run_tutorial(имя_туториала)% Если неправ - поправьте?! Изменено 12 Октября 2016 пользователем Дизель 1 Ссылка на комментарий
aka_sektor 1 476 Опубликовано 13 Октября 2016 Поделиться Опубликовано 13 Октября 2016 (изменено) @Дизель, а как в ЧН на Агро было? Также реализовано? Изменено 13 Октября 2016 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Expropriator 2 118 Опубликовано 13 Октября 2016 Автор Поделиться Опубликовано 13 Октября 2016 (изменено) @aka_sektor, про ЧН не могу сказать, возможно там уже присутствует такой вызов. Изменено 13 Октября 2016 пользователем Дизель Ссылка на комментарий
Akello 175 Опубликовано 20 Октября 2016 Поделиться Опубликовано 20 Октября 2016 Как тут на островах заспавнить мутантов? Cпавнить неписей не проблема, подсмотрел в других уроках. Ссылка на комментарий
Expropriator 2 118 Опубликовано 20 Октября 2016 Автор Поделиться Опубликовано 20 Октября 2016 (изменено) @Akello, http://www.amk-team.ru/forum/topic/8230-cop-kovyriaemsia-v-fajlakh/?p=1022022 Изменено 20 Октября 2016 пользователем Дизель 1 Ссылка на комментарий
EreticTV 0 Опубликовано 20 Мая 2018 Поделиться Опубликовано 20 Мая 2018 Есть кто живой? Может я не туда пишу, извините, но у меня вопрос. Подскажите пожалуйста, как удалить сюжет из ЗП? Какие файлы ковырять? Ссылка на комментарий
Загир 1 Опубликовано 17 Декабря 2022 Поделиться Опубликовано 17 Декабря 2022 Возможность движка где лучше тч или зп? хочу добавить в локацию много новых объектов? Ссылка на комментарий
pz_3 391 Опубликовано 17 Декабря 2022 Поделиться Опубликовано 17 Декабря 2022 @Загир Оба движка +- идентично могут работать с добавленными с помощью скриптов\аллспауна объектами. Принципиальная разница - Рендеры, ПДА, оружейная система. Все остальное вцелом идентично. Ну есть еще некоторые особенности в плане того, что ЗП ориентирован на "отрядную" схему поведения НПЦ, в отличии от ТЧ где алайф пытается работать с каждым НПЦ в отдельности и некоторые особенности скриптов ЗП, но это уже нужно смотреть конкретно. Собственно для начала тебе лучше бы определиться, что ты хочешь сделать. Какой продолжительности. На каком объеме локаций. Какая из двух игр в оригинале лично тебе ближе. И уже от этого оттолкнуться в выборе платформы. Но мне что то подсказывает, что у тебя сиюминутная заинтересованность, которая едва ли выльется в мод. 1 Ссылка на комментарий
Загир 1 Опубликовано 19 Декабря 2022 Поделиться Опубликовано 19 Декабря 2022 В моде 10 персонажей у каждого своя крестовая линия,вот не знаю обеденит сюжет как в Солянке или отдельно по главам сделать.1ученый главный он слился с артефактом монолита и бесмертен,против него выступит тень монолита,Бессмертный против бесмертного итог они вместе телепортируются в лок простран пузырь, где нет выхода.2 геолог изучающий аном явления надо сделать в локах аном поля 5 стихий земля камен виды артов, вода итд, его судьба аномалия проглотила его, гг надо найти.3член группы апокалипсис и он управляет 4всадниками апокалипсис это люди их тоже надо остоновить.4член групы оружейник и добавим некоторые оружия из фалаут и вил рок,битва будет жесткой.5член групы коликционер и он будет творит всякие пакости, и он спасёт 1главного из лок простр пузырь.там ещё учёный у которого слил арты с людьми и мутантами,священник управляет 10 заповедями 10человек каждый управляет опасных мутантом зоны,у каждого будет арт убивающий при приближении,Японец знающий путь самурая у него арт времени и12 командиров. Есть хакер который будет мешать гг,у него 23человека букв так называемый вирусами Для зп нужен такой специалист как заурус,на ТЧ уже сами разрабы оп Ссылка на комментарий
pz_3 391 Опубликовано 19 Декабря 2022 Поделиться Опубликовано 19 Декабря 2022 @Загир Эм. Вообще не улавливаю сути этой портянки, в чем твой вопрос? Рад, что у тебя есть идеи, но их реализация и её формат зависит только от тебя. Заурус, кстати, не работал никогда с ЗП(насколько мне известно), да и ОПшники это, конечно, хорошие ребята, но толкогового кодера им всегда недостовало. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти