theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
[GUI/Jass] - Наработка пошагового боя "BattleTime"
ОписаниеBattleTime 1.0
Собственно, название этой наработки говорит само за себя. Наработка даёт возможность альтернативного ведения боя - пошагового, взамен реального. Это даёт возможность игрокам расслабиться, продумать всю битву, и служит нередко используемой игровой константой RPG. Применение наработки очень узко-специализированное, однако, на мой взгляд, более оптимальное. Помимо этой наработки, насколько я знаю, на сайте присутствует всего одна наработка пошагового боя (на мой взгляд она слишком вялая). РеализацияНа XGM была уже не одна попытка создать систему пошагового боя, но лишь одна оказалась заслуживающей внимания. Одни предлагали строить под ногами кружки, другие - квадратами ограничивать проходимость. Здесь как и везде нет никакой "фишки" - "единица измерения хода" заняла место еды. С версии 0.9 все баги, влияющие на играбильность, исправлены Планируемые улучшения системы- Оптимизация кода (сделано) - Автоматический вход в бой когда вы близко к противнику (сделано) - Введение мультиборда для просмотра ожидания своего хода (заменено на game strings, есть некорректности) - Устранение багов (исправлено) - Вычисление "очков действия" по формуле (сделано) В версии 1.N планируются следующие изменения - Запрет на удар при ОД меньше положенного (сделано к 1.1) - Перенос оставшегося OD в следующий ход (сделано к 1.1) - Отладка Strings (сделано к 1.1) - Авто выход из боя на далеком расстоянии (сделано к 1.2) - Умный AI - Рассчёт атакующих по инициативе - Более гибкая настройка системы - Исправление бага с выполнением приказа предыдущего хода, если он закончился раньше выполнения приказа. (сделано к 1.1) - Исправление бага с отрицательным значением пищи (сделано к 1.1) Вопрос/Ответ» Как импортировать наработку к себе в карту? Чтобы импортировать наработку в свою карту требуется проделать ряд действий 1. Зайдите Дополнительно -> Игровые константы, поставьте галочку напротив пункта "Использовать нестандартные игровые константы" и измените значение поля "Расходы: пища" так, чтобы первое число равнялось 1, а следующие - 10000 (или любое другое максимально возможное число) 2. Зайдите Дополнительно -> Игровой интерфейс, поставьте галочку напротив пункта "Использовать нестандартный игровой интерфейс" и измените значения следующих полей: "Пиктограмма: пища" - ReplaceableTextures\CommandButtons\BTNBootsOfSpeed.blp (или любую другую иконку которая вам по душе) "Текст - Общий - Нет расходов" - |Cff00ff00Ход окончен "Текст - Общий - Расходы - 30%" - |Cffffff00Ваш ход 3. Скопируйте все измененные способности и эффекты. 4. Добавьте всем героям, которые будут участвовать в бою способности "Неизбежность" и "Начать бой" Уберите у этих юнитов возможность атаковать. 5. Скопируйте все триггеры. 6. Настройте систему: В триггерах из категории "GUI-часть" настройте систему под себя В триггере AttackItem вы можете добавить свои условия отнятия очков действия за вещи и дописать урон, наносимый каждым предметом. В триггере AttackSkill вы можете изменить количество очков действия, затрачиваемое на удар, а так же ввести собственную формулу вычисления урона (придется применить фантазию самим) » Я хочу немного изменить наработку. Что значит каждая глобальная переменная? Логические (boolean) Battle - активируется при начале боя. Собственно обозначает когда битва началась, а когда закончилась OvzorBattle - отвечает за включение/выключение автоматического начала боя при нахождении близко к противнику NextTurn - выделяет время между ходами, нужна для предотвращения фатал еррора вследствии бага String - отвечает за включение/выключение игрового текста наработки Группы BattleGroup - группа, собирающая в себя воюющих юнитов. Опустошается после инициализации боя. BattleUnts - группа, собирающая в себя воюющих юнитов. Не опустошается, служит для ваших манипуляций, если фантазия позволит Юниты BattleHeroActive - обозначает игрока который ходит в данный момент BattleUnit - обозначает отдельно каждого воюющего юнита (в массивах), принадлежащего к группе BattleUnits и BattleGroup. NowN - в нее заносится случайный юнит с мапы, служит для отлова "Неизбежности". Не выполнено на локалке, чтобы не забивать участки памяти. Интегеры NumberTurnUnit - служит для отлова следующего ходящего NumbUntAlly - служит для отлова следующего ходящего OD - очки действия ходящего игрока PointStartShag (точка) - откуда начался шаг Shag (реальная) - расстояние, которое прошёл юнит Отредактировано theFT, 02.11.2009 в 17:14. |
30.10.2009, 15:50 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Ну... Неплохо, только сыровато, исправил баги бы и выкладывал имхо. И выложи что ли версию с jassом |
30.10.2009, 16:05 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
XiMiKs, знаю знаю, мне просто важно знать как вам сама задумка, мб я зря стараюсь...
|
30.10.2009, 16:08 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Rewenger
The culprit will not die
offline
Опыт:
35,873Активность: |
theFT, если уж гуи, то зачем конвертировать в текст? А ещё я маленько не догнал, от чего зависит кол-во разрешённых атак? Мне показалось, что каждый раз оно разное. |
30.10.2009, 16:09 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Зависит от еды. Точнее еда как показатель ходов |
30.10.2009, 16:12 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
Rewenger, там я просто для пробы поставил 60 очков. Конвертировал, чтоб глаз лишних не было, в финале планирую поставить на ГУИ лишь ту часть, что отвечает за переменные которые должен указать сам пользователь "под себя", а остальную часть оптимизировать. Уж извиняйте за громкие слова
|
30.10.2009, 16:13 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
laViper
offline
Опыт:
10,883Активность: |
Что насчет такой фишки как "Инициатива" например (вроде так называется в Героях 5). Ее смысл в том, что в бою существо с больше инициативой будет ходить раньше и чаще. (тоесть например при инициативе существ 3,5,10 существо с ин-й 10 сходит в 2 раза больше чем существо с ин-й 5). Точно не знаю как сделано в HoMM5, но могу могу подсказать свой способ как это реализовать. |
30.10.2009, 16:16 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
laViper, я конечно могу это сделать, но боюсь что придется менять основные характеристики и подстраивать под систему, а они ведь могут кому то понадобиться. Хотя если ты подскажешь отличный способ вычисления то пожалуйста...
|
30.10.2009, 16:25 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Rewenger
The culprit will not die
offline
Опыт:
35,873Активность: |
theFT, ну поставить в установке начальных параметров "InitiativeMode = да" и прочие сеттинги...
Кстати, а неплохо бы сделать ещё и вариацию "неподвижной пошаговой". Это когда камера из-за спины ваших героев (напралена на врагов), персонажи не могут двигаться, только делать скиллы и по очереди. Или у каждого персонажа естьсобственный "таймер хода", который определяет, когда он может сходить (полосочками плавающего текста, скажем). |
30.10.2009, 16:42 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
Rewenger, хм, насчёт параметра очень даже удобно получится...
Насчёт другого пошагового боя я подумаю) Исправил баги |
30.10.2009, 17:16 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BK.Jugg
террорист из КиП
offline
Опыт:
27,066Активность: |
нормальная наработка, но имхо если атака требует 10 ед., то если < 10 ед., то атака невозможна?
|
30.10.2009, 17:28 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
Если ты сделаешь что нибудь похожее на Fallout:tactic или на Silent Storm то наработка будет стоющей а так это очередной боян. |
30.10.2009, 19:30 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
ELDAR, ссылку где ты видел что-то похожее на движке вара, чтобы стояще говорить что это "боян". Я делаю то что видел в игре "Златогорье 2" и в будущем стараюсь перемешать с UFO Aftermath. ИМХО это люди хотят видеть. Я бы хотел.
|
30.10.2009, 20:08 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
laViper
offline
Опыт:
10,883Активность: |
Через инициативу делается до банальности просто - суммирование и обнуление. Возьмем 3 существа с инициативой 5, 6 и 11 (это значит что I и II юнит хождят примерно одинаково быстро, а III в два раза быстрее - но для I больше чем в 2 раза, для II менее) и так каждый ход накапливаем инициативу и передаем ход тому у кого MAX при этом обнуляя ее. I II III 5 6 11 - ходит 3 (обнуляем становиться 0 и на след раз снова увеличиваем) 10 12 11 - ходит 2 15 6 22 - ходит 3 20 12 11 - ходит 1 5 18 22 - ходит 3 10 24 11 - ходит 2 15 6 22 - ходит 3 20 12 11 - ходит 1 вот и выходит что I и II ходят примерно одинаково (у них разница будет на 30 ходе), а вот III получает ход в 2 раза чаще. Кстатит удобная системка не только для пошагового боя, но и для вычисления приоритетов. Использовал у себя для кузницы - норм работало. |
31.10.2009, 08:27 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FunkieFoO
offline
Опыт:
7,159Активность: |
наработка похожая на UFO, хорошая идея, только в ЮФО используеться не чисто пошаговый бой, а альтернативный режим, а т.е, во время хода игрока, ИИ совершал действия семмитрично с игроком, я думаю реализация вовсе невозможна или очень сложна... лучше делай наработку классического пошагового боя, когда после действий одного игрока, действия выполняет другой... а так если че могу помочь с развитием идеи и фиксом багов, если че пиши в лс |
31.10.2009, 09:07 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
Новая версия
Позже доделаю еще |
31.10.2009, 15:04 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
Проведена оптимизация кода! Наработка стала полностью играбильной! |
01.11.2009, 12:20 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zohan
offline
Опыт:
961Активность: |
|
01.11.2009, 16:20 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FunkieFoO
offline
Опыт:
7,159Активность: |
Имхо, герою для удара нужно 10 очков хода, а даже при оставшихся <10, гер может свободно бить других... даже если 1 очко... фикс ит
ЗЫ советую сделать в тригге слип экшн, и потом уже при совпадении колл-ва нужной еды(очков хода) вызывать функцию с помощью executeFunc... да и еще когда не хватает очков для хода там или удара советую выводить симуляцию ошибки... |
01.11.2009, 17:29 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
theFT
Kicked by Dron
offline
Опыт:
4,441Активность: |
|
01.11.2009, 17:55 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|