Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

> Редактирование движка
RayTwitty
сообщение 22.01.2016, 17:18
Сообщение #4381


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа



Редактирование собранного движка
Проект X-Ray extensions и его вики
Lua-перехватчик от alpet
xrLuaFix от RvP
xrLuaFix в редакции от Artos
xrLuaFix в редакции от svarog2741
LuaXML библиотека парсинга xml-файлов из скриптов (подключается при помощи функции require, которая есть в xrLuaFix)
NoProtect 1.0006 исполнительные файлы из Steam-версии без защиты
Документация к X-Ray (11.10.2004)
Файл заголовков от отладочного 6 патча
Cut X-Ray
Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками.
Авторы: SkyLoader, _призрак_
Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02
Адрес проекта на Google Code: https://code.google.com/p/cut-x-ray-project/
Страница на Moddb: http://www.moddb.com/mods/cut-x-ray-project-soc-cs-cop
Пак 1
1. Исправление вылета "can't find rank" для оружий.

2. Смерть от первого лица.
Видео: https://www.youtube.com/watch?v=c-4dNyvizxY

3. Collide
Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов.
Видео: https://www.youtube.com/watch?v=1xNn04f3djc

4. Круглый прицел.
Возвращен круглый прицел вместо перекрестья, как билдах.

5. Исправление вида от 3-го лица.
Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра.
Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить.
Пак 2
1. Luminosity progress (только ТЧ)
Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах.

2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП).

3. Руки на руле в машине. (только ТЧ и ЧН)
Видео: https://www.youtube.com/watch?v=nYrnrfGkO7Y

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.
xrPatch v0.8 – патчер для увеличения радиуса прорисовки травы
detail radius+density fix [SOC 1.0006] – добавляет регулировку радиуса отрисовки травы через консольную команду и расширяет диапазон регулировки плотности травы до 0.02
Правки от macron
Исправленный экзешник для SoC 1.0006
Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты)
Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/At9Tw0ueSaDyS
X-Ray extensions portable
Портативная версия расширений движка "X-Ray extensions"
Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02
Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/OLYPbDXWjyEkH
Правки от Kolmogor
Правленный xrGame для SoC 1.0004
Изменения:
1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры.
2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса.
3. Артефакты работают из рюкзака, а пояс служит контейнером.

Ссылка: http://rusfolder.com/42636653
Правки от Kontro-zzz
Изменение значения hud_fov
Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, для CS 1.5.10 и для билда 3120.
Должно работать на GOG версии и no DVD.
Редактирование исходников
Скачать все исходники отсюда или с оригинальных постов SoC 1.0007rc1 SoC и CS CoP X-Ray 2
Репозитории

[SoC]
() Alpet & KD / оригинальное репо [Архивная ценность]
() xrDev [Архивная ценность]
() CleanXR [Архивная ценность]
() KRoddin [Архивная ценность][/b]
() Lost Alpha old [Архивная ценность]
() Репозиторий OGSE | Самый актуальный форк (KRoddin) | Версия от Abramcumner с небольшими исправлениями
() 1exx [Архивная ценность]
() Shkiper2012 [Архивная ценность]
() Morrey (dx10) [Архивная ценность]
() OP Engine (Winsor)
() Kondr48 [Архивная ценность]

[CS]
() RedPython [Архивная ценность]
() xrDev [Архивная ценность]
() OpenXRay [Архивная ценность]
() Charsi82 [Архивная ценность]
() Abramcumner | drksnc (MP) [Архивная ценность]
() RainbowZerg [Архивная ценность]

[CoP]
() Forser
() OpenXRay
() CoC | Demosfen | Last Day
() Abramcumner
() Im-Dex [Архивная ценность]
() xrDev [Архивная ценность]
() Tron [Архивная ценность]
() mrmnwar [Архивная ценность]
() Avo [Архивная ценность]
() vincent-t [Архивная ценность] | Старый репозиторий
() Shoкer
() Morrey CS-COP [Архивная ценность]
() Morrey [Архивная ценность]

[2.0]
() Saas
() xrOxy
Компиляторы x64: SoC CS CoP
NDA GSC
Оригинальные версии движков
Могут понадобиться для восстановления оригинальных библиотек.
SoC SoC ENG CS CoP
GOG version [1.0006, 1.5.10, 1.6.02]
Multi-patch version [1.0006, 1.5.10, 1.6.02]
Официальный мультиплеерный (невышедший) патч для SoC 1.0007rc1.
Уроки
Изменение плотности травы и создание патча через 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. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта:

Первый и самый логичный вариант: изменить переменную. Но тут есть небольшой подвох на котором я попался - этой переменной может пользоваться не одна функция, а несколько. И не ясно, что вы можете сломать, поменяв одну циферку на другую.

