RU

Инквизиция I, авторы - Евген и AleKon

Евген #278 07.03.2011 17:59 479 comments 165212 views

Зацените и скажите будет ли так хорошо использовать инвентарь? Или лучше пихать картинки в доп описание?
Игра

Edited at 24.05.2011 04:07 (14 years ago)

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

Евген,

IF ISPLAY('Music\Play\'+$music+'.mp3'): EXIT
IF $music <> '': 
  PLAY 'Music\Play\'+$music+'.mp3'
END

Подойдет для любого количества треков.
Проверка $music <> ‘’ означает “переменная $music не пуста”.

А на опр локах просто писать $music = ’1 или там 2’

Евген,
Да.

Спасибо

MasterSet,
Я не знаю… Может функцию “Сбежать” ?

А вот у меня есть такой код

if no obj 'Железный шлем' and no obj 'Железный нагрудник' and no obj 'Железные наплечники' and no obj 'Железные наручи' and no obj 'Железные перчатки' and no obj 'Железные наголенники' and no obj 'Железные поножи' and no obj 'Железные сапоги':
 delact 'Продать железные доспехи'
 end

А никак поэргономичней нельзя?

Через массивы можно. Но надо менять структуру данных.
Функция сбежать не спасет отца русской демократии. Нужен движок другой.

Ну какой? Ты не представляешь как я намучился с боем. Там 40 описаний. Ну какой движок? Приведи пример… ну или помоги.

И да. Я белорус

MasterSet:

Через массивы можно

Нафиг, нафиг… Изыди нечистая массивщина. Для меня это как тёмный лес без проблесков. Я даже не знаю как ими пользоваться.

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

А что касается массивов, то рекомендую освоить. Полезная штука. Концептуально:
Массив, это куча переменных объединенных одним именем и различающихся по номеру. В общем те же переменные, просто с дополнительной возможностью.
А теперь, на пальцах. Специально дам кучу примеров.
Например, с оружием, задаешь массив:

И ставишь это дело отдельно на служебную локацию, где игра его один раз прочитает. А потом в коде можно динамически использовать такие фишки как:
По базе значения всех переменных 0 или пусто, соотвественно меча нет. Если надо дать нашему герою булатный меч, то пишем ему переменную:
металл = 1
И использовать можно как хочешь. Например:
addobj ‘<<$меч[металл]>>’ - тебе даже не надо думать какой там он на самом деле, игра разберется по переменным и таблицам массивов.
Или, пишешь описание:
‘Вы с хрустом обрушили свой <<$меч[металл]>> на голлову врага’
И описание соотвественно будет динамически меняться в зависимости от одной переменной “металл”. Не надо писать четыре описания под разные виды оружия.

Но это-то можно и с обычными переменными устроить. Главный цимес начинается когда мы объединяем кучу массивов.
Например, тебе надо чтобы у меча каждого типа были характеристики: цена, прочность, атака, способность поражать нежить.

Пишем матрицу массивов:

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

А в коде у тебя просто стоит:
металл = 1

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

Еще пример. Как это работает в рандомном генераторе врагов. Берем массивы:

И пишем генерилку:

ВСЁ
А подумай сколько IFов это заняло бы без массивов. Тут же не нужно ни одного.
И если у тебя есть матрица массивов со статами врагов по виду существа и типу местности, одной этой генерилки хватит, чтобы в бою на лету эти статы использовать, без какого-либо переназначения переменных по тексту.

Можно использовать сразу описашку типа:
“Злбный <<$твой_враг>> нанес удар своим <<$оружие_монстра[вид]>> и нанес <<атака_монстра[мест]>> вреда”.
Без заморочек на переназначения переменных.

Научишься работать с переменными, сможешь решать задачи меньшим кодом и при этом лучше структурированным и читаемым.

Спасибо что объяснил. С движком можешь помочь. ТОЛЬКО ЧТОБЫ ТАМ БЫЛИ ПЕРЕМЕННЫЕ, А НЕ МАССИВЫ. Массивы я думаю во второй инквизиции начать использовать. Всё таки надо когда-то начинать :)

Я вообще собираюсь трилогию делать.

Я внезапно нашёл в себе одну фигню… мне нравится инструментальная музыка… И ЭТО ЗДОРОВО.

Log in or Register to post comments.