Пару-тройку дней назад присутствовал при дискуссии goraph и Ajenta насчёт структур данных QSP. Под впечатлением от слов goraph, что ограничения работы с массивами, мешают написать настоящее текстовое RPG, набросал модуль работы с таблицами.
Данный модуль предоставляет следующие возможности:
Текущая версия: 1.3.1 (скачать)
Документация on-line: https://ifiction.ru/h/otg_lib_tables_help.html
Пример работы с таблицей:
GS 'Таб.Создать','Персонажи','Имя, Здоровье, Раса'
GS 'Таб.СоздатьИндекс','Персонажи','Имя'
GS 'Таб.ДобавитьСтроку','Персонажи','Крокодил',90,'Варвар'
GS 'Таб.ДобавитьСтроку','Персонажи','Арабелла',77,'Амазонка'
GS 'Таб.ДобавитьСтроку','Персонажи','Адельм',60,'Монах'
GS 'Таб.ДобавитьСтроку','Персонажи','Каннибал',75,'Варвар'
GS 'Таб.ДобавитьСтроку','Персонажи','Марина',77,'Амазонка'
GS 'Таб.Сортировать', 'Персонажи', 'Раса,Здоровье-'
GS 'Таб.Установить','Персонажи','Адельм','Здоровье',25
GS 'Таб.Выбрать','Персонажи','Раса','=','Варвар'
:перебор_строк_таблицы
if func('Таб.Следующая','Персонажи','Герой'):
*NL func('Таб.Значение','Персонажи','Номер строки')+'. '+$Герой['Имя']+' ('+Герой['Здоровье']+')'
JUMP 'перебор_строк_таблицы'
end
GS 'Таб.Удалить','Персонажи'Неактивен
Не удается добавить строку больше 8-и элементов
gs 'Table.NewLine', 'test', 1, 2, 3, 4, 5, 6, 7, 8 - все норм
Добавляешь 9-й элемент - Неверное число аргументов оператора / функции!
Неактивен