Как сделать?
…
Bup0H,
Курсив тоже должен быть закрыт </i>
Bup0H:
‘<center><b><i><font color = #0000FF Персонаж:</font><i><font color = #585858> - Реплика </font> ТЕКСТ2’
<font color = #0000FF Персонаж:</font> - непонятно, почему <font color = #0000FF не закрыт >
<b> открывает
</b> закрывает
<i> открывает
</i> закрывает
в итоге будет выглядеть так
‘<center><b><i><font color = #0000FF> Персонаж:</font></i></b><font color = #585858> - Реплика </font> ТЕКСТ2 </center>’
Lexian13,
посмотри. Прочитай комментарии в локациях для Яны.
Подскажите, пожалуйста, как сделать кликабельный список предметов? Чтобы игрок щёлкал по предмету и ему выводилось окошко типа MSG, но в пределах одной локации. Кликнул на предмет, посмотрел его описание, закрыл вкладку, оставшись на той же локации.
De@th K!d,
есть простой способ, который я сам какое-то время использовал. Пишем на локации onObjSel нечто вроде:
if $selobj = 'Армейский нож'
! сохраняем список действий текущей локации
$actlist = $curacts
! сохраняем описание текущей локации
$locdescript = $maintxt
! очищаем экран
*clr
! очищаем список действий
cla
! выводим описание предмета
*pl 'Замечтаельный армейский нож'
! выводим действие "закрыть описание предмета"
act 'закрыть':
! действие восстанавливает описание и действия
*p $locdescript
dynamic $actlist
delact $selact
end
end
приветы! Появилась проблема, о которой раньше не задумывался. Простые Арифметические действия плеер считает, вопрос: как вывести калькулятор в игровой интерфейс?
Aaaspavel,
можно нарисовать используя html. Принцип прост: каждая кнопка это гиперссылка, по нажатию которой калькулятор перерисовывается.
Вечером набросаю пример, если сам не сможешь.
В примерах других игр заметил что автор не закрывает иногда If end’ами. В моем QGen5 такой код не работает пока не поставишь end. В чем пишут те авторы игр? Просто интересно.
И еще в одной из игр увидел интересный код. Изображение предмета оформлено в небольшую таблицу. Всего несколько предметов на выбор. При нажатие на предмет фон таблицы под ним меняет цвет ( как бы предмет выбран). Ниже имеется кнопка при нажатие которой предмет перемещается в инвентарь.
Как это реализовать? Привожу код из игры, мог бы кто объяснить как это реализовать? Меня интересует именно этот эффект выделения предмета при клике на его мышкой. Ну и соответственно перетаскивание его в инвентарь.
Spoiler
$BuffetTake = {
if SelectBuffet <> 0:
if $character = 'father':
$BagItemimageAlex = '<<$PathFolder>>\house\t<<SelectBuffet>>.png'
BagItemAlex = SelectBuffet
end
if $character = 'daughter':
$BagItemimageVika = '<<$PathFolder>>\house\t<<SelectBuffet>>.png'
BagItemVika = SelectBuffet
end
dynamic $buffet
else
MSG 'Выберите предмет, который хотите взять'
end
GS 'Статы'
}
$buffet = {
cla
act 'Закрыть' : GT 'Кабинет'
$SelectBuffetColor = '#98FB98'
$DefaultBuffetColor = '<<$TableTextColor>>'
*Clear
'<center><table >'
'<tr>'
'<td>'
if SelectBuffet <> 9: '<center><table bgcolor="<<$DefaultBuffetColor>>" border="1">'
if SelectBuffet = 9: '<center><table bgcolor="<<$SelectBuffetColor>>" border="1">'
'<tr>'
'<td><a href="exec: SelectBuffet = 9 & dynamic $buffet"><div><img src=''<<$PathFolder>>\house\t9.png''></div></a></td>'
'</tr>'
'<tr>'
'<td><center>Цветок</center></td>'
'</tr>'
'</table></center>'
'</td>'
'</tr>'
'<tr>'
'<td>'
'<center><table bgcolor="<<$DefaultBuffetColor>>" border="1">'
'<tr>'
'<td><a href="exec: dynamic $BuffetTake"><div><img src=''<<$PathFolder>>\house\cursor.png''></div></a></td>'
'</tr>'
'</table></center>'
'</td>'
'</tr>'
'<tr>'
'<td>'
'<center><table bgcolor="<<$DefaultBuffetColor>>" border="1">'
'<tr>'
if $character = 'daughter': '<td><img src=<<$BagItemimageVika>>></td>'
if $character = 'father': '<td><img src=<<$BagItemimageAlex>>></td>'
'</tr>'
'<tr>'
'<td><center>Инвентарь</center></td>'
'</tr>'
'</table></center>'
'</td>'
'</tr>'
'</table></center>'
}
Bup0H,
следует различать многострочные и однострочные конструкции. Первые всегда закрываются end’ом, вторые затрудняют читаемость кода и нередко приводят к ошибкам. В чём пишешь, не имеет значения, хоть в текстовом редакторе.
Ответ на второй вопрос заключается в приведённом тобой куске кода, в частности вот в этом куске:
bgcolor="<<$DefaultBuffetColor>>"
Кажется, при клике по предмету происходит замена содержимого $DefaultBuffetColor и полная перерисовка всей таблицы с новыми значениями.
А как, этот клик как раз и распознается? Какой командой? Я не могу понять как клик с кодом связывается, как бы это правильней объяснить. если есть клик то значит есть какая то команда для него в коде, как программа видит что произошел клик. Или я не прав?
Bup0H,
о, брат. А вот эта строка тебе о чём-нибудь говорит?
<a href="exec: dynamic $BuffetTake">
Я не подколоть пытаюсь, просто я не знаю уровня твоих знаний.
Если вместо адреса для гиперссылки в атрибуте href указывается слово “EXEC:”, то будет выполнена строка кода, которая идёт после exec:
Цвет фона хранится здесь в переменной, а вот эта самая строчка кода, вписнутая в гиперссылку запускает код, помещённый в переменную $BuffetTake. Вот пример, который должен помочь разобраться, как оно работает:
usehtml =1
! цвет текста
$color_text = 'ff0000'
! код замены цвета, помещённый в переменную
$code = {
! меняем цвет
if $color_text = 'ff0000':
$color_text = '008888'
else
$color_text = 'ff0000'
end
! стираем текст
*clr
! пишем текст заново
*pl "<a href='exec:dynamic $code'><font color=#"+$color_text+" >Текст, меняющий цвет</font></a>"
}
! выводим текст
*pl "<a href='exec:dynamic $code'><font color=#"+$color_text+" >Текст, меняющий цвет</font></a>"
Уровень моих знаний 4 недели и 0 в программирование))). Хорошо попытаюсь разобраться, если выйдет скину что получилось.
Пример калькулятора:
##calculator.qsp##
Aleks Versus,
спасибо, придётся разбираться долго… нверное я чёта где-то неправильно спросил, мне нужен был калькулятор на навигатор, но уже думаю разберусь, ещё раз спасибо :lol:
Aaaspavel,
хм. В навигаторе работает. Принцип написания штуки, которая должна выводиться на экран и взаимодействовать с игроком через ссылки, прост: перерисовываем штуку всякий раз, когда игрок в неё тычет. Вопрос Bup0H’а схож с твоим. Посмотри как работает пример, который я ему скинул.