RU 📌 Pinned

Как сделать?

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

cls
$metka = $ARGS[0]   
$loc = $CURLOC
gs'gs_inv_show'
$music_theme = 'mute'
$select_loc = ''

'<div id="right-column">'
	'<div id ="main-show"><img src="pic/place/home/backyard_<<$times_of_day>>.jpg"></div>'
		
	'<div id ="text-show">'
		'<p>Лодка находится на левом берегу. Кого из Богов вы посадите в нее? Осталось времени <<$Boat_Время>> часов.</p>'
	'</div>'

	'<div id="acts-buttons">'
		if arrpos('$items','<img src="pic/items/beer.jpg">') = -1:
			if arrsize('$items') < 2:
				'<a href="exec:gs''gs_time_loc_home'' & $items_type = ''beer'' & gs''gs_buy_items'' & gt ''backyard''">Пиво</a></p>'
				end
			end
		end
		if arrpos('$items','<img src="pic/items/vodka.jpg">') = -1:
			if arrsize('$items') < 2:
				'<a href="exec:gs''gs_time_loc_home'' & $items_type = ''vodka'' & gs''gs_buy_items'' & gt ''backyard''">Водка</a></p>'
				end
			end
		end
		if arrpos('$items','<img src="pic/items/dildo.jpg">') = -1:
			if arrsize('$items') < 2:
				'<a href="exec:gs''gs_time_loc_home'' & $items_type = ''dildo'' & gs''gs_buy_items'' & gt ''backyard''">Дильдо</a></p>'
				end
			end
		end
		if arrpos('$items','<img src="pic/items/maslo.jpg">') = -1:
			if arrsize('$items') < 2:
				'<a href="exec:gs''gs_time_loc_home'' & $items_type = ''maslo'' & gs''gs_buy_items'' & gt ''backyard''">Масло</a></p>'
				end
			end
		end
		if arrsize('$items') > 1:
			$Boat_Время -= max (items_type_beer, items_type_vodka, items_type_dildo, items_type_maslo)
			'<a href="exec:gs''gs_time_loc_home'' & gt ''backyard'',''backyard_boat''">Сесть в лодку</a>'
			end
		end
	'</div>'	
'</div>'

if $args[0] = 'backyard_boat':
	cls
	gs'gs_inv_show_block'
	gs'gs_gg_param_riser'
	$music_theme = 'backyard_boat'
	
	'<div id="right-column">'
		'<div id ="main-show"><video preload="metadata" autoplay loop height="500"><source src="pic/unique_npc/sister/sunbathe_<<rand(1,3)>>.webm" type=''video/webm;''></video></div>'
		
		'<div id ="text-show">'
			'Послал как-то раз Старший Бог Зю своих четырёх сынов на поиски счастья. </p>
			Долго искали его сыновья счастье за дальними морями и, наконец, нашли его. </p>
			Отправились они в обратный путь, но вечером злой демон Од устроил землетрясение, и широкий пролив отделил братьев от острова их отца, Старшего Бога Зю. </p>
			У братьев была лишь одна лодка. </p>
			Быстрый Вау мог переправиться через пролив за 1 час, и лишь на один час больше требовалось для этого ловкому Аху. </p>
			Толстый Бах мог преодолеть пролив лишь за 5 часов, а неуклюжий Гэ и вовсе за 10 часов. </p>
			Лодка вмешала двух братьев одновременно, но её скорость при этом была такая же, как у наиболее медленного из пассажиров. </p> 
			Долго переправляли братья лодку через пролив туда-сюда, но так и не смогли переправиться до наступления утра. </p>
			Разгневался, увидев это, Старший Бог Зю и сказал: "Будете вы отныне переправляться через пролив каждую ночь, пока не переправитесь до наступления утра! </p>
			" С тех пор они так и не могут преодолеть этот пролив. </p>
			Когда же они сумеют сделать это, на всей планете наступит великое счастье...</p>
			Некоторое время вы переваривали легенду. </p>'
		'</div>'
		
		'<div id="acts-buttons">
			<a href="exec:gt ''kitchen''">Поплыли!!!...</a>
		</div>'
	'</div>'
end

как сделать чтобы команда вычитание из max срабатывала один раз?
При повторном заходе на локацию, скрипт выполнялся частично (после определенных действий)?
способ через ARGS(0)

Alex80629,
это называется “действие по условию”.

Все, что должно выполниться на локации только один раз, обрамляется в соответствующее условие:

IF был_здесь=0: 
    был_здесь=1 
    ... операторы ... 
END

if arrsize(’$items’) > 1:
$Boat_Время -= max (items_type_beer, items_type_vodka, items_type_dildo, items_type_maslo)
‘<a href=“exec:gs’’gs_time_loc_home’’ & gt ‘‘backyard’’,’’backyard_boat’’”>Сесть в лодку</a>’

Почему это выражение срабатывает дважды!
При переходе на следующую страницу Из времени вычитается дважды.

if $args[0] = ‘backyard_boat’:
(IF был_здесь=0:
был_здесь=1
… операторы …
END)
можно сделать через ARGS(0)?

Пиво, водка, дилдо, масло? XD

Вы можете сделать так:

IF ($args[0] = 'backyard_boat') AND (был_здесь=0):
    был_здесь=1 
    ... операторы ... 
END

Ну и соответственно вычитание времени должно происходить после перехода.

Спасибо

Скорее всего, я что-то путаю и даже догадываюсь что, но точно помню, об ограничении подключаемых файлов в 100, однако, например, в этой игре их несколько тысяч. Получается, о чем здесь шла речь?

mkir,
речь идёт о подключении файлов QSP, то есть с исходным кодом игры. Картинки и музыка без ограничений.

Дописываю игру на Паровозик, и так опоздал уже, но тут столкнулся с проблемой:
К примеру у меня есть такая переменная:
if рубин=1 and алмаз=1 and жемчуг=1:
pl’Ты собрал все сокровища!’

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

Нет, нет, в ифе от последовательности проверки переменны ничего не зависит. Смотри в другой части когда, если не выводится.

Возможно, есть опечатка в коде, в одном из мест присвоения переменной единицы. Переменная алмаз (рубин, жемчуг), имeю в виду само это имя. У меня такое бывало, прибавляю 1 к “спичик”, а проверяю при помощи if “спички”.

Ajenta,
О_О да? Самовнушение страшная штука…
Спасибо!

прибавляю 1 к “спичик”, а проверяю при помощи if “спички”

С отловом таких багов поможет справиться анализатор кода )
https://qsp.org/forum/281-analizator-koda-qsp

Напомните, какая переменная отвечает за то, чтобы текст основного окна описания не отматывался в конец при переходе на локацию, а показывался с начала, как и положено

RomaDova,
DISABLESCROLL

Log in or Register to post comments.