Как сделать?
…
svandrus:
Действительно просто. Сам бы я до такого не додумался. Спасибо. Тогда еще вопрос. Зачем нужен оператор set? Насколько я понимаю, он просто устанавливает значение для переменной, т.е. set a = 3 это то же самое, что a = 3. Или нет?
Старое наследие, вроде был ещё оператор let. Все эти операторы эквивалентны, можно писать просто a = 3. См. справку.
Я так и думал. Просто смущало то, что никто бы не стал добавлять какие-то операторы просто так.
svandrus,
ну не совсем “просто так”. Байт взял пример с Бэйсика.
Такой вопрос:
Можно ли в AeroQSP убрать полупрозрачный фон во время WAITa? Если да, то как?
DISABLESHADE = 1
Народ подскажите как на одной локации правильно сварганить сложный диалог между гг и нпс?
Asbest1982:
Народ подскажите как на одной локации правильно сварганить сложный диалог между гг и нпс?
Насколько сложный? И сколько таких диалогов планируется в игре?
Самое общее решение, которое я могу придумать - это держать в переменной состояние диалога.
if состояние_диалога['Старик'] = 0:
*PL Здесь начало диалога
act '1':
состояние_диалога['Старик'] = 1
gt $curloc
end
end
if состояние_диалога['Старик'] = 1:
*PL Здесь ещё что-то
act 'ABCDEF':
состояние_диалога['Старик'] = 'abc'
gt $curloc
end
end
Вместо 1,2,abc лучше использовать текст, который позволяет понимать, о чем речь. Типа ‘спросил про лес’.
Ещё можно записывать что-то вроде узел_диалога_посещен[’Старик, спросил про лес’] = 1, если для логики диалога требуется это знать.
Если диалог повторяемый, важно сбрасывать состояние в ACT’е перехода к диалогу.
P.S. Чаще всего есть более простые и удобные решения.
Этот вопрос есть в FAQ. Диалоги
Nex,
Молю о помощи с навигатором, а то я уже не знаю, что и делать. У меня была проблема с позиционированием элементов и на первый взгляд что в “gameAwesomium.html”, что в “game.css” все было нормально. Поэтому я решил пойти методом исключения и понемногу удалять все, что не касается окна основного описания и дальше, пока не дойду до так сказать основания. В итоге “gameAwesomium.html” в “body” все выглядит так:
Spoiler
<div id="qsp-wrapper-main">
<div id="qsp-scroller-main" style="border: 8px solid black;">
<div id="qsp-main">
<!--Загрузка игры...-->
</div>
</div>
</div>
А в “game.css” так:
Spoiler
#qsp-wrapper-main { position:absolute; left:0px; top:0px; height:100%; width:100%; word-wrap: break-word; border: 5px solid yellow; }
#qsp-main { padding-left:12px; padding-right:12px; text-align:justify; border: 5px solid red; margin-top: 50px;}
#blok { position:absolute; left:0px; bottom:0px; border: 1px solid green;}
По идеи, блок с id “blok” должен позиционироваться относительно первого родителя с позиционированием (qsp-wrapper-main), но он позиционируется относительно блока “qsp-scroller-main”. Так же если я меняю позиционирование “absolute” на “fixed”, то разницы в расположении блока “blok ” нет. Но если я удаляю блок “qsp-scroller-main”, то все прекрасно работает. В общем, я в тупике и не знаю, что делать.
Mxat2008,
блок с id “blok” должен позиционироваться относительно первого родителя с позиционированием (qsp-wrapper-main), но он позиционируется относительно блока “qsp-scroller-main”
Так и есть. Просто позиционирование для скроллеров задаётся не в CSS, а в момент вызова JS-плагина, обслуживающего скроллеры.
если я меняю позиционирование “absolute” на “fixed”, то разницы в расположении блока “blok ” нет
Почитай, чем “absolute” отличается от “fixed”. В двух словах, “absolute” отталкивается от одного из родительских блоков, а “fixed” от границ окна. Важно это понимать при вёрстке.
если я удаляю блок “qsp-scroller-main”, то все прекрасно работает
Скроллеры рассчитаны на такое использование: если тебе нужно, чтобы контент, например в основном описании, скроллился, то оставляешь скроллер. Если нет, то убираешь этот див (оставляя на прежнем месте “внутренности”), и скроллер по-тихому “отключается”.
<!-- прокрутка есть -->
<div id="qsp-wrapper-main">
<div id="qsp-scroller-main">
<div id="qsp-main">
</div>
</div>
</div>
<!-- прокрутки нет -->
<div id="qsp-wrapper-main">
<div id="qsp-main">
</div>
</div>
Если тебе нужно выводить что-то в блоке, существующем отдельно от описания, например таблицу характеристик, самый лучший способ - прописать этот блок статично в вёрстке (html-шаблоне), а заполнять вызовом яваскрипта, типа “skinSetStat(10, 100, 50);”. Вызов помещаешь в процедуру, и в итоге код выглядит примерно так:
HP = HP - 12
GS 'update_stat'
Если это слишком сложно для понимания, можно попроще, выводить блок в окно доп. описания. Но это при условии, что оно ещё не задействовано в игре.
Nex,
Я так понимаю, варианта где бы и скроллинг и позиционирование относительно блока “qsp-wrapper-main” работали бы вместе нету?
А насчет таблицы хар-ик, про блок в html-шаблоне и вызов понятны, а вот вызов js это для меня если не дремучий, то темный и страшный лес точно. Но я сделал такую табличку проще, через модальное окно css.
Может можно сделать так чтобы блок “qsp-scroller-main” был равен блоку “qsp-wrapper-main”?
Где-то месяц назад я применил все свои великие навыки в javascript и получил вот это:
Spoiler
$(window).resize(function(){
main = document.getElementById('qsp-wrapper-main').scrollHeight;
$('#qsp-main').css('min-height', main + 'px');
})
Идея была в том, что бы блок “qsp-main” был равен блоку “qsp-wrapper-main” и соответственно растягивал блок “qsp-scroller-main” и тогда позиционирование шло бы как нужно.
Но возникла проблема, в том, что время от времени в блоке “qsp-main” после описания появляются переносы строк и иногда их весьма много, что портит всю картину.
А есть ли способ контролировать размер окон (основного описания, список предметов) програмно? В моем случае окно дополнительного описания.
Я так понимаю, варианта где бы и скроллинг и позиционирование относительно блока “qsp-wrapper-main” работали бы вместе нету?
Я не понимаю, что тебе нужно. И скроллинг и позиционирование работают. Поясни на примере, чего ты хочешь добиться.
вызов js
! Пример. Меняем сцену, вызывая функцию скина skinSetStage.
$stage = 'cover'
EXEC('JS:skinSetStage("' + $stage + '");')
Может можно сделать так чтобы блок “qsp-scroller-main” был равен блоку “qsp-wrapper-main”?
Что это значит, и зачем это нужно?
время от времени в блоке “qsp-main” после описания появляются переносы строк и иногда их весьма много
Скорее всего, в каких-то процедурах либо системных локациях есть непустое базовое описание. Например, содержащее только перевод строки.
А есть ли способ контролировать размер окон (основного описания, список предметов) програмно? В моем случае окно дополнительного описания.
Как я понимаю, ты о классическом плеере. Программно контролировать размер окон нельзя. Но можно настроить окна “под себя”, растягивая их мышкой, а потом скопировать в папку с игрой файл с настройками плеера. Если распространять этот файл с игрой, и поставить ему атрибут “только для чтения”, то окна при старте игры будут такого размера, как ты задал.
Nex:
Но можно настроить окна “под себя”, растягивая их мышкой, а потом скопировать в папку с игрой файл с настройками плеера. Если распространять этот файл с игрой, и поставить ему атрибут “только для чтения”, то окна при старте игры будут такого размера, как ты задал.
Возможно глупый вопрос, а какой это файл? И что за атрибут только для чтения?