RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2427315 views

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>’

Aleks Versus Moderator 29.06.2016 17:51 (9 years ago)

Lexian13,
посмотри. Прочитай комментарии в локациях для Яны.

proba.qsp

Подскажите, пожалуйста, как сделать кликабельный список предметов? Чтобы игрок щёлкал по предмету и ему выводилось окошко типа MSG, но в пределах одной локации. Кликнул на предмет, посмотрел его описание, закрыл вкладку, оставшись на той же локации.

Aleks Versus Moderator 01.07.2016 19:37 (9 years ago)

De@th K!d,
есть простой способ, который я сам какое-то время использовал. Пишем на локации onObjSel нечто вроде:

if $selobj = 'Армейский нож'
	! сохраняем список действий текущей локации
	$actlist = $curacts
	! сохраняем описание текущей локации
	$locdescript = $maintxt
	! очищаем экран
	*clr
        ! очищаем список действий
        cla
	! выводим описание предмета
	*pl 'Замечтаельный армейский нож'
	! выводим действие "закрыть описание предмета"
	act 'закрыть':
	   ! действие восстанавливает описание и действия
	   *p $locdescript
	   dynamic $actlist
	   delact $selact
	end
end

приветы! Появилась проблема, о которой раньше не задумывался. Простые Арифметические действия плеер считает, вопрос: как вывести калькулятор в игровой интерфейс?

Aleks Versus Moderator 03.07.2016 06:20 (9 years ago)

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>'
          }
Aleks Versus Moderator 03.07.2016 20:10 (9 years ago)

Bup0H,
следует различать многострочные и однострочные конструкции. Первые всегда закрываются end’ом, вторые затрудняют читаемость кода и нередко приводят к ошибкам. В чём пишешь, не имеет значения, хоть в текстовом редакторе.

Ответ на второй вопрос заключается в приведённом тобой куске кода, в частности вот в этом куске:

bgcolor="<<$DefaultBuffetColor>>"

Кажется, при клике по предмету происходит замена содержимого $DefaultBuffetColor и полная перерисовка всей таблицы с новыми значениями.

А как, этот клик как раз и распознается? Какой командой? Я не могу понять как клик с кодом связывается, как бы это правильней объяснить. если есть клик то значит есть какая то команда для него в коде, как программа видит что произошел клик. Или я не прав?

Aleks Versus Moderator 04.07.2016 17:20 (9 years ago)

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 в программирование))). Хорошо попытаюсь разобраться, если выйдет скину что получилось.

Aleks Versus Moderator 04.07.2016 19:28 (9 years ago)

Пример калькулятора:
##calculator.qsp##

Aleks Versus,
спасибо, придётся разбираться долго… нверное я чёта где-то неправильно спросил, мне нужен был калькулятор на навигатор, но уже думаю разберусь, ещё раз спасибо :lol:

Aleks Versus Moderator 05.07.2016 15:19 (9 years ago)

Aaaspavel,
хм. В навигаторе работает. Принцип написания штуки, которая должна выводиться на экран и взаимодействовать с игроком через ссылки, прост: перерисовываем штуку всякий раз, когда игрок в неё тычет. Вопрос Bup0H’а схож с твоим. Посмотри как работает пример, который я ему скинул.

Log in or Register to post comments.