Здесь показаны различия между двумя версиями данной страницы.
Следущая версия | Предыдущая версия | ||
help:objs [2013/11/07 16:03] newsash создано |
help:objs [2020/08/19 21:32] aleks_versus |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | [[help:acts|Назад: Действия]] | ||
=====Предметы (инвентарь)===== | =====Предметы (инвентарь)===== | ||
- | 6) В названиях действий и предметов не важен регистр букв, т.е. "ДеньГи" и "деньги" - одна и та же локация. | + | Предметы главный герой носит с собой, чтобы применить куда-нибудь. На деньги можно купить оружие, оружием кого-нибудь победить, ключом открыть дверь, и так далее. Герой может нести предметы в руках, в карманах, в заплечном мешке, даже катить, в общем случае говорят "инвентарь". Таким образом, инвентарь - это список всех предметов, что есть у героя в данный момент. |
- | SHOWOBJS [#выражение] - если значение выражения отлично от 0, то показывает список предметов, иначе скрывает его. | + | В названиях предметов не важен регистр букв, т.е. "ДеньГи" и "деньги" - один и тот же предмет. |
- | + | ||
- | ADDOBJ [$название],[$путь к файлу изображения] или ADD OBJ [$название],[$путь к файлу изображения] - добавление предмета с заданным изображением в рюкзак. Индекс. | + | |
- | + | ||
- | К предметам добавляется новый с названием [$название] и изображением [$путь к файлу изображения]. | + | |
- | + | ||
- | Параметр [$путь к файлу изображения] может отсутствовать, при этом предмет добавится без изображения. | + | |
- | + | ||
- | Обратите внимание - для использования одинаковых предметов инвентаря, например денег, патронов и т.п., лучше использовать дополнительную переменную, обозначающую количество этих предметов, чтобы не загромождать инвентарь списком из 137 предметов Рубль / Патрон. Для хранения числа предметов можно использовать массивы, индексируемые через строки: | + | |
+ | ====Команды==== | ||
+ | * **SHOWOBJS** //[#выражение]// - если значение выражения отлично от 0, то показывает список предметов, иначе скрывает его. | ||
+ | * **ADD OBJ** //[$название]//**,**//[$путь к файлу изображения]//**,**//[#индекс]// или | ||
+ | * **ADDOBJ** //[$название]//**,**//[$путь к файлу изображения]//**,**//[#индекс]// - добавление предмета с названием //[$название]// и изображением //[$путь к файлу изображения]// в инвентарь на место с номером //[#индекс]//. | ||
+ | * Параметр //[#индекс]// может отсутствовать. По умолчанию предметы добавляются в конец списка. | ||
+ | * Индексация предметов рюкзака ведётся с 1. | ||
+ | * Параметр //[$путь к файлу изображения]// может отсутствовать, значение по умолчанию - %%''%%. | ||
+ | * Обратите внимание - для использования одинаковых предметов инвентаря, например денег, патронов и т.п., лучше использовать дополнительную переменную, обозначающую количество этих предметов, чтобы не загромождать инвентарь списком из 137 предметов Рубль / Патрон. Для хранения числа предметов можно использовать массивы, индексируемые через строки:<sxh qsp> | ||
OBJECTS['деньги'] = 12 | OBJECTS['деньги'] = 12 | ||
- | |||
OBJECTS['патроны'] = 137 | OBJECTS['патроны'] = 137 | ||
'Количество: <<OBJECTS[$getobj(countobj)]>>' | 'Количество: <<OBJECTS[$getobj(countobj)]>>' | ||
+ | </sxh> | ||
+ | * **DELOBJ** //[$название]// или **DEL OBJ** //[$название]// - удаление предмета из рюкзака, если таковой имеется. | ||
+ | * **KILLOBJ** //[#номер]// - удаление предмета, расположенного в заданной позиции. Если параметр [#номер] не указан, то очистка рюкзака. | ||
+ | * Индексация предметов рюкзака ведётся с 1. | ||
+ | * **KILLALL** - эквивалентен конструкции "KILLVAR & KILLOBJ". | ||
+ | * **$SELOBJ** - функция возвращает название выделенного предмета в любом месте игры. | ||
+ | * **COUNTOBJ** - функция возвращает количество предметов в рюкзаке. | ||
+ | * **$GETOBJ(**//[#номер]//**)** - возвращает название предмета в рюкзаке, расположенного в заданной позиции. | ||
+ | * Индексация предметов рюкзака ведётся с 1. | ||
+ | * Если предмета с заданным индексом не существует, возвращается пустая строка (''). | ||
+ | * //Примеры://<sxh qsp> | ||
+ | !Первый предмет в списке | ||
+ | $GETOBJ(1) | ||
- | Также см. локацию-обработчик добавления предмета. | + | !Последний предмет в списке |
- | + | $GETOBJ(COUNTOBJ) | |
- | + | </sxh> | |
- | + | ||
- | DELOBJ [$название] или DEL OBJ [$название] - удаление предмета из рюкзака, если таковой имеется. Также см. локацию-обработчик удаления предмета. | + | |
- | + | ||
- | + | ||
- | + | ||
- | KILLOBJ [#выражение] - удаление предмета, расположенного в заданной позиции. Если параметр [#выражение] не указан, то очистка рюкзака. | + | |
- | + | ||
- | Индексация предметов рюкзака ведётся с 1. Также см. локацию-обработчик удаления предмета. | + | |
- | + | ||
- | KILLALL - эквивалентен конструкции "KILLVAR & KILLOBJ". | + | |
- | + | ||
- | COUNTOBJ - возвращает количество предметов в рюкзаке. | + | |
- | + | ||
- | GETOBJ([#выражение]) - возвращает название предмета в рюкзаке, расположенного в заданной позиции. Индексация предметов рюкзака ведётся с 1. | + | |
- | + | ||
- | Если предмета с заданным индексом не существует, возвращается пустая строка (''). | + | |
- | + | ||
- | + | ||
- | GETOBJ(1) - вернёт название первого предмета в рюкзаке | + | |
- | + | ||
- | GETOBJ(COUNTOBJ) - вернёт название последнего добавленного предмета | + | |
- | + | ||
- | + | ||
- | + | ||
- | Код, подсчитывающий в массиве OBJECTS число предметов с одинаковым названием: | + | |
- | + | ||
+ | Код, подсчитывающий в массиве OBJECTS число предметов с одинаковым названием:<sxh qsp> | ||
i = 1 | i = 1 | ||
- | |||
:loop | :loop | ||
- | |||
IF i <= COUNTOBJ: | IF i <= COUNTOBJ: | ||
+ | OBJECTS[$GETOBJ(i)] = OBJECTS[$GETOBJ(i)] + 1 | ||
+ | i = i + 1 | ||
+ | JUMP 'loop' | ||
+ | END | ||
+ | </sxh> | ||
- | OBJECTS[$GETOBJ(i)] = OBJECTS[$GETOBJ(i)] + 1 | + | Cм. также служебные локации: [[help:service_locations|$ONOBJADD]], [[help:service_locations|$ONOBJDEL]], [[help:service_locations|$ONOBJSEL]]. |
- | i = i + 1 | + | ---- |
- | + | [[help:menu|Вперёд: Меню]] | |
- | JUMP 'loop' | + | |
- | + | ||
- | END | + |