Wake of Gods Forum | Форум Во Имя Богов
Эмулятор РПГ Сцен - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Общие Форумы (/forumdisplay.php?fid=100)
+--- Forum: Разговоры обо всём (/forumdisplay.php?fid=105)
+---- Forum: ФРПГ (/forumdisplay.php?fid=161)
+---- Thread: Эмулятор РПГ Сцен (/showthread.php?tid=2106)


Эмулятор РПГ Сцен - Berserker - 20.07.2010 00:47

Image: original.png

   Переписал на 75% код эмулятора рпг сцен. Что стало лучше:
  • Отрисовка больше не использует таблицы, а значит нет проблем с жирностью линий и нарушением размеров ячеек.
  • Толщина линий между ячейками работает стабильно и может принимать любые значения, вплоть до 1 или 0 (ранее значение всегда умножалось на 2).
  • Блок подсказок намертво привязан к верхней части экрана, что позволяет видеть его даже при прокрутке. Его размер автоматически подстраивается под размер поля.
  • Почвы теперь так же могут быть картинками.
  • Каждая клетка помимо основной информации (координат, названия почвы, данных объекта) может отображать ниже дополнительную подсказку.
  • Объекты теперь не являются неделимыми сущностями. Выделяются классы объектов и конкретные экземпляры. Упрощается создание объектов в связи с тем, что не нужно указывать много параметров.
  • Автоматическое присвоение имён с нумерацией при создании объектов без указания имени.
  • Многие функции теперь позволяют опускать (брать по умолчанию) большинство аргументов.
  • Поддерживается технология работы с ячейками, используя мышку. В частности, это позволит встроить возможности редактора прямо в проигрыватель: ставить и удалять объекты, почвы, двигать объекты, атаковать и т.д.
  • Как и ранее, код пользовательского скрипта выполняется на протой виртуальной машине, реализующей обработку асинхронных функций как синхронных. Это позволяет использовать такие команды как Ждать, Анимация, Пауза.



RE: Подходы к созданию ФРПГ - Efrit - 20.07.2010 14:43

Интересно, почему это в качестве примера всегда берут меня? ))

Берс, а что это вообще такое? Готовый скрипт, позволяющий игроку просмотреть ход битвы - или же просто оболочка, в которую мастер должен прописывать код скрипта? Или что-то третье?


RE: Подходы к созданию ФРПГ - Berserker - 20.07.2010 17:41

Quote:Интересно, почему это в качестве примера всегда берут меня? ))
Маленькая мстя 148

Quote:Берс, а что это вообще такое? Готовый скрипт, позволяющий игроку просмотреть ход битвы - или же просто оболочка, в которую мастер должен прописывать код скрипта? Или что-то третье?
Это разрабатываемый редактор и проигрыватель сцен в одном флаконе. Фактически, проигрыватель исполняет скрипт. А редактор потому, что добавлять код скрипта можно будет при помощи мыши и нижних диалогов. Ты вставляешь в форму код скрипта, жмёшь на кнопку и наблюдаешь за событиями.


RE: Подходы к созданию ФРПГ - Berserker - 22.07.2010 03:29

Image: original.png

Заодно наглядная демонстрация алгоритма работы функции MagicFill - заливки однородных областей.


RE: Эмулятор РПГ Сцен - Berserker - 23.07.2010 20:24

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

Архив необходимо распаковать в пустую папку, после чего запускать ARpgPlayer.html. В архиве также есть два примера скрипта.

Краткий справочник для новичков.
Скрипт делится на строки, каждая из которых обрабатывается отдельно. Команды в рамках одной строки отделяются друг от символом ";". "// текст" - комментарий до конца строки.
В рамках одной строки может быть произвольный яваскрипт, но для простых скриптов он не нужен. Простые скрипты состоят из вызовов команд (функций). Вот эти команды кратко и рассмотрим. Прошу обратить внимание, что если аргументы заключены в {} - то они не обязательные. Если их опустить, будут взяты значения по умолчанию. Иногда часть аргументов нужно передаватьв массиве. Такие аргументы заключаются в [].
Пример: Функция(ОбычныйАргумент, [АргументМассива1, АргументМассива2]).
Строки и любые названия в качестве аргументов функции должны быть заключены в двойные или ординарные кавычки.

// [DESC] Создаёт новое поле боя, очищая старое
function CreateBattlefield (Width, Height, CellW, CellH, BarW, BarH, LineW)
Ширина и высота поля в клетках, ширина и высота клетки в пикселях, ширина и высота полосок (жизни, маны и энергии), толщина линий сетки.

// [DESC] Осуществляет целочисленное деление одного числа на другое
function DIV (Value, By)

// [DESC] Снимает клеточное выделение
function Unselect ()

// [DESC] Выделяет указанную клетку
function Select (X, Y)

// [DESC] Ожидание (1000 = секунда)
function Sleep (Time)

// [DESC] Устанавливает новую особую подсказку для ячейки
function SetCellHint (X, Y, NewHint)

// [DESC] Функция регистрации нового типа почвы
function RegisterTerrain (Name, {Hint, Col, Img})
Кодовое имя почвы, подсказка, цвет, адрес картинки.

// [DESC] Устанавливает новую почву для клетки
function SetCellTerrain (X, Y, Name)

// [DESC] Заполняет указанный прямоугольник поля боя указанной почвой
function FillTerrain (X1, Y1, X2, Y2, Name)
Левый верхний и правый нижний углы прямоугольника, кодовое имя почвы.

// [DESC] Регистрирует новый класс объектов
function RegisterObjClass (Name, Title, {Img, TitleCol, TitleBack, FontSize, MaxHealth, MaxMana, MaxStamina})
Кодовое имя класса, отображаемое имя членов класса по умолчанию, адрес картинки, цвет и фон надписи имени объекта, размер шрифта надписи ('75%', например), максимальные значения для здоровья, маны, энергии или -1 там, где этого поля у объекта нет.

// [DESC] Осуществляет перерисовку ячейки
function RedrawCell (X, Y)
Эта функция нужна только если вы яваскриптом меняете внутренние структуры ячеек, то есть новичкам не нужна.

// [DESC] Создаёт новый объект в указанной клетке
function CreateObject (X, Y, ClassName, {Title, Health, Mana, Stamina})
Координаты, имя класса, отображаемое имя (например, в блоке подсказки), текущие значения параметров жизни, маны и энергии.

// [DESC] Перемещает объект в другую клетку, затираяя её прежнего хозяина
function MoveObject (SrcX, SrcY, DstX, DstY)

// [DESC] Заполняет указанный прямоугольник поля боя объектами
function FillObject (X1, Y1, X2, Y2, [Args])
Args такие же, как и у CreateObject

// [DESC] Заполняет клетку и все премыкающие к ней такого же типа почвы новой почвой
function MagicFillTerrain (X, Y, NewTerr)
Координаты и название почвы, которой нужно заполнить область.

// [DESC] Заполняет клетку и все премыкающие к ней с такого же типа почвой без объектов объектом
function MagicFillObject (X, Y, [Params])
Params - такие же, как и у CreateObject

// [DESC] Отображает особое сообщение в блоке подсказок в течение некоторого промежутка времени
function Msg (Mes, Time)

// [DESC] Отображает особое сообщение в блоке подсказок в течение некоторого промежутка времени от указанного объекта
function Say (X, Y, Mes, Time)

// [DESC] Ждёт, пока экран не будет полностью отрисован
function Wait ()

Продвинутые фичи управления скриптом. ~ИмяМетки объявляет метку. Jmp(LabelName) - переходит к указанной метке. Call(LabelName) - вызывает метку как подпрограмму. Ret() - возврат из подпрограммы.


RE: Эмулятор РПГ Сцен - Berserker - 19.08.2010 23:16

// [DESC] Устанавливает прозрачность для ячейки 0..1
function SetCellOpacity (X, Y, NewOpacity)

// [DESC] Возвращает прозрачность ячейки
function GetCellOpacity (X, Y)

Изменена CreateObject. Теперь вместо Title можно указать массив из короткого и полного имени. Короткое отображается на карте, полное - в подсказке. ['ShortName', 'FullName']


RE: Подходы к созданию ФРПГ - Efrit - 13.04.2011 11:32

В общем, недавно я начал писать вот такую программу. Пишу её для Аредиты - но уверен, что она будет полезна и авторам других ФРПГ. Это некий "редактор битв", позволяющий создавать поля битв и выводить логи раундов. "Выбор действий" и "выдача логов" пока не готовы, а вот "создание полей битв" сделано практически полностью - в чём и можно убедиться.

Как работает программа? Клик и удерживание обычной кнопкой мыши по полю боя активирует "прямоугольник выделения", с помощью которого на поле наносятся ландшафты - примерно как в редакторе карт для Героев. Выбор ландшафта производится по клику обычной кнопкой на одной из верхних картинок - после этого она обведётся чёрным цветом. Однако, вышеописанные операции можно выполнять и правой кнопкой мыши - причём ландшафт будет рисоваться уже другой, то бишь соответствующий правой кнопке. А картинка, по которой кликнули правой кнопкой мыши, выделяется уже белым цветом.

"Шарики" в правой части окна соответствуют уже персонажам битвы, а не её ландшафтам. Они перемещаются на поле битвы точно также, как и объекты в редакторе карт для Героев. Однако, их нужно перетаскивать не кнопками мыши, а её скроллом - то бишь колёсиком. Каждому такому "персонажу" можно задать имя, которое отобразится поверх его "шарика" - для этого нужно сделать двойной щелчок скроллом мыши по нему. В открывшемся окошке можно установить цвет шрифта этого имени.

Со всем остальным, думаю, и так все разберутся. Собственно, зачем я её сейчас выставляю? Я просто узнать, нету ли каких-то пожеланий - которые бы я мог добавить, дабы этой прогой могли пользоваться все. В ближайшие пару месяцев я вряд ли буду разрабатывать Аредиту (и эту прогу тоже), и за это время готов выслушать все идеи. Ну, в общем всё - если кому-то будет интересно, то высказывайтесь Ab


RE: Подходы к созданию ФРПГ - FBX - 13.04.2011 19:52

Скачал, глянул.

1) У меня программа не влезла в экран (высота экрана 800). Хотелось бы подстраиваемый размер окна, вплоть до разрешения 640х480 (при условии сжатого донельзя поля боя).
2) Текущая концепция поля боя - неочень. Хотелось бы бесконечное авторасширяемое поле, прокручиваемое, динамически рисуемое (сейчас там загрузка статической сетки из файла, насколько я понял).
3) Основные кнопки управления (левая и правая мыши) заняты под рисование ландшафта, но во время боя ландшафт редко меняется, а вот перемещать объекты придется часто. Я бы сделал так: каждая кнопка мыши может управлять ландшафтом ИЛИ объектами, как решит пользователь.
4) Насчет использования программы для расчета битв, можно было бы сделать интерфейс взаимодействия этой программы с программой-процессором, примерно следующим образом:
Объекты на карту загружает программа-процессор, типы доступных объектов - тоже. Не знаю как быть с графикой объектов. Также процессор будет обновлять информацию в редакторе в случае изменений. Реализовать взаимосвязь, позволяющую из редактора изменять координаты объектов, вызывать действия, требующие указания координат/цели, копировать объекты.

Это позволило бы использовать один редактор карт для разных процессоров.


RE: Подходы к созданию ФРПГ - nosferatu - 14.04.2011 00:21

1) Солидарен с 1 и 3 пунктом FBX-а
2) Хотелось бы больше обЪектов (добавить всякие домики, стены и т.п.), а также больше ландшафтов (хотя бы добавить пропасть, то бишь просто черный квадрат)
3) Сделать один шарик и дать возможность изменять не только цвет текста на нем, но и самого шарика.
4) Возможность сохранять созданные карты
5) В идеале предлагаю написать универсальную прогу, в которой будет:

1. база основных переменных (собственно основные параметры, которые пользователь пишет сам: уровень, здоровье, сила, ловкость, навыки и т.д.)
2. неизменяемая база простых функций (сложение, вычитание, умножение, синус, косинус, присвоение, вероятность и т.д.)
3. база созданных профилей (пользователь создает профиль, ему открываются все параметры, которые он прописал в базе основных переменых, и он проставляет им числовые значения. Это так сказать болванки монстров и героев)
4. база временных профилей (профили, которыми обладают объекты и которые изменяются с помощью формул)
5. база подпрофилей (собственно тоже самое, что и профиль, только для способностей, и такие подпрофили можно присваивать основным профилям, тогда "способностью" будут обладать все существа с этим основным профилем, или подпрофиль можно присвоить временным профилям, тогда "способностью" будет обладать только какой-то объект, которому мы её прописали)
6. база формул (пользователь создает формулу, оперируя всем тем, что есть в базе простых функций)
7. действие вида "субъект" => формула => "объект"(обьектов может быть несколько)
Простой пример:
Пользователь создает в первой базе две переменные: "здоровье" и "урон"
Создает профиль "1"(здоровье=10, урон=2) и профиль "2"(здоровье=15, урон=1)
Создает формулу "атака"
["здоровье" обьекта присвоить ("здоровье" "объекта" - "урон" "субъекта")]
Создает карту
Ставит на неё два объекта и присваивает первому объекту параметры профиля "1"(объект сохраняется во "временных профилях"), а второму - параметры профиля "2"(обьект сохраяется во "временных профилях")
Потом нажимает на кнопочку "действие", выбирает "субъектом" первый объект,открывается список формул, из списка написанных формул выбирает формулу "атака" и выбирает второй объект "объектом" формулы.
результат: в временном профиле второго объекта, в параметр "здоровье" заносится новое значение.(желательно, чтобы профиль дублировался для каждого действия, тогда можно будет использовать данные предыдущих раундов боя для каких-нибудь заклинаний, оперирующих временем)


Таким образом мы получаем материал, из которого каждый пользователь сможет сделать програмную составляющую своей ФРПГ. Как простую (с двумя параметрами и простенькими боями), так и сложную (с сотнями параметров, формул и кучей способностей)

П.С. выше я употреблял слово "объект" в двух значениях.
То, что без кавычек - собственно объект, который мы ставим на карту, вроде шариков в твоей проге.
То, что с кавычками - в значении "тот, на кого выполняется действие" и употреблялось вместе с словом "субъект" (тот, кем выполняется действие).


RE: Подходы к созданию ФРПГ - Efrit - 14.04.2011 06:52

Quote:1) У меня программа не влезла в экран (высота экрана 800). Хотелось бы подстраиваемый размер окна, вплоть до разрешения 640х480 (при условии сжатого донельзя поля боя).
Я её под 900 подгонял Sm У меня на работе у монитора 1440*900 разрешение, а дома 1280*1024. Но тут согласен, уменьшить хотя бы до 768 пикселей по высоте надо. Правда, тогда придётся дефолтное поле боя уменьшать, потому как размеры одной клетки изменить нельзя - в прогу жёстко забито 24*24 пикселя...

Quote:2) Текущая концепция поля боя - неочень. Хотелось бы бесконечное авторасширяемое поле, прокручиваемое, динамически рисуемое (сейчас там загрузка статической сетки из файла, насколько я понял).
Бесконечное будет трудно сделать, но я всё-таки попробую. В "динамическом рисовании" не вижу особого смысла - а вдруг юзеру понадобится нестандартное поле боя? Пусть уж остаётся загрузка из файла, благо на производительность это вроде не влияет...

Quote:3) Основные кнопки управления (левая и правая мыши) заняты под рисование ландшафта, но во время боя ландшафт редко меняется, а вот перемещать объекты придется часто. Я бы сделал так: каждая кнопка мыши может управлять ландшафтом ИЛИ объектами, как решит пользователь.
А вот здесь я против. На самом деле, прорисовка ландшафта занимает намного больше времени, чем перемещение персонажей. Да, её нужно выполнять только один раз для каждой битвы - но сам этот процесс намного дольше, чем перемещение...

Quote:4) Насчет использования программы для расчета битв, можно было бы сделать интерфейс взаимодействия этой программы с программой-процессором, примерно следующим образом:
А вот тут я ничего не понял, если честно Ab



Quote:2) Хотелось бы больше обЪектов (добавить всякие домики, стены и т.п.), а также больше ландшафтов (хотя бы добавить пропасть, то бишь просто черный квадрат)
Я сделаю, чтобы юзер смог сам добавлять объекты (иначе я кучу времени на них потрачу).
   
Quote:3) Сделать один шарик и дать возможность изменять не только цвет текста на нем, но и самого шарика.
Нет, шарики - это не тупо однотонные кружки. Они трёхмерные, я их в Блендере делал 118 Если кому нужно будет изменить цвет - пусть файл-картинку изменит...

Quote:1. база основных переменных (собственно основные параметры, которые пользователь пишет сам: уровень, здоровье, сила, ловкость, навыки и т.д.)
3. база созданных профилей (пользователь создает профиль, ему открываются все параметры, которые он прописал в базе основных переменых, и он проставляет им числовые значения. Это так сказать болванки монстров и героев)
Всё это будет.

Quote:6. база формул (пользователь создает формулу, оперируя всем тем, что есть в базе простых функций)
Не, все формулы юзер будет считать сам. Потому как их может быть неограниченное число, да и сами формулы могут выглядеть как угодно. Разве что для расчёта дальности передвижения/стрельбы можно отдельно добавить функцию - так как, это будет ну очень часто использоваться... Проще уж исходники выложить - кому надо будет, тот прямо в прогу свои формулы и забьёт. С++, хотя бы на низком уровне, знают многие Spiteful

"Профили", как бы, есть и сейчас - пусть пока они и содержат только имя персонажа. Не обращал внимание, что каждому персонажу можно присвоить своё уникальное имя? Rolleyes Кстати, если сделать двойной клик скроллом по "шарику" в панели (а не на самом поле) - то там тоже текст изменится, и у всех следующих "шариков" того же цвета он будет такой же.


RE: Подходы к созданию ФРПГ - nosferatu - 14.04.2011 15:14

Передвигать колесиком очень неудобно, к тому же не у всех мышек есть колесики, (а если на ноуте тачпад, что тогда делать?) так что лучше сделать так, чтобы левой кнопкой можно было как передвигать шарики, так и проставлять ландшафт

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

Зачем было делать шарики в блендере?

Я лишь предложил сделать сильно упрощенную версию редактора триггеров варкрафта.
Собственно зачем нужны профили, если они будут играть только показательную функцию? ИМХО дать пользователю возможность писать формулы, и применять их в проге - это сэкономило бы огромное количество времени. (вот представь, что ты изучил пассивную способность, которая при атаке дает вероятность нанесения дополнительного урона, который пропорционален разности ловкости игрока и ловкости противника... а у тебя ещё пять пассивок и у противника две пассивки... так ГМ каждый раз должен будет всё это просчитывать, чтобы выяснить урон от одной атаки? Тогда либо бои будут длиться вечно, либо все надо упрощать до минимума, но если всё упрощать, то зачем нужен этот редактор? Другое дело, когда игрок забивает формулу (которая срабатывает при спользовании формулы "атака", если у профиля значение способности > 0), добавляет в профиль значение способности, и вместо огромной кучи действий просто выбирает формулу "атака", а все просчитывает машина)


RE: Подходы к созданию ФРПГ - Efrit - 14.04.2011 15:55

Quote:Передвигать колесиком очень неудобно, к тому же не у всех мышек есть колесики, (а если на ноуте тачпад, что тогда делать?) так что лучше сделать так, чтобы левой кнопкой можно было как передвигать шарики, так и проставлять ландшафт
Тогда уж правой. Ладно, постараюсь сделать режим работы с двумя кнопками... Хотя рисовать что-то на тачпаде, имхо, извращение.

Quote:Зачем было делать шарики в блендере?
Трёхмерные шарики лучше смотрятся Sm

Quote:Другое дело, когда игрок забивает формулу (которая срабатывает при спользовании формулы "атака", если у профиля значение способности > 0), добавляет в профиль значение способности, и вместо огромной кучи действий просто выбирает формулу "атака", а все просчитывает машина)
Так-то верно, но и очень сложно всё это. Я не хочу открывать Аредиту на месяц позже, добавляя в прогу возможность забивать свои функции и действия. Я проще поступлю - я выложу исходники проги, в которые каждый сможет сам дописать свои функции и свои поля профиля (всё равно ведь универсального создать не получится). Пусть каждый сам доработает её, как захочет - ведь всё равно она будет нужна, в лучшем случае, десятку человек...


RE: Подходы к созданию ФРПГ - FBX - 14.04.2011 16:24

Quote:Правда, тогда придётся дефолтное поле боя уменьшать, потому как размеры одной клетки изменить нельзя - в прогу жёстко забито 24*24 пикселя...

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

Quote:А вот тут я ничего не понял, если честно

Ну и ладно, не важно.

Quote:Я не хочу открывать Аредиту на месяц позже, добавляя в прогу возможность забивать свои функции и действия.

Можно прикрутить Lua - это ж несложно сделать.


RE: Подходы к созданию ФРПГ - Efrit - 14.04.2011 16:39

Quote:Почему нельзя сделать прокрутку? Ну и прочие особенности оконных элементов управления.
Ну да, или прокрутку.

Quote:Можно прикрутить Lua - это ж несложно сделать.
Не, уж лучше пускай на сях пишут 118


RE: Подходы к созданию ФРПГ - nosferatu - 14.04.2011 17:05

Вовсе необязательно делать эту прогу сразу. Можно сначала сделать то, что ты задумал, а потом создавать такой универсальный редактор для ФРПГ. Ммм... было бы просто прекрасно: возможность составлять формулы, профили и т.п., возможность создавать локальные карты, возможность создавать глобальные карты путем проставления отметок на загруженных графических картах и присоединять к этим отметкам локальные карты, а также возможность прописывать шаблоны с тегами, в которые редактор будет вставлять определенные значения, что ускорит прописывание профилей, сообщений и т.п. а потом можно будет создать отдельный сайт, посвященный ФРПГ, в котором каждый сможет стать мастером и будет иметь возможность скачать и пользоваться этим редактором...

Ой, что-то я размечтался, кто все это делать будет? :D


RE: Подходы к созданию ФРПГ - Efrit - 14.04.2011 17:59

nosferatu Wrote:было бы просто прекрасно: возможность составлять формулы, профили и т.п., возможность создавать локальные карты, возможность создавать глобальные карты путем проставления отметок на загруженных графических картах и присоединять к этим отметкам локальные карты, а также возможность прописывать шаблоны с тегами, в которые редактор будет вставлять определенные значения, что ускорит прописывание профилей, сообщений и т.п. а потом можно будет создать отдельный сайт, посвященный ФРПГ, в котором каждый сможет стать мастером и будет иметь возможность скачать и пользоваться этим редактором...

... подумайте, что будет, когда турнир окончится и когда уедут все гости. Жители Москвы, стесненные жилищным кризисом, бросятся в ваш великолепный город. Столица автоматически переходит в Васюки. Сюда приезжает правительство. Васюки переименовываются в Нью-Москву, Москва - в Старые Васюки. Ленинградцы и харьковчане скрежещут зубами, но ничего не могут поделать. Нью-Москва становится элегантнейшим центром Европы, а скоро и всего мира.
Да! А впоследствии и вселенной. Шахматная мысль, превратившая уездный город в столицу земного шара, превратится в прикладную науку и изобретет способы междупланетного сообщения. Из Васюков полетят сигналы на Марс, Юпитер и Нептун. Сообщение с Венерой сделается таким же легким, как переезд из Рыбинска в Ярославль. А там, как знать, может быть, лет через восемь в Васюках состоится первый в истории мироздания междупланетный шахматный конгресс! (с)


RE: Подходы к созданию ФРПГ - FBX - 14.04.2011 18:14

(14.04.2011 16:39)Efrit Wrote:  Не, уж лучше пускай на сях пишут 118

Мне не очень хочется, но придется сделать :facepalm:


RE: Подходы к созданию ФРПГ - Efrit - 14.04.2011 18:17

А с чего ты так? По-твоему, знающих Луа больше, чем знающих С?


RE: Подходы к созданию ФРПГ - gamecreator - 14.04.2011 18:36

Меньше. Lua не преподают в универах.
(14.04.2011 15:14)nosferatu Wrote:  а если на ноуте тачпад, что тогда делать?
Иметь правильный тачпад с правильным драйвером от Synaptic.


RE: Подходы к созданию ФРПГ - FBX - 14.04.2011 20:24

Да при чем тут знание того или иного языка? Для таких целей лучше использовать скриптовый язык, а не компилируемый. Хотя бы потому, что обновить программу (исправить ошибки, к примеру, новый функционал добавить) можно будет, не нарушая работоспособности чьих-то локальных версий (т.к. они будут на скриптах) - в противном случае придется соединять воедино две модификации одних и тех же исходников, пусть даже это и будет упрощено какой-нибудь CVS.


RE: Подходы к созданию ФРПГ - Efrit - 14.04.2011 20:39

Давай я тебе скину исходники - а ты добавишь туда поддержку ЛУА, лады? Ab


RE: Подходы к созданию ФРПГ - FBX - 14.04.2011 20:51

Может быть, может быть, обещать ничего не могу. Хотя есть шанс что на это и другие добровольцы найдутся.


RE: Эмулятор РПГ Сцен - Efrit - 26.12.2013 00:44

Efrit Wrote:В общем, недавно я начал писать программу. Пишу её для Аредиты - но уверен, что она будет полезна и авторам других ФРПГ. Это некий "редактор битв", позволяющий создавать поля битв и выводить логи раундов. "Выбор действий" и "выдача логов" пока не готовы, а вот "создание полей битв" сделано практически полностью - в чём и можно убедиться.

Как работает программа? Клик и удерживание обычной кнопкой мыши по полю боя активирует "прямоугольник выделения", с помощью которого на поле наносятся ландшафты - примерно как в редакторе карт для Героев. Выбор ландшафта - по клику обычной кнопкой на одной из верхних картинок, после этого она обведётся чёрным цветом. Однако, вышеописанные операции можно выполнять и правой кнопкой мыши - причём ландшафт будет рисоваться уже другой, то бишь соответствующий правой кнопке. А картинка, по которой кликнули правой кнопкой мыши, выделяется уже белым цветом.

Теперь попробую показать продолжение вышеуказанной программы. Эдакий новогодний подарок Laie_22
Нынче она умеет фактически всё, за исключение колдовства магии. Атака, перемещение, лечение - всё это проделано до мелочей. Теперь процесс битвы и впрямь напоминает Героев: лениво кликаешь мышкой по персонажам, и вводишь какие-то цифры в окошки. Все вычисления производятся автоматически, по формулам из боевой системы Аредиты (о которой я уже рассказывал здесь). Реализованы не только основные виды боевых действий, но и штрафы, возникающие при уменьшении здоровья/энергии.
   
Как и раньше, выбор действия/ландшафта производятся кликом левой или правой кнопкой мыши по одной из верхних кнопок. Например, если нужно кого-то атаковать - нажимаем сначала на "меч", а затем на саму цель атаки. Если же требуется открыть "окно параметров" персонажа - то надо сделать двойной клик средней кнопкой мыши (колёсиком) по его "кружку". Обязательно задайте всем персонажам имя и название - будет наглядно видно, кто сейчас ходит. Перетаскивание этих "кружков" также производится средней кнопкой мыши: зажал - и перетаскиваешь.

Для того, чтобы начать битву, необходимо нажать кнопку с изображением зелёной стрелки. Эта кнопка завершает текущий раунд и начинает новый. Затем персонажи могут поочерёдно ходить (в порядке убывания инициативы), при этом активный персонаж становится "мерцающим". Если нужно пропустить ход активным персонажем - то нужно нажать на "серую стрелку", тогда он автоматически затратит 1 секунду. Все действия персонажей пишутся в лог, расположенный в отдельном окне. В общем, если что-то непонятно - наведите курсор на нужную кнопку, выведется небольшая подсказка.
   
Как-то так. Отчитался о ходе разработки Ab Буду признателен, если кто сообщит о найденных багах. Я перечислил далеко не все её фичи (например, не сказал про уклонение и парирование), так что если будут вопросы - спрашивайте. Вряд ли она сильно кому поможет, кроме меня - просто хочется, чтобы люди привыкли к будущей игровой системе.
   
Получить программу (Click to View)



RE: Эмулятор РПГ Сцен - nosferatu - 26.12.2013 09:04

Круто)


RE: Эмулятор РПГ Сцен - k : / - 26.12.2013 18:18

Image: 6c4a690afd5f.png
Quote:Текущие состояния: везде нормальное состояние.
Проиграл с логов битвы 128


RE: Эмулятор РПГ Сцен - Efrit - 26.12.2013 20:48

Спасибо Ab
Про логи, если честно, не понял.


RE: Эмулятор РПГ Сцен - k : / - 26.12.2013 20:56

все объекты умерли > состояние стало нормальным.



RE: Эмулятор РПГ Сцен - nosferatu - 26.12.2013 21:31

(26.12.2013 20:56)k : / Wrote:  
все объекты умерли > состояние стало нормальным.
Не каркай. Если Ша**** помрет, мне несдобровать)



RE: Эмулятор РПГ Сцен - Efrit - 26.12.2013 22:54

k : / Wrote:все объекты умерли > состояние стало нормальным.
А, понял. Видимо, программу оптимист делал Rolleyes

nosferatu Wrote:Не каркай. Если Ша**** помрет, мне несдобровать).
Не, ту битву вы уже выиграли 118
nosferatu, ты её, случаем, под вайном запускать не пробовал?

кстати, Shift + двойной клик скроллом по персонажу позволяет задать направление его взгляда (треугольник-стрелочку).
это нужно, в частности, для реализации "ударов в спину".



RE: Эмулятор РПГ Сцен - nosferatu - 27.12.2013 03:49

(26.12.2013 22:54)Efrit Wrote:  Не, ту битву вы уже выиграли 118
А, ну да, забыл уже.
Quote:nosferatu, ты её, случаем, под вайном запускать не пробовал?
Запускал, все работает.
Но двойной щелчок колесом, это дико неудобно.


RE: Эмулятор РПГ Сцен - gamecreator - 27.12.2013 16:39

А по-моему норм. Непривычно просто, нужно немного потренироваться.


RE: Эмулятор РПГ Сцен - Efrit - 27.12.2013 20:49

Да, лично мне тоже кажется вполне удобным. На самом деле, открывать "окно персонажа" приходится нечасто - лишь перед началом битвы (загружаешь его профиль из файла, созданного в другой моей программе, и всё). После этого оно становится ненужным, поскольку следить за ХП персонажа можно простым наведением на него курсора (справа внизу выведется информация по "состояниям"). Зато на левую и правую кнопки мыши можешь назначить те действия, которые сам захочешь.

Кстати, я нашёл пару багов в программе, так что ссылка на неё обновлена - теперь там исправленная версия. В частности, теперь можно корректно атаковать "больших" персонажей (занимающих квадрат 2*2 клетки) - теперь расстояние до них высчитывается правильно, да и шанс попадания по ним в 1.5 раза выше. Кроме того, в окно "глобальных модификаторов" добавлена возможность ввергнуть персонажа в бессознательное состояние (или наоборот, вернуть его в сознание). Ну и ещё кое-что...

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



RE: Эмулятор РПГ Сцен - nosferatu - 28.12.2013 13:47

У меня тугое колесико, мне пришлось сделать попыток двадцать, прежде чем удалось сделать двойной клик. (модель достаточно новая и хорошая, oklick 620L) И на достаточно многих мышках скролл тугой. А на старых мышках его вообще нет. Так что это действительно неудобно.


RE: Эмулятор РПГ Сцен - gamecreator - 28.12.2013 15:02

Ещё один недостаток дорогих мышей, видимо.