Как сделать?
…
Начал тут потихоньку тренироваться в юзе массивов. Гуру, подскажите. какого не работает условие
if $Девушка=10 and $Фамилия=10: из примера.
Я пока не совсем врубился в язык массива, догадываюсь что тупо неверно задаю условие.
Суть понятна - хочу чтобы оно срабатывало при сочетании элементов 10,10. В переменную “а” какахами не кидать - повторюсь - экспериментирую и исследую способности массива по воплощению моих игровых фантазий))
Aaaspavel:
msg оборвёт действия и выставит нас за дверь.
Aaaspavel:
msg’магазин закрывается, продавец уходит’ & gt’place’
здесь не msg обрывает действия а переход на новую локацию. Могу привести контрпример, но, думаю, не имеет смысла.
Aaaspavel:
сама по себе каждая локация это $BACKIMAGE = ‘content/back.png’, а нпс на ней не постоянно присутствуют, а появляются по игровому времени либо в зависимости от квеста, соответственно для каждой игровой ситуации в зависимости от игрового времени и квестов отрисовывать ещё и новую таблицу для каждой локации?
ну извини, ты не говорил, что у тебя должны рисоваться неписи поверх карты, ты сказал цитирую “как этот текст заменить картинкой, которую нужно ещё и расположить на экране в нужном месте, что-то типа интерактивной карты”. Интерактивную карту можно сделать через MAP/AREA или в виде таблицы. Если тебе нужно картинки одну поверх другой ставить - безусловно удобно дивами. Но навигатор позволяет сделать так: разрезать карту на кусочки (тайлы) и выводить тайлы как бэкграунд ячеек таблицы (150 кусков?). И уже простым <img> размещать иконку неписи в нужной ячейке таблицы. Плюсы таблицы - не требуется позиционирование, можно заставить таблицу растягиваться и сжиматься в ширину экрана, что избавляет нас от багов с разным разрешением экрана. Например, в твоём случае неписи могут оказаться за пределами страницы. С таблицей такого не будет, если она вписана в ширину.
lamerUA:
if $Девушка=10 and $Фамилия=10
не знаю, что ты имеешь ввиду тут под массивом, но условие не работает, потому что $Девушка - это текстовая переменная, а ты проверяешь, присутствует ли в ней числовое значение. Вряд ли оно там присутствует. То же и с $Фамилия.
Помещай код вот в такой блок
!код
. Кнопка
, если не трудно.
P.S.: Код в приложенном файле исправь так:
Spoiler
'Навстречу идет девушка'
! получаем имя девушки - случайный элемент из массива $Девушка
$Имя_Девушки = $Девушка[rand(0,10)]
! получаем фамилию девушки - случайный элемент из массива $Фамилия
$Фамилия_Девушки = $Фамилия[rand(0,10)]
! выводим имя и фамилию девушки
$Имя_Девушки+" "+$Фамилия_Девушки
if а=0:
act 'Идти дальше':
*clr
gs '2'
end
end
if $Имя_Девушки='Сара' and $Фамилия_Девушки='Роджерс':
! and $Фамилия[10]='Роджерс':
а=1
end
if а=1:
msg 'ВАУ! Сара? Роджерс? Мы же с тобой с 8 класса не виделись!'
gt 'паб'
end
end
Разница видна, надеюсь?
Спасибо с условием разобрался.
а вот еще вопрос, в описании я хочу сделать ссылку, так чтоб при нажатии на слово открывалась картинка.
Вот так не работает, видимо из за того что скобки ” не правильно просчитываются. Как исправить?
‘<a href=“exec:msg ‘‘<center><img src=“pic…”></center>’’”>Дом</a>’
Aleks Versus:
Плюсы таблицы - не требуется позиционирование, можно заставить таблицу растягиваться и сжиматься в ширину экрана, что избавляет нас от багов с разным разрешением экрана. Например, в твоём случае неписи могут оказаться за пределами страницы.
вероятно автор, на основе работ которого я учусь, сумел обойти эти баги, в случае изменения разрешения экрана в минимум игра всё равно раскрывается в пропорциях и так же в пропорциях раскрывается позиционирование для
/*Global ============================================*/
html, body {
font-family:lazurskiexpodc-bolditalic;
/*font-family:jakobExtraCTT_Regular;*/
color: #000;
}
html {
height: 100%;
overflow-y: auto;
overflow-x: auto;
background: url('../../../pic/interface/bg.jpg');
background-size:cover;
}
body {
position:relative;
min-width: 1280px;
max-width: 1280px;
min-height: 720px;
max-height: 720px;
margin: 0px auto;
background-color: transparent;
/* background-color: rgba(199, 23, 23, 0.82); */
overflow: hidden;
}
.pass-line{margin-bottom:1em;}
/* grid system */
#qsp-main > div, #right-column > div{
float: left;
}
#qsp-main::after, #right-column::after{
content: ' ';
clear: both;
}
#left-column{
position: relative;
left: 0px;
top: 0px;
z-index: 2;
width: 186px;
height: 720px;
}
#right-column{
position: relative;
left: 5px;
top: 0px;
z-index: 2;
width: 1094px;
height: 720px;
}
/* bac images */
#qsp-back-image{
position: absolute;
top:0;
left:0;
min-width: 1280px;
max-width: 1280px;
min-height: 720px;
max-height: 720px;
z-index: 0;
}
/* controls link*/
.control{
overflow: hidden;
}
.control > a{
display: block;
width: 100%;
height: 100%;
}
/* main content blur */
#dialog-overlay.blur{
-webkit-filter: blur(5px);
}
.red{
color:red;
}
.green{
color:green;
}
.bold{
font-weight: 600;
}
/* End Global =======================================*/
определенных в px картинок, никакие из них не меняют расположения
Bup0H,
помещай код в блоки
!код
кнопка
Очень неудобно воспринимать из текста. Особенно кавычки.
Сделай так. Помести изображение с центровкой в текстовую переменную:
$picture = "<center><img src='pic...'></center>"
Потом выводи ссылку с msg:
'<a href="exec:msg $picture">Дом</a>'
Так же можно выводить изображение оператором view:
'<a href="exec:view ''pic...'' ">Дом</a>'
Aaaspavel:
вероятно автор, на основе работ которого я учусь, сумел обойти эти баги
замечательно.
Aleks Versus:
а ты проверяешь, присутствует ли в ней числовое значение
это уже итог мучений) я понимаю что текстовые переменные маст би.
Вопрос наверно не совсем свой корректно сформулировал - ты указал условие через промежуточную текстовую переменную.
а нельзя сделать непосредственно условие с переменными массива?
Spoiler
if а=0:
act ‘Идти дальше’:
*clr
gs ’2’
end
end
!if $имя_д=‘Сара’ and $Фамилия_д=‘Роджерс’: твое работающее условие
if $девушка=‘Сара’ and $Фамилия=‘Роджерс’: мое изначальное неработающее
а=1
end
if а=1:
msg ‘ВАУ! Сара? Роджерс? Мы же с тобой с 8 класса не виделись!’
gt ‘паб’
end
end
Вроде бы в примерах где-то видел что можно и так - чтобы не плодить тонны данных (массивы же для того и нужны в конце концов))
Я думал что при совпадении с переменными массива условие будет верным без посредников. Тут и переменная “а” числовая по сути не нужна для работы условия наверно - оно итак должно сработать.
UPD:
Кстати работает:
Spoiler
if $имя_д=‘Сара’ and $Фамилия_д=‘Роджерс’:
msg ‘ВАУ! Сара? Роджерс? Мы же с тобой с 8 класса не виделись!’
gt ‘паб’
else
act ‘Идти дальше’:
*clr
gs ’2’
end
end
Теперь бы избавиться от лишних текстовых) и красиво/компактно.
lamerUA,
у меня есть статейка о переменных и массивах на QSP. Может быть она что разъяснит.
В двух словах:
Когда ты пишешь:
$девушка='Сара'
это аналогично проверке нулевого элемента массива:
$девушка[0]='Сара'
Если ты хочешь проверить, совпадает ли выбранное значение со значением в определённой ячейке, тогда так:
! сравниваем совпадает ли выбранное значение со значением в десятой ячейке
if $имя_д=$девушка[10]:
Если ты хочешь проверить присутствие значения в массиве, есть команда arrpos.
Aleks Versus, вопрос такой, слу, а вот смотри, курсор при наведении на действие меняется с стрелки на действие в qsp, а где и что нужно прописать, что при выполнении наведении курсора на определённые области курсор менялся на другие значки, к примеру с с разрешением (.ani)?
Aaaspavel,
Это через css делается. Вот тут очень подробно и понятно написано с примерами:
http://htmlbook.ru/css/cursor
Aleks Versus:
Re: Как сделать?
Aaaspavel,
Это через css делается. Вот тут очень подробно и понятно написано с примерами:
http://htmlbook.ru/css/cursor
большое спасибо, с удовольствием прочитал статью, но мне интересно не как это делается вообще - а как это сделать в qsp при наведении курсора в нужном месте
Aaaspavel,
ты ведь делаешь в Навигаторе? Работаешь с css, значит. Значит есть два варианта.
1. Прописать класс в CSS:
.intCur {cursor: url(путь к файлу курсора/cursor.ani);}
/*это для примера. Не могу сказать, будет ли работать. Надо экспериментировать.*/
Потом этот класс использовать в нужном месте в игре:
"<p class='intCur'>Текст, при наведении на который курсор будет меняться на твой</p>"
Файл курсора должен лежать на одном уровне или ниже файла с css!!! Соответственно указывается путь.
2. Прописать в style. Это позволит поэкспериментировать прежде, чем создавать класс в css:
"<p style='cursor:url(путь к файлу курсора/cursor.ani);'>Текст, при наведении на который курсор будет меняться на твой</p>"
Файл курсора должен лежать на одном уровне или ниже файла с игрой!!! соответственно указывается путь.
Ребят вот вопрос. В мануале написано маловато. А я полный профан пока в этом. Цель такая. Скажем есть стандартный диалог, как привязать его к персонажам, через arg.
К примеру вот код одной игры:
Spoiler
if $args[0] = $Заяц:
if $args[1] = ’Лес:
‘<center><img src=“pic…Заяц в лесу” ></center>’
Выводится картинка зайца в лесу, и варианты. Где задаются эти аргументы и нумерации локации не совсем понимаю? Надеюсь меня поняли. К примеру переходя к тому же диалогу, но уже с медведем на поле он соответсвенно выводил нужную картинку.
Bup0H,
args - это локальные переменные. Они работают только на определённой локации и только во время так сказать сессии на этой локации. Так же они используются для получения каких-то данных во время обращения к локации. Например:
goto 'Лес','Заяц',23
, при выполнении этой команды будет осуществлён переход на локацию “Лес”, при этом переменной $args[0] на локации “Лес” присвоится значение Заяц, а переменной args[1] - значение 23.
Если ты делаешь по этому примеру, можешь видеть, что переключение между ветками там задаётся как раз таки значением, которое получает args[0] при обращении к локации:
gs 'Диалог_А',1
....
if args[0]=1:
act 'Как реализован твой диалог?':
'<font color=blue>(Вы) — <<$selact>></font>'
cla
wait 500
........
Спасибо за подсказки становится интересно, правда времени много не могу потратить на эксперименты.
Spoiler
gs ‘stat’
if $args[0] = ‘Медведь’:
if $args[1] = ‘Лес’:
if ‘переменная’ => 0 and ‘переменная’ <100:
‘<center><img src=“pic1.jpg” ></center>’
end
if ‘переменная’ => 100 and ‘переменная’ <200:
‘<center><img src=“pic2.jpg” ></center>’
end
end
end
Почему то если после 3 строки вставляю условие картинка не выводится. Что не так я делаю?
Bup0H:
Почему то если после 3 строки вставляю условие картинка не выводится. Что не так я делаю?
так у тебя переменная равна нулю, поэтому картинка и не выводится, чтобы переменная имела значение надо же его откуда то высчитывать, к примеру
gs 'stat'
if $args[0] = 'Медведь':
if $args[1] = 'Лес':
'переменная'=rand(1,200)
if 'переменная' => 0 and 'переменная' <100:
'<center><img src="pic1.jpg" ></center>'
end
if 'переменная' => 100 and 'переменная' <200:
'<center><img src="pic2.jpg" ></center>'
end
end
end