Ищу напарников для развития проекта! Программисты Delphi, мододелы-консультанты
мой скайп
edifier751
(Начало)
Разработка "скелета" программы.
(prepreAlfa)
Создать основные редакторы для создания полноценного квеста (диалоги, НПС, квесты, поршни, функции) То есть, реализовать базовые и минимальные функциональные возможности соответствующих редакторов.
(preAlfa)
Адаптация базового функционала к "Зов Припяти" => (preAlfa_CoP)
Адаптация базового функционала к "Чистое Небо" => (preAlfa_CoP_CS)
Рефакторинг и оптимизация.
(Alfa)
Добавление уникальных редакторов во все версии трилогии.
[alife] schedule_min = milliseconds schedule_max = milliseconds process_time = microseconds update_monster_factor = time_factor = скорость для демонстрации смены дня и ночи, 1 = реальное время normal_time_factor = животные в оффлайне перемещаются со скоростью, делённой на этот фактор (чтобы не бегали очень быстро) max_combat_iteration_count = 5maximum combat iteration count switch_distance = Лучше не трогать! Отвечает за радиус загрузки локации в метрах switch_factor = start_time = время начала игры (16:30:00) start_date = дата начала игры autosave_interval = отвечает за промежуток между автоматическим сохранением игры. delay_autosave_interval = objects_per_update = start_game_callback = on starting new game or loading saved one
[Оружие] ;----------------- GroupControlSection = discovery_dependency = $spawn = name and section in level editor $npc =Может ли НПС использовать оружие (секцию) (?) $prefetch = scheduled =Опция для ALife Simulator cform = class = class of the weapon that corresponding to CPP class min_radius =Минимальный радиус на котором стреляет НПС или начинает стрелять (?) max_radius =Максимальный радиус на котором стреляет НПС или начинает стрелять (?) max_zoom_factor = description = ссылка на файл "string_table_enc_weapons.xml" с описанием оружия ef_main_weapon_type = основной тип, к которому принадлежит оружие ef_weapon_type = подтип, к которому принадлежит оружие attach_angle_offset = attach_position_offset = attach_bone_name = auto_attach = holder_range_modifier = во сколько раз увеличивается eye_range holder_fov_modifier = во сколько раз увеличивается eye_fov tri_state_reload = cost =Базовая цена (торговцы умножают её на некоторый коэффициент) weapon_class = класс оружия show_ammo = startup_ammo = ammo_limit = (obsolete) в игре не используется, наверно задумывалось как ограничение ношения ссобой патронов ammo_current = ammo_elapsed = obsolete ammo_mag_size =Размер магазина fire_modes = режимы ведения огня ammo_class =Имена ltx-секций с названиями патронов, которыми может стрелять оружие grenade_class = name of the ltx-section of used grenades launch_speed = hand_dependence = (возможно, речь идет о качании ствола) how many hands (1 or 2) we used to hold weapon in single_handed = держится ли только в одной руке slot = слот в инвентаре(1 - knife slot, 2 - pistol, 3 - rifle, 4 - grenade, 5 - apparatus) animation_slot = вид анимации (для пистолета/для винтовки) inv_name = name in inventory inv_name_short = ссылка на файл "string_table_enc_weapons.xml" с коротким названием оружия inv_weight = вес в инвентаре inv_grid_width = координаты первого угла иконки по x inv_grid_height = координаты первого угла иконки по y inv_grid_x = координаты второго угла иконки по x inv_grid_y = координаты второго угла иконки по y kill_msg_x = kill_msg_y = kill_msg_width = kill_msg_height = dispersion_start = fire_dispersion_base = угол (в градусах) базовой дисперсии оружия (оружия зажатого в тисках) control_inertion_factor = sprint_allowed = определяет, в состоянии ли бежать персонаж с этой пушкой (true — да, false — нет). ;отдача cam_relax_speed = скорость возврата в исходное положение cam_relax_speed_ai = cam_dispersion = увеличения угла (в градусах) с каждым выстрелом cam_dispersion_inc = увеличениe cam_dispersion с каждым выстрелом cam_dispertion_frac = ствол будет подыматься на cam_dispersion*cam_dispertion_frac +- cam_dispersion*(1-cam_dispertion_frac) cam_max_angle = максимальный угол отдачи cam_max_angle_horz = (degree) maximum shot horizontal degree cam_step_angle_horz = (degree) size of step camera moved in horizontal position while shooting cam_horz_factor = cam_horz_prob = disp_vel_factor = disp_crouch_factor = disp_jump_factor = fire_dispersion_condition_factor = увеличение дисперсии в процентах при максимальном износе misfire_probability = вероятность осечки при максимальном износе misfire_condition_k = порог, после которого оружие может заклинивать (0.01=1 <img src="/.s/sm/23/wacko.gif" border="0" align="absmiddle" alt="wacko" /> condition_shot_dec = увеличение износа при каждом выстреле fire_point = точка выстрела fire_point2 = точка выстрела 2 (when shooting with secondary fire) flame_particles = particles for shooting effects smoke_particles = grenade_flame_particles = shell_point = точка вылета гильз shell_particles = модель гильз, отлетающих в разные стороны при стрельбе. PDM_disp_base = PDM_disp_vel_factor = PDM_disp_accel_factor = PDM_crouch = PDM_crouch_no_acc = ; ttc hit_power = урон от оружия. Четыре числа: первое минимальный ущерб, последнее — максимальный, средние два, промежуточный. hit_impulse = сила пули, которая передается жертве hit_type = тип повреждения, наносимого оружием. Огнестрельное ранение — fire_wound, ножевое — wound и wound_2, взрыв — explosion. fire_distance = дальнобойность bullet_speed = начальная скорость пули rpm = Скорострельность rpm_empty_click = use_aim_bullet = Поддерживается ли первая суппер пуля time_to_aim = silencer_hit_power = урон от оружия с глушителем silencer_hit_impulse = сила пули с глушителем silencer_fire_distance = дальнобойность с глушителем silencer_bullet_speed = начальная скорость пули с глушителем hud = внешний вид оружия normal = position = позиция по отношению к игроку (?) orientation = направление, в которое смотрит ствол (?) direction = shell_dir = grenade_vel = weapon_min_queue_size_far = минимальная очередь на дальние дистанции. Одиночные. weapon_max_queue_size_far = Максимум -6 патронов в очереди. В принципе, здесь можно и поменьше, но практика показывает, что такой огонь довольно эффективен. weapon_min_queue_interval_far = Периодичность выстрелов. Как я понял, в миллисекундах. weapon_max_queue_interval_far = Секунда на прицеливание их же устроит? Но дальше уж надо жать на курок. weapon_min_queue_size_close = вблизи (почти в упор) им надо шмалять не щадя обоймы. Пока сталкер Меченый не опомнился. weapon_max_queue_size_close = при удаче они даже всадят всю обойму <img src="/.s/sm/23/smile.gif" border="0" align="absmiddle" alt="smile" /> weapon_min_queue_interval_close = интервал на ближних дистанциях также минимальный: с такого расстояния нужно стрелять не думая. weapon_max_queue_interval_close = ;--STRAP PARAMETERS----------------------------------------------------------------- strap_position = position (offset) and orientation of the weapon when it is strapped strap_orientation = (3rd person view in degrees) strap_bone0 = strap_bone1 = visual = модель оружия, используемая NPC, а также игроком при виде от третьего лица fragment_speed = explode_duration = light_color = params for light during the fire light_range = radius light_var_color = light_var_range = light_time = light_disabled = ph_mass = физическая масса, используемая при расчетах ;addons zoom_enabled = (on,off)Вкл/выкл возможность зума zoom_hide_crosshair = scope_texture = текстура прицельной сетки scope_zoom_factor = значение зума (fov), зависимость здесь обратно пропорциональна scope_status = снайперский прицел, 0 - no addon, 1 - permanent, 2 - attachable scope_name = название прицепляемого прицела scope_x = положение прицела на картинке в инвентаре, x scope_y = положение прицела на картинке в инвентаре, y weapon_remove_time = silencer_status = глушитель, 0 - no addon, 1 - permanent, 2 - attachable silencer_name = название прицепляемого глушителя silencer_x = положение глушителя на картинке в инвентаре, x silencer_y = положение глушителя на картинке в инвентаре, y grenade_launcher_status = подствольник, 0 - no addon, 1 - permanent, 2 - attachable grenade_launcher_name = название прицепляемого подствольника grenade_launcher_x = положение подствольника на картинке в инвентаре, x grenade_launcher_y = положение подствольника на картинке в инвентаре, y ;sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_draw = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_holster = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_gyro = snd_zoomin = snd_zoomout = snd_shoot = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_shoot1 = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_shoot2 = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_shoot3 = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_shoot_duplet = snd_shoot_1 = snd_reload_1 = snd_empty = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_reload = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_close = snd_shoot_grenade = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_reload_grenade = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_switch = sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_explode = snd_open_weapon = snd_add_cartridge = snd_close_weapon = grenade_bone = rocket_class = wallmark_section = auto_spawn_ammo = vision_present = vis_frame_speed = vis_frame_color = found_snd = lens_texture = lens_texture_x = lens_texture_y = lens_texture_w = lens_texture_h = ;params when silencer is attached ;similar to corresponding params without prefix silencer_ ;silencer_flame_particles= weapons\generic_weapon01 silencer_smoke_particles= snd_silncer_shot = silencer_light_color = silencer_light_range = silencer_light_var_color= silencer_light_var_range= silencer_light_time =
Сообщение отредактировал KomeR - Четверг, 19.01.2017, 17:21
Как я и писал в постах раньше (там где последний видос выкладывал), потихоньку работаю над новым обликом. А так как функционал переносится тот-же, то и новостей не было. НО! Сегодняшняя новость, я думаю, будет интересна всем мододелам. Буквально вчера я начал тестировать, с минимальным функционалом, возможность "слияния\объединеня" 2х диалогов. То есть, это такая фича с помощью которой можно будет из 2х диалогов создать один. Причем без каких-либо ручных правок. За вас всё сделает прога! Даже фразы переименовывать не нужно. (правда некоторые проблемы ещё имеются) Такая фича даст возможность сценаристам независимо писать диалоги, затем экспортировать/импортировать и совмещать с каким-то общим диалогом, например обговорённым и созданным заранее.
Привожу список возможностей проги на сегодня: 1. Возможность выбора с какой игрой в данный момент нужно работать. 2. Имеется выбор для загрузки определенных групп файлов (диалоги, game_string, НПС, квесты, LTX-файлы, поршни, функции) 3. Присутствуют редакторы (пока это громко сказано, нет функционала сохранения в файл, но есть генерирование структуры для записи в файл): а) РДиалогов - просмотр, тестирование, объединение, манипуляции с имеющимися фразами, работа с поршнями. б) РНПС - просмотр, изменение, генерирование структуры. Куча фильтров. в) РКвестов (однотипных и сюжетных) - просмотр, изменение, генерирование структуры. Фильтр по файлам. г) РОружия - просмотр, изменение. Ведется история изменений. Все изменения пишутся в файл оружия сразу. 4. Просмотр ЛТХ секций в виде дерева, с возможностью поиска по названию секции или по ключу в секции. 5. Просмотр инфопорций с возможностью комбинированных фильтров, пример: фильтр по выдаче квеста И по записи в журнал. 6. Просмотр функций(и его тела) в виде привычного, по пред. версиям, дерева.
В планах допиливание редакторов до их полной работоспособности, то есть для применения непосредственно в моддинге, с возможностью экспорта/импорта тех или иных файлов.
Есть вопросы или предложения по проге? Задавайте и предлагайте! Будем обсуждать возможности, может придумаем что-то новое. Попробуйте задать себе вопрос: "Чего мне не хватает при создании мода?" А ответ на этот вопрос добавить сюда. Это и будет Вашим предложением!
И по традиции , если ты программируешь (или начинаешь кодить) на паскале (Delphi) - то добро пожаловать! Будем прогу пилить дальше вместе.
Пы.Сы.: видосы не прикладываю ибо показывать пока нечего.
Загорелся я значит идеей опустошить/зачистить локацию "escape".
Полез в нет для поиска инфы на эту тему.... набрёл на этот пост. В итоге качнул ActivePerl с оффсайта и ACDC с AMK форума. Потом я подумал: "Ну не в ручную же редактировать секции файлов alife_*.ltx!" Короче набросал что-то типа редактора...
Удалять можно сразу несколько элементов но только с третьего уровня (на скрине показано) Но добавлять элементы (секции) пока нельзя
Для работы с распакованным all.spawn нужно будет: 1. в идеале - немного подправить сам фал ACDC. 2. либо после каждой декомпиляции файла править файл all.ltx в секции [alife] должно быть так source_files = alife_l01_escape.ltx, alife_l07_military.ltx, alife_l05_bar.ltx, и так далее
Дополнение к редактору файлов "alife_*.ltx" из распакованного all.spawn
Добавлена возможность создавать новые секции. Номер для новой секции подбирается автоматом. Также проверяется вводимое имя (ключ в секции"Name") на уникальность в пределах файла (хотя это не обязательное условие - проверено). В итоге создаётся секция с двумя строчками: section_name = название_секции name = ваше_название Остальное нужно вводить ручками... Планирую создать некое подобие базы для хранения минимального набора ключей для каждой секции (благо "section_name" не так уж и много) с возможностью изменения этой базы вручную.
Если у кого есть наработки по этому направлению, да и вообще в отношении файла all.spawn, просьба поделиться.
Очередное дополнение к редактору файлов "alife_*.ltx" из распакованного all.spawn
Добавил то, что планировал. А именно: 1. Теперь можно создавать не только элеметы 3-го уровня, как показанно на скрине выше, но и 2-го. 2. Для создания элемента на 2м уровне предлагается выбор секций берущиеся из "файла-базы", в котором помимо названий секций есть и "тело" этой секции. В теле собраны всевозможные ключи из распакованных файлов. Таким образом создаётся готовая форма для заполнения значениями.
Пы.Сы.: 1й уровень - название файла alife_*.ltx, 2й уровень - тип секции (section_name), 3й уровень - объекты на основе секции (name)
Осталось ещё к компиляторам SDK прикрутить твоё гуи
Вроде пошутил\прикололся, а ведь это можно замутить!
ЦитатаFonSwong ()
Правда пока что всё очень запутанно
Ну дык прога пока-что "PrePreAlfa"
Потихоньку работаю над РКвестов для ТЧ. Редактор уже умеет: 1. Создавать квест. 2. Создавать\удалять подзадачу. 3. Генерировать и сохранять xml - структуру. Редактор учится: 1. Создавать новый файл для квестов. (готово) 2. Работать с поршнями и функциями (добавление и удаление) 3. Удалять квест. (готово)
Собственно ничего важного. Появилась приятная мелочь - отображение хода загрузки (теперь прога показывает что грузит, например: "Загружаю: ФУНКЦИИ", "Построение списков" и так далее).
В данный момент разрабатываю внешний вид РКвестов для Зова Припяти.
Имеется идея по созданию "избранного" в проге куда можно будет добавлять какие-либо объекты (диалоги, поршни, квесты и т.д.). К примеру, создается сюжетная линия, для этого нужны готовые: функции, поршни, квесты, предметы, диалоги, НПС. То есть, изначально создается некий набор данных для дальнейшей разработки и собирается в одном месте, откуда и происходит быстрый доступ к нужным, на данном этапе разработки мода, объектам.
Есть и ещё одна мысля, хотя она уже была озвучена но теперь она "расширена". Как насчет того, что бы в проге была возможность добавлять к любому объекту (поршень, квест, диалог, ЛТХ-секция) свой комментарий\пояснительный_текст?
Пы.Сы.: Все эти идеи и мысли будут "вынашиваться" минимум до версии проги "prepreBeta". Но тут есть интересный вопрос: "Нужно ли это вообще реализовывать в проге?"
После ввода избранного в прогу, я решил реализовать "Drag and Drop" вместо контекстного меню с вариантом добавления в избранное и наоборот (из избранного куда-нибудь). На этом "D&D" я и завяз немного... Пришлось кое-что придумать, чтобы можно было легко соединить все имеющиеся, а так же будущие элементы управления в проге по средством "D&D". На данный момент подходит к концу доработка функционала "D&D". Уже сейчас можно добавлять в избранное 8 типов данных (диалоги, функции, рус.тексты, поршни, инисекции, НПС, квесты и алл.спавн) в виде их названий (уникальных имён). Избранное хранится в файле настроек в папке с игрой.
РКвестов для ЗП я оставлю таким же (как в посте №158)
Новую версию опубликую как только допилю РКвестов для ЗП и "D&D" во всём приложении.
Добавлено (26.12.2016, 17:46) --------------------------------------------- Выкладываю обзор текущих наработок по редатору квестов для ЗП. Редактор НЕ готов на 100% т.к. нет возможности редактировать параметр (target) в квестах. Однако реализовано следующее: 1. добавление/удаление condlist_? 2. добавление/удаление рус. текстов 3. добавление/удаление событий on_* 4. остальные дополнения и изменения можно увидеть на видео.
Добавлено (14.01.2017, 23:54) --------------------------------------------- Наконец-то я разобрался как работать с текстурами.... Примерно так может выглядеть выбор иконок из файла текстур.
Пы.сы.: У меня вопрос: файлы в папке "...\config\ui\*.xml" движок знает каждый в "лицо" или грузит все подряд, а потом по требованию выдаёт то, что нужно? Например: файл "ui_npc_unique.xml" может называться по другому не ломая отображения иконок персонажей в игре?
Выши мысли, идеи, предложения, критика по поводу обновленного РОружия?
Пы.Сы.: кнопки 1, 2 и т.д. под списком оружия, соответственно: number of slot in inventory we put weapon in (1 - knife slot, 2 - pistol, 3 - rifle, 4 - grenade, 5 - apparatus)
Пы.Сы.Сы: Все картинки (НПС, оружие и т.д.) берутся из файлов текстур в самой игре.