//=============================================================================
// настройка меню собеседника
//=============================================================================
%Вы играете за Петю и можете поговорить с Васей и Вовой.
%_
%Нумеровать строки меню?
class собеседник
{ if(input("да/нет?>")=="да")
this.menu_num = да //ставим автонумерацию для меню
}
//=============================================================================
// синонимы для строк меню
//=============================================================================
"1"="один"="первое"
"2"="два"="второе"
"3"="три"="третье"
"4"="четыре"="четвертое"
"5"="пять"="пятое"
//=============================================================================
// локация и 2 персонажа
//=============================================================================
location Комната
{ this.description="в комнате {item}
Для начала разговора введите 'говорить с Васей' или 'говорить с Вовой'.{menu()}"
OnEnter() //покажем локацию
{ %
%{title}
%{description}
}
unique Вася
{ cls = собеседник
title="Вас%; МрЕчОдСи; Ип; Зп=ь; Зп=я; Ип=я; Рп=и; Дп=е; Вп=ю; Тп=ей; Пп=е;"
}
unique Вова
{ cls = собеседник
title="Вов%; МрЕчОдСи; Ип; Зп=; Зп=а; Ип=а; Рп=ы; Дп=е; Вп=у; Тп=ой; Пп=е;"
}
unique Петя
{ cls = собеседник
title="Пет%; МрЕчОдСи; Ип; Зп=ь; Зп=я; Ип=я; Рп=и; Дп=е; Вп=ю; Тп=ей; Пп=е;"
pers=this
}
}
//=============================================================================
// парсерная составляющая диалога
//=============================================================================
action Поговорить
{ pat="поговорить=говорить=поговори=говори с @с_кем:собеседник*Тп"
pat="спросить=спроси @с_кем:собеседник*Вп"
с_кем(с_кем)
{ if(с_кем==actor)
return "будет несколько странно, если {actor} начнет говорить с {actor*Тп}^^^"
}
}
Петя.Поговорить(с_кем)
{ %для выбора меню введите номер строки, начальные буквы строки, или начало любого слова в меню.
this > "Слушай, {с_кем*Зп}, давно тебя хотел спросить^^^"
%{с_кем.menu()}
this.is_not_recognized = "{menu_object} тебя не понял." //это вместо "Это предложение не понятно."
с_кем.menu_name="Продолжаем разговор c {menu_object*Тп}:
___"
}
//=============================================================================
// менюшная составляющая диалога
//=============================================================================
class собеседник
{ //настройки меню
this.menu_name="Разговор с {this*Тп}:
___"
this.menu_separator = " //между строками меню перенос строки с отступом
___"
//при разговоре с любым собеседником должна быть опция выхода из меню:
menu_item("{досвиданья()}",1000) //всегда в конце меню
{ pers > "Пока {menu_object}, было приятно поболтать."
this > "Пока {pers}."
pers.is_not_recognized = null
loc.OnEnter() //покажем локацию
}
досвиданья()
{ switch(rnd(5))
case(1) return "досвиданья"
case(2) return "пока"
case(3) return "прощай"
case(4) return "счастливо"
case(5) return "еще увидимся"
}
}
unique Вася
{ //формируем меню для разговора с Васей
menu_item("про рыбалку")
{ pers > "Вася, а как ты относишься к рыбалке?"
this > "Да не рыбак я совсем^^^"
pers > "Жаль, очень жаль."
%{menu()} //в конце вызываем меню для продолжения диалога
}
}
unique Вова
{ //формируем меню для разговора с Вовой
menu_item("про рыбалку")
{ this.говорили_про_рыбалку = да
pers > "Вова, а как ты относишься к рыбалке?"
this > "Вчера я поймал вот такую (разводит руки в стороны) рыбу!"
pers > "Да ну! Ты просто супер-рыбак!"
%{menu()} //в конце вызываем меню для продолжения диалога
}
}
//отдельная тема сокровищ
mental ПроСокровища //помещаем тему в разговор с Васей
{ menu_item("а где ты хранишь свои сокровища?")
{ Вася - ПроСокровища //2й раз про сокровища спросить не судьба
Вася + ПроКлюч //добавляем тему ключа
pers > "А где ты хранишь свои сокровища?"
menu_object > "В тумбочке стола^^^"
pers > "Спасибо, ты мне очень помог!"
%{menu_object.menu()}
}
Вася + this
}
//отдельная тема ключа
mental ПроКлюч
{ menu_item("эээ^^^ тумбочка закрыта, где ключ?")
{ Вася - ПроКлюч //2й раз про ключ не спрашиваем
Вова + ПроКлюч2 //становится известно что ключ у Вовы
pers > "Эээ^^^ тумбочка закрыта, где ключ??"
menu_object > "Ключ у Вовы."
pers > "Спасибо, ты мне снова помог!"
%{menu_object.menu()}
}
}
mental ПроКлюч2
{ menu_item("Вова! Вася сказал что у тебя есть ключ от тумбочки!")
{ Вова - ПроКлюч2 //2й раз про ключ не спрашиваем
pers > "Вова! Вася сказал что у тебя есть ключ от тумбочки!"
if(Вова.говорили_про_рыбалку)
{ menu_object > "На, держи! (отдает ключ)"
pers > "Спасибо, ты меня выручил!"
}
else
{ menu_object > "Ключ, ключ^^^ А зачем он тебе?"
pers > "Ну так^^^ нужен для одного дела^^^"
}
%{menu_object.menu()}
}
}