Редактирование движка |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Редактирование движка |
22.01.2016, 17:18
Сообщение
#4041
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Редактирование собранного движка Проект Cut X-Ray Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками. Авторы: SkyLoader, _призрак_ Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02 Адрес проекта на Google Code: Страница на Moddb: Пак 1 1. Исправление вылета "can't find rank" для оружий. 2. Смерть от первого лица. Видео: 3. Collide Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов. Видео: 4. Круглый прицел. Возвращен круглый прицел вместо перекрестья, как билдах. 5. Исправление вида от 3-го лица. Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра. Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить. Пак 2 1. Luminosity progress (только ТЧ) Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах. 2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП). 3. Руки на руле в машине. (только ТЧ и ЧН) Видео: 4. Отсутствие распознавания неписей перекрестием: При наведении на непися перекрестье имеет дефолтный цвет. Также не показывает информацию о неписе, если смотреть на него. 5. Bind_object: Возможность использовать скрипты в мультиплеере. 6. Из оружия на классе бинокля можно стрелять (только ТЧ) Пак 3 1. Включение некоторых команд без использования ярлыка. Можно патчить по отдельности. Команды: -smap_4096 (максимально улучшенные карты теней), -mblur (включение блюра). 2. Измененная анимация безоружного гг. 3. Увеличение дистанции диалога с неписями (для создания сценок на расстоянии) 4. Исправление вылета при использовании предметов из трупов неписей. В отличии от версии Kolmogor'а, здесь отключено само меню использования. 5. Возможность поднимать болты как обычные инвентарные предметы (комбинировать с модом Charsi "Заканчивающиеся болты") Правки от RayTwitty aka Shadows Geometry LOD fix (CS 1.5.10) – расширение диапазона консольной команды r__geometry_lod Camblu crosshair for build 1865 – замена перекрестия прицела на кружок в билде 1865 Vertex buffer fix for NC Project – исправление вылета по переполнению буфера в NC Project NO 100 sovetov fix (COP 1.6.02) – убирает надписи "100 советов" с экрана загрузки Demo Record fix (SOC 1.0006) – убирает красные надписи в режиме demo_record Weapon Bobbing Beta (SOC 1.0006) – раскачка оружия при ходьбе (бета-версия) Build Loadscreen (SOC 1.0006) – билдовский экран загрузки со статичным изображением Detail Density fix (SOC 1.0006) – расширение диапазона консольной команды r__detail_density Mipbias fix (SOC 1.0006) – расширение диапазона консольных команд r1_tf_mipbias и r2_tf_mipbias No Quick Use fix (SOC 1.0006) – запрет на использование аптечек и бинтов по быстрым клавишам Sun Near fix (SOC 1.0006) – расширение диапазона консольной команды r2_sun_near Target Font (SOC 1.0006) – замена шрифта под перекрестием прицела на шрифт DI Unload Magazine fix (SOC 1.0006) – фикс скриптовой функции unload_magazine - теперь патроны разряжаются в инвентарь PNG Screenshots (SOC 1.0006) – игра теперь делает качественные скриншоты в формате png Правки от K.D. Правки от macron Исправленный экзешник для SoC 1.0006 Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты) Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива. Ссылка: X-Ray extensions portable Портативная версия расширений движка "X-Ray extensions" Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02 Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива. Ссылка: Правки от Kolmogor Правленный xrGame для SoC 1.0004 Изменения: 1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры. 2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса. 3. Артефакты работают из рюкзака, а пояс служит контейнером. Ссылка: Правки от Kontro-zzz Изменение значения hud_fov Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, Должно работать на GOG версии и no DVD. Редактирование исходников Репозитории [SoC] () () () () () () () () () () () [CS] () () () () () () [CoP] () () () () () () () () () () () () () [2.0] () () NDA GSC Оригинальные версии движков Могут понадобиться для восстановления оригинальных библиотек. Официальный мультиплеерный (невышедший) патч для SoC Уроки Изменение плотности травы и создание патча через IDA Pro Автор: _призрак_ edited by: RayTwitty aka Shadows Для редактирования нам понадобится программа IDA Pro. 1. Запускаем IDA Pro. 2. Загружаем бинарник рендера xrRender_R1.dll или xrRender_R2.dll. 3. Теперь необходимо найти, где регистрируется консольная команда. Жмем Ctrl+T и вводим r__detail_density. 4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, только укажу, где задаются параметры: Код регистрации консольной команды Код fld ds:flt_10064400 -- нижнее ограничение равное 0.6 or dword_1007CACC, 8 sub esp, 8 fstp [esp+30h+var_2C] mov ecx, offset unk_1007CA9C fld ds:flt_10064380 -- верхнее ограничение равное 0.2 fstp [esp+30h+var_30] push offset aSs; "ЪЩЩ>" push offset aR__detail_dens; "r__detail_density" call ds:??0CCC_Float@@QAE@PBDPAMMM@Z; CCC_Float::CCC_Float(char const *,float *,float,float) push offset sub_1005E080; void (__cdecl *)() call _atexit add esp, 4 5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта: Первый и самый логичный вариант: изменить переменную. Но тут есть небольшой подвох на котором я попался - этой переменной может пользоваться не одна функция, а несколько. И не ясно, что вы можете сломать, поменяв одну циферку на другую. Второй: взять другую, уже существующую переменную с подходящим значением. Хороший вариант которым я и воспользовался. Но и тут есть недостаток - переменных в бинарнике не так уж и много и можно просто не найти нужную. Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать Я пошел по второму пути. Два раза щелкнув на ds:flt_10064380, IDA отправила меня в дебри под названием .rdata. Там я нашел переменную, которая называлась - flt_1006452C и которая имела значение 0.0720999. Насколько я понял, flt_1006452C - не является названием переменной, это сборка из двух показателей - (тип числа)_(смещение). В нашем случае это число типа float, которое находится по адресу 1006452C. Ну что же, приступим к редактированию! 6. Отправляемся в самое начало файла. Как? Сверху есть что-то типа статус-бара - строка состоящая из синего, серого, черного цвета. Нажимаем там в любом месте мышкой и ведем влево до конца. 7. Опять ищем r__detail_density. Находим в этой функции строку fld ds:flt_10064338. Дальше самое интересное - жмем на вкладку Hex View и там у нас выделяются какие-то цифры. Это наша переменная 10064338, только написано наоборот. Сравните: Код 38 43 06 10 Похоже, не правда ли? 10 06 43 38 8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!). 9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной. Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось. 10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно. 11. Все! Изменения внесены в движок, можно тестировать Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз. Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего Полезные ссылки Сборка движка X-Ray Сообщение отредактировал RayTwitty - 27.08.2021, 00:15 |
 
