RU 📌 Pinned

Как сделать?

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

Aleks Versus Moderator 13.05.2016 17:05 (9 years ago)

evp:

но?

:lol: но мне почему-то нравится так. Да и я такое количество ошибок наделал в посте, что два неправильных слова хуже не сделают.

всем привет! работаю сейчас над небольшим проектом в стиле сочетающем постапокалипсис и киберпанк, немного затормозился на времени и деньгах. Согласно плану цифр в игре не будет совсем. их заменят цветовые индикаторы, вот только немного торможу на цифрах чисел, как кодом раскладывать числа на цифры вообще
поясню суть проблемы - не хочется расписывать до 9999 какому числу какое сочетание цветовых индикаторов соответствует, а чтобы само преобразовывалось по принципу если 0=color1, 1=color2, то 10.01 = color,2color1.color1,color2

Как разложить число на разряды

number = 150365782
KILLVAR 'position'
n = 1
:next_deg
if number/(FUNC('exp', 10, n - 1)):
	position[n] = (number - (number/(FUNC('exp', 10, n)))*(FUNC('exp', 10, n)))/FUNC('exp', 10, n - 1)
	*nl n + '-й разряд: ' + position[n] & !Эта строчка нужна только для иллюстрации
	n += 1
	jump 'next_deg'
end

Функция ‘exp’:

if ARGS[1] = 0:
	result = 1
else
	exp_n = 1
	result = ARGS[0]
	:next_exp_n
	if ARGS[1] > exp_n:
		result *= ARGS[0]
		exp_n += 1
		jump 'next_exp_n'
	end
end
Aleks Versus Moderator 14.05.2016 18:06 (9 years ago)

evp,
проще конвертировать в текст, потом вырезать по цифре.

number = 150365782
$number_str = str(number)
KILLVAR 'position' 
n = 1
:next_deg
if n < len($number_str)+1:
	position[n]=val($mid($number_str,len($number_str)+1-n,1))
	*nl n + '-й разряд: ' + position[n] & !Эта строчка нужна только для иллюстрации 
	n+=1
	jump 'next_deg'
end

Знающие люди помогите советом. Как сделать рюкзак? то есть что бы на панели предметов был просто “инвентарь” а уже если заходить в него то там(например в доп окне) показывался весь список предметов.

Aleks Versus Moderator 16.05.2016 09:16 (9 years ago)

Darvin432,
храни названия предметов в массивах. Пример:

! первый уровень
$obj_level1[0]='Персонаж'
$obj_level1[1]='Статы'
$obj_level1[2]='Кошелёк'
$obj_level1[3]='Связка ключей'
$obj_level1[4]='Рюкзак'
! рюкзак
$obj_level2[0]='Отвёртка'
$obj_level2[1]='Гаечный ключ'
$obj_level2[2]='Лом'
$obj_level2[3]='Сушёная голова'

Выводишь первый уровень с помощью цикла и addobj. При выделении предмета ‘Рюкзак’ очищаешь окно инвентаря и добавляешь предмет “Назад” (который должен возвращать на предыдущий уровень (очищать окно инвентаря и выводить с помощью цикла предметы первого уровня)), потом циклом добавляешь предметы рюкзака.

Вот смотрите, я вставил изображение (картинку) в игру. Когда я запуска её на своём компьютере, она показывается хорошо и без проблем. Когда же игра запускается на компьютере другом (при том что изображение находится в папке с игрой и путь я настраивал на своём компьютере) изображение не показывается, вместо картинки какой-то квадрат непонятный… в чём проблема?

Aleks Versus Спасибо. Смысл мне понятен. Однако я нуб и не знаю как сделать так что бы например команда jump активировалась при нажатии на предмет инвентаря. Например при нажатии на “рюкзак”. Буду благодарен если подскажешь

Aleks Versus Moderator 16.05.2016 10:36 (9 years ago)

Darvin432,
набросаю вечером пример.
Weliot,
возможно ты использовал абсолютный путь. Используй относительные пути.

Aleks Versus Спасибо буду ждать

Aleks Versus Moderator 16.05.2016 15:37 (9 years ago)

Darvin432,
простенький пример многоуровневого рюкзака: multibag.qsp
Поищи более развёрнутые примеры. Здесь на форуме они есть. Кнопка поиска находится чуть выше заголовка темы.

Aleks Versus Огромное спасибо что тратишь своё время на такого нуба как я. Очень помогло. Всё расписанно очень доходчево.
Ещё 1 вопрос. А как сделать так что бы при нажатии предметов выводилось доп окно на которое можно было нажать.
Пример

Spoiler

Что бы было что то типо нажал на меч и появилась надпись “Экипировать” на которою можно было бы нажать.

Aleks Versus Moderator 16.05.2016 18:08 (9 years ago)

Darvin432,
это делается с помощью оператора menu: menu.qsp

Aleks Versus Огромное спасибо. Очень помог.

Aleks Versus, пробовал, тот же самый эффект.

Log in or Register to post comments.