Ищу напарников для развития проекта! Программисты 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
что тебе не нравится в id? То, что иногда нарушается последовательность? Это говорит о том, что эта ветка диалога находится ниже.
Порядок начисления id фразам странный, я вот непойму его. Кстати после 9-ой фразы на одной ветке нормально добавляет? Предлагаю перед причислением нового id добавлять разделитель "_" Поиск тоже есть?
Сообщение отредактировал FonSwong - Четверг, 12.05.2016, 20:07
Кстати после 9-ой фразы на одной ветке нормально добавляет?
а ты попробуй всё было унорме!
ЦитатаFonSwong ()
Порядок начисления id фразам странный
вполне себе логичный.
ЦитатаFonSwong ()
добавлять разделитель "_"
идея с ним была, но схавает ли движок такой id? Я не проверял и меня устраивает (пока) нынешний алгоритм, докажи что он не рабочий и я его изменю.
Добавлено (12.05.2016, 20:16) --------------------------------------------- ur3icf, у тебя есть по-своему оформленные туторы? Т.е. не просто скачанный сборник, а что то найденное лично тобой? Если что, ждем ссылочку в этой теме)
KomeR, Я не качал ещё, меня не устраивает нагромождённость пока что, или тупо лень качать Мне в скриптах интереснее шариться, чем в диалогах Но за темой слежу, даж видосик смотрел, да да Насчёт хавает или нет, а ты проверь, я не пробовал, как-то не задумывался, что-то мне подсказывает что нет.
Может тебе еще и код выложить? Если примитивно то: "циферки" по порядку идут, а каждый дочерний элемент имеет ИД родителя + свой порядковый. Вот и вся логика. А если интересно, что же там после 9й фразы, качни и посмотри что он там генерит
Всё ты там правильно увидел, задачей генерации есть создание уникальных чисел для фраз с разным русским текстом, у меня был вариант генерации случайных чисел для ИД фраз в диапазоне от 1 до 1000, но он мне не понравился, плохо читался диалог в прстом блокноте
Изменения на сегодня: 1. Исправлено не чтение в дереве фраз самого верхнего элемента (там где название диалога), данные в него писались, но не читались для форматирования текста и заполнения поршней/функций тек. диалога. 2. Добавлено изменение русского текста через текстовое поле где оно отображается, на вкладке "Классический вид", причем если имеется перенос строки пробелом, то при сохранении изменений Enter заменяется на "/n" и соответственно читается этот символ как Enter (т.е. спецом вводить этот символ не нужно) 3. Чтение файлов "info_*.xml" реализованно через "system.ltx" и последнее 4. Наконец-то добавлен РКвестов для Тени Чернобыля.
На ближайшее время стоит задача по созданию РКвестов для Зова Припяти, но мне нужна инфа/объяснения по принципу работы файлов типа "tm_*.ltx". Вот то, что я понял: Имеется структура файла с квестами вида:
Где: 1. значение в [...] есть id задания - нужно для вызова этого задания через функцию give _task(). В файлах с русскими текстами перевода не имеет. 2. icon - присутствует во всех заданиях, значит обязательный параметр, как я понял ИД иконок берется из файлов в папке "gamedata\configs\ui" 3. prior - присутствует во всех заданиях, значит обязательный параметр, чем выше значение, тем выше приоритет задания 4. storyline - присутствует НЕ во всех заданиях, значит НЕ обязательный параметр (?), принимает значения = true, false 5. title - ИД строки, содержащей заголовок задания, присутствует НЕ во всех заданиях, но вместо него встречается (title_functor), объясните в чем разница? Имеет поддержку кондлиста. объясните пожалуйста синтаксис кондлиста. 6. descr - ИД строки, содержащей текст задания, присутствует НЕ во всех заданиях, но вместо него встречается (descr_functor), в чем разница? Имеет поддержку кондлиста. 7. target - куда/на кого поставить метку задания. Принимает значение "story_id" объекта (где их брать?) 8. Остальные параметры завязаны на кондлистах поэтому описывать не буду
Кондлисты. В чем разобрался я: кондлист разделён на несколько частей запятыми, каждая часть имеет 1 или 2 параметра - логическое выражение (ЛВ) и возвращающее значение (ВЗ), ЛВ записывается в {...}, причем "+" и "-" это проверка поршня на наличие и отсутствие соответственно, а вот что значит "=" "!" "%", я пока не разобрался. ВЗ, например в title, является ИД названия задания, в descr - ИД текста задания, как правило, кондлисты у них одинаковые.
Ну что, перерыв окончен, курсач почти готов Теперь можно и продолжить работу над редакторами... Жаль, что не поступило идей по оформлению РКвестов для Зова Припяти.
Есть пара изменений: 1. Добавлен поиск по всем данным диалога. 2. Правую и левую часть проги теперь можно спрятать (синяя полоска на скрине).
Пы.Сы.: новую версию выложу на следующей неделе, а пока буду пилить мелкие изменения в интерфейсной и программной части. Если есть предложения говорите, в след. версию добавлю.
Нашел и исправил косяк с не сохраняемой фразой (в видосе про него сказано). Также исправил выдачу сообщения про поршень, когда добавляешь функцию. Добавлен автоматический перенос поиска в выбранный диалог.