|
|
|
|
04.09.2019, 07:58
Сообщение
#4042
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Как можно было додуматься переделать xray 1.6 на id tech? Кстати, я давно задумывался, что мотивировало разрабов в id tech использовать forward render? Все поголовно почти на отложенных сидят, а эти отцы-основатели другой дорогой пошли. Или они самые хитро-умные? Сообщение отредактировал Zagolski - 04.09.2019, 07:59 |
 
|
|
04.09.2019, 17:23
Сообщение
#4043
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Группа: Припаркованный аккаунт Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Все поголовно почти на отложенных сидят 1 - не все и не поголовно 2 - про какую версию idTech речь? В idTech 6 у них F+, при чем очень грамотно сделанный. На старте так же была возможность переключиться на deferred, но там ФПС был ниже. PS. Тот же новый Control тоже Hybrid Forward. Мало кто в наше время классический deferred юзает. -------------------- Hello worlds!
|
 
|
|
04.09.2019, 18:35
Сообщение
#4044
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
idTech 6, он родимый. Под Forward я имел в виду современный, т.е. F+, кластерный и т.д. Старый вариант в учет не беру. В любом случае на нем нужно z-prepass делать, а это 2x geometry pass. Ну да, сейчас в основном юзают Tiled Deferred: 1x geometry pass + tiled lighting. Я больше склоняюсь к тому, что на id tech в основном коридорные шутеры лепят, а там особо открытых детализированных пространств нет, возможно их Forward устраивает. Не знаю, все ж тяжко выходит два раза геометрию рисовать, когда ее много. А может Umbra хорошо помогает...
|
 
