Как сделать?
…
Nex,
спасибо, работает
подскажите как сделать подменю для предметов, на форуме нашел ответ Aleks Versus, попробывал - работает, но только с первым размещенным предметом в локации OnObjSel, у второго предмета подменю не появляется
Spoiler
Есть два варианта организации подменю. Используя контекстное меню, используя окно “инвентарь” как меню. Есть ещё вариант, но он не такой наглядный.
Думаю, тебе для начала подойдёт вариант с контекстным меню.
Необходимо создать локацию, которая будет обрабатываться всякий раз, когда игрок будет нажимать на предмет. Можно не заморачиваться и назвать её “OnObjSel”. Можно любым другим именем. В начале игры указываешь:
$onobjsel = 'OnObjSel'
т.е. системной переменной $onobjsel передаётся название локации-обработчика.
Дальше на созданной локации пишешь что-то вроде:
if $selobj='меч':
! если выделен объект меч
$меню_меча[0]='взять:take:image\hand.jpg'
! т.е. нулевой ячейке массива $меню_меча присваивается строка, где до первого двоеточия указан текст, который будет выведен в меню, потом название локации, к которой произойдёт обращение при щелчке на пункте меню, после третьего двоеточия - относительный путь к изображению.
$меню_меча[1]='осмотреть:view:image\glass.jpg'
$меню_меча[2]='выкинуть:put:image\onland.jpg'
menu '$меню_меча'
! команда выполнит вывод только что составленного меню
end
unselect
! unselect предназначено для снятия выделения с пердмета
если кто-то знает другой способ, поделитесь пожалуйста)
и еще вопрос: в “основном” и “дополнительном описании” не работает скроллинг, постоянно поднимает вверх, как с этим бороться?
и еще: как изменить цвет фона окон “Предметы” и “Действия”
ЗакТеррен,
UNSEL
должен быть вызван один раз в самом конце локации. Этот оператор “сбрасывает” выделение предмета. Потому у тебя на втором ничего не срабатывает, что UNSEL уже вызван, и функция $SELOBJ возвращает пустое значение.
в “основном” и “дополнительном описании” не работает скроллинг, постоянно поднимает вверх, как с этим бороться?
Скроллинг работает везде. Прокрутка вверх при обновлении описания сделана затем, чтобы игрок перечитал описание локации сначала. Так как в общем случае, текст мог быть не просто добавлен, а измениться в самом описании, выше уже прочитанного игроком.
Если в твоей игре, либо в какой-то определённой локации игры, нет необходимости читать описание заново при обновлении, ты можешь отключить прокрутку с помощью переменной DISABLESCROLL.
как изменить цвет фона
Nex,
спасибо, все работает)
У меня проблема. В системе боя нужно использовать функцию wait, но при этом нельзя выполнять действия. Вопрос: есть ли способ с использованием данной функции, но с выполнением действий?
Никита №1221,
Мини-игра “Взорви зомби” - пример использования локации-счётчика, также см. Действие по таймеру
ЗДравствуйте. У меня такой вопрос:
Есть, допустим, десяток изображений. При входе в локацию надо дабы случайным образом выводилось одно из этих изображений. Вопрос в том, как сделать это элегантно и красиво? Ибо пока решение выглядит подобным образом:
x = rand(1,10)
if x = 1:
<вывести изображение 1>
elseif x = 2:
<вывести изображение 2>
...
elseif x = 10:
<вывести изображение 3>
end
Заранее спасибо…
Массивы в помощь:
img_num = rand(1,10)
<вывести изображение $images[img_num]>
Tykc,
твой способ даёт больше гибкости. Но можно например поименовать файлы по порядку счёта, типа IMG1.jpg, IMG2.jpg и т.д. И выводить:
<img src='IMG<<rand(1,10>>.jpg'>
Можно присвоить то, что должно выводиться, массиву:
$image_array[0]='<img src="IMG1.jpg">'
$image_array[1]='<img src="IMG2.jpg">'
$image_array[2]='<img src="IMG3.jpg">'
и т.д.
А потом в нужном месте вывести:
*p $image_array[rand(0,9)]
Можно написать отдельную локацию с твоим кодом, а потом просто вызывать её, если требуется повторять вывод случайного изображения в нескольких местах.
newsash, Aleks Versus, спасибо вам обоим за ответы. =0)
Всем доброго дня. Помогите с таким вопросом.
Вставляю таблицу в “дополнительное описание”,
Отображается в целом сносно, но после нее появляется куча невидимых пробелов. И чем больше таблица, тем больше этих пробелов. Вообще я чайник. Может это и школьный вопрос. Спасибо!
pl '<table cellpadding=10 cellspacing=0 border=1>'
pl '<tr><td><center><img src="pic/clock.png"></center></td>'
pl '<td><center><img src="pic/kalendar.png"></center></td>'
pl '<td><center><img src="pic/koshelek.png"></center></td></tr>'
pl '<tr><td><center><b><<hour>>.00</b></center></td>'
pl '<td><center><b><<number>>.<<$month>>.<<year>>. <<$weekday>></b></center></td>'
pl '<td><center><b><<money>>$</b></center></td></tr>'
pl '<tr><td colspan="3"><center><b>Характеристики</b></center></td></tr>'
pl '<tr><td><center>Известность:</center></td>'
pl '<td nowrap><<$izv>></td>'
pl '<td><center><<izv>>/10</center></td></tr>'
pl '<tr><td><center>Выносливост:</center></td>'
pl '<td nowrap><<$vozb>></td>'
pl '<td><center><<vozb>>/10</center></td></tr>'
pl '<tr><td><center>Здоровье:</center></td>'
pl '<td nowrap><<$hp>></td>'
pl '<td><center><<hp>>/10</center></td></tr>'
pl '</table>'
kosmosnash,
используй “P” вместо “PL”.
Оператор PL вставляет перевод строки, который в режиме HTML преобразовывается в тег
. Потому и появляются “пустые строки”.
О боги! Насколько просто все гениальное. Благодарю, товарищ! :=D
Тогда еще вопрос, не менее нубский :)
Нужно сделать, чтобы при выборе действия, в главном окне менялась картинка и текст. Я до этого на каждую картинку создавал новую локацию, но понял, что данный метод будет меня ограничивать. Нужно что-то вроде:
“Иду дальше” (новая картинка и короткое описание)
“Дальше…” (новая картинка и описание)
и т.д.
clr и ему подобные тут не помогли.
Заранее спасибо