HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- PrimeXT - логическое продолжение XashXT (https://hlfx.ru/forum/showthread.php?threadid=5371)
Отправлено XaeroX 21-02-2025 в 15:10:
Цитата:
Дядя Миша писал:
Зашибись, то есть мы ещё на разных платформах можем столкнуться с разным поведением?
Всё ещё хуже - можешь указать другую версию STL прямо в опциях gcc при компиляции. 
Добавлено 21-02-2025 в 10:10:
Но в целом - STL стандартизован, разница - в идеале - должна быть только в частях, не описанных стандартом, то есть где поведение unspecified (не путать с undefined). Вот только никто не идеален, увы.__________________
Отправлено SNMetamorph 21-02-2025 в 16:14:
Цитата:
XaeroX писал:
А можно, пожалуйста, пример такой реализации? Не совсем понял, о чём тут речь.
Да обычная хэшмапа поверх массива, как в сишке, без плюсов даже.
Добавлено 21-02-2025 в 20:14:
Цитата:
Дядя Миша писал:
Зашибись, то есть мы ещё на разных платформах можем столкнуться с разным поведением?
В теории да. На практике не слышал за всё время, чтоб кто-то с таким сталкивался, но думаю вполне ненулевой шанс этого есть. Потому что в том же линуксе даже с libc какой-то бардак полный которых есть несколько штук непонятно зачем разных, между собой несовместимых.__________________
Мой сайт
Xash3D Modding Discord
Отправлено XaeroX 21-02-2025 в 17:45:
Цитата:
SNMetamorph писал:
Да обычная хэшмапа поверх массива, как в сишке, без плюсов даже.
Как раз "хешмапа поверх массива" и позволяет сохранить валидными итераторы при её изменении. Там другая проблема - нужно заранее выделить этот массив, то есть знать число значений хэш-функции.__________________
Отправлено SNMetamorph 08-03-2025 в 18:41:
Цитата:
SNMetamorph писал:
Основную работу завершил около недели назад, теперь занимаюсь побочными делами: дорабатываю save-restore систему, чтобы можно было читать/писать значения через лямбда-коллбэки, т.к. текущая система может работать только со значениями которые находятся по некоему оффсету в памяти относительно объекта самой энтити.
В общем, возиться с save-restore системой я закончил и меня очень устроило, каким образом её получилось неинтрузивно доработать под новый код. Теперь она полностью удовлетворяет новым требованиям. Далее я начал переделывать код оружий под новую систему, 8 оружий из 14 уже готово, дело (почти) за малым. На последок останутся Egon, Gauss, Satchel и RPG - с ними возни будет побольше, чем со всем остальным. Ну а после того, как адаптирую весь этот код, останется только сделать окончательный обзор сделанных изменений и внести мелкие правки, если это потребуется. И в общем-то можно будет наконец-то мерджить этот пулл реквест, над которым я уже 8 месяцев работаю.
После этого я планирую начать доделывать до конца освещение, сейчас над этим ведёт работу ncuxonaT, и у него есть много наработок, но деталями исследованного и проделанного он пока ещё не делился. Ну вот и получается, я приму от него эту эстафету.__________________
Мой сайт
Xash3D Modding Discord
Отправлено Дядя Миша 09-03-2025 в 08:51:
Краткие итоги проделанной работы (как это вижу я):
1. Теперь для компиляции требуются свежие версии студии, с поддержкой лямбд. На старых этот код уже не соберётся
2. Никакого нового функционала в процессе не добавилось, для пользователя абсолютно ничего не изменилось
3. Код стал нечитабельным и непривычным для пользователя. Лямбды ужасно уродуют код, на него без слёз нельзя смотреть.
Цитата:
SNMetamorph писал:
После этого я планирую начать доделывать до конца освещение
А что планируется?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено SNMetamorph 09-03-2025 в 09:44:
Цитата:
Дядя Миша писал:
Теперь для компиляции требуются свежие версии студии, с поддержкой лямбд. На старых этот код уже не соберётся
У меня нет задачи поддерживать что-то старее чем C++17 (которому уже как 8 лет), как и задачи поддерживать что-либо кроме актуальных версий Windows/Linux/Android. Насчёт MacOS не знаю: во-первых, эта платформа никому из релевантных юзеров не интересна, во-вторых неясно, можно ли её поддерживать малыми усилиями, как это и обстоит с другими платформами. Вполне возможно что морочиться с её поддержкой не будет стоить потраченного времени вообще.
Цитата:
Дядя Миша писал:
Код стал нечитабельным и непривычным для пользователя.
Если б я его хотел оставить привычным, я бы его тогда не рефакторил. Моя задача напротив состоит в том, чтобы хотя бы частично разгрести ту кучу дерьма и откровенно плохих (вероятно, сделанных в спешке) решений, которых в HLSDK немало (одним из которых как раз был предикт оружия). Но задачи сделать всё идеально нет - напротив, исправить надо всё только самое плохое. Причём, некоторые вещи даже не требуют больших усилий, но делают работу с SDK гораздо проще, как например исправление банального header hell. Довольно классическая ситуация, когда кто-то начинает ковырять код в SDK, что-то меняет в хидерах, и на него сваливается тонна абсолютно невнятных ошибок, и новички абсолютно теряются
Цитата:
Дядя Миша писал:
Никакого нового функционала в процессе не добавилось, для пользователя абсолютно ничего не изменилось
Ну это пускай юзеры сами прокомментируют. Если конечно кто-то из них ещё заходит на форум, в чём я вообще не уверен, ибо давно все уже ушли кто в ВК, кто в Discord, некоторые из них вообще только в ЛС мне пишут.
Что касательно самих юзеров, мне известно как минимум 5 живых проектов, из которых 1 уже не далёк от релиза (та самая Ионизация). Вполне возможно кто-то делает что-то ещё и я об этом не знаю, или же банально я кого-то забыл: https://github.com/SNMetamorph/Prim...ased-on-primext
Цитата:
Дядя Миша писал:
А что планируется?
Об этом также будет подробно расписано, но потом.__________________
Мой сайт
Xash3D Modding Discord
Отправлено Дядя Миша 09-03-2025 в 12:56:
Цитата:
SNMetamorph писал:
Моя задача напротив состоит в том, чтобы хотя бы частично разгрести ту кучу дерьма
Так народ вообще лишний раз в сейв-рестор не лезет и не хочет этим заниматься. Хоть с лямбдами, хоть без. А в C++ ты в любом случае обречён прописывать метаинформацию руками. Хоть в какие макросы ты это обверни.
Цитата:
SNMetamorph писал:
исправление банального header hell
Если кто-то что-то и добавляет в SDK, не понимая сути, он это делает строго по туториалу. Ты же своими действиями просто обнулил нахрен все туториалы, которые копились годами. Теперь их не добавишь. Молодец.
Если же кто-то понимает что он делает, то он и без тебя там всё перепишет, как ему потребно, тот же SoloKiller, к примеру.
Ну и да, я сильно сомневаюсь, что автор Ионизации что-то кодил в SDK, т.к. он не по этой части. Но если бы туторы не утратили актуальность - мог бы что-то и добавить. Кстати Aynekko начинал именно так - добавлял туторы и потихоньку начал понимать что он делает, подразобрался и набрался опыта.
Ты для всех новичков просто закрыл нахрен эту возможность и сидишь довольный. Зато теперь всё на лямбдах стало, какая радость.
Я вообще не понимаю зачем там лямбды нужны.
Добавлено 09-03-2025 в 15:56:
ЗЫ. Я ведь в своё время так и написал: не стану трогать в ксаше стоковый код оружия, чтобы сохранить возможность добавлять туда туторы, чтобы была совместимость. А ты об этом совершенно не подумал.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено SNMetamorph 09-03-2025 в 13:12:
Цитата:
Дядя Миша писал:
Если кто-то что-то и добавляет в SDK, не понимая сути, он это делает строго по туториалу. Ты же своими действиями просто обнулил нахрен все туториалы, которые копились годами. Теперь их не добавишь. Молодец.
Если же кто-то понимает что он делает, то он и без тебя там всё перепишет, как ему потребно, тот же SoloKiller, к примеру.
Ну и да, я сильно сомневаюсь, что автор Ионизации что-то кодил в SDK, т.к. он не по этой части. Но если бы туторы не утратили актуальность - мог бы что-то и добавить. Кстати Aynekko начинал именно так - добавлял туторы и потихоньку начал понимать что он делает, подразобрался и набрался опыта.
Ты для всех новичков просто закрыл нахрен эту возможность и сидишь довольный. Зато теперь всё на лямбдах стало, какая радость.
Я вообще не понимаю зачем там лямбды нужны.
Я каждодневно мониторю англоязычное коммьюнити (которое гораздо больше русскоязычного) и прекрасно вижу, как это всё происходит. Туториалов там тоже кратно больше, спросить есть у кого, но в итоге народ всё равно сегментируется на две чётко очерченных группы - первая это те, кто ничего осилить не может даже с туториалами и/или персональной помощью (их тот самый Solokiller отправляет учить C++, 90% людей на этом этапе отваливаются), и вторая это те, кто просто своим усердием добивается чего планировалось даже без какой-либо помощи извне, либо с её минимальным количеством (что мне кажется как раз таки про Aynekko и в том числе). То есть по итогу все эти туториалы, да и персональная помощь, в общем-то не делают особой погоды, а ключевую роль играют собственные усилия человека. Мне прекрасно понятно, почему оно так - HL-моддинг в плане программирования никогда не был особо дружелюбным, во-первых банально потому что там не простой скриптовый язык, а мешанина из C/C++, притом ещё и с отвратительным кодстайлом и самой структурой проекта. Это, конечно, не идёт ни в какое сравнение с гаррисмодовским или роблоксовским Lua. Так что попытки свести туториалы к копипасте (из-за чего приходится категорически не вносить изменений в код) тут буквально как мёртвому припарка. Англоязычное коммьюнити в свою очередь тоже попытались сделать некий проект в лице Unified SDK, куда можно было бы копипастить код из их же туториалов с TWHL, но уже давно видно, что это не работает как задумано.__________________
Мой сайт
Xash3D Modding Discord
Отправлено Дядя Миша 09-03-2025 в 13:23:
Цитата:
SNMetamorph писал:
но в итоге народ всё равно сегментируется на две чётко очерченных группы
Так я тебе ровно про это и говорю. Одни сами всё умеют, а другие только по туторам.
Цитата:
SNMetamorph писал:
То есть по итогу все эти туториалы, да и персональная помощь, в общем-то не делают особой погоды
Тут классическая ошибка выжившего. Если бы ты знал сколько народу ничего не пишут, но при этом пользуются туторами.
Цитата:
SNMetamorph писал:
но уже давно видно, что это не работает как задумано.
А почему, кстати?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено SNMetamorph 09-03-2025 в 13:39:
Цитата:
Дядя Миша писал:
А почему, кстати?
Потому что люди, пытаясь делать мод без базового знания C++, не могут даже самые элементарные ошибки заметить и уж тем более исправить. И таких вот подавляющее большинство.

__________________
Мой сайт
Xash3D Modding Discord
Отправлено Дядя Миша 09-03-2025 в 14:19:
СолоКиллер им токсично отвечает конечно. Ну впрочем - его дело.
Я собственно именно поэтому и говорю, что если народ хочет новую пушку или нового NPC (законное вобщем-то желание), не надо его отправлять учить C++. Не надо отправлять его учить C# или Lua. Человеку не нужно знание языка. Ему новый монстр нужен. Или пушка. Тут классическая подмена понятий. Ему бы такой скриптег с параметрами, чтобы добавил и готово.
Там визуально интуитивно можно за полминуты разобраться. И не надо ставить никакую студию. Потому что человек за студией полезет на торренты, ему там насуют полную панаму вирусов и ему будет уже не до игр.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 09-03-2025 в 14:25:
Цитата:
SNMetamorph писал:
их тот самый Solokiller отправляет учить C++
Звучит жестоко
Цитата:
SNMetamorph писал:
HL-моддинг в плане программирования никогда не был особо дружелюбным
Ты скачиваешь архив с сорцами Спирита, распаковываешь, открываешь проект и одной кнопкой мгновенно собираешь его в бинарник.
Хотя я никогда не лез в оружия, да.
А что там более дружелюбно чем моддинг HL? На том же Луа в роблоксе, если это эталон, как долго происходит настройка проекта? Нужно ли лезть в консольные менеджеры пакетов как в Питоне?
Что дают эти лямбды ваши? Сейврестор поглядел, не увидел их о_О
Отправлено SNMetamorph 09-03-2025 в 14:40:
Цитата:
Crystallize писал:
На том же Луа в роблоксе, если это эталон, как долго происходит настройка проекта? Нужно ли лезть в консольные менеджеры пакетов как в Питоне?
Насчет конкретно роблокса не знаю, но в гаррисмодовском Lua вся подготовка это создание текстового файла с .lua расширением, и всё. Тебе даже по факту никакая IDE не нужна.
Цитата:
Crystallize писал:
А что там более дружелюбно чем моддинг HL?
Не упускай деталь, что я именно про моддинг в контексте программирования говорил. HL-моддинг конкретно в плане работы с контентом наверное самое дружелюбное из того что есть, примерно наравне со всеми играми на Source движке, включая и гаррис мод.
Что дружелюбнее в плане работы с кодом: майнкрафт, гмод, роблокс, AMXX (боже упаси, но факт) и вместе с ним же Pawn который в SAMP используется (я сам с этого и начинал кодить в начале 10-х). Что точно НЕ дружелюбнее чем HLSDK, так это скриптинг под Skyrim. Он просто отвратителен и ужасен, у них там используется свой скриптовый язык и они умудрились сделать так, что оно хуже всего остального существующего, даже лоу-левельных языков. Левел-эдитор у них тоже просто отвратителен, неописуемо ужасен. Я очень слабо себе представляю, как при таком блевотном инструментарии народ сделал так много модов на него, но это опять таки подтверждает мой поинт про то что в моддинге народ на 2 принципиально разных группы сегментируется.
Цитата:
Crystallize писал:
Что дают эти лямбды ваши? Сейврестор поглядел, не увидел их о_О
Если ты посмотришь мой PR, то увидишь, что в сейв-ресторе лямбды там используются только в одном месте и дважды. А ещё то, что это существующий код вообще никак не затрагивает. Я не зря упомянул про то, что всё получилось сделать неинтрузивно.__________________
Мой сайт
Xash3D Modding Discord
Отправлено Дядя Миша 09-03-2025 в 15:02:
Цитата:
SNMetamorph писал:
у них там используется свой скриптовый язык и они умудрились сделать так, что оно хуже всего остального
А можно примерчег как это выглядит?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено SNMetamorph 09-03-2025 в 16:22:
Цитата:
Дядя Миша писал:
А можно примерчег как это выглядит?
Ну разве что чем-то таким могу поделиться
http://www.cipscis.com/skyrim/tutorials/beginners.aspx__________________
Мой сайт
Xash3D Modding Discord