|
|
04.09.2019, 20:23
Сообщение
#4045
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Группа: Припаркованный аккаунт Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
на id tech в основном коридорные шутеры лепят, а там особо открытых детализированных пространств нет Вроде F+ сначала на Just Cause обкатали, а там пространства приличные. В любом случае на нем нужно z-prepass делать, а это 2x geometry pass Дык затык то не в геометрии, а в шейдинге. Первый пасс идет с легкими однотипными шейдерами, батчинг на максимум и все дела. Второй проход идет уже без овердроу. Чистые варианты в любом случае в проигрыше. Deferred - огромный удар по bandwidth, лимит на материалы (да, есть способы обходить) + прозрачку один хрен в форварде рисовать. А для этого надо держать еще раз шейдеры для форварда (со всем лайтингом и делами). И тут начинаешь замечать как блистает F+ - вся необходимая инфа удобно в кластерах, минимум овердроу, единый рендер пайплайн для всего. В препасе есть все что нужно для MB и SSR, актуальный HiZ и прочие вкучняшки. Кстати с F+ ты по максимуму развязан в плане контроля VGPR pressure и можешь резать на куски как хочешь. С дефередом ты зажат в этом плане и молишься на scheduler и тот факт что ты все равно texture bound. А вообще был уже длинный срач на эту тему в Твиттере, вроде Петя начал тогда, кучу народ подгреблось из ААА. Не помню чем закончилось. Сообщение отредактировал iOrange - 04.09.2019, 21:16 -------------------- Hello worlds!
|
 
|
|
04.09.2019, 21:41
Сообщение
#4046
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Я в отчаянии Это старый луа, в нем нет поддержки х64. Надо его выкидывать и брать Luajit (2.x) Возьми luajit + luabind из ОГСР, других реальных вариантов нет. Как исправить код xrLua для компиляции под x64? Лог компиляции xrLua Предупреждение 1 warning C4244: инициализация: преобразование "lua_Integer" в "int", возможна потеря данных H:\Sources\xrLua\src\lbaselib.c 215 1 xrLua Предупреждение 2 warning C4244: инициализация: преобразование "lua_Integer" в "int", возможна потеря данных H:\Sources\xrLua\src\lauxlib.c 268 1 xrLua Предупреждение 3 warning C4267: return: преобразование из "size_t" в "int"; возможна потеря данных H:\Sources\xrLua\src\lauxlib.c 308 1 xrLua Предупреждение 4 warning C4267: =: преобразование из "size_t" в "int"; возможна потеря данных H:\Sources\xrLua\src\lauxlib.c 473 1 xrLua Предупреждение 5 warning C4244: =: преобразование "lua_Integer" в "int", возможна потеря данных H:\Sources\xrLua\src\ldblib.c 322 1 xrLua Предупреждение 6 warning C4244: функция: преобразование "__int64" в "int", возможна потеря данных H:\Sources\xrLua\src\lcoco.c 279 1 xrLua Предупреждение 7 warning C4334: <<: результат 32-разрядного смещения неявно преобразуется в 64-разрядное значение (предполагалось 64-разрядное смещение?) H:\Sources\xrLua\src\lgc.c 289 1 xrLua Предупреждение 8 warning C4244: функция: преобразование "lua_Integer" в "long", возможна потеря данных H:\Sources\xrLua\src\liolib.c 428 1 xrLua Ошибка 9 error C1189: #error : "No support for this architecture (yet)" H:\Sources\xrLua\src\ljit_backend.c 36 1 xrLua Предупреждение 10 warning C4244: функция: преобразование "__int64" в "int", возможна потеря данных H:\Sources\xrLua\src\ljit_core.c 110 1 xrLua Ошибка 11 error C1189: #error : "No support for this architecture (yet)" H:\Sources\xrLua\src\ljit_dasm.c 38 1 xrLua Предупреждение 12 warning C4244: функция: преобразование "lua_Integer" в "int", возможна потеря данных H:\Sources\xrLua\src\ljitlib.c 119 1 xrLua Предупреждение 13 warning C4267: =: преобразование из "size_t" в "int"; возможна потеря данных H:\Sources\xrLua\src\ljitlib.c 200 1 xrLua Предупреждение 14 warning C4334: <<: результат 32-разрядного смещения неявно преобразуется в 64-разрядное значение (предполагалось 64-разрядное смещение?) H:\Sources\xrLua\src\ltable.c 320 1 xrLua Предупреждение 15 warning C4334: <<: результат 32-разрядного смещения неявно преобразуется в 64-разрядное значение (предполагалось 64-разрядное смещение?) H:\Sources\xrLua\src\ltable.c 373 1 xrLua Предупреждение 16 warning C4244: =: преобразование "ptrdiff_t" в "int", возможна потеря данных H:\Sources\xrLua\src\lstrlib.c 114 1 xrLua |
 
