RU 📌 Pinned

Как сделать?

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

Ну у меня суть такова: игрок кликает на предмет в инвентаре. Он попадает на “локацию” этого предмета с кучей свистелок и перделок(описание, картинка, etc), потом кликает “Назад” и попадает обратно на ту локацию, на которой и был. НО если игрок захочет несколько предметов подряд “прощёлкать”, тогда как? Ну, допустим, предмет “Отвёртка”. Кликаем и попадаем(это я относительно понял, как сделать), далее кликаю на “Фомка” и попадаю на страницу этой самоый фомки. И т.д. Но вдруг на 4-5 предмете мне захотелось вернуться на ту локацию, на которой я и вызвал первый предмет(эту отвёртку), тогда как осуществить быстрый переход на несколько локаций назад?

RaymanM,
при первом нажатии на предмет устанавливай переменную-флажок, при этом сохраняй название локации, в которой находишься. Таким образом, “сохранение” локации сработает ровно один раз - при нажатии на первый из предметов.

Очищать флажок следует перед переходом “назад”.

Пример кода для локации-обработчика нажатия на предмет(переменная $ONOBJSEL):

IF инвентарь_открыт = 0:
	инвентарь_открыт = 1
	$prevloc = $CURLOC
END

*CLR & CLA

IF $SELOBJ = 'куртка':
	'Кожаная куртка.'
ELSEIF $SELOBJ = 'ручка':
	'Шариковая ручка.'
ELSEIF $SELOBJ = 'топор':
	'Старый топор.'
END

ACT 'Назад':
	инвентарь_открыт = 0
	GOTO $prevloc
END

У, замутно. Спасибо, попробую разобраться.
Глупый, быть может, вопрос: что за CLA?

CLA - очистка списка действий. Если ты еще не скачал справку, обязательно скачай. Там все операторы есть.

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

Dark[Ol(U23)leneri] #34 23.09.2010 07:20 (15 years ago)

CLA убирает все акты?)))))
Некс спасибо хД

Динамически генерирую действия:

i=1
:lop
if i<=20:
	act "Уровень <<i>>(<<i*5>> очков)":		
		Очки=Очки+Харизма*5
		Очки=Очки-i*5
		Харизма=i		
		goto "Харизма"
	end
	i=i+1
	jump "lop"
end

Так вот у меня при выборе любого действия значение Харизмы всегда равно 21, то есть тому, чему равняется i в данный момент. Как сделать чтобы Харизма равнялась номеру уровня?

Спасибо, заработало!

Подскажите пожалуйста, какой лимит объема движка QSP? По моим прикидкам мне для написания игры понадобится очень большое количество локаций, хотелось бы правильно расчитать, что бы потом с ума не сходить. Какие ограничения нагрузки на локации, служебные локации и саму игру? Есть ли возможность создавать две и более части игры, будет ли взаимное их подключение? Спасибо большое!

Doroha,
теоретически ограничений нет. В играх которые я знаю, около 1000 локаций спокойно без напряга работают.
Движок отлично оптимизирован, поэтому нагрузку должен выдерживать очень приличную.

Но чаще всего вопрос нагрузки и количества локаций решается умелым программированием :) Например, вместо десяти мест с повторяющимся кодом, написать одну служебную локацию, которую вызывать в нужных местах.

Возможность создавать игру в нескольких частях - есть.

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

Люди, кто-нить может объяснить почему у меня не получается сделать заклинание:
if заклинание1 > 0: act ‘Запустить в него огненный шар’:
‘Вы нанесли врагу урон: 50.’
здоровье_врага = здоровье_врага - 50
if здоровье_врага <= 0:
‘Вы победили <<$имя_врага>>.’
act ‘Далее’: опыт = опыт + 10 & gt ‘<<$loc>>’
exit
end
Если что-то не правильно - напишите правильно.
Заранее спасибо :D

Dark[Ol(U23)leneri] #34 25.10.2010 09:49 (15 years ago)

end не хватает))))

kraev aleks,
ты в первой же строке написал однострочный IF вместо многострочного.
см. Грабля 1. Однострочный и многострочный оператор

Dark[Ol(U23)leneri] #34 26.10.2010 21:43 (15 years ago)

я сонный, поэтому спрашиваю здесь) Приду - осознаю)

вопрос такой, как правильно написать условие кратности?
Если переменная “х” делится на число “а” нацело:

мне именно этот кусок нужен)

Log in or Register to post comments.