RU 📌 Pinned

Как сделать?

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

Oliver, спасибо, Такой вариант я знаю, но неужели нет более изящного способа, чем добавлять руками все свойства? Предметов может и немного, а вот свойств не два… ну, может, кто-то ещё сталкивался и подскажет.

Aleks Versus Moderator 12.04.2019 07:39 (6 years ago)

Вета,
ты наверное опечаталась. В инвентарь нож должен прописываться так:

$inv[0] = '$knife'

Тогда вывод:

dynamic "<<$inv[0]>>['name']"
dynamic "<<$inv[0]>>['desc']"

P.S.: а я всем рекламирую систему типа:

Spoiler

YouTube: O5mnzI7mPV4

Aleks Versus, ты мой герой! =) Ты меня спас, спасибо тебе огромное )

Aleks Versus:

Вета,
ты наверное опечаталась. В инвентарь нож должен прописываться так:

$inv[0] = '$knife'

Тогда вывод:

dynamic "<<$inv[0]>>['name']"
dynamic "<<$inv[0]>>['desc']"

P.S.: а я всем рекламирую систему типа:

Spoiler

YouTube: O5mnzI7mPV4

Собственно нужно как-то уменьшить кол-во кода на локации “Улица”
Какие ваши советы?
Кусок кода:

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

Edited at 10.06.2018 20:40 (7 years ago)
Aleks Versus Moderator 18.05.2019 04:51 (6 years ago)

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 кнопкой разобрался. как вывести этот текст на экран

Edited at 17.12.2018 10:45 (7 years ago)
Григорий Лебедев #2234 18.05.2019 04:54 (6 years ago)

Оптимизирую твой код:

if деньги >=1500:
act ‘Поесть’:
деньги -= 1500
сытость += 100
pl ‘Было не очень вкусно, но дешево’
gt $curloc
else
pl ‘У меня не достаточно денег’
end
end
Проблема в том, что надпись выводится на главное окно описания, но сразу же после этого из-за “gt $CURLOC” локация обновляется, и текст исчезает. Решение: напиши где-нибудь в начале игры строку “showstat 1”. Тогда появится окно дополнительного описания, в котором эти надписи будут появляться, и никуда не исчезнут кроме как по твоему прямому приказу. И в таком случае не ставь звезду перед “pl”.
Кстати, задавай вопросы не в новой теме, а в теме “Как сделать?”.

Логическая ошибка. Акт появляется, если денег достаточно, при этом проверка на их недостаточность стоит внутри этого акта.
Структура:
если
акт
иначе
конец акта - ошибка, акт заканчивается после “иначе”, следовательно не видим в блоке акта сверху
конец если

только не смейтесь, хотя можете и смеяться. но как сделать начальные статы для гг и что бы они при каких-то действиях повышались. в этом вопросе вообще ничего не понимаю.

Последний из Гаяр Moderator 18.05.2019 04:56 (6 years ago)

В первой локации напиши переменные. К примеру:

сила=5
восприятие=7
выносливость=2
харизма=6
интеллект=5
ловкость=8
удача=3
и так далее.

Характеристики указывать можешь любые. А дальше можешь просто менять переменные. Всё

Ничего смешного в незнании нет. Все с чего-то начинали. Однако вопрос действительно невероятно легкий, и ставит под вопрос твое желание искать информацию и обучаться.
Нужно читать документацию, гуглить форум и вскрывать простые вскрываемые игры.

Aleks Versus Moderator 18.05.2019 04:56 (6 years ago)

Может помогут вот эти сообщения:
https://qsp.org/forum/comments/4977
https://qsp.org/forum/comments/5677

Всем доброго времени суток! Новичок. Мало что знаю, но быстро учусь.
1)Как сделать так, чтобы фон был на всю страницу равномерно? А то как бы не делал его, все равно или снизу или сверху картинка фона не влезает. Вставляю картинку с параметром USEHTML=1
2)Ситуация: хочу сделать бой с несколькими персонажами в одной локации. Как сделать так, чтобы картинки после убийства персонажа одного менялись на другого персонажа с новыми жизнями, да и не только картинки, но и в целом параметры?
3)как добавлять фоновую музыку для отдельных локаций(чтобы в момент нахождения на ней она играла, а как только человек уходит оттуда, пропадала)?
4)Как делать картинки для предметов в инвентаре?

Edited at 28.01.2018 16:21 (8 years ago)
Aleks Versus Moderator 18.05.2019 04:58 (6 years ago)

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
$текст = 'строка'

А вообще приведи свой код, подскажем что исправить.

Log in or Register to post comments.