RU 📌 Pinned

Как сделать?

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

Последний из Гаяр,

$perem[1] = ‘Privet’ - это строковая
perem[1] = 321 - это числовая.

а теперь про индексы
$perem[’дарова’] = ‘дарова’
perem[’odindvatri’] = 123

Тоесть числовые просто [i]где i любое число.
В индекс можно так переменную вставлять и она будет как число или же [$i] это уже строковый индекс тоесть $i = ‘stroka’ то бишь это текст.

Ну и под конец $i и i это разные переменные.

Ну и просто как пример мой недо инвентарь

Spoiler
clr
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Оружие/Weapons
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if weapon['dubinka'] > 0:
	if $args[0] <> 'prov': nl 'У вас есть дубинка'
	$weapon['dubinka'] = 'Дубинка'
end
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Зелья/Potions
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if potion['HitPoint'] > 0:
	if $args[0] <> 'prov': 
		nl 'У вас зелье здоровья -- ' + potion['HitPoint'] + ' ' + '<a href="exec: 
		potion[''HitPoint''] -= 1
		HP += 100
		if Hp > HpMax: HP = HpMax
		gs ''Инвентарь''">Выпить</a>'
	end
	
	prov['veschi'] = 1
end

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Шлемы/Helmets
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if helmet['leather'] > 0:
	$helmet['leather'] = 'Кожаный шлем'
	if $args[0] <> 'prov': nl 'У вас есть <<$helmet[''leather'']>>'
end

if helmet['iron'] > 0:
	$helmet['iron'] = 'Железный шлем'
	if $args[0] <> 'prov': nl 'У вас есть <<$helmet[''iron'']>>'
end

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Броня/Armors
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if armor['leather'] > 0:
	$armor['leather'] = 'Кожаная Броня'
	if $args[0] <> 'prov': nl 'У вас есть <<$armor[''leather'']>>'
end

if armor['iron'] > 0:
	$armor['iron'] = 'Железная Броня'
	if $args[0] <> 'prov': nl 'У вас есть <<$armor[''iron'']>>'
end

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Штаны/Pants
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Ботинки/Boots
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Другое/Other
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if other['HLAM'] = 1: if $args[0] <> 'prov': nl 'У вас есть рюкзак с книжками, тетрадями, ручками и тд.'

if other['kradRu4ka'] = 1: 
	if $args[0] <> 'prov': nl 'А вот ручка которую вы украли.'
	$other['kradRu4ka'] = 'Ручка'
end
Последний из Гаяр Moderator 04.04.2018 07:44 (7 years ago)

oleksandrigo,
Кавычек со скобками точно не надо?

Последний из Гаяр,
неа. Они скорее мешают. Зачем писать, то что не нужно?

Последний из Гаяр Moderator 04.04.2018 07:48 (7 years ago)

oleksandrigo,
Ещё вопрос:
Я могу задать только текстовый индекс для массива с индексом из двух чисел формата :

массив[числовая_переменная0_числовая_переменная1]

?

Edited at 04.04.2018 07:49 (7 years ago)

Последний из Гаяр,
Честно это очень странный способ. Но здесь будет строка. Ну или же (числовая_переменная0_числовая_переменная1) это вообще станет одной переменной. Совершенно другой
massuv[’1_2’] = …
только с кавычками оно будет хоть как-то работать. Но итог, что индекс станет строковым. Можно поизвращаться немного и сделать как ты раньше.
massuv[’<<perem1>>_<<perem2>>’] =..
вот что-то что в теории может работать.

Последний из Гаяр Moderator 04.04.2018 07:59 (7 years ago)