Второй: взять другую, уже существующую переменную с подходящим значением. Хороший вариант которым я и воспользовался. Но и тут есть недостаток - переменных в бинарнике не так уж и много и можно просто не найти нужную.

Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать smile.gif

Я пошел по второму пути. Два раза щелкнув на 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
Похоже, не правда ли? smile.gif
8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!).
9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной.
Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось.
10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно.
11. Все! Изменения внесены в движок, можно тестировать smile.gif

Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз.
Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего smile.gif




Сообщение отредактировал RayTwitty - 27.08.2021, 00:15
Перейти в начало страницы
 
242 страниц V  « < 218 219 220 221 222 > »   
Начать новую тему
Ответов
mortan
сообщение 27.12.2019, 00:44
Сообщение #4382


Продвинутый геймер
********

Репутация:   16  
Группа: Участник
Сообщений: 222
Награды: 3
Регистрация: 28.06.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Policai @ 26.12.2019, 22:49) *
Меня больше интересует статика, нужно чтоб без проблем работало на статике.

Я написал в чем проблема - в шейдере) Проверьте наличие в папке r1 нового шейдера skin.h, так же кэш старый удалить не забудьте...
P.S. А про оригинал загнули конечно, там своих, "родных" косяков хватает, некоторые из них не исправлены до сих пор...
Перейти в начало страницы
 
Policai
сообщение 27.12.2019, 05:22
Сообщение #4383


Почти Игрок
**

Репутация:   2  
Группа: Участник
Сообщений: 24
Регистрация: 23.02.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(mortan @ 27.12.2019, 02:40) *
Цитата(Policai @ 26.12.2019, 22:49) *
Меня больше интересует статика, нужно чтоб без проблем работало на статике.

Я написал в чем проблема - в шейдере) Проверьте наличие в папке r1 нового шейдера skin.h, так же кэш старый удалить не забудьте...
P.S. А про оригинал загнули конечно, там своих, "родных" косяков хватает, некоторые из них не исправлены до сих пор...

mortan

Я говорю то что есть физически, система win 7 x64, обновления отключены сразу после установки, нет там нормальных обновлений, если включить обновы комп как раз и начинает тупить после обновлений. там всех просто тупо вынуждают переходить на win10.
Никаких багов, можешь прочитать отзывы по моду, ни единого вылета за всё прохождение, а пройден уже не одну тысячу раз, там нет навороченных плюшек, всё сделано по оригиналу ЗП, на любом освещении работает... Сейчас просто копаюсь с новой версией, она точно так же, прекрасно, работает на всех режимах освещения, оригинал движок без единой правки.
Затык идёт сейчас из за колеса. Поставил цель запустить колесо обозрения в припяти, но предпологаю что придётся отказаться, правку собирал не я, сам не могу найти понятную инструкцию чтоб попытаться сделать самому, все инструкции усыпаны сленгом который мне не понятен, я не программист, просто хороший человек решил помочь и собрал правку. В папке r1 новый шейдер skin.h присутствует.
Сейчас хочу подготовить системник чисто для сборки этой правки. чтоб там было только нужное и ничего лишнего, и попытаться собрать самому, есть студии и 2005 Про и 2008 Про. полные версии... Поставлю систему х32 и попробую так. должна же быть причина почему оригинал работает а с правками нет...
Перейти в начало страницы
 
mortan
сообщение 27.12.2019, 16:03
Сообщение #4384


Продвинутый геймер
********

Репутация:   16  
Группа: Участник
Сообщений: 222
Награды: 3
Регистрация: 28.06.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Policai @ 27.12.2019, 05:18) *
Поставлю систему х32 и попробую так. должна же быть причина почему оригинал работает а с правками нет...

biggrin.gif всё, всё, умываю руки, спорить с человеком бесполезно biggrin.gif

Сообщение отредактировал mortan - 27.12.2019, 16:36
Перейти в начало страницы
 
macron
сообщение 27.12.2019, 16:46
Сообщение #4385


Игровой Бог
**********************

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


Policai: запомни две вещи:

1. ЗП - галимое говно.
2. Когда на нем моддишь что-то с шейдерами, надо перед каждым запуском стирать шейдерный кеш. Сначала на компе находишь папку shaders_cache, потом её стираешь, а потом уже запускаешь.

Сообщение отредактировал macron - 27.12.2019, 16:47
Перейти в начало страницы
 
Молния в вакууме
сообщение 27.12.2019, 16:57
Сообщение #4386


Почти Игроман
*********

Репутация:   187  
Группа: Участник
Сообщений: 647
Награды: 4
Регистрация: 05.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Не забывайте что в говноЗП так же есть кеш шейдеров прямо в игровых архивах, и его оттуда тоже нужно выпиливать. Когда делали правку для влияния тумана на траву нв R1 с такой проблемой уже сталкивались.
Перейти в начало страницы
 
macron
сообщение 27.12.2019, 18:10
Сообщение #4387


