Ищу напарников для развития проекта! Программисты 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
KomeR, Планируешь ли, добавить проверку сложных диалогов? К примеру, если в стартовом диалоге присутствует несколько стартовых фраз от нпс, то они проверяются поршнями. А с учётом возможного развития сюжета, стартовых фраз может набежать огромное количество, и само собой кучу проверок поршней. И в итоге, частенько появляются вылеты: Description : No available phrase to say, dialog[имя_диалога] Простой пример стартового диалога с тремя разными стартами:
И плюс к этому, стартовый диалог должен заканчиваться привтественной фразой от нпс, которую он будет говорить при активации <actor_dialog>диалог</actor_dialog> Т.Е. Должна быть полная проверка на выполнение всех условий первой ветки, и ни одного выполнения условий второй ветки. И наоборот, если пошла вторая ветка.
П.С. Если перемудрил с вопросом, могу подробней описать.
Сообщение отредактировал ins33 - Суббота, 09.07.2016, 14:43
ins33, Привет. Это только со стартовыми диалогами или с <actor_dialog> та же хрень? По-моему это только со стартовыми.... В <actor_dialog>, если должны показаться сразу несколько фраз, вероятность появления этих фраз будет одинакова, однако покажется одна из них, с этим я не раз встречался, поэтому я и не задумывался о проверке. В общем я понял о какой проверке ты говоришь, если что я те в личку напишу, если будут вопросы, ОК?
Изменений пока нет, так как нет предложений! Будут замечания или предложения буду пилить дальше. А пока потихоньку изучаем "новые технологии" в программировании, что бы в будущем применять их в развитии проекта
BozKurt, потому и в скобках, что бы не звучало громко )) изучаю FireMonkey в Embarcadero Rad Studio 10.1 Berlin
там куча разных нововведений по сравнению с VCL и другой принцип создания визуальных компонентов. Ниже РОружия, в VCL это сложновато, а в FM проще. Например, компонент ListBox с возможностью отображения нескольких строк в одном элементе (Item'е)
BozKurt, с одной стороны синтаксис у него более "приянтный" или читабельный (нежели тот же С++). С другой стороны, на учебе мы изучили только Delphi. На очереди С++ , а практикой будет движок Сталкера Пы.Сы.: Кстати, есть уроки по правке движка? Пы.Сы.Сы.: FireMonkey не только на Delphi, но и на C++
KomeR, я не агитирую, просто есть ещё C# c простыми WinForms или с, чуть посложнее, WPF. В любом случае - сам язык очень гибкий, гибче чем Delphi. Касательно уроков по правкам движка - вряд ли такие есть в природе. P.S. Я знаю, что есть на плюсах, просто чисто логически сделал вывод - знающий плюсы, в 90% случаях не будет делать такой гуи, ибо просто задолбается. :-)
Про С# наслышан... На счет гибкости не спорю, хоть я и не писал на C подобных, но все-таки в Rad Studio можно написать один, но кросс платформенный код (на Delphi или C++). Тем более, что сейчас, можно сказать, время гаджетов. А изучать что-то новое для программирования этих самых гаджетов - долго. Можно сказать поэтому я пока и сижу на Rad Studio (пока на Delphi, потом может на С++ перейду, время покажет ) а не на Visual Studio (хотя я на нем С подобные пытался изучать сам ).
Пы.Сы.: может я повторюсь, но: в коддинге я новичок и эту прогу я пишу чисто для саморазвития.
А теперь немного букАв для тех, кто следит за версиями:
на днях запишу видос с новыми фичами, но уже в новом интерфейсе. Если коротко то, я снова пишу прогу заново (нет, я не забросил SRTP_STALKER_world, если будут предложения/не доработки постараюсь их добавить/исправить). Здесь я стараюсь брать все успешное из пред. версий и вносить новые возможности. Например: 1. Тестирую возможность сохранения истории изменений в свойствах оружия, т.е. при первом изменении любого значения свойства на другое, в файл истории записывается оригинальное значение (единожды) и новое значение с датой изменения. Ну и конечно, ориг. значение свойства можно восстановить в один клик. 2. Так же тестируется и дорабатывается "Тест диалога", т.е. можно выбрать диалог и пройтись по нему "как в игре", при этом при каждом выборе фраз для ответа все нексты этой фразы пропускаются через фильтр поршней и если условие фразы на появление подходит, то фразы покажутся. 3. Думаю о вводе наипростейшего редактора функций. Сейчас я расширил список функций, добавив возможность просмотра "тела" этой функции прям в проге. Осталось добавить возможность изменения тела функции.
Пы.Сы.Сы.: Жду любых предложений по проге, а так же напарника для коддинга на Delphi (хоть новичка, будем расти вместе )