|
|
04.09.2019, 22:07
Сообщение
#4047
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Убрал такой код из ljit_dasm.c и ljit_backend.c:
Код #if defined(__i386) || defined(__i386__) || defined(_M_IX86) --- #else #error "No support for this architecture (yet)" #endif Теперь компилируется, но чувствую, что это не правильно. Я запутался |
 
|
|
04.09.2019, 22:22
Сообщение
#4048
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
Плохая идея редачить external библиотеку.
|
 
|
|
04.09.2019, 22:56
Сообщение
#4049
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Бладжад, если так все очень плохо, может стоит взять обычный lua, а не luajit?
Ну будут у тебя скрипты медленней выполняться, но можно замутить другие плюшки.. например объекты (один раз скомпилированный скрипт можно юзать несколько раз) Я, честно, не понимаю смысла делать еще 1 форк. И да, luajit x64 поддерживается, только в 2.05 |
 
|
|
05.09.2019, 09:33
Сообщение
#4050
|
|
Мастер Игры Репутация: 248 Группа: Участник Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
Я, честно, не понимаю смысла делать еще 1 форк. Все этим должны переболеть, как корью. И я этим болел Понасгребал солянку из правок двигла, и заметил что чем дальше в код тем толще баги. Потыркал, понял объем работы и сказал ну его нафиг, в одиночку я это не осилю. Но все равно каждый думает что он умнее всех Сообщение отредактировал cjayho - 05.09.2019, 09:33 -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
05.09.2019, 15:48
Сообщение
#4051
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
И тут начинаешь замечать как блистает F+ - вся необходимая инфа удобно в кластерах, минимум овердроу, единый рендер пайплайн для всего. В препасе есть все что нужно для MB и SSR, актуальный HiZ и прочие вкучняшки. Я и сам ярый сторонник форвард и всегда радел за него. У deferred костыль на костыле. Однако странно, что большинство ААА игр сидях на отложиках. idTech тем не менее выделяется, один из немногих. Хотя конечно это извечный спор - какой из них лучше. И все же, при наличии огромных открытых детализированных пространств в игре, да еще и тесселированных, стоит посматривать в сторону деферреда. А вообще стоит другим разрабам с idTech 6 пример брать, действительно грамотный двиг получился. Сообщение отредактировал Zagolski - 05.09.2019, 16:08 |
 
|
|
05.09.2019, 16:47
Сообщение
#4052
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Группа: Припаркованный аккаунт Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Однако странно, что большинство ААА игр сидях на отложиках Так я же выше писал, что далеко не все )) И много крупных выходящих тайтлов таки гибридные. И все же, при наличии огромных открытых детализированных пространств в игре, да еще и тесселированных, стоит посматривать в сторону деферреда Ну опять же - Just Cause наглядно показал что не обязательно А вообще стоит другим разрабам с idTech 6 пример брать, действительно грамотный двиг получился. Так то оно так, вот только движки от id всегда были строго заточены под всего одну игру. Да, за счет их простоты легко допиливалось напильником под другие игры (но все равно все были коридорными шутерами). А большинство ААА студий пилит движок "на все случаи жизни", что и выливается в .... UE4 -------------------- Hello worlds!
|
 
|
|
05.09.2019, 21:29
Сообщение
#4053
|
|
Опытный Геймер Репутация: 0 Группа: Участник Сообщений: 155 Регистрация: 09.05.2019 |
Короче вырезаем сей всратый luajit и luabind
или юзаем ключи -nojit и -keep_lua И не трахаем себе мозг с этой фигнёй. -------------------- 1920
|
 
|
|
06.09.2019, 02:38
Сообщение
#4054
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
XR_CPU_PIPE.DLL, оххх. Был у меня опыт запуска на этих ключах. Не посоветую остальным.
XR_CPU_PIPE.DLL, оххх. Был у меня опыт запуска на этих ключах. Не посоветую остальным. -------------------- В армии по 01.07.2020. |
 
|
|
06.09.2019, 16:33
Сообщение
#4055
|
|
Опытный Геймер Репутация: 0 Группа: Участник Сообщений: 155 Регистрация: 09.05.2019 |
Цитата оххх. Был у меня опыт запуска на этих ключах. Не посоветую остальным. Да знаю хрень. Но зачем крутить новый луа если старый справлялся. Лучше б сделали многопоточьность. Сообщение отредактировал XR_CPU_PIPE.DLL - 06.09.2019, 16:35 -------------------- 1920
|
 
|
|
06.09.2019, 18:48
Сообщение
#4056
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Но зачем крутить новый луа если старый справлялся Сильно ошибаешься. -------------------- В армии по 01.07.2020. |
 
|
|
06.09.2019, 20:11
Сообщение
#4057
|
|
Опытный Геймер Репутация: 0 Группа: Участник Сообщений: 155 Регистрация: 09.05.2019 |
Да? И в чём же? Аж интересно стало.
-------------------- 1920
|
 
|
|
07.09.2019, 09:10
Сообщение
#4058
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
А никто не думал весь основной скриптовый и наиболее тяжелый функционал перетащить в двиг? А на скриптах мелочь оставить. Вот было бы замечательно, наверное.
|
 
|
|
07.09.2019, 12:57
Сообщение
#4059
|
|
Опытный Геймер Репутация: 0 Группа: Участник Сообщений: 155 Регистрация: 09.05.2019 |
Кто то поделитесь шейдерами dx 10 от сталкер чн 1.5.1.0
-------------------- 1920
|
 
|
|
09.09.2019, 09:41
Сообщение
#4060
|
|
Геймер Репутация: 4 Группа: Участник Сообщений: 108 Награды: 3 Регистрация: 02.02.2016 |
А никто не думал весь основной скриптовый и наиболее тяжелый функционал перетащить в двиг? А на скриптах мелочь оставить. Вот было бы замечательно, наверное. какой именно? Конкретный пример? Кое что я переносил, но это в основном "утилитные" функции. Некоторые вещи специально в скрипты были вынесены для "гибкости". |
 
|
|
09.09.2019, 13:04
Сообщение
#4061
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
К примеру амк-шный алайф, укрытия от аномалий, касательно ТЧ. Да вообще все, что тяжелое. Оставить в скриптах диалоги, да инфопоршни, что с квестовой частью связано. Хотя в оригинальных версиях в скриптах и так мало функционала, я больше про моды толкую.
Или вот простой пример, это встречается повсеместно: Код local obj for i=1,65535 do obj = alife():object(i) --- end Лучше один раз залезть в двиг, провести в нем нужные расчеты и вернуть результат, чем обращаться туда >65k раз. Тут же конкретный батлнек. Сообщение отредактировал Zagolski - 09.09.2019, 13:35 |
 
|
|
Текстовая версия | Сейчас: 15.05.2024, 05:54 |