siryksv
Участник форума
- Регистрация
- 5 Окт 2009
- Сообщения
- 567
- Благодарности
- 1
- Баллы
- 225
Представляю мини справочник (мини БД) для хранения информации об игровых предметах. Программа может быть использована в различных целях, и для различных игр, не только Готики. Пока я начал собирать в один скрипт коды на вещи из Готики Возвращения (собрал небольшую часть, понадобилась бы помощь - см. ниже).
Для представления иерархической древовидной структуры разработан примитивный скриптовый язык.
Правила грамматики языка даются ниже (кто разбирается в синтаксическом разборе и построении компиляторов, тот сразу поймет суть дела ):
Из операторов управления формой пока я ввел только captionform, который устанавливает заголовок программы. Остальные еще не придумал, какие бы ввести.
Есть два оператора описаний: ADDNODE для описания узла дерева, и ADDTHING для описания вещи.
Оператор ADDNODE:
Если надо добавить в корень, то узел_предок=nil
Оператор ADDTHING:
Список зарезервированных ключевых слов, которые не следует использовать в качестве имен идентификаторов:
Пример простейшего скрипта:
В результате получится дерево на скрине.
Четвертым и пятым параметрами оператора ADDTHING являются пути к файлам относительно каталога программы.
Пока я программу сделал исходя из того, чтобы удобно организовать базу кодов вещей в Готике. Но можно сделать БД путевых точек, или расположение всех растений, или что-то еще. Конечно, можно добавить другие функции в синтаксис, или сделать так, что функция addthing имела не пять параметров, а значительно больше. В дальнейшем, если на что-то это понадобится, я расширю синтаксис скриптов.
Я начал собирать в один скриптовый файл коды на вещи в Возвращении.
Пока вписал только часть рун (и потратил на это минут 20). Инфу по рунам брал отсюда: http://returning.worldofgothic.ru/item/obzor-run-vozvraschenija (слышал, что там есть ошибки в кодах. Не знаю, сам пока не проверял). Мне бы понадобилась помощь людей, которые могли бы составить подробные описания (просто в текстовых файлах) параметров/характеристик рун, оружия и обмундирования. Также нужны изображения самих вещей. Еще был бы очень рад людям, которые могли бы писать все это прямо в скриптах (хотя этого я не требую от желающих помочь, готовые описания в скрипты я и сам переведу).Всем людям, которые существенно помогут в продвижении названных выше вещей, обещаю местопод Сонцем в субтитрах программы.
То что у меня вышло, показано на скрине. В свободное время добавлю еще. Скрипты хранятся в файлах *.tmdb. Чтобы открыть файл, надо меню Файл->Открыть файл описаний.
Во вложениях находится архив TMDB.rar с программой (немного сжал UPX-ом), и скрипт G2R.tmdb для Возвращения. В подкаталоге Data находятся файлы описаний (это текстовые файлы) и пара картинок. Собственно, помощники мне нужны для того, чтобы составить подробные описания и собрать коллекцию картинок. Картинки очень желательно делать JPG, и маленького размера. Со временем, постараюсь выложить и исходники (а сейчас от них толку практически никакого, ибо всякий ступивший туда, быстро заблудится ).
Для представления иерархической древовидной структуры разработан примитивный скриптовый язык.
Правила грамматики языка даются ниже (кто разбирается в синтаксическом разборе и построении компиляторов, тот сразу поймет суть дела ):
Примечания:
1) В фигурные скобки {...} заключается часть правила, которая может повторяться сколько угодно раз, в т.ч. и ни одного раза;
2) В квадратные скобки [...] заключается необязательная часть, которая может быть, а может и отсутствовать;
3) Str_Const - это обозначение для произвольной строковой константы, которая обрамляется одинарными кавычками (как в Паскале)
4) Id - это обозначение для идентификатора (в нас это имена переменных, которые соответствуют узлам дерева).
5) Ключевые слова выделены прописью;
6) Нетерминалы заключаются в угловые скобки <...>
7) Символ "::=" служит для отделения правой части правила от левой (т.е. имени нетерминала).
1) В фигурные скобки {...} заключается часть правила, которая может повторяться сколько угодно раз, в т.ч. и ни одного раза;
2) В квадратные скобки [...] заключается необязательная часть, которая может быть, а может и отсутствовать;
3) Str_Const - это обозначение для произвольной строковой константы, которая обрамляется одинарными кавычками (как в Паскале)
4) Id - это обозначение для идентификатора (в нас это имена переменных, которые соответствуют узлам дерева).
5) Ключевые слова выделены прописью;
6) Нетерминалы заключаются в угловые скобки <...>
7) Символ "::=" служит для отделения правой части правила от левой (т.е. имени нетерминала).
Код:
<старт>::=[<операторы_управления_формой>]BEGIN[<операторы_описаний>]END
<операторы_управления_формой>::=<оператор_управления>{;<оператор_управления>}
<оператор_управления>::=<captionform>
<captionform>::=CAPTIONFORM=Str_Const
<операторы_описаний>::=<оператор_описаний>{;<оператор_описаний>}
<оператор_описаний>::=<addnode>|<addthing>
<addnode>::= Id=ADDNODE (<parent_node>, Str_Const)
<parent_node>::= Id | NIL
<addthing>::=ADDTHING(Id, Str_Const, Str_Const, Str_Const, Str_Const)
Из операторов управления формой пока я ввел только captionform, который устанавливает заголовок программы. Остальные еще не придумал, какие бы ввести.
Есть два оператора описаний: ADDNODE для описания узла дерева, и ADDTHING для описания вещи.
Оператор ADDNODE:
Код:
имя_узла=ADDNODE(узел_предок, 'название узла')
Оператор ADDTHING:
Код:
имя_узла=ADDTHING(переменная_корневого_узела, 'название узла дерева', 'название вещи', 'относительный путь к файлу описания', 'относительный путь к файлу изображения')
Список зарезервированных ключевых слов, которые не следует использовать в качестве имен идентификаторов:
Код:
captionform,
addnode,
addthing,
begin,
end,
nil
Пример простейшего скрипта:
Код:
captionform='Имя формы';
begin
t=addnode(nil,'Уровень 1');
t1=addnode(t,'Уровень 2');
t2=addnode(t,'Уровень 2');
t3=addnode(t1,'Уровень 3');
addthing(t,'111','вещь','','');
addthing(t1,'222','','','');
addthing(t1,'333','','','');
addthing(t2,'444','','','');
addthing(t3,'555','','','');
end
Четвертым и пятым параметрами оператора ADDTHING являются пути к файлам относительно каталога программы.
Пока я программу сделал исходя из того, чтобы удобно организовать базу кодов вещей в Готике. Но можно сделать БД путевых точек, или расположение всех растений, или что-то еще. Конечно, можно добавить другие функции в синтаксис, или сделать так, что функция addthing имела не пять параметров, а значительно больше. В дальнейшем, если на что-то это понадобится, я расширю синтаксис скриптов.
Я начал собирать в один скриптовый файл коды на вещи в Возвращении.
Пока вписал только часть рун (и потратил на это минут 20). Инфу по рунам брал отсюда: http://returning.worldofgothic.ru/item/obzor-run-vozvraschenija (слышал, что там есть ошибки в кодах. Не знаю, сам пока не проверял). Мне бы понадобилась помощь людей, которые могли бы составить подробные описания (просто в текстовых файлах) параметров/характеристик рун, оружия и обмундирования. Также нужны изображения самих вещей. Еще был бы очень рад людям, которые могли бы писать все это прямо в скриптах (хотя этого я не требую от желающих помочь, готовые описания в скрипты я и сам переведу).Всем людям, которые существенно помогут в продвижении названных выше вещей, обещаю место
То что у меня вышло, показано на скрине. В свободное время добавлю еще. Скрипты хранятся в файлах *.tmdb. Чтобы открыть файл, надо меню Файл->Открыть файл описаний.
Во вложениях находится архив TMDB.rar с программой (немного сжал UPX-ом), и скрипт G2R.tmdb для Возвращения. В подкаталоге Data находятся файлы описаний (это текстовые файлы) и пара картинок. Собственно, помощники мне нужны для того, чтобы составить подробные описания и собрать коллекцию картинок. Картинки очень желательно делать JPG, и маленького размера. Со временем, постараюсь выложить и исходники (а сейчас от них толку практически никакого, ибо всякий ступивший туда, быстро заблудится ).