ТОМ2 - платформа для парсерных игр

Объявление

Открыт сайт tom2-game.ru.


Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Стандартные действия

Сообщений 1 страница 12 из 12

1

Ниже приведена таблица стандартных действий.

Все действия привязаны к глаголам, перечисленным в алфавитном порядке.
К каждому глаголу могут быть привязаны:
- действия (тип act);
- функции (action, fact, expression);
- методы связанных объектов и классов.

действие (act) однозначно указывает на конкретный вид действия.
Глагол может быть многозначным и соответствовать нескольким различным действиям.
Синонимы привязываются к конкретному действию.

функции описывают шаблон команды и содержат код для выполнения действия. Для функции действие (act) является первым аргументом.
Код функции может вызывать методы аргументов и других объектов, как для проверок так и для выполнения самого действия.
Синонимы функции реализуют другие возможные шаблоны команды, но при этом используют код основной функции.
Имя функции - вещь описательная и в код не транслируется. (как вы помните, в синтаксисе ТОМ2 функции имен не имеют).

методы связанных объектов и классов используются в коде функций.

2

арестовывать

act (имя действия)
синонимы

класс действия

код

арестовывать
арестовать
арест

действовать

атаковать

act (имя действия)
синонимы

класс действия

код

атаковать
убить
бить
ударить
убивать
атака
побить
мочить
замочить

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action атаковать
сражаться
вызвать на бой
нападать
стрелять

(атаковать _действие#Пф!е, существо _враг#ДмВп!е, [предмет _чем#ДмТп!е])
(сражаться _действие#Пф!е, с, существо _враг#ДмТп!е)
(вызвать, существо _враг#ДмВп!е, на, сражаться _действие#Вп!е)
(нападать _действие#Пф!е, на, существо _враг#ДмВп!е, [предмет _чем#ДмТп!е])
()

--parsing--

ok

--check--

if(_враг._здоровье<=0) fail, $"{_враг*#Ип} уже {$мертвое*_враг*#ИпКф}."

ok

--execute--

//далее запускается процедура боя

var сторона1 = actor

var сторона2 =_враг

_действие._бой

бежать

act (имя действия)
синонимы

класс действия

код

бежать
побежать
бег
сбежать
подбежать
сбегать
прибежать
выбежать
вбежать
вбегать
прибегать
выбегать
взбегать
взбежать
подбегать
отбегать
отбежать
забежать
забегать

перемещаться

бездействовать

act (имя действия)
синонимы

класс действия

код

бездействовать
бездействие

действовать

тип и имя функции
синонимы функции

аргументы

код

action ожидание

(бездействовать _действие#Пф!е)

==execute==

прошло некоторое время...

беречь

act (имя действия)
синонимы

класс действия

код

беречь

беспокоить

act (имя действия)
синонимы

класс действия

код

беспокоить

библиотека

тип и имя функции
синонимы функции

аргументы

код

fact наличие класса

(все:видимое _Обж#Ип, [это], class _Клс#Ип)

--parsing--

if(_Клс.num != 2) fail

if(_Обж.type==class) fail //должен быть объект

//if(_Обж.name==_Клс.name) fail //масло масло

if(_Обж.word==_Клс.word) fail //масло масло

if(_Обж.key != _Клс~"ч") fail, _text + " - словосочетание не согласовано"

ok

--check--

if(_Клс._секретно) return неизвестно, _Клс._секретно

_Обж is _Клс?

fact наличие признака
наличие состояния
наличие признака в локации

(все:видимое _что#Ип*м!е, attribute _какое#Ип)
(все:видимое _что#Ип*м!е, attribute _какое#Нв)
(location _что#Лп*м!е, attribute _какое#СрКфЕч)

--parsing--

if(_какое.num != 2) fail

//%_что.type == "location" - {_что.type == "location"}

//%_какое.key == #СрКфЕч - {_какое.key == #СрКфЕч}

if(_что.type == "location" && _какое.key == #СрКфЕч) Ok //в лесу дождливо

else if( _что.key != _какое.key~"рчпдл") fail, _text + " - словосочета`ние несогласо`вано"

ok

--check--

_что._проверка_видимости

_что.(_какое)

expression объект по владельцу

(все:видимое _что#*п!е, все:видимое _чего_кого#Рп!е)

-- parsing --

if(_что.num == 2) fail

_что._проверка_местоимения

_чего_кого._проверка_местоимения

if(_что.pos != _чего_кого) fail, "у {_чего_кого*#Рп} нет {_что*#Рп}."

ok

-- execute --

_что

expression объект по классу

(class Клс#*п!е, [-], все:видимое Обж#*п!е)

//мальчик Петя

--parsing--

if(Клс.num==2) fail //это утверждение

if(Обж.type=="class") fail //должен быть объект или локация

if(Обж.name==Клс.name) fail //масло масленное

if(Обж.word==Клс.word) fail //масло масленное

Обж._проверка_местоимения

if(Обж.key != Клс~"пч") fail //несогласовано

if(Обж not is Клс) fail, "тут нет {Клс*#Рп} - {Обж*#Рп}"

ok

--execute--

Обж

expression объект по признаку

(attribute Atr#*п*ч, все:видимое Обж#!е*п*ч*д)

-- parsing --

//if(Atr.num==2 && Обж.key == #Ип) fail //это утверждение

if(Atr.num != 1) fail //это утверждение

if(Обж.type=="class") fail //абстракция с уточнением - это уже не абстракция

Обж._проверка_местоимения

if(Обж.key != Atr.key) fail, "{_text} - словосочета`ние несогласо`вано."

ok

-- execute --

loc._проверка_на_темноту

if(Обж Atr) return Обж

fail, "тут нет {Atr*Обж*#Рп} {Обж*#Рп}."

бить

act (имя действия)
синонимы

класс действия

код

бить
удар
ударить
стукнуть
побить
врезать
вмазать
пнуть
пинать

воздействовать

благодарить

act (имя действия)
синонимы

класс действия

код

благодарить
благодарность

говорить

брать

act (имя действия)
синонимы

класс действия

код

брать
взять
поднять
хватать
схватить
поднимать
забрать
подобрать
забирать
подбирать
присвоить
присваивать

манипулировать

--_проверка--

******************

Дописать!

руки могут быт заняты, связаны, отрублены, а сам ты спишь и ничего взять не можешь.

тип и имя функции
синонимы функции

аргументы

код

action брать

(брать _действие#Пф!е, предмет _что#ВпДм!е, [предмет _откуда#БпДм!е])

if(_откуда==null) var _откуда = _что.pos

--parsing--

_что._проверка_на_ты

ok

--check--

if(_что.pos == actor) fail, "{_что*#Ип} и так уже у тебя."

_что._проверка_взятия

_что._проверка_типа

ok

--execute--

var text

var custom = _что._брать //возможна специфическая реакция

custom //fail return

if(custom.type=="string") text=custom //специфическое описание

_что inside actor

_что взятое

if(text) %text

else %{actor*#Ип} {$взять*actor} {_что*#Вп}.

ok

будить

act (имя действия)
синонимы

класс действия

код

будить
разбудить

воздействовать

быть

act (имя действия)
синонимы

класс действия

код

быть
находиться
располагаться
расположиться

валить

act (имя действия)
синонимы

класс действия

код

валить
завалить
свалить
сваливать
повалить
заваливать
поваливать

воздействовать

варить

act (имя действия)
синонимы

класс действия

код

варить
сварить
варка

готовить

везти

act (имя действия)
синонимы

класс действия

код

везти
привезти
увезти

перемещать

вести

act (имя действия)
синонимы

класс действия

код

вести
привести
водить
увести

действовать

вздыхать

act (имя действия)
синонимы

класс действия

код

вздыхать
вздохнуть
вздох

бездействовать

взламывать

act (имя действия)
синонимы

класс действия

код

взламывать
взломать
вскрыть
взлом
вскрывать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action взламывать
взлом

()
()

визжать

act (имя действия)
синонимы

класс действия

код

визжать
визг
повизжать
взвизгнуть

кричать

вить

act (имя действия)
синонимы

класс действия

код

вить
свить

включать

act (имя действия)
синонимы

класс действия

код

включать
включить
запустить
включение
врубать
врубить
запускать
активировать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action включать

()

возвращать

act (имя действия)
синонимы

класс действия

код

возвращать
вернуть
возвращение
возвратить

манипулировать

возвращаться

act (имя действия)
синонимы

класс действия

код

возвращаться
вернуться
возвращение
возвратиться

перемещаться

--_получить_место--

//цель перемещения - последняя локация

actor.last_loc

воздействовать

act (имя действия)
синонимы

класс действия

код

воздействовать
воздействие

действовать

объект/класс

метод/свойство

код/значение

@материальное

_подмена_объекта

null

возить

act (имя действия)
синонимы

класс действия

код

возить
привезти
увезти

перемещать

возражать

act (имя действия)
синонимы

класс действия

код

возражать
возразить
возражение

говорить

вооружать

act (имя действия)
синонимы

класс действия

код

вооружать
вооружение
вооружить

манипулировать

тип и имя функции
синонимы функции

аргументы

код

action вооружать
вооружаться

(вооружать _действие#Пф!е, существо _кого#ВпДм!е, оружие _чем#ТпДм!е)
(вооружаться _действие#Пф!е, оружие _чем#ТпДм!е)

if(!_кого) _кого = actor

--check--

if(_кого мертовое) fail, $"{_кого*#Ип} {$мертвое*_кого*#Кф}."

_чем._проверка_взятия

_чем._проверка_типа

ok

--execute--

var custom = _чем._вооружаться //возможна специфическая реакция

custom //fail return

if(custom==Ok) return Ok //полный кастом

_чем outside _кого

if(_кого._осн_оружие outside _кого)

{ //тут было другое оружие

  _кого._осн_оружие inside _кого

  _кого._осн_оружие не экипировано

}

_кого._осн_оружие = _чем

_чем экипировано

//%_кого.key = {_кого.key} //debug

if(custom.type=="string") %{custom} //специфическое описание

else %{_кого*#Ип} {$вооружено*_кого*#КфИп} {_чем*#Тп}.

ok

вооружаться

act (имя действия)
синонимы

класс действия

код

вооружаться
вооружение
вооружиться

вооружать

вопить

act (имя действия)
синонимы

класс действия

код

вопить
вопль
завопить
повопить

кричать

воровать

act (имя действия)
синонимы

класс действия

код

воровать
украсть
своровать
воровство

действовать

тип и имя функции
синонимы функции

аргументы

код

action воровать

()

врать

act (имя действия)
синонимы

класс действия

код

врать
соврать
враньё

говорить

вставать

act (имя действия)
синонимы

класс действия

код

вставать
встать
подниматься
подняться

менять_положение

вставлять

act (имя действия)
синонимы

класс действия

код

вставлять
вставить

выбрасывать

act (имя действия)
синонимы

класс действия

код

выбрасывать
бросить
оставить
бросать
оставлять
выбросить
уронить
выкинуть
выложить
выкидывать
выкладывать
ронять

манипулировать

тип и имя функции
синонимы функции

аргументы

код

action выбрасывать

(выбрасывать _действие#Пф!е, предмет _что#Вп!е)

--parsing--

_что._проверка_на_ты

ok

--check--

if(_что.pos <> actor) fail, "у тебя нет {_что*#Рп}"

_что._можно_выбросить

if(_что.type !="object") fail, "оставь, пригодится..."

ok

--execute--

_что._выбрасывание

выключать

act (имя действия)
синонимы

класс действия

код

выключать
выключить
выключение
вырубать
вырубить
деактивировать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action выключать

()

вытаскивать

act (имя действия)
синонимы

класс действия

код

вытаскивать
вытащить
извлечь
извлекать
извлечение

манипулировать

гасить

act (имя действия)
синонимы

класс действия

код

гасить
погасить

воздействовать

говорить

act (имя действия)
синонимы

класс действия

код

говорить
разговор
поговорить
беседа
болтать
беседовать
общаться
побеседовать
пообщаться
поболтать

действовать

тип и имя функции
синонимы функции

аргументы

код

action говорить

(говорить _действие#Пф!е, [о _о], [тема _тема#Пп!у!е], [с _с], [может_говорить _собеседник#Тп*м!е])

if(_собеседник==null && _с==null)

{ //найдем собеседника

  //дописать!

}

if(_тема==null && _о==null)

{ //найдем тему

  //дописать!

}

--parsing--

if(_собеседник==null && _с!=null || _собеседник!=null && _с==null) fail

if(_тема==null && _о!=null || _тема!=null && _о==null) fail

ok

--check--

if(_собеседник==null) fail, "здесь не с кем разговаривать."

ok

--execute--

%говорим с {_собеседник*#Тп} о {_тема*#Пп} . //заглушка

ok

готовить

act (имя действия)
синонимы

класс действия

код

готовить
приготовить

греметь

act (имя действия)
синонимы

класс действия

код

греметь

шуметь

давать

act (имя действия)
синонимы

класс действия

код

давать
дать
отдать
передать
отдавать
подарить
передавать
дарить

манипулировать

тип и имя функции
синонимы функции

аргументы

код

action давать

(давать _действие#Пф!е, предмет _что#ВпДм!е, [существо _кому#ДпДм!е], [всё:видимое _откуда#АпДм!е])

if(!_откуда) _откуда = actor

if(!_кому && actor!=speaker && speaker is @существо ) _кому = speaker

--parsing--

ok

--check--

if(!_кому) fail, "кому?"

if(_кому мертвое) fail, "{_кому*#Ип} {$мертвое*_кому*#Кф}."

if(_что.pos <> _откуда) fail, "{_откуда*#Лп} нет {_что*#Рп}."

if(_что.type !="object") fail, "это {_кому*#Дп} не нужно..."

ok

--execute--

%{actor*#Ип} {_действие*actor*#Пв}  {_кому*#Дп} {_что*#Вп}.

_что in _кому

двигать

act (имя действия)
синонимы

класс действия

код

двигать
движение
шевелить
подвинуть
задвинуть
выдвинуть
задвигать
выдвигать
подвигать
двинуть
передвинуть
передвигать
сместить
смещать
пошевелить

перемещать

тип и имя функции
синонимы функции

аргументы

код

action двигать

()

двигаться

act (имя действия)
синонимы

класс действия

код

двигаться
движение

действовать

действовать

act (имя действия)
синонимы

класс действия

код

действовать
действие

делать

act (имя действия)
синонимы

класс действия

код

делать
дело
сделать
мастерить
смастерить

создавать

тип и имя функции
синонимы функции

аргументы

код

action делать
готовить
шить

(делать _действие#Пф!е, предмет _что#Вп!е)
(готовить _действие#Пф!е, еда _что#Вп!е)
(шить _действие#Пф!е, одежда _что#Вп!е)

--check--

ok

--execute--

//заглушка

var D = _действие

%{actor*#Ип} не {$уметь*actor*#Нв} {D*#ИвНш} {_что*#ВпМч}.

ok

договариваться

act (имя действия)
синонимы

класс действия

код

договариваться

говорить

дотрагиваться

act (имя действия)
синонимы

класс действия

код

дотрагиваться
дотронуться

изучать

есть

act (имя действия)
синонимы

класс действия

код

есть
съесть
жевать
жрать
поесть
кушать
проглотить
сожрать
скушать
сжевать
слопать
лопать
проглатывать

использовать

тип и имя функции
синонимы функции

аргументы

код

action есть

(есть _действие#Пф!е, [еда _что#Вп!е], [все:видимое _откуда#БпДм!е])

if(_откуда==null) var _откуда = _что.pos

--parsing--

ok

--check--

_действие._проверка     //возможность действия

_что._проверка_действия //для дополнительных проверок и нестандартных реплик, обычно пусто

if(actor._голод < 0) fail, "{actor*#Ип} не {$голодное*actor*#Кф}."

if(_что.pos != actor)

{ _что._проверка_видимости

  _что._проверка_прикосновения

  if(_что.pos is существо) fail, "{_что.pos} не даст тебе {_что*#Вп}."

}

if(_что.pos != _откуда) fail, "{_откуда*#Лп} нет {_что*#Рп}."

_что._проверка_типа

ok

--execute--

_что._есть

ok

action есть несъедобное

(есть _действие#Пф!е, предмет _что#Вп!е)

--parsing--

ok

--check--

fail, $"{_что*#Ип} не{$съедобное*_что*#ИпКф}."

ехать

act (имя действия)
синонимы

класс действия

код

ехать
поехать
поездка

перемещаться

жарить

act (имя действия)
синонимы

класс действия

код

жарить
пожарить

готовить

ждать

act (имя действия)
синонимы

класс действия

код

ждать
ожидать
подождать
ожидание
обождать

бездействовать

зажигать

act (имя действия)
синонимы

класс действия

код

зажигать

воздействовать

закапывать

act (имя действия)
синонимы

класс действия

код

закапывать
засыпать
закопать
зарыть
зарывать

закрывать

act (имя действия)
синонимы

класс действия

код

закрывать
закрыть
прикрыть
прикрывать
закрытие
затворить
затворять

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action закрывать

(закрывать _действие#Пф!е, @закрываемое _что#ДмВп!е, [предмет _чем#ДмТп!е])

//подмена объекта действия

// ???

--parsing--

_что._проверка_на_ты

_чем._проверка_на_ты

ok

--check--

if(_что.закрыто) fail, "{_что*#Ип} уже {$закрыто*_что*#ИпКф}."

ok

--execute--

_что._закрыть //для нестандартного закрытия

_что.opened = нет

_что закрыто

%{actor} {$закрывать*actor} {_что*#Вп}.

ok

объект/класс

метод/свойство

код/значение

@материальное

_закрывать

_{this*#Ип} не закрывается!

запирать

act (имя действия)
синонимы

класс действия

код

запирать
запереть
замкнуть
замыкать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action запирать
запирать на ключ

(запирать _действие#Пф!е, @закрываемое _что#ДмВп!е, [@ключ _ключ#ДмТп!е])
(запирать _действие#Пф!е, @закрываемое _что#ДмВп!е, на#!е, @ключ _ключ#ДмВп!е)

//подмена объекта действия

// ???

//есть ключ? а если найду?

if(_ключ==null) var _ключ = _что._ключ

--parsing--

_что._проверка_на_ты

_ключ._проверка_на_ты

ok

--check--

if(_что.заперто) fail, "{_что*#Ип} уже {$заперто*_что*#ИпКф}."

if(_ключ!=null && (_ключ.pos != actor || _ключ.pos == _что)) fail, "у тебя нет {_ключ*#Рп}."

if(!_что.закрыто) _что._проверка_закрытия

_что._проверка_запирания

ok

--execute--

_что._запирать

записывать

act (имя действия)
синонимы

класс действия

код

записывать
записать

действовать

застегивать

act (имя действия)
синонимы

класс действия

код

застегивать
застегнуть

звать

act (имя действия)
синонимы

класс действия

код

звать
позвать
зов

здороваться

act (имя действия)
синонимы

класс действия

код

здороваться
здравствовать
привет
приветствовать
поздороваться
приветствие
поприветствовать

играть

act (имя действия)
синонимы

класс действия

код

играть
игра
поиграть

действовать

идти

act (имя действия)
синонимы

класс действия

код

идти
пойти
выйти
прийти
пройти
выходить
подойти
войти
приходить
проходить
подходить
входить
зайти
заходить
сходить
отойти
сойти
поход
отходить
взойти
всходить
придти

перемещаться

из

тип и имя функции
синонимы функции

аргументы

код

expression предмет из материала

(все:видимое _обж#!е*п*р*ч*д!е,[сделанное _сд#!е], из, материал _мат#РпЕч!е)

-- parsing --

if(_обж.type==class) fail //абстракция с уточнением - это уже не абстракция

if(_сд != null)

{ if(_сд.key != _обж.key) fail, "слова не согласованы"

  if(_сд.key == #Кф) fail //краткая форма соответствует утверждению

}

_обж._проверка_местоимения

ok

-- execute --

if(_обж._материал == _мат || _обж._материал is _мат) return _обж

fail, "здесь нет {_обж*#Рп} из {_мат*#Рп}"

изучать

act (имя действия)
синонимы

класс действия

код

изучать
изучить

действовать

инвентарь

тип и имя функции
синонимы функции

аргументы

код

action инвентарь

([осматривать#Пф!е], инвентарь#ИпЕч!е)

--execute--

if(actor!=pers) говорящий = actor //от 1 лица

if(actor.in == null) $"у {actor*#РпНа} ничего нет."

else $"у {actor*#РпНа} есть {actor.in}."

искать

act (имя действия)
синонимы

класс действия

код

искать
найти
находить
поиск
поискать

действовать

тип и имя функции
синонимы функции

аргументы

код

action искать
поиск чего

(искать _действие#Пф!е, предмет _что#Вп!е, [все:видимое _где#ЛпДм!е])
(искать _действие#ИпЕч!е, предмет _что#Рп!е)

if(!_где) _где = loc

--parsing--

_что._проверка_на_ты

ok

--check--

ok

--execute--

var text

var custom = _где._поиск //что нашли

custom //fail return

if(custom==null) text = "{actor*#Ип} ничего не {$найти*actor*#Пв} {_где*#Лп}."

else switch(custom.type)

case("string") text = custom //сообщение

case("object")

{

  text = "найдено {custom}!"

}

if(actor==pers) %{text}

else actor > text

использовать

act (имя действия)
синонимы

класс действия

код

использовать

действовать

испытывать

act (имя действия)
синонимы

класс действия

код

испытывать
испытать
испытание

воздействовать

исследовать

act (имя действия)
синонимы

класс действия

код

исследовать
исследование

казнить

act (имя действия)
синонимы

класс действия

код

казнить
казнь

воздействовать

касаться

act (имя действия)
синонимы

класс действия

код

касаться
коснуться

изучать

кидать

act (имя действия)
синонимы

класс действия

код

кидать
кинуть
швырнуть
метать
метнуть
швырять

конструктор

тип и имя функции
синонимы функции

аргументы

код

fact положение локации

(место Л, course в_направлении_от, место Б)

--parsing--

//направления указываются только от уже существующих локаций

%Л.type == {Л.type};  в_направлении_от = {в_направлении_от.type}; Б.type == {Б.type};

if(Б.type != "location") fail

ok

--check--

true, "заглушка вместо ответа!"

--execute--

switch(Л.type)

case("location") ok

case("class") Л = (location (Л.name))

case("string") Л = (location (Л))

case() fail //прочие типы не интересны

Л is @место

Л в_направлении_от Б

копать

act (имя действия)
синонимы

класс действия

код

копать
рыть
выкопать
раскопать
разрыть
вырыть
разгрести
разгребать
рытье

копаться

act (имя действия)
синонимы

класс действия

код

копаться
копание
покопаться
ковыряться
поковыряться

кричать

act (имя действия)
синонимы

класс действия

код

кричать
крикнуть
закричать
крик
орать
заорать
покричать
поорать
накричать
наорать
оборать

шуметь

тип и имя функции
синонимы функции

аргументы

код

action кричать на

(кричать _действие#Пф!е, на, существо _обж#Вп*м!е)

--parsing--

ok

--check--

_действие.проверка_действия

ok

--execute--

%{actor*#Ип} {_действие*actor} на {_обж*#Вп}.

ok

лезть

act (имя действия)
синонимы

класс действия

код

лезть
выбраться
влезть
вылезать
залезть
забраться
слезть
залезать
вылезть
карабкаться
вскарабкаться
выкарабкаться
влезать
слезать

перемещаться

лететь

act (имя действия)
синонимы

класс действия

код

лететь
полет
полететь
прилететь
взлететь

перемещаться

лизать

act (имя действия)
синонимы

класс действия

код

лизать
лизнуть

изучать

ложиться

act (имя действия)
синонимы

класс действия

код

ложиться
лежать
лечь
улечься
разлечься

менять_положение

ломать

act (имя действия)
синонимы

класс действия

код

ломать
сломать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action ломать

()

манипулировать

act (имя действия)
синонимы

класс действия

код

манипулировать

действовать

менять

act (имя действия)
синонимы

класс действия

код

менять_положение

действовать

молиться

act (имя действия)
синонимы

класс действия

код

молиться
молитва
помолиться

действовать

тип и имя функции
синонимы функции

аргументы

код

action молиться

()

набирать

act (имя действия)
синонимы

класс действия

код

набирать
набрать
набор

брать

надевать

act (имя действия)
синонимы

класс действия

код

надевать
носить
надеть
одеть
одевать
одевание
напялить
напяливать

манипулировать

тип и имя функции
синонимы функции

аргументы

код

action надевать
одеваться

(надевать _действие#Пф!е, @надевающееся _что#ВпДм!е, [на], [существо _кого#ВпДм!е])
(одеваться _действие#Пф!е, в, @надевающееся _что#ВпДм!е)

if(!_кого) _кого = actor

--check--

_что._проверка_взятия

if(_что надето) fail, $"{_что*#Ип} уже {$надето*_что*#Кф}."

_что._проверка_типа

ok

--execute--

var custom = _что._надевать //возможна специфическая реакция

custom //fail return

_что outside _кого

_что надето

if(custom.type=="string") %{custom} //специфическое описание

else if(_кого==actor) %{actor*#Ип} {$надеть*actor*#Пв} {_что*#Вп}.

else %{actor*#Ип} {$надеть*actor*#Пв} {_что*#Вп} на {_кого*#Вп}.

ok

нажимать

act (имя действия)
синонимы

класс действия

код

нажимать
нажать
давить
жать
надавить
надавливать
нажим
вдавить
вдавливать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action нажимать

(нажимать _действие#Пф!е, на, @материальное _что#Вп!е)

--parsing--

_что._проверка_на_ты

ok

--check--

_что._проверка_прикосновения

ok

--execute--

_что._нажимать

ok

объект/класс

метод/свойство

код/значение

@материальное

_нажимать

не нажимается!

нападать

act (имя действия)
синонимы

класс действия

код

нападать
нападение
напасть

нюхать

act (имя действия)
синонимы

класс действия

код

нюхать
понюхать
обнюхать
обнюхивать

изучать

тип и имя функции
синонимы функции

аргументы

код

action нюхать

()

обыскивать

act (имя действия)
синонимы

класс действия

код

обыскивать
обыскать
обыск

тип и имя функции
синонимы функции

аргументы

код

action обыскивать
обыск
искать
поиск где

(обыскивать _действие#Пф!е, @материальное _что#ВпДм!е)
(обыскивать _действие#ИпЕч!е, @материальное _что#РпДм!е)
(искать _действие#Пф!е, @материальное  _что#ЛпДм!е)
(искать _действие#ИпЕч!е, @материальное _что#ЛпДм!е)

--parsing--

_что._проверка_на_ты

ok

--check--

if(_что is @@контейнер && _что.заперто)

  fail, "{_что*#Ип} {$заперто*_что*#КфИп}."

if(_что is @существо && _что.живое)

  fail, "вряд ли {_что*#Ип} позволит {actor*#ДпНа} обыскать себя."

ok

--execute--

var custom = _что._поиск //кастомизация

custom                               //fail return

if(custom==Ok) return Ok   //обыск полностью отработан

var L //список найденных предметов

if(_что.type=="object")

{ if(_что is @@контейнер && _что.закрыто)

  { //открываем обыскиваемые контейнеры

    _что.opened = да

    _что открыто

  }

  _что обыскано

  L = _что.in/@предмет - _что.part //список найденных предметов

  L in actor //перемещаем всё в инвентарь

}

if(custom.type=="string") %{custom} //кастомный текст

else if(L==null) %{actor*#Ип} ничего не {$найти*actor*#Пв} {_что*#Лп}.

else %{actor*#Ип} {$найти*actor*#Пв} {L*#Вп}.

одевать

act (имя действия)
синонимы

класс действия

код

одевать

манипулировать

тип и имя функции
синонимы функции

аргументы

код

action одевать

(одевать _действие#Пф!е, на, существо _кого#ВпДм!е, @надевающееся _что#ВпДм!е)

--check--

_что._проверка_взятия

_что._проверка_типа

ok

--execute--

var custom = _что._одевать //возможна специфическая реакция

custom //fail return

_что outside _кого

_что надето

if(custom.type=="string") %{custom} //специфическое описание

else %{actor*#Ип} {$надеть*actor*#Пв} {_что*#Вп} на {_кого*#Вп}.

ok

одеваться

act (имя действия)
синонимы

класс действия

код

одеваться
одеться
одевание

манипулировать

осматривать

act (имя действия)
синонимы

класс действия

код

осматривать
рассматривать
осмотреть
оглядеть
рассмотреть
оглядывать
осмотр

изучать

тип и имя функции
синонимы функции

аргументы

код

action осматривать
осматриваться
осматривать направление
осматривать предмет
смотреть на
смотреть направление
осматривать существо
смотреть где
осмотр

(осматривать _действие#Пф!е, всё:видимое _что#Вп*м!е)
(осматриваться _действие#Пф!е, [всё:видимое _что#Лп*м!е])
(осматривать _действие#Пф!е, направление _что#Вп!е)
([что#Ип!е],[за#!е],[такое#ИпСр!е],[быть#Нв!е],всё:видимое _что#ИпНд*м!е)
(смотреть _действие#Пф!е, на, всё:видимое _что#Вп*м!е)
(смотреть _действие#Пф!е, направление _что#!е)
([кто#Ип],[такое#ИпОд],[быть#Нв],всё:видимое _что#ИпОд*м!е)
(смотреть _действие#Пф!е, всё:видимое _что#Лп*м!е)
(осматривать _действие#ИпЕч!е, всё:видимое _что#Рп*м!е)

if( !_что) var _что = loc //осматриваться в локации

if( !_действие) var _действие = осматривать //осмотр предмета

--parsing--

if(_что.type==class) fail //только конкретные предметы

_что._проверка_на_ты

ok

--check--

ok

--execute--

var text

var custom = _что._осмотр //возможна специфическая реакция

custom //fail return

if(custom.type=="string") text=custom //специфическое описание

else if(_что.type == "course") text = $"{_что}."

else if(_что is string || _что is number) text = _что + "."

else

{ text = _что._картинка + _что._внешнее_описание + "."

  _что осмотренное

}

if(actor==pers) %{text}

else actor > text

осматриваться

act (имя действия)
синонимы

класс действия

код

осматриваться
оглядеться
осмотреться
осмотр

отвинчивать

act (имя действия)
синонимы

класс действия

код

отвинчивать
отвинтить
открутить
откручивать

отделять

отдавать

act (имя действия)
синонимы

класс действия

код

отдавать
отдать

отделять

act (имя действия)
синонимы

класс действия

код

отделять
отсоединять
отсоединить
отсоединение
отделить

манипулировать

отключать

act (имя действия)
синонимы

класс действия

код

отключать
отключить
отключение
отсоединять
отсоединить

выключать

открывать

act (имя действия)
синонимы

класс действия

код

открывать
открыть
открытие
распахнуть
раскрыть
вскрыть
раскрывать
растворить
растворять
отворить
отворять
распахивать
вскрывать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action открывать

(открывать _действие#Пф!е, @закрываемое _что#ДмВп!е)

--parsing--

_что._проверка_на_ты

_чем._проверка_на_ты

ok

--check--

if(_что.открыто) fail, "{_что*#Ип} уже {$открыто*_что*#ИпКф}."

if(_что.заперто) fail, "{_что*#Ип} {$заперто*_что*#ИпКф}."

_что._проверка_прикосновения

ok

--execute--

var custom = _что._открывать //возможна специфическая реакция

custom //fail return

if(custom==Ok) return Ok //полный кастом

_что.opened = да

_что открыто

if(custom.type=="string") %{custom} //специфическое описание

else %{actor*#Ип} {$открыть*actor*#Пв} {_что*#Вп}.

ok

объект/класс

метод/свойство

код/значение

@контейнер

_открывать

this.opened = да

открытое

//не закрытое

//не запертое

%{actor} {$открыть*actor} {this*#Вп} {_чем*#Тп}. {self._внутри}.

ok

@материальное

_открывать

_{this*#Ип} не открывается!

@материальное

_проверка_открытия

this._проверка_прикосновения

fail, $"{this*#Ип} не открывается!"

отпирать

act (имя действия)
синонимы

класс действия

код

отпирать
открыть
открывать
отпереть
отомкнуть
отмыкать

воздействовать

тип и имя функции
синонимы функции

аргументы

код

action отпирать

(отпирать _действие#Пф!е, @материальное _что#ДмВп!е, [предмет _чем#ДмТп!е])

//подмена объекта действия

if(_что._подмена_объекта !=null) _что = _что._подмена_объекта

//есть ключ? а если найду?

if(_чем==null && _что._ключ.pos == actor) var _чем = _что._ключ

--parsing--

_что._проверка_на_ты

_чем._проверка_на_ты

ok

--check--

if(_что.открыто) fail, "{_что*#Ип} уже {$открыто*_что*#ИпКф}."

_что._проверка_прикосновения

if(_что.заперто && _что._ключ)

{ if(!_чем) fail, $"{_что*#Ип} {$заперто*_что*#ИпКф}"

  if(_что._ключ != _чем) fail, $"{_чем*#Тп} {_что*#Вп} не открыть..."

}

ok

--execute--

var custom = _что._открывать //возможна специфическая реакция

custom //fail return

if(custom==Ok) return Ok //полный кастом

_что.opened = да

_что открыто

if(custom.type=="string") %{custom} //специфическое описание

else %{actor*#Ип} {$открыть*actor*#Пв} {_что*#Вп} {_чем*#Тп}.

ok

action отпирать замок

(отпирать _действие#Пф!е, @устройство_запирающее _что#ДмВп!е, [предмет _чем#ДмТп!е])

//подмена объекта действия

if(_что._подмена_объекта !=null) _что = _что._подмена_объекта

//есть ключ? а если найду?

if(_чем==null && _что._ключ.pos == actor) var _чем = _что._ключ

--parsing--

_что._проверка_на_ты

_чем._проверка_на_ты

ok

--check--

if(_что.открытое) fail, "{_что*#Ип} уже {$открыто*_что*#ИпКф}."

_что._проверка_открытия

ok

--execute--

_что._открывать

ok

ощупывать

act (имя действия)
синонимы

класс действия

код

ощупывать
ощупать
ощупывание

изучать

перебираться

act (имя действия)
синонимы

класс действия

код

перебираться
перебраться

перемещаться

переключать

act (имя действия)
синонимы

класс действия

код

переключать
щелкнуть
переключить
переключение
щелкать
перещелкнуть
перещелкивать

манипулировать

перемещать

act (имя действия)
синонимы

класс действия

код

перемещать

действовать

перемещаться

act (имя действия)
синонимы

класс действия

код

перемещаться
перемещение
переместиться

двигаться

--_получить_место--

//найдем локацию для перемещения

if( this.key == #Вн )  return (loc.inside/@место).any    //движение внутрь

if( this.key == #Нн )  return (loc.outside/@место).any //движение наружу

null //не найдено

тип и имя функции
синонимы функции

аргументы

код

action перемещаться
по направлению Ип

([перемещаться _движение#Пф!е], [location _откуда#Бп!е], [course _направление#Сп!е], [location _куда#Ап!е], [course _напр2#Сп!е])
(course _направление#Ип!е)

//восстанавливаем недостающие аргументы

if( !_движение ) _движение = actor._способ_движения

if( !_откуда ) _откуда = loc

if( !_куда && _движение) _куда = _движение._получить_место

if( !_куда && _направление) _куда = loc.(_направление)

--parsing--

//проверим порядок направлений

if(_направление==null && _напр2!=null) fail

if(_напр2 !=null && _направление.num > _напр2.num) fail

ok

--check--

//должно быть указано направление или локация

if(_направление==null && _куда==null) fail, $"непонятно место, куда {actor*Ип} {$должен*actor} {_движение*#Ив}."

if(_направление!=null)

{ //сопоставим _движение с направлением

//%_движение._направление = {_движение._направление}

//%_движение.word._направление = {_движение.word._направление}

//%_направление = {_направление.name}

  if(_движение._направление != null && _движение._направление != _направление.name)

    fail, "невозможно {_движение*#Ив} {_направление.name}!"

  if(_движение.word._направление != null && _движение.word._направление != _направление.name)

    fail, "невозможно {_движение*#Ив} {_направление.name}!"

  //направления, указанные различными способами, должны совпадать

  if(_напр2 != null && _направление != _напр2) fail, _ошибка_направления

  //направление должно вести в выбранную локацию

  if(_куда!=null && loc.(_направление) != _куда) fail, _ошибка_направления

}

if(_куда==_откуда) fail, "ты уже здесь"

_движение._проверка //проверяем возможность перемещения выбранным способом

//проверяем возможность goto

if( _направление!=null ) check _направление

else check _куда

ok

--execute--

if(actor==pers)

  if( _направление!=null ) goto _направление

  else goto _куда.any

else

{ %{actor} {_движение*actor*#Пв} {_куда*#Ап}.

  actor inside _куда

}

3

перепрыгивать

act (имя действия)
синонимы

класс действия

код

перепрыгивать
прыжок
перепрыгнуть

перемещаться

печатать

act (имя действия)
синонимы

класс действия

код

печатать
печать
набрать
ввести
набирать
напечатать
вводить

писать

писать

act (имя действия)
синонимы

класс действия

код

писать
написать

действовать

тип и имя функции
синонимы функции

аргументы

код

action писать

()

пить

act (имя действия)
синонимы

класс действия

код

пить
выпить
попить
отпить

использовать

тип и имя функции
синонимы функции

аргументы

код

action пить

()

плыть

act (имя действия)
синонимы

класс действия

код

плыть

перемещаться

поворачивать

act (имя действия)
синонимы

класс действия

код

поворачивать
повернуть
поворот

подключать

act (имя действия)
синонимы

класс действия

код

подключать
соединить
подключить
соединять
подключение
присоединить
присоединять

включать

подниматься

act (имя действия)
синонимы

класс действия

код

подниматься
подняться

перемещаться

--_получить_место--

//подниматься можно только вверх

loc.вверх

--_получить_направление--

вверх

подпрыгивать

act (имя действия)
синонимы

класс действия

код

подпрыгивать
прыгать
прыгнуть
прыжок
подпрыгнуть

двигаться

тип и имя функции
синонимы функции

аргументы

код

action подпрыгивать

(подпрыгивать _движение#Пф!е!н, [место*#Лп])

--parsing--

ok

--check--

_движение._проверка //проверяем возможность

ok

--execute--

%{actor*#Ип} {$подпрыгнуть*actor*#Пв} на месте.

показывать

act (имя действия)
синонимы

класс действия

код

показывать
показать
показ
похвастать
хвастать
хвалиться
похвалиться

ползти

act (имя действия)
синонимы

класс действия

код

ползти
приползти
заползти
вползти
заползать
вползать
выползти
выползать
сползти
сползать

перемещаться

помогать

act (имя действия)
синонимы

класс действия

код

помогать
помощь
помочь

посещать

act (имя действия)
синонимы

класс действия

код

посещать
посетить
посещение

перемещаться

преследовать

act (имя действия)
синонимы

класс действия

код

преследовать

привинчивать

act (имя действия)
синонимы

класс действия

код

привинчивать
привинтить
прикручивать
прикрутить

прикреплять

привязывать

act (имя действия)
синонимы

класс действия

код

привязывать
привязать
прикручивать
прикрутить
привязывание

прикреплять

приказывать

act (имя действия)
синонимы

класс действия

код

приказывать
приказ
приказать
велеть
повелеть

говорить

прикасаться

act (имя действия)
синонимы

класс действия

код

прикасаться
прикоснуться

изучать

прикреплять

act (имя действия)
синонимы

класс действия

код

прикреплять
прикрепить

манипулировать

пробовать

act (имя действия)
синонимы

класс действия

код

пробовать
попробовать
жевать
проба
откусить
кусать
пожевать

прыгать

act (имя действия)
синонимы

класс действия

код

прыгать
прыгнуть
прыжок
спрыгнуть
спрыгивать
запрыгнуть
запрыгивать
выпрыгнуть
выпрыгивать

перемещаться

размещать

act (имя действия)
синонимы

класс действия

код

размещать
разместить

рассказывать

act (имя действия)
синонимы

класс действия

код

рассказывать
рассказать
рассказ
сообщить
сообщать

говорить

расстегивать

act (имя действия)
синонимы

класс действия

код

расстегивать
расстегнуть

рвать

act (имя действия)
синонимы

класс действия

код

рвать

воздействовать

садиться

act (имя действия)
синонимы

класс действия

код

садиться
сесть
присесть

менять_положение

следовать

act (имя действия)
синонимы

класс действия

код

следовать
последовать

перемещаться

тип и имя функции
синонимы функции

аргументы

код

action следовать

()

слушать

act (имя действия)
синонимы

класс действия

код

слушать

изучать

смотреть

act (имя действия)
синонимы

класс действия

код

смотреть
посмотреть
глядеть
взглянуть
поглядеть
глянуть
просмотр
просмотреть

снимать

act (имя действия)
синонимы

класс действия

код

снимать
снять

манипулировать

тип и имя функции
синонимы функции

аргументы

код

action снимать

(снимать _действие#Пф!е, @надевающееся _что#Вп!е)

var _с_кого = actor

--parsing--

_что._проверка_на_ты

ok

--check--

if(_что.pos != _с_кого || !_что.надето) fail, "на {_с_кого*#Рп} не надето {_что*#Рп}"

_действие._проверка

ok

--execute--

_что._снимать

объект/класс

метод/свойство

код/значение

@надевающееся

_снимать

не надето

this in actor

%ты снял {this*#Вп}

ok

соединять

act (имя действия)
синонимы

класс действия

код

соединять
соединить
соединение

создавать

act (имя действия)
синонимы

класс действия

код

создавать
создать
создание

действовать

сооружение

тип и имя функции
синонимы функции

аргументы

код

expression сооружение моста

(сооружение _класс#!e,  сооружение _обж#Рп!е)

//осмотри конструкцию дома

//осмотри здание метро

-- parsing --

if(_обж.type==class || _класс.type!=class || _класс.num !=1) fail

_обж._проверка_местоимения

ok

-- execute --

if(_обж not is _класс) fail, "{_обж*#Ип} не является {_класс*#Рп}"

_обж

спать

act (имя действия)
синонимы

класс действия

код

спать
сон
заснуть
засыпать
поспать

действовать

тип и имя функции
синонимы функции

аргументы

код

action спать

(спать _действие#Пф!е, [предмет _где#ЛпДм!е])

спрашивать

act (имя действия)
синонимы

класс действия

код

спрашивать
спросить
вопрос
поинтересоваться
расспрашивать
расспросить

говорить

спускаться

act (имя действия)
синонимы

класс действия

код

спускаться
спуститься
спуск

перемещаться

--_получить_место--

//спускаться можно только вниз

loc.вниз

сражаться

act (имя действия)
синонимы

класс действия

код

сражаться
бой
драться
биться
драка
битва
сразиться
сражение
подраться
дуэль

стоять

act (имя действия)
синонимы

класс действия

код

стоять

бездействовать

стрелять

act (имя действия)
синонимы

класс действия

код

стрелять
расстрелять
стрельба
выстрелить
застрелить

строить

act (имя действия)
синонимы

класс действия

код

строить
построить
строительство

создавать

тип и имя функции
синонимы функции

аргументы

код

action строить

(строить _действие#Пф!е, сооружение _что#Вп!е)

--check--

ok

--execute--

//заглушка

var D = _действие

%{actor*#Ип} не {$уметь*actor*#Нв} {D*#ИвНш} {_что*#ВпМч}.

ok

стучать

act (имя действия)
синонимы

класс действия

код

стучать
стук
постучать

танцевать

act (имя действия)
синонимы

класс действия

код

танцевать

двигаться

толкать

act (имя действия)
синонимы

класс действия

код

толкать
толкнуть
толчок

двигать

трогать

act (имя действия)
синонимы

класс действия

код

трогать
потрогать
ощупать
пощупать

изучать

тип и имя функции
синонимы функции

аргументы

код

action трогать
дотрагиваться до
касаться чего-то
прикасаться к

(трогать _действие#Пф!е, @материальное _что#ВпДм!е)
(дотрагиваться _действие#Пф!е, до, @материальное _что#РпДм!е)
(касаться _действие#Пф!е, @материальное _что#РпДм!е)
(прикасаться _действие#Пф!е, к, @материальное _что#ДпДм!е)

--parsing--

if(_что.type==class) fail

_что._проверка_на_ты

ok

--check--

_что._проверка_прикосновения

ok

--execute--

_что._трогать

ok

объект/класс

метод/свойство

код/значение

@материальное

_проверка_прикосновения

if(this == loc || this == actor || this.pos == actor) return ok

this._проверка_видимости

if(this.высоко) fail, $"не могу - {this*#Ип} высоко"

if(this.далеко) fail, $"не могу - {this*#Ип} далеко"

ok

@материальное

_трогать

if(this == actor) %Ты ощупал себя. Вроде бы всё на месте.

else

{ var List = this.attribute/@@ощупываемое

  if(List==null) %На ощупь совершенно {обычное*this*#Ип} {this*#Ип}

  else %На ощупь {this*#Ип} {List*this*#Ип}

}

тянуть

act (имя действия)
синонимы

класс действия

код

тянуть
потянуть
притянуть
притягивать
подтянуть
подтягивать

двигать

у

тип и имя функции
синонимы функции

аргументы

код

fact предмет у существа
предмет есть у существа

(предмет _что#!еИп, у, существо _у_кого#!еРпЕч)
(предмет _что#!еИп, быть#НвЕч!ф!е, у#!е, существо _у_кого#!еРпЕч)

--check--

(_что.pos == _у_кого), "!не! у {_у_кого*#РпНа}."

--execute--

if(_предлог.key <> #Не) _что in _у_кого

else %<font color=red>Пока что невозможно бросить предмет в никуда!</font>

fact у существа нет предмета

(у#!е, существо _у_кого#!еРпЕч, нет, предмет _чего#!еРп)

--check--

if(_чего.pos != _у_кого) да, "нет"

else нет, "есть"

--execute--

%<font color=red>Пока что невозможно бросить предмет в никуда!</font>

уничтожать

act (имя действия)
синонимы

класс действия

код

уничтожать

воздействовать

чистить

act (имя действия)
синонимы

класс действия

код

чистить
вытереть
вытирать
почистить
чистка
очистить
очищать
протереть
протирать
расчистить
расчищать

воздействовать

читать

act (имя действия)
синонимы

класс действия

код

читать
прочитать
прочесть
чтение
почитать

использовать

тип и имя функции
синонимы функции

аргументы

код

action читать

(читать _действие#Пф!е, @текст _что#Вп!е)

--parsing--

if(_что.type==class) fail  //класс это абстракция, его нельзя читать

if(_что.cls==null) fail   //должен быть класс

ok

--check--

_действие._проверка

_что._проверка_видимости

_что._проверка_чтения

ok

--execute--

if(_что is string || _что is number)

{ var Str = _что

  %{Str}

}

%{_что._текст}

ok

шить

act (имя действия)
синонимы

класс действия

код

шить
сшить
пошить
шитье

шуметь

act (имя действия)
синонимы

класс действия

код

шуметь
шум
пошуметь

действовать

--проверка_действия--

//%шуметь - {_действие.key}

if(_действие==шуметь) fail, "как именно {_действие*#Ив}?"

шуметь.cls.проверка_действия

тип и имя функции
синонимы функции

аргументы

код

action шуметь

(шуметь _действие#Пф!е)

--parsing--

ok

--check--

_действие.проверка_действия

ok

--execute--

%{actor*#Ип} {_действие*actor}.

ok

4

ASBer написал(а):

библиотека

"библиотека" -- это что?
будут ли глаголы типа "нюхать", "лизнуть", "слушать"... короче связанные с иными органами получения информации?

5

Есть две словарные статьи, которые платформа загружает автоматически для любой игры:
- конструктор - загружается перед загрузкой игры, содержит функции, необходимые для описания игры на естественном языке;
- библиотека - загружается после загрузки игры, содержит функции, которые не привязаны к глаголам, но необходимы для распознавания команд.

zerbino написал(а):

будут ли глаголы типа "нюхать", "лизнуть", "слушать"... короче связанные с иными органами получения информации?

Обязательно!

6

Практически вся стандартная библиотека внутри написана с использованием латинских аналогов ключевых слов (секции: check, parse, execute; вложеные элементы: in, out, part и т.д.). Может стоит всё-же использовать их русские аналоги? Среди тех, кто будет использовать платформу ТОМ2 для программирования наверняка найдутся люди, не знающие английский. А вот процент русскоговорящих будет стремиться к 100. Поэтому было бы странно в русском парсере отдавать приоритет английским ключевым словам.
Я понимаю, что для платформы безразлично, какие идентификаторы используются. Но визуальный редактор сейчас не приводит встроенные имена к какому-то стандартному виду при проверке пересечений. И если честно, я не хочу опять всё перелопачивать для добавления такого механизма. И поэтому в редакторе сейчас возможны такие казусы:
http://sg.uploads.ru/t/CUiup.png
Знаю, что если все литералы в стандартной библиотеке будут русскими, то проблема останется, только прямо противоположная. Но предчувствую, что писатели игр всё-таки будут отдавать приоритет русским ключевым словам.

7

Alexandr написал(а):

Но визуальный редактор сейчас не приводит встроенные имена к какому-то стандартному виду при проверке пересечений. И если честно, я не хочу опять всё перелопачивать для добавления такого механизма.

Двуязычие останется, оно никуда не денется. В любом случае редактор должен с этим как-то справляться.

Английские ключевые слова немного быстрее, для них не производится поиск в словаре. Использую их потому что мне, как программисту, так удобнее.
По-моему, это всего лишь дело привычки. Для человека, желающего разобраться в стандартной библиотеке, это не станет препятствием.

8

ASBer написал(а):

Двуязычие останется, оно никуда не денется. В любом случае редактор должен с этим как-то справляться.

Эхх... придётся всё-таки зарываться в код.

9

Немного поигрался с причастиями.
Вот результат:

> выбрось яблоко
Вы выбросили яблоко.
------------------
> осм брошенное яблоко
Обычное яблоко.
------------------
> осм выброшенное яблоко
Обычное яблоко.
------------------
> возьми выброшенное яблоко
Вы взяли яблоко.
------------------
> осм брошенное яблоко
Тут нет брошенного яблока
------------------
> осм взятое яблоко
Обычное яблоко.


> инв
У тебя есть ржавый ключ и яблоко
------------------
> брось ключ
Вы выбросили ключ.
------------------
> брось яблоко
Вы выбросили яблоко.
------------------
> осм ключ
Ржавый ключ странной формы.
------------------
> возьми осмотренный предмет
Вы взяли предмет.
------------------
> инв
У тебя есть ржавый ключ

10

Прям чудеса какие-то.  :cool:  Т.е. игра хранит ссылки на предметы в неких переменных типа "только-что выброшенный предмет", "последний взятый предмет", "последний осмотренный предмет", "порядок хождения по локациям" (чтоб можно было писать "зайди обратно", "вернись на две локации назад")? А на уровне чего это обрабатывается? Движок или в стандартной библиотеке прописывается?

А можно сделать чтобы можно было приказать идти в локацию по названию, даже если локация не соединена напрямую к текущей? При этом кратко описывались все пройденные при этом локации и срабатывали триггеры посещения (если надо). Например, находясь на крыше башне сразу перейти в подвал:
> иди в подвал
Пройдя через центр башни и спустившись по винтовой лестнице вы оказались в подвале башни.
[описание подвала]

Не, я понимаю, что это не просто и не особо нужно, но раз пошла такая "пьянка"...  :unsure:

Отредактировано Alexandr (2017-04-12 15:25:21)

11

Alexandr написал(а):

Прям чудеса какие-то.

Да нет, всё проще. Действия назначают объектам дополнительные признаки: "осмотренное", "выброшенное". Они ни чем не отличаются от "старое" или "ржавое". Всё на уровне библиотеки.
Предыдущую локацию тоже надо будет запоминать для "вернись назад".
А вот всё остальное пока излишнее...

12

Обновил список стандартных действий