Как сделать?
…
Nex,
спасибо, мне это помогло) получился вот такой код:
Spoiler
if money>=10:
act 'Купить воду':
Вода+=1
money-=10
clear
pl'Вас зовут <<$Имя>> <<$Фам>>.'
pl'В кошельке <<money>> денег.'
pl'Здоровье <<HP>>.'
pl'Голод: <<Сытость>>.'
pl'Жажда: <<Жажда>>.'
pl'Бодрость <<Сон>>.'
end
end
Вопрос: можно ли вот эту часть заменить одним словом/кодом ибо если все это каждый раз писать, то получится много текста((
Spoiler
pl'Вас зовут <<$Имя>> <<$Фам>>.'
pl'В кошельке <<money>> денег.'
pl'Здоровье <<HP>>.'
pl'Голод: <<Сытость>>.'
pl'Жажда: <<Жажда>>.'
pl'Бодрость <<Сон>>.'
ЗакТеррен,
одним - нет, двумя - можно.
Помести код вывода в отдельную локацию. Например, назовём локацию “статус”. Кстати, “CLEAR” туда же стоит поместить.
Далее, где нужно обновить статус, пишешь вызов этой локации:
GS "статус"
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 преобразовывается в тег
. Потому и появляются “пустые строки”.