1) Каким образом можно "осмотреть себя"?
2) Как всучить глав.герою предмет в начале игры (т.е. чтобы игра начиналась уже с этим предметом в инвентаре)?
2.1) Как вообще что-либо вручать герою?
3) Как на RTADS'е написать что-то вроде
если (БатареяЗаряжена=ложь, то сказать "эй, заряди батарею!") иначе (сказать "батарея уже заряжена")
4) Как в одной локации осуществить следующее:
взять книгу со стола -стол слишком далеко подойти к столу -ты стоишь возле стола взять книгу -ты взял книгу
Или для этого нужно создавать несколько локаций?
5) Как избавиться от
ты стоишь в северной комнате ты видишь на столе книгу
хотя в
someroom:room ldesc="ты стоишь в северной комнате";
Заранее немерено благодарен.
Неактивен
Огромное спасибо!
Я сделал описание себя через
modify Me
ldesc = "Ты - Горбунков Семен Семенович"
;
Другая проблема: я ввожу новый глагол
ChargeVerb: deepverb
vorp="Что "
sdesc="зарядить"
verb='зарядить' 'подзарядить' 'наполнить'
doAction = 'Charge'
;и
Battery: item
sdesc = "батарея"
rdesc = "батареи"
ddesc = "батарее"
vdesc = "батарею"
tdesc = "батареей"
pdesc = "батарее"
noun = 'батарея' 'батареи' 'батарее' 'батарею' 'батареей' 'батарее#d' 'батареей#t'
location=Me
ldesc={"Твоя аккумуляторная батарея.\n ";
if(not self.IsCharge)
{"Кажется, ее требуется зарядить.";
}
else
{"Похоже, она полностью заряжена.";
}
}
IsCharge=nil
isHim = nil
;зарядить батарею
-я не знаю как зарядить батарею
(я полагаю) нужно ввести еще само событие заряжания (такое вообще существует?), а вот как это сделать?
Неактивен
Мануал огромен и я пока не разобрался что где лежит.
Однако,
Battery: item
location=Me
sdesc = "батарея"
rdesc = "батареи"
ddesc = "батарее"
vdesc = "батарею"
tdesc = "батареей"
pdesc = "батарее"
noun = 'батарея' 'батареи' 'батарее' 'батарею' 'батареей' 'батарее#d' 'батареей#t'
verDoCharge(actor) = {
if (self.IsCharge)
"Она уже заряжена.";
}
doCharge(actor) = {
"Батарея теперь заряжена.";
self.IsCharge = true;
}
ldesc={"Твоя аккумуляторная батарея, она обеспечивает твою жизнедеятельность. Ешь хорошо, железяка!\n ";
if(not self.IsCharge)
{"Кажется, ее требуется зарядить.";
}
else
{"Похоже, она полностью заряжена.";
}
}
IsCharge=nil
isHim = nil
;>о батарею Твоя аккумуляторная батарея. Кажется, ее требуется зарядить. >зарядить батарею Батарея теперь заряжена. >о батарею Твоя аккумуляторная батарея. Кажется, ее требуется зарядить. >зарядить батарею Батарея теперь заряжена. >
Неактивен
someitem:item /* это индикатор заряда батрей*/
ldesc={"Заряд батарей - ";
if(Battery.IsCharge)
{"100%\n";}
else
{"17%\n";}
}
;Работает.
Но когда я делаю вот так:
someitem:item /* это индикатор заряда батрей*/
ldesc="<b>строка 1</b>\n
строка 2\n
строка 3\n"
{"Заряд батарей - ";
if(Battery.IsCharge)
{"100%\n";}
else
{"17%\n";}
}
;То:
error TADS-301: expected a symbol
Мозги отказываются это понимать.
P.S. Благодарю за совет, от этой затеи с многими-локацями-в-одной отказался.
Отредактировано IO (08.01.2009 21:49)
Неактивен
Вчера, когда я ставил фигурную скобку после ldesc=, вылезала та же ошибка. Сегодня работает. Мне страшно.
Неактивен
Uniform: item
location = Chest
ldesc = "Твоя униформа"
doWear (actor)={
if (Uniform.location=Me)
{"Ты одеваешь свою униформу";}
else
{"Сначало нужно взять униформу с полки";}
}
;взять униформу -взято надеть униформу -ты не можешь надеть униформу!
............................. вашими молитвами скоро первая локация будет готова!
Страшно, когда ты с системой один бьешься, без помощи.
Panic! Panic! Panic! ![]()
Отредактировано IO (09.01.2009 21:11)
Неактивен
Chest : qcontainer, fixeditem, openable
isopen=nil
iscontainer = true
location = startroom
sdesc = "железный шкафчик"
rdesc = "железного шкафчика"
ddesc = "железному шкафчику"
vdesc = "железный шкафчик"
tdesc = "железным шкафчиком"
pdesc = "железном шкафчике"
adjective = 'железный' 'железный#t' 'железного' 'железному' 'железному#d' 'железным' 'железным#t' 'железном'
noun = 'шкафчик' 'шкафчика' 'шкафчику' 'шкафчиком' 'шкафчике' 'шкафчику#d' 'шкафчиком#t'
ldesc = "Железный шкафчик, в нем хранятся твои невеликие пожитки."
isHim = true
doOpen(actor)={
if(Uniform.location:=Me){"Ты видишь здесь свою униформу.";}}
;Uniform : clothingItem
isworn = nil
location = Chest
sdesc = "униформа"
rdesc = "униформы"
ddesc = "униформе"
vdesc = "униформу"
tdesc = "униформой"
pdesc = "униформе"
noun = 'униформа' 'униформы' 'униформе' 'униформу' 'униформой' 'униформою' 'униформе#d' 'униформой#t' 'униформою#t'
ldesc = {"Твоя униформа курьера. Из-за того, что на ней не предусмотрены карманы, тебе приходится везде таскать с собой рюкзак.";
if(Bag.location:=Me){" Кстати, где он?";}}
doWear(actor)={
if(Uniform.location=Me){"Ты одеваешь свою униформу";}
else{"Сначала ее нужно достать из шкафчика";}}
isHim = nil
;>открыть шкафчик Ты видишь здесь свою униформу. >взять униформу Я не вижу здесь объект "униформу". >одеть униформу Я не вижу здесь объект "униформу".
Почему так? В упор не могу найти ошибку.
Отредактировано IO (10.01.2009 14:35)
Неактивен
То, что я неправильно и с ошибками использую инструментарий, я думаю это нормально, поскольку сижу в TADS три дня.
Я ковырял advr.t и мануал по clothingItem и doWear(), но там не написано почему TADS не "видит" униформу. Поэтому я обращаюсь за помощью сюда.
P.S. У меня есть небольшой опыт программирования на С++ и с основами ООП я знаком.
Неактивен
Мозговой глюк - изначально я откуда то взял, что ":=" это неравно (видимо это похоже на "!="
).
Поковырял поглубже адвр.т, теперь все выглядит так:
Uniform : item
location = Chest
/*тут все тоже самое*/
ldesc =
{
"Твоя униформа. Из-за того, что на ней не предусмотрены карманы, тебе приходится везде таскать с собой рюкзак.";
if(Bag.location != Me)
{
" Кстати, где он?";
}
}
isHim =nil
;Chest : container, fixeditem, openable
isopen = nil
iscontainer = true
location = startroom
/*тут все тоже самое*/
ldesc = "Железный шкафчик, в нем хранятся твои невеликие пожитки."
isHim = true
doOpen(actor) =
{
"Ты открываешь шкафчик.";
if(Uniform.location = Chest)
{
" На полке лежит твоя униформа.";
}
else
{
" Пусто.";
}
}
;Однако,
>открыть шкафчик Ты открываешь шкафчик. На полке лежит твоя униформа. >о униформу Я не вижу здесь объект "униформу". >взять униформу Я не вижу здесь объект "униформу". >одеть униформу Я не вижу здесь объект "униформу".
Действительно, с разметкой читать стало гораздо легче!
Неактивен
Функцию удалил. Заработало. (нервно смеюсь).
Неактивен
Необходимо:
игрок может выйти из комнаты только если одет в униформу, несет с собой рюкзак и батарейка заряжена. При чем если не соблюдено какое-то из требований, то текст разный для каждого.
У меня получилось что-то невразумительное (и естественно не рабочее):
CellDoor : lockableDoorway
locked = true
closed = true
location = startroom
doOpen(actor) = "красивый текст''
if (Bag.location != Me)
{
"текст";
CellDoor.setIslocked(true)
else
CellDoor.setIslocked(nil)
}
if (Uniform.IsWear = nil)
{
"текст";
CellDoor.setIslocked(true)
else
CellDoor.setIslocked(nil)
}
if (Battery.IsCharge = nil)
{
"текст";
CellDoor.setIslocked(true)
else
CellDoor.setIslocked(nil)
}
ldesc = "красивый текст"
;Отредактировано IO (11.01.2009 18:07)
Неактивен
35 огромных спасибо всем!
Пишу в поте лица!
Неактивен