Игровой Бог
**********************

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Молния в вакууме @ 27.12.2019, 16:53) *
кеш шейдеров прямо в игровых архивах, и его оттуда тоже нужно выпиливать

А потом и архивы как-то перепаковывать. А перепаковываются они вроде через жопу... Короче, тов. Policai, ты попал. biggrin.gif
Перейти в начало страницы
 
ForserX
сообщение 27.12.2019, 20:01
Сообщение #4388


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Молния в вакууме @ 27.12.2019, 16:53) *
Не забывайте что в говноЗП так же есть кеш шейдеров прямо в игровых архивах, и его оттуда тоже нужно выпиливать

В исходниках рендера поищите "objects". Там и найдёте кривой путь. Выводите на shader_cache и профит.

Сообщение отредактировал ForserX - 27.12.2019, 20:02


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
Diesel
сообщение 27.12.2019, 20:06
Сообщение #4389


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(macron @ 27.12.2019, 20:06) *
А потом и архивы как-то перепаковывать. А перепаковываются они вроде через жопу... Короче, тов. Policai, ты попал. biggrin.gif

Есть такое. Просто мы не знаем сущности компиляции архивов.
Я знаю что там не стандартно, а именно - это внедрение зависимости чтения патчей.

Правильно будет перепаковать всё вместе с патчем. Но появляется баг чтения архивов, так как стандартный батник или конфиг не пишет (хрен его знает, или пишет из движка) зависимость патча.

Да, ну его этот патч.
Лечится вылет, добавлением пустой папки gamedata\levels. z_crazy.gif

Сообщение отредактировал Дизель - 27.12.2019, 20:14
Перейти в начало страницы
 
xrModder
сообщение 31.12.2019, 23:52
Сообщение #4390


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Кто-нибудь исправлял ошибку с игровым временем, когда после 4 месяцев игры время PDA идёт в отрицательную сторону? Навряд ли кто-то будет играть столько времени, но присутствие ошибки не даёт покоя.
Перейти в начало страницы
 
atanda
сообщение 01.01.2020, 00:15
Сообщение #4391
Pro gamer

Почти Игроман
*********

Репутация:   72  
Группа: Участник
Сообщений: 622
Регистрация: 05.11.2017




Вставить ник Цитировать выделенное в форуму быстрого ответа


Это переполнение переменной, исправляется вроде в x64
Перейти в начало страницы
 
xrModder
сообщение 01.01.2020, 00:23
Сообщение #4392


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(atanda @ 01.01.2020, 03:11) *
Это переполнение переменной, исправляется вроде в x64

Опять x64 z_crazy.gif
Перейти в начало страницы
 
ForserX
сообщение 01.01.2020, 08:58
Сообщение #4393


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(atanda @ 01.01.2020, 00:11) *
исправляется вроде в x64

Не исправляется... Поздравляю, вы словили u64(-1). Нужно прикручивать либу для больших чисел. Я для таких целей свою на скорую руку накидал.

Цитата(xrModder @ 01.01.2020, 00:19) *
Опять x64

x32 не нужен. (Хотя у меня в армейке х32 ноут, останавливает от перестановки винды 5 ГБ трафика на месяц)

Цитата(ForserX @ 01.01.2020, 08:54) *
Нужно прикручивать либу для больших чисел

Или же, сделать что-то из серии:
https://github.com/xrOxygen/xray-oxygen/com...8aa3aa86a7c752d

Сообщение отредактировал ForserX - 01.01.2020, 10:10


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
xrModder
сообщение 01.01.2020, 22:03
Сообщение #4394


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Интересно, в чём смысл использование такого кода (цвет sky_color) разработчиками:
Код
u32 C = color_rgba(iFloor(CurrentEnv.sky_color.x*255.f), iFloor(CurrentEnv.sky_color.y*255.f), iFloor(CurrentEnv.sky_color.z*255.f), iFloor(CurrentEnv.weight*255.f));

Когда более удобно записывать цвет в более привычном HEX формате, а не в дробных цифрах от 0 до 1 и применять лишние операции умножения.

Сообщение отредактировал xrModder - 01.01.2020, 22:03
Перейти в начало страницы
 
abramcumner
сообщение 01.01.2020, 23:05
Сообщение #4395


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(atanda @ 01.01.2020, 00:11) *
Это переполнение переменной, исправляется вроде в x64

В движке и на х32 под время используется 64-битная переменная.

Цитата(ForserX @ 01.01.2020, 08:54) *
Не исправляется... Поздравляю, вы словили u64(-1). Нужно прикручивать либу для больших чисел. Я для таких целей свою на скорую руку накидал.

64-бита огромное число.
Цитата
Введение 64-битного формата вносит новую дату «закольцовывания» — оно произойдёт примерно через 292 миллиарда лет, а именно в воскресенье 4 декабря 292277026596 года в 15:30:08 по всемирному времени.

Дело явно не в переполнении u64. Возможно где-то неаккуратно/неявно преобразуется в 32 бита.
Перейти в начало страницы
 
ForserX
сообщение 02.01.2020, 00:57
Сообщение #4396


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(abramcumner @ 01.01.2020, 23:01) *
Введение 64-битного формата вносит новую дату «закольцовывания» — оно произойдёт примерно через 292 миллиарда лет, а именно в воскресенье 4 декабря 292277026596 года в 15:30:08 по всемирному времени.


Код
int main()
{
        unsigned long long temp = 1000 * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
  std::cout << "Hello, " << temp << " " << (unsigned long long)(-1) << "!\n";
}

Цитата
Hello, 18446744072087904256 18446744073709551615!

Ну да... Ну да...

Сообщение отредактировал ForserX - 02.01.2020, 00:58


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
abramcumner
сообщение 02.01.2020, 01:50
Сообщение #4397


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(ForserX @ 02.01.2020, 00:53) *
Код
int main()
{
        unsigned long long temp = 1000 * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
  std::cout << "Hello, " << temp << " " << (unsigned long long)(-1) << "!\n";
}

Цитата
Hello, 18446744072087904256 18446744073709551615!

Ну да... Ну да...

Твой калькулятор сломан, у temp на конце должно быть 6 нулей. Если правлиьно перемножить, то число влезает в 6 байт, еще 2 байта можно потратить на оставшиеся миллиарды лет.
Я же говорю, наверное где-то неявный каст к int32 smile.gif
Перейти в начало страницы
 
cjayho
сообщение 03.01.2020, 11:13
Сообщение #4398


Мастер Игры
************

Репутация:   248  
Группа: Участник
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (ForserX @ 01.01.2020, 23:53) *
CODE
int main()
{
        unsigned long long temp = 1000 * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
  std::cout << "Hello, " << temp << " " << (unsigned long long)(-1) << "!\n";
}


"!" << std::endl; не?
Да и не только

CODE
#include <iostream>
#include <cstdint>

int main()
{
    uint64_t temp = 1000 * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
    std::cout << "Hello, " << temp << " " << uint64_t(-1) << "!" << std::endl;
}


получаем

CODE
[cjayho@cjayho-pc ~]$ clang++ ./22.cpp -Wall -Wextra -Weffc++ -pedantic -std=c++17
./22.cpp:6:41: warning: overflow in expression; result is -1702967296 with type 'int' [-Winteger-overflow]
    uint64_t temp = 1000 * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
                                        ^
./22.cpp:6:46: warning: overflow in expression; result is 1039228928 with type 'int' [-Winteger-overflow]
    uint64_t temp = 1000 * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
                                             ^
./22.cpp:6:51: warning: overflow in expression; result is -1621647360 with type 'int' [-Winteger-overflow]
    uint64_t temp = 1000 * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
                                                  ^
3 warnings generated.
[cjayho@cjayho-pc ~]$ ./a.out
Hello, 18446744072087904256 18446744073709551615!


зато если написать все правильно:

CODE
#include <iostream>
#include <cstdint>

int main()
{
    uint64_t temp = uint64_t(1000) * 60 * 60 * 30 * 24 * 12 * 2007; // Xray Time System
    std::cout << "Hello, " << temp << " " << uint64_t(-1) << "!" << std::endl;
}


получается совсем другой результат

CODE
[cjayho@cjayho-pc ~]$ clang++ ./22.cpp -Wall -Wextra -Weffc++ -pedantic  -std=c++17
[cjayho@cjayho-pc ~]$ ./a.out                                          
Hello, 62425728000000 18446744073709551615!


г**нокодеры :-/

Сообщение отредактировал cjayho - 03.01.2020, 11:24


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
ForserX
сообщение 03.01.2020, 21:17
Сообщение #4399


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(cjayho @ 03.01.2020, 11:09) *
"!" << std::endl; не?

Тоже самое, что и "/n". Каюсь, забыл про приведение типов. (1000ull)


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
xrModder
сообщение 03.01.2020, 22:59
Сообщение #4400


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Для чего нужен CEnvDescriptor::CEnvDescriptor() в Environment_misc.cpp?
Перейти в начало страницы
 
RayTwitty
сообщение 03.01.2020, 23:49
Сообщение #4401


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Кстати обнаружил прикол:
когда в папке \logs количество файлов достигло 3390 игра при запуске стала вылетать со stack overflow biggrin.gif

И немного статистики: с 29 апреля 2012 по 25 июня 2018 гг игра у меня вылетела 1696 раз (именно столько минидампов сохранилось) laugh.gif


--------------------
Перейти в начало страницы
 

242 страниц V  « < 218 219 220 221 222 > » 
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.03.2024, 23:22