oleksandrigo,
Не знаю. Мне необходимо земельные участки поделить на фрагменты, формата [номер участка_номер фрагмента]. Как по другому это сделать я не вижу(

Последний из Гаяр,

massuv['<<№фрагмента>>_<<№участка>>']

просто индекс станет строковым здесь, но только индекс. Оно тебе не помешает. Менять твои №фрагмента на строковое значение(на $№фрагмента) не нужно.
Чтобы вывести какое-то определенное то

massuv['1_2']

будет показывать значение это переменной.
ps если без подвыражений (<<>>) то можно еще так

massuv[№фрагмента + '_' + №участка] =...

выводится так же

Доброго дня. Недавно начал изучать QSP начиная с классического плеера. Сейчас пересел на Quest Navigator из-за большего количества возможностей оформления и др. С языками программирования ранее не был знаком, с Css и Html тоже, но если в них я более-менее сносно разобрался, то с JavaScript всё плохо. Вопрос такой - можно ли подключить к игре библиотеку jQuery и как правильно использовать JavaScript для отображения в плеере? Что писать и куда? Пока что сообразил только, что подключение jQuery происходит через эту строчку, а дальше всё…

<script type="text/javascript" src="../standalone_content/skins/jquery-1.12.4.min.js"></script>

Как вызвать эту библиотеку, как использовать и как прописывать скрипт? Перерыл кучу информации, но так и не нашел ответа… Хочу сделать анимацию плавного раскрытия блока, однако получилось реализовать только появление блока по щелчку, а плавная анимация не получается…

Вопрос: как задать дефолтные настройки размера(размеров) экрана(экранов)? Тоесть чтобы при запуске игры у игрока уже были настройки выставленные мной.

нифига се, а так можно было???????
(простите за оффтоп, не сдержался)

Возможно, вопрос прозвучит максимально глупо, но…
Есть ли в QSP команда, которая отвечает за возврат на предыдущую локацию? Пример:
Есть локация, в которую можно перейти с нескольких других локаций. И нужно, чтобы каждый раз при нажатии на кнопку “возврат” возвращало не в определенную локацию, а на предыдущую.

Aleks Versus Moderator 12.04.2018 17:31 (7 years ago)

Amadeus,
определённой команды нет. Но делается это весьма просто.
На самой первой локации в игре задаём локацию-обработчик события посещение новой локации:

$onnewloc = "onNewLoc"

Затем создаём локацию с именем onNewLoc и на ней пишем:

! эта строка прописывает в переменную $back_loc имя предыдущей посещённой локации:
$back_loc=$current_loc
! эта строка прописывает в переменную $current_loc имя текущей локации:
$current_loc=$curloc
! теперь воссоздаём возврат в виде действия, например:
act "Вернуться":
     goto $back_loc
end

Если нужно действие, которое может провести по цепочке локаций в обратную сторону, сделать это можно, написав на локации onNewLoc следующий код:

Spoiler
if $back[]<>$curloc and back_act=0:
! если в последнем элементе массива нет названия текущей локации
! а так же если мы совершаем переход не по действию возврата
	!записываем в последний элемент массива название текущей локации
	$back[]=$curloc
end
! обнуляем переменную back_act, чтобы разрешить запись в массив $back, если мы захотим перейти на новую локацию
back_act=0
! создаём действие возврата
! только если есть куда возвращаться
if arrsize('$back')>1:
	act "шаг назад":
		! выставляем переменной-маркеру back_act значение 1,
		! чтобы запретить запись в массив $back при возврате на предыдущую локацию
		back_act=1
		! непосредственно переход
		! записываем во временную переменную название предыдущей посещённой локации
		$args[0]=$back[arrsize('$back')-2]
		! удаляем из массива текущую локацию
		killvar '$back',arrsize('$back')-1
		! переходим
		goto $args[0]
	end
end

рабочий пример #лог_посещений#

А как сделать так, чтобы действие “Вернуться” появлялось не во всех локаций? А то при вводе этой команды она появляется во всех, что не удовлетворяет результату

Aleks Versus Moderator 12.04.2018 17:56 (7 years ago)

Amadeus,
задай условием:

if $curloc='локация_такая-то':
   act "вернуться":
      ...

Log in or Register to post comments.