Как сделать?
…
Oliver, спасибо, Такой вариант я знаю, но неужели нет более изящного способа, чем добавлять руками все свойства? Предметов может и немного, а вот свойств не два… ну, может, кто-то ещё сталкивался и подскажет.
Вета,
ты наверное опечаталась. В инвентарь нож должен прописываться так:
$inv[0] = '$knife'
Тогда вывод:
dynamic "<<$inv[0]>>['name']"
dynamic "<<$inv[0]>>['desc']"
P.S.: а я всем рекламирую систему типа:
Spoiler
Aleks Versus, ты мой герой! =) Ты меня спас, спасибо тебе огромное )
Aleks Versus:
Вета,
ты наверное опечаталась. В инвентарь нож должен прописываться так:$inv[0] = '$knife'Тогда вывод:
dynamic "<<$inv[0]>>['name']" dynamic "<<$inv[0]>>['desc']"P.S.: а я всем рекламирую систему типа:
Spoiler
Собственно нужно как-то уменьшить кол-во кода на локации “Улица”
Какие ваши советы?
Кусок кода:
IF Что>0:
IF INSTR($МАМА['GEO'], 'Лока') AND INSTR($ПАПА['GEO'], 'Лока') AND INSTR($СЕСТРА['GEO'], 'Лока') AND INSTR($БРАТ['GEO'], 'Лока'):
GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>', $ico['мама'], $ico['папа'], $ico['сестра'], $ico['брат']
ELSEIF INSTR($МАМА['GEO'], 'Лока') AND INSTR($ПАПА['GEO'], 'Лока') AND INSTR($СЕСТРА['GEO'], 'Лока'):
GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>', $ico['мама'], $ico['папа'], $ico['сестра']
ELSEIF INSTR($МАМА['GEO'], 'Лока') AND INSTR($ПАПА['GEO'], 'Лока') AND INSTR($БРАТ['GEO'], 'Лока'):
GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>', $ico['мама'], $ico['папа'], $ico['брат']
ELSE
MSG('Ну всё, приехали')
GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом (неоплачено)</font>'
END
Прилагаю игру > igra.qsp
jeesson,
NUMBER=0
IF INSTR($МАМА['GEO'], 'Лока'): NUMBER+=1
if INSTR($ПАПА['GEO'], 'Лока'): NUMBER+=2
if INSTR($СЕСТРА['GEO'], 'Лока'): NUMBER+=4
if INSTR($БРАТ['GEO'], 'Лока'): NUMBER+=8
! сумма будет отличаться в зависимости от сочетания условий
if что>0:
! повторяющиеся части вносим в виде текста в переменную
$code={GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>'}
IF NUMBER=15:
dynamic $code+{, $ico['мама'], $ico['папа'], $ico['сестра'], $ico['брат']}
ELSEIF NUMBER=7:
dynamic $code+{, $ico['мама'], $ico['папа'], $ico['сестра']}
ELSEIF NUMBER=11:
dynamic $code+{, $ico['мама'], $ico['папа'], $ico['брат']}
! наверное здесь пропущен END
ELSE
MSG('Ну всё, приехали')
GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом (неоплачено)</font>'
END
act “выйти”:
time +=5
gs ‘calendar’
gt ‘Привокзальная площадь’
end
if деньги >=1500:
act ‘Поесть’:
деньги=деньги -1500
сытость +=100
*pl ‘Было не очень вкусно, но дешево’
gt $CURLOC
elseif деньги <1500:
*pl ‘У меня не достаточно денег’
end
end
при на жатии на поесть пропадает это действие, и не выводится ‘Было не очень вкусно, но дешево’
c кнопкой разобрался. как вывести этот текст на экран
Оптимизирую твой код:
if деньги >=1500:
act ‘Поесть’:
деньги -= 1500
сытость += 100
pl ‘Было не очень вкусно, но дешево’
gt $curloc
else
pl ‘У меня не достаточно денег’
end
end
Проблема в том, что надпись выводится на главное окно описания, но сразу же после этого из-за “gt $CURLOC” локация обновляется, и текст исчезает. Решение: напиши где-нибудь в начале игры строку “showstat 1”. Тогда появится окно дополнительного описания, в котором эти надписи будут появляться, и никуда не исчезнут кроме как по твоему прямому приказу. И в таком случае не ставь звезду перед “pl”.
Кстати, задавай вопросы не в новой теме, а в теме “Как сделать?”.
Логическая ошибка. Акт появляется, если денег достаточно, при этом проверка на их недостаточность стоит внутри этого акта.
Структура:
если
акт
иначе
конец акта - ошибка, акт заканчивается после “иначе”, следовательно не видим в блоке акта сверху
конец если
только не смейтесь, хотя можете и смеяться. но как сделать начальные статы для гг и что бы они при каких-то действиях повышались. в этом вопросе вообще ничего не понимаю.
В первой локации напиши переменные. К примеру:
сила=5
восприятие=7
выносливость=2
харизма=6
интеллект=5
ловкость=8
удача=3
и так далее.
Характеристики указывать можешь любые. А дальше можешь просто менять переменные. Всё
Ничего смешного в незнании нет. Все с чего-то начинали. Однако вопрос действительно невероятно легкий, и ставит под вопрос твое желание искать информацию и обучаться.
Нужно читать документацию, гуглить форум и вскрывать простые вскрываемые игры.
Может помогут вот эти сообщения:
https://qsp.org/forum/comments/4977
https://qsp.org/forum/comments/5677
Всем доброго времени суток! Новичок. Мало что знаю, но быстро учусь.
1)Как сделать так, чтобы фон был на всю страницу равномерно? А то как бы не делал его, все равно или снизу или сверху картинка фона не влезает. Вставляю картинку с параметром USEHTML=1
2)Ситуация: хочу сделать бой с несколькими персонажами в одной локации. Как сделать так, чтобы картинки после убийства персонажа одного менялись на другого персонажа с новыми жизнями, да и не только картинки, но и в целом параметры?
3)как добавлять фоновую музыку для отдельных локаций(чтобы в момент нахождения на ней она играла, а как только человек уходит оттуда, пропадала)?
4)Как делать картинки для предметов в инвентаре?
ejikplains,
1)usehtml=1 включает обработку html
Если вставляешь фон с помощью $backimage, то тут ничего не поделать. В классическом плеере картинка вписывается в размер окна.
2) Множество решений у этого вопроса. Но тут придётся тебе поискать самому. В двух словах не расскажешь.
3) Тоже есть несколько решений. Можно завести локацию-обработчик перехода на новую локацию. В самой первой локации пишешь:
$onnewloc='onNewLoc'
потом создаёшь локацию onNewLoc и на ней делаешь что-то типа:
close all
if $curloc='улица':
play 'street_theme.mp3'
elseif $curloc='дом':
play 'street_theme.mp3'
end
4) В инвентаре можно картинки ставить двумя способами:
addobj 'Книга','book.png'
или
addobj '<img src="book.png"> Книга'
В последнем случае название предмета это вся строка <img src=“book.png”> Книга.
ejikplains,
текстовые и числовые переменные отличаются тем, что перед текстовыми ставится знак доллара “$”.
число = 12345
$текст = 'строка'
А вообще приведи свой код, подскажем что исправить.