Страница: 1 |
Страница: 1 |
Вопрос: Создание псевдо-архивов при программировании игр
Добавлено: 12.10.04 02:54
Автор вопроса: Unheilig | Web-сайт:
В игровой индустрии широко применяются различные способы запихивания ресурсов игры в архивы (не обязательно с сжатием, главное чтобы не смогли открыть его).Так вот может есть описания для создания такого архива (типа *.рак или др.) в ВБ, хотелось бы узнать по-подробнее. У кого есть опыт, и/или исходники, статьи, прошу поделится в этом топике.
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #1
Добавлено: 12.10.04 05:39
ochen` prosto. mozhet byt` 2 varianta:
esli tebe prosto fajly nuzhny, i esli s imenami ihnimi
esli pervoe, to hranish kol-vo fajlov, i pri nachale kazhdogo fajla ego dlinu. esli vtoroe, to mozhno libo v samom nachale hranit` spisok imen fajlov i offset-y k nachalam i dliny ih, ili kol-vo fajlov, i pri nachale kazhdogo dlinu imeni, imya, dlinu fajla, fajl.
ne ochen` slozhno, esli nado -- pishi ili v forum ili na mylo, ya uzhe takoe delal.
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 12.10.04 09:54
А чем тебе не нравятся ресурсы? Пихается все в экзешник, только текстовая информация видна будет. Конечно, экстракторами ресурсов можно вытянуть и другое, но это если уж очень нужно - а в таком случае и архивы с паролями вскрываются
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 12.10.04 19:14
Создай файл, создай в нем заголовок с данными о смещениях, и используй...
Номер ответа: 4
Автор ответа:
Unheilig
ICQ: 336859855
Вопросов: 9
Ответов: 32
Web-сайт:
Профиль | | #4
Добавлено: 12.10.04 20:35
2 sne:
Вот а как такое реализовать. Файл я создать могу, а что за заголовок в нём? И вроде это должен быть архив или файл ресурсов, ведь в текстовый файл - нонсенс. Обьясните, plz.
Номер ответа: 5
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #5
Добавлено: 12.10.04 22:25
Во, я знаю!
Короче, берем EXE самой проги, далее записываем ему прямо в КоНэЦ нужонный вам ресурс и все!
Ну, а считать почти просто. Зато никаким архиватором...
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 13.10.04 08:37
Создаешь файл, можно вручную с пом. HEX редактора, можно с пом. VB, смотришь все файлы что нужно объединить, поочередно каждый файл присоединяем в одну заданныую переменную/файл, при этом запоминая начало файла и его длинну в переменной/файле куда производится запись. Далее либо в самом конце, либо в начале файла пишем данные о смещениях, дабы можно было бы все то прочитать что мы туда позаписывали... вот собственно и все... можно туда же понаписать еще какую-нить доп. информацию... скажем название или еще что-нить...
Номер ответа: 7
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #7
Добавлено: 13.10.04 08:52
2LamerOnLine, угу учите его EXE делать
А если у "игрока" антивирус? Знаешь как он его (EXE) долго и тщательно
проверять будет?
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 13.10.04 09:55
Ну, это не фактор. Антивирусов боятся - программ не писать.
Номер ответа: 9
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #9
Добавлено: 13.10.04 12:22
Unheilig,
Заголовок сделай и не мучся.
Например из трёх полей:
Смещение | Размер | Смещение к имени
Long | Long | Long
А для считывания создай тип. Например
Type PakHDR
Offset As Long
Size As Long
NameOffset As Long
End Type
И считывай бинарно тип до тех пор пока не встретишь 3 нуля.
Что то типа такого:
Dim DataHeader As PakHDR
Open "ata.Pak" For Binary As 1
Do
if Seek(1)=Lof(1) Then Exit Do
Get #1,,DataHeader
'Здесь обрабатываешь загруженные данные
...
'Ну и проверка на конец таблицы
With DataHeader
If (.Offset Or .Size Or .NameOffset) = 0 'Then Exit Do
End With
Loop
Close 1
Номер ответа: 10
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #10
Добавлено: 13.10.04 20:08
CyRax,
gad, moyu ideyu styril.......
u menya kstati och. pohozhe na eto napisano.....
Номер ответа: 11
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #11
Добавлено: 13.10.04 20:55
AASoft, чес слово больше не буду. Зато как у меня код стройно выглядит а? Давай ты у меня в ответ стыряешь кирилицу в свою систему. Тогда будем квиты
PS: Разве ж этой идея. Вот если бы ты движок для базы данных написал, тогда бы было посерьёзней.
Номер ответа: 12
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #12
Добавлено: 14.10.04 11:56
2 AASoft: эта идея уже который год используется в почтовых базах
TheBat Так что скорее всего, либо никто ничего не украл, либо одно
из двух...
Номер ответа: 13
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #13
Добавлено: 14.10.04 21:22
gy, tak ya ved` v shutku skazal ved`.....izvinite esli obidel......a naschet kirillicy, prosto uzhe privyk za 3 goda v Kanade k angliskoj klaviature, i proshe mne na angliskov pechatat`......esli uzh tak neponyatno ili slozhno, budu na russkom, a esli ponyatno, nu togda chitaj kak est`.....
a naschet dvizhka -- nu.....ee...ee...um.......nado konechno....napisAt`......koroche, u menya shas b igre cheto tipa etogo napisano, mogu konech`no sdelat`, no smysl? kak budto ktoto yuzat` budet.........?..hotya....ideya.....ladno, budu pisAt`, mozhet cheto putnoe i sdelayu. a vashe, est` zhe polno DLL'ek kotorye cheto takogo tipa delayut, tak chto......naverna ne stoit.
a naschet koda ne ponyal...che znachit strojno? tebe che, ne nravitsya kak ya kodyu ili che?