Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
RedMagic
Цитата(AndreySol @ 19.03.2017, 10:28) *
Обычные массивы С++ видимо не прокатят

Многомерный массив может быть произвольного размера. В С# есть еще ступенчатые (зубчатые) массивы, про C++ не скажу, работал с ним давно, уже все забыл.
abramcumner
Цитата(AndreySol @ 19.03.2017, 10:28) *
Помощь нужна: как сделать массив(таблицу) произвольного размера? Типа такого:
строка = строка
строка = строка
строка = строка

У тебя строки типа ключ-значение? Тогда тебе больше подойдет xr_map<xr_string, xr_string> table.
Операции:
- добавить: table[ключ] = строка
- получить по ключу: xr_string s = table[ключ];
- проверить наличие: bool contains = table.find(ключ) != table.end();
- удаление: table.erase(ключ);
AndreySol
Цитата(STALKER2011x @ 19.03.2017, 11:38) *
Многомерный массив может быть произвольного размера.

Вы имеете в виду int array[10][10], или
const unsigned int DIM1 = 10;
const unsigned int DIM2 = 10;
int ary[DIM1][DIM2];
Это не то о чем я спрашивал. Тут ведь все равно надо задать размерность, а мне надо произвольный размер массива, или правильнее сказать таблицы?

Цитата(abramcumner @ 19.03.2017, 12:03) *
У тебя строки типа ключ-значение? Тогда тебе больше подойдет xr_map

Во, похоже что это то, что нужно. Спасибо!
ForserX
Цитата(AndreySol @ 19.03.2017, 11:20) *
Цитата(STALKER2011x @ 19.03.2017, 11:38) *
Многомерный массив может быть произвольного размера.

Это не то о чем я спрашивал. Тут ведь все равно надо задать размерность, а мне надо произвольный размер массива, или правильнее сказать таблицы?

Можно и динамически работать.

Цитата(AndreySol @ 19.03.2017, 11:20) *
Или правильнее сказать таблицы?


Это уже матрицы, скорее.
AndreySol
Цитата(abramcumner @ 19.03.2017, 12:03) *
Тогда тебе больше подойдет xr_map<xr_string, xr_string> table.
Операции:
- добавить: table[ключ] = строка

Вылетает:
xr_map<xr_string, xr_string> table;
table["first"] = "second";
Что опять не так? Как правильно?
RedMagic
AndreySol, либо посмотри как устроен xr_map и как его используют (поиском по коду), либо попробуй использовать map из c++.
abramcumner
Цитата(AndreySol @ 19.03.2017, 12:14) *
Вылетает:
xr_map<xr_string, xr_string> table;
table["first"] = "second";
Что опять не так? Как правильно?

Ну ты хотя бы текст ошибки скопируй smile.gif Код отлично работает.
AndreySol
Я тут ситуацию не полностью описал:
xr_map<xr_string, xr_string> table; - если объявлено в хедере, то table["first"] = "second"; в коде вылетает. А если все в коде, и объявить и присвоить значения - вылета нет. Блин, зачем все так мутно наворочено ???
abramcumner
Цитата(AndreySol @ 19.03.2017, 13:27) *
Я тут ситуацию не полностью описал:
xr_map<xr_string, xr_string> table; - если объявлено в хедере, то table["first"] = "second"; в коде вылетает. А если все в коде, и объявить и присвоить значения - вылета нет. Блин, зачем все так мутно наворочено ???

По-прежнему не полностью smile.gif
Shoкer
1) Ты объявляешь xr_map<xr_string, xr_string> table как члена класса (внутри class), или снаружи в глобальной области видимости?
2) В хедере (заголовке) нельзя присваивать значения сложным объектам. (возможно есть исключения, но точно не так как ты пытаешься это сделать) Это не Lua. В заголовке ты только описываешь объект, а заполнять его должен внутри конструктора или любой другой функции, потому что до момента вызова конструктора объекта ещё не существует.
3) После сборки как ты запускаешь игру? По ярлыку? Нужно запускать либо через студию (Run), либо присоединять её к процессу уже после запуска игры (Attach). Тогда в момент вылета узнаешь где он случился.

PS: Не припомню в движке ЗП xr_string, это ТЧ?
SkyLoader
Цитата(Shoкer @ 19.03.2017, 13:43) *
PS: Не припомню в движке ЗП xr_string, это ТЧ?

Это std::string.

Shoкer
Я в принципе так и подумал, просто обычно они там везде или чистый char* юзают или shared_str для строк.
Хотя хз что выгоднее применять в данном примере. xr_string тоже есть, просто я реже его видел %)
SkyLoader
Часто его используют для сдк, удобнее в AnsiString конвертировать.
AndreySol
Цитата(abramcumner @ 19.03.2017, 14:41) *
По-прежнему не полностью

В h-файле, внутри объявления класса:
xr_map<xr_string, xr_string> table;
в cpp-файле, в одной из ф-ций класса:
table["first"] = "second";
в результате - стандартное виндовое окно ошибки
Цитата
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: XR_3DA.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 586df4ff
Имя модуля с ошибкой: xrCore.dll
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 58ce6ae4
Код исключения: c0000005
.........
.........

в логе естественно пусто...
abramcumner
Цитата(AndreySol @ 19.03.2017, 14:28) *
В h-файле, внутри объявления класса:

Возможно заголовочный файл используют и другие длл, а ты их не пересобрал.
AndreySol
Запутался я вконец с этими xr_map, xr_string, массивами и векторами.
Может кто набросать пример, как сделать сохранение данных типа "строка_ключ = строка_значение" произвольного кол-ва? Именно применительно к движку. С объявлением того объекта, в котором данные будут храниться в хедере и с заполнением\чтением в cpp-файле.
1001v
У вас ссылки на яд мертвые
AndreySol
"Утро вечера мудренее" @народ.
Вроде смог разобраться как использовать xr_map, но осталась одна проблемка: если объявляю xr_map <shared_str, shared_str> table в cpp-файле - все нормально, все сохраняется\получается, но если выношу объявление в h-файл
public:
xr_map <shared_str, shared_str> table;
то игра вылетает с логом:
Цитата
0023:599609D1 xrCore.dll, std::_Lower_bound<CInifile::Sect * *,char const [256],int,bool (__cdecl*)(CInifile::Sect const *,char const *)>(), c:\program files (x86)\microsoft visual studio 12.0\vc\include\algorithm, 2514
..........
..........
..........
Посмотрел как у ПЫСов сделано - практически все, что начинается с xr_(или связано с таковым) у них в хедерах объявлено как typedef. Попробовал сделать для своей переменной - в cpp-файле студия подчеркивает красным и ругается "Идентификатор "table" не определен". С этим как быть ?
Winsor
Уважаемые знающие... ТЧ.
Возник вопрос по UI классу - CUIComboBox. Если добавлять этот класс (AttachChild), например, в обычный CUIWindow - то выпадающее окно рисуется поверх остальных чилдов CUIWindow. Если же аналогичную операцию делать в ScrollView (AddWindow) - то что бы я не делал с выпадающим окном - оно рисуется позади всех элементов в ScrollView.
GetParent()->BringToTop и аналогичные - не помогают. сталкивался ли кто с этим и как побороли?
Благодарю!
Roman
А правки движка из Lost Alpha вернутся в основной репозиторий, или это в принципе не имеет смысла?
abramcumner
Цитата(Roman @ 20.03.2017, 22:19) *
А правки движка из Lost Alpha вернутся в основной репозиторий, или это в принципе не имеет смысла?

"Основной репозиторий" - это на компе Григоровича? smile.gif Как там было: "все программы приходят умирать к источнику"?

Сами правки не возвращаются пока, для этого нужен человек - заведи основной репозиторий и верни в него правки из ЛА.
ForserX
Цитата(abramcumner @ 20.03.2017, 22:30) *
Цитата(Roman @ 20.03.2017, 22:19) *
А правки движка из Lost Alpha вернутся в основной репозиторий, или это в принципе не имеет смысла?

"Основной репозиторий" - это на компе Григоровича? smile.gif Как там было: "все программы приходят умирать к источнику"?

Сами правки не возвращаются пока, для этого нужен человек - заведи основной репозиторий и верни в него правки из ЛА.

Форков на основе сорцев ЛА я ещё не видел. Интересно будет посмотреть, что из этого получится.
Roman
Ну я имел ввиду Open-xRay или где сейчас ведется основная разработка и правка движка?
macron
Выкладываю наработки по дождю (увеличение дальности в три раза) для ТЧ 1.0006. Советы наверно могут и для других движков пригодиться.

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

https://yadi.sk/d/2tF_J6XD3GN7m2
Zagolski
Цитата(Winsor @ 20.03.2017, 15:15) *
Возник вопрос по UI классу - CUIComboBox. Если добавлять этот класс (AttachChild), например, в обычный CUIWindow - то выпадающее окно рисуется поверх остальных чилдов CUIWindow. Если же аналогичную операцию делать в ScrollView (AddWindow) - то что бы я не делал с выпадающим окном - оно рисуется позади всех элементов в ScrollView.
GetParent()->BringToTop и аналогичные - не помогают. сталкивался ли кто с этим и как побороли?

Ну как, если подвижки в этом деле? Столнулся с аналогичной проблемой...
Winsor
Цитата(Zagolski @ 27.03.2017, 20:15) *
Цитата
GetParent()->BringToTop и аналогичные - не помогают. сталкивался ли кто с этим и как побороли?

Ну как, если подвижки в этом деле? Столнулся с аналогичной проблемой...

нет. уставши бороться с скролом - отвязал SpinText от опций (на произвольный источник данных) и заменил им свои боксы. благо - данных не много, до 5-и строк.
Tabigat
На счет формата скриншотов. В принципе движок может сохранять скришоты в форматах BMP, DDS, PNG и TGA.
Патчер для 1.0004: https://yadi.sk/d/gJ6GtOUa3GVnv3
Патчер для 1.0006: https://yadi.sk/d/nls6sARA3GVnw2
ForserX
Цитата(Tabigat @ 30.03.2017, 20:05) *
На счет формата скриншотов. В принципе движок может сохранять скришоты в форматах BMP, DDS, PNG и TGA.
Патчер для 1.0004: https://yadi.sk/d/gJ6GtOUa3GVnv3
Патчер для 1.0006: https://yadi.sk/d/nls6sARA3GVnw2


Давно уже обсуждали. Кусок кода из DX с перечнем форматов где-то в этой теме (или на АМК) скидывал.
GermanAizek
Что за mutex просит подключить? Я нашел в utils и sdk include, но не один мне не помог. Поможет кто инклюдил?
abramcumner
Цитата(GermanAizek @ 31.03.2017, 11:32) *
Что за mutex просит подключить? Я нашел в utils и sdk include, но не один мне не помог. Поможет кто инклюдил?

mutex - это заголовочный файл из стандартной библиотеки с++ 11. В с++ билдере 5 или 6(каким там собирается сдк) его конечно же нет. Тот, кто его подключал, совершенно не думал о сборке СДК.
GermanAizek
Цитата(abramcumner @ 31.03.2017, 12:43) *
Цитата(GermanAizek @ 31.03.2017, 11:32) *
Что за mutex просит подключить? Я нашел в utils и sdk include, но не один мне не помог. Поможет кто инклюдил?

mutex - это заголовочный файл из стандартной библиотеки с++ 11. В с++ билдере 5 или 6(каким там собирается сдк) его конечно же нет. Тот, кто его подключал, совершенно не думал о сборке СДК.


Вы предлагаете собирать в c++ 11? В 6 точно нет?
abramcumner
Цитата(GermanAizek @ 01.04.2017, 16:18) *
Вы предлагаете собирать в c++ 11? В 6 точно нет?

Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает.
Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК.
Ну и конечно оригинальные исходники, они собираются в шестом билдере.
ForserX
Цитата(abramcumner @ 01.04.2017, 16:51) *
Цитата(GermanAizek @ 01.04.2017, 16:18) *
Вы предлагаете собирать в c++ 11? В 6 точно нет?

Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает.
Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК.
Ну и конечно оригинальные исходники, они собираются в шестом билдере.

Речь идёт об исходниках 0.7 SDK.
ЕМНИП, GermanAizek юзает какой-то старый коммит с моего форка. На нём тебе предстоит выловить в билдере с сотню забавных ошибок из-за обновления под С++14. Сам пытался SDK собрать, но в один момент просто надоело и снёс его сорцы с репо. Бери оригинальные исходники, если нужен SDK.
kasper
Цитата(Forser @ 01.04.2017, 18:11) *
Цитата(abramcumner @ 01.04.2017, 16:51) *
Цитата(GermanAizek @ 01.04.2017, 16:18) *
Вы предлагаете собирать в c++ 11? В 6 точно нет?

Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает.
Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК.
Ну и конечно оригинальные исходники, они собираются в шестом билдере.

Речь идёт об исходниках 0.7 SDK.
ЕМНИП, GermanAizek юзает какой-то старый коммит с моего форка. На нём тебе предстоит выловить в билдере с сотню забавных ошибок из-за обновления под С++14. Сам пытался SDK собрать, но в один момент просто надоело и снёс его сорцы с репо. Бери оригинальные исходники, если нужен SDK.

пытался собрать под rad studio xe8, там ппц no.gif, кстати у кого-нибудь есть полные сорцы Eldos elpack 3.11 версии rolleyes.gif ?
GermanAizek
Цитата(Forser @ 01.04.2017, 18:11) *
Цитата(abramcumner @ 01.04.2017, 16:51) *
Цитата(GermanAizek @ 01.04.2017, 16:18) *
Вы предлагаете собирать в c++ 11? В 6 точно нет?

Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает.
Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК.
Ну и конечно оригинальные исходники, они собираются в шестом билдере.

Речь идёт об исходниках 0.7 SDK.
ЕМНИП, GermanAizek юзает какой-то старый коммит с моего форка. На нём тебе предстоит выловить в билдере с сотню забавных ошибок из-за обновления под С++14. Сам пытался SDK собрать, но в один момент просто надоело и снёс его сорцы с репо. Бери оригинальные исходники, если нужен SDK.


Мда, приехали. Придется и вправду менять исходники для сдк.
RayTwitty
Цитата(kasper @ 01.04.2017, 18:24) *
пытался собрать под rad studio xe8, там ппц

Долбитесь к K.D. в личку, он вроде собирал под эту студию.
shurabich
Всем доброго времени суток. Хотел скачать X-Ray extensions portable от Macron'a по ссылке в шапке темы, но по ходу файл удален. Кто-нибудь может перезалить? Заранее спасибо!
macron
Нужно в шапке заменить:

X-Ray extensions portable r232

https://yadi.sk/d/OLYPbDXWjyEkH

Заменил. RT
aka_sektor
Цитата(macron @ 02.04.2017, 13:51) *
Нужно в шапке заменить:

X-Ray extensions portable r232


Я писал об этом, ещё 10 марта: https://www.gameru.net/forum/index.php?s=&a...t&p=1611553
kasper



wacko.gif wacko.gif wacko.gif ппц оно даже смогло запуститься
Asterix
kasper, собрал из исходников? а что нибудь правил?
kasper
Цитата(Ray @ 04.04.2017, 17:15) *
kasper, собрал из исходников? а что нибудь правил?

что-то правил, что-то коментил, стабильность ужасная просто, elpack 3.12 (3.11 не нашел) собирал под rad studio там тоже куча ошибок, потом может под новый LMB elpack 2017 попробую собрать, но он trial без сорцев
Tron
Да выпилите нафиг этот компонент.
Тут в инете ходит DevExpress для борланда (Делфи точно видел)
Еще, кстати, слили исходники юнити
NanoBot-AMK
Цитата(Tron @ 04.04.2017, 21:21) *
Еще, кстати, слили исходники юнити

Ну и где ссылко?
Tron
Цитата(NanoBot-AMK @ 04.04.2017, 22:52) *
Цитата(Tron @ 04.04.2017, 21:21) *
Еще, кстати, слили исходники юнити

Ну и где ссылко?

как ни странно, но на гитхабе.. прям так залили.. внаглую
не надо
eugeneko/Unity3D

Лежит только ядро движка/редактора, многих компонентов нету в наличии(например их либы для работы с шейдерами, нету 3dparty - Beast,scaleform)

Версии - 3 года, это unity 4.3.1f1 вроде
GermanAizek
Цитата(kasper @ 04.04.2017, 17:13) *



wacko.gif wacko.gif wacko.gif ппц оно даже смогло запуститься


Rad studio 10.1 Berlin не покатит? Он просто не может открывать борландские проекты или есть какие-то конверторы?
ForserX
Цитата(kasper @ 04.04.2017, 17:13) *



wacko.gif wacko.gif wacko.gif ппц оно даже смогло запуститься

Исходниками не поделишься?
kasper
Цитата(Forser @ 06.04.2017, 08:58) *
Цитата(kasper @ 04.04.2017, 17:13) *



wacko.gif wacko.gif wacko.gif ппц оно даже смогло запуститься

Исходниками не поделишься?

потом выложу, хочу сделать немного стабильнее и сдк для xray 1.007 не 1.6 shuffle.gif
GermanAizek
Цитата(kasper @ 06.04.2017, 09:52) *
Цитата(Forser @ 06.04.2017, 08:58) *
Цитата(kasper @ 04.04.2017, 17:13) *



wacko.gif wacko.gif wacko.gif ппц оно даже смогло запуститься

Исходниками не поделишься?

потом выложу, хочу сделать немного стабильнее и сдк для xray 1.007 не 1.6 shuffle.gif


RadStudio 10.1 покатит? Я читал что за 2000 по сегодняшний много изменилось, и типа старые проекты можно открыть через нотепад и посмотреть что к чему соединено, но это чувствую запарно восстанавливать.
kasper
Цитата(GermanAizek @ 06.04.2017, 10:28) *
Цитата(kasper @ 06.04.2017, 09:52) *
Цитата(Forser @ 06.04.2017, 08:58) *
Цитата(kasper @ 04.04.2017, 17:13) *



wacko.gif wacko.gif wacko.gif ппц оно даже смогло запуститься

Исходниками не поделишься?

потом выложу, хочу сделать немного стабильнее и сдк для xray 1.007 не 1.6 shuffle.gif


RadStudio 10.1 покатит? Я читал что за 2000 по сегодняшний много изменилось, и типа старые проекты можно открыть через нотепад и посмотреть что к чему соединено, но это чувствую запарно восстанавливать.

10.1 пробовал когда начинал, но он почему-то напрочь отказывался конвертировать старый проект на borland 6, поэтому и сижу на XE8, потянет ли 10.1 не пробовал
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.