Elf's Quests Toolkit
#1
Я тут продолжаю обучаться C++. Написал лёгенькую прогу, которая заменяет одну последовательность символов на другую. Заодно решил к ней написать альтервнативный пакет по редактированию MQ файлов.

Теперь собственно о пакете:
В минус для знающих и в плюс для незнающих, но всё-таки - я полностью переделал устройство файлов.
Весь упор в этом пакете сделал на создание новых квестов с УНИКАЛЬНЫМИ названиями (Например: z3-ELFQuest501.mq)...
Остальное Вы увидите, как говорится, на месте. Wink

Эх, эх. Как всегда RAR мне нельзя прикреплять... Потому этот бедный RAR я запаковал в ZIP (кстати размер на том уменьшился на 11Кб). Так что не пугайтесь, если увидите архив в архиве... Blush


Файлы вложений
.zip   ELFs_Quests_Toolkit_v1.1.zip (Размер: 156.5 KB / Загрузок: 308)
Ответ
#2
Чего-то много она весит... ты ее в release конфигурации компилировал?
SURREAL
Ответ
#3
В том то всё и дело, что весит она много. Sad
Компилировал я её в DEBUG конфигурации, хотел ещё указать Visual C++, чтобы он как можно сильнее её сжал, но при таком раскладе компилятор написал что-то типа "параметры не подходят" - видимо при указании наименьшего размера он делает какие-то несовместимые параметры (хотя кто его знает).

Также у меня возник вопрос, каким компилятором получить максимально маленькую прогу?

Кстати, какие мнения по поводу альтервнативного пакета?
Ответ
#4
2ELF:
Цитата:Также у меня возник вопрос, каким компилятором получить максимально маленькую прогу?
gcc :lol: !
Say it once, say it twice,
Take a chance and roll the dice...
Ответ
#5
gcc?
What is this? (Чё за це?) Huh
Ответ
#6
ELF,06 Май 2004, 12:50 Написал:Также у меня возник вопрос, каким компилятором получить максимально маленькую прогу?

Вот здесь интересная статейка по этому поводу.
Ответ
#7
Хм, статейка действительно интересная: значит залог в размере лежит в отключении RTL, таки в отказе от стандартных библиотек... Но обычно делаются проги ну хотябы на Кб так 30, а у меня вон аж какая - 320 КБ!!!

У меня ещё маловато опыта для того, чтобы так просто отказаться от библиотек... Sad

В исходнике, который я выложил видно, что я подключит целых две библиотеки - iostream и fstream - думаю, что они то и задали гигантские размеры. :unsure: Вообще изначально я хотел прогу написать на C, но у меня возникли проблемы с указателями (хотя у меня и в написанной проге такие проблемы были), может сегодня поразбираюсь - может даже прогу перепишу под C, но пока ничего не обещаю...

И кстати, какие мнения по поводу Альтервнативы MQ Toolkit'у?
Ответ
#8
GCC this is GNU C++ COMPILATOR, and... Так, ладно, "флудить" не будем в русском форуме... Smile
GNU - лицензия под которой проходят многие *nix программы.
Будь уверен, с помощью gcc ты добьешся минимального размера твоей проги =)))...
P.S. - Чисто теоретически, за данные советы я ответственности не несу.
Say it once, say it twice,
Take a chance and roll the dice...
Ответ
#9
К сожалению мне прога нужна под Виндовоз, а не под Уникса...

Итак, переписал прогу на язык C, её размер подуменьшился, хотя всё ещё большой, но зато теперь пакет стал весить примерно как MQ Toolkit...

Итак, вот особенность моего пакета:

1.Полностью изменена структура файлов, теперь:
"01-Start.txt" (раньше был "Briefing <ИмяКвеста>_1") отвечает за вступительный диалог;
"02-Cancel.txt" (раньше был "Briefing <ИмяКвеста>_2") отвечает за текст при отказе от миссии;
"03-Done.txt" (раньше был "Briefing <ИмяКвеста>_3") отвечает за текст при успешном выполнении миссии;
"04-Quest.txt" (Раньше был "Quest <ИмяКвеста>") отвечает за текст выдаваемых заданий;
"05-Map.txt" (Раньше был "<ИмяКвеста>Map.txt") отвечает за подготовку зоны для квеста;
"06-Quest.ini" (Раньше был "<ИмяКвеста>Quest.ini") отвечает за настройки самого квеста.
2.Теперь можно быстро менять имена квестам с помощью батника "Build_Quest.bat", вот пример:
Код:
Build_Quest.bat z3q2-GiantToad z3-Lagushka
Build_Quest.bat z3q2-GiantToad z3-Zaba
Build_Quest.bat z3q2-GiantToad z3-BigZaba
3.Как и было раньше, можно компилить всё:
Код:
Build_All.bat
4.Теперь можно легко брать за основу старые квесты:
Просто скопировать папку старого и указать ей новое имя.
5.По мнению автора пакета, новая структура пакета должна сделать работу с квестами более наглядной.

Пока всё, каковы мнения??
Ответ
#10
Elf, лови свою прогу - 16 кб (в архиве - чуть меньше 2 кб). Если ты используешь MS Visual C++ 6.0, то тебе надо сделать следующее:
Во-первых, меню Build->Set active configuration...->Win32 Realase;
Во-вторых, меню Project->Settings далее выбираешь Settings for: Win32 Realase, после этого переходишь на вкладку C/C++ в графе Category выбираешь пункт Code Generation после этого появится графа Use run-time library: в ней выбери пункт Multithreaded DLL. После сборки размер исполняемого файла очень ощутимо уменьшится за счет использования внешних динамических библиотек, но здесь есть свои грабли: не на каждом компьютере может оказаться нужная библиотека, если она, конечно же, не является системной.
P.S.: для "новичка" (а действительно ли новичка?) программа написана очень круто, хотя большинство твоих циклов можно было бы заменить библиотечными функциями, но в общем - твердая 5 Smile. У меня есть знакомые, которые уже пол года пишут на С++, но до сих пор боятся пользоваться указателями и не используют такой удобнейший оператор, как ++ и --, не говоря уже о +=, -= и т.д.


Файлы вложений
.rar   replacer.rar (Размер: 1.8 KB / Загрузок: 285)
Нахмуренность - это перевернутая улыбка.
Ответ
#11
Огромное тебе спасибо, Manyak!!! Smile Ты прямо таки мне всё рассказал, спасибо, что нашёл время на изучение исходника и доработал его!

На счёт обучения C++, я действительно новичок в плане написания прог на C и C++ (хотя уже много лет писал на Basic, Pascal, но не на Delphi). Скорее всего дело в литературе, которую используешь (тут огромнейшее спасибо ещё раз Jet'у). Wink

Постараюсь сегодня же всё обновить и выпустить версию 1.1, а вообще, если мне кто-то поможет в разборке формата RES (буквально пару полей узнать), то я смогу скорее всего сделать MQ Editor (после чего надобность в пакете исчезнет).

Кстати, насчёт циклов, теперь, когда я вернулся к C, я решил использовать для перевода параметров в переменные обычную функцию sscanf(), после чего в циклах надобность отпадает... Wink

И ещё, я тут сайт один прикольный нарыл, там есть этакий словарик функций C. Очень удобно закачать весь их сайт, и использовать этот словарик: www.codenet.ru

Ждите обновления... Smile
================================================

Добавлено 10.05.2004 в 17:47
-------------------------------------
Итак, сделал версию v1.1, прога Replacer оптимизирована по совету Manyak'а (за что ему спасибо).


Теперь о будущем редакторе, вот интересующие меня моменты в RES файлах:
1.Что прописано в RES архиве по адресу 0x0000000Ch? (после адреса списка);
2.По адресу 0x00000008h находится указатель на список имён, а там первое поле обычно имеет значение 0xFFFFFFFFh, но иногда оно имеет нормальное значение, за что оно отвечает?

И вот новый исходник Replacer'а (кому интересно):
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)