Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

В разработке PowerTower - Многофункциональные башни

DPOH-VAR

Старожил
Пользователь
Баллы
153
Добрый день!

Хочу поделиться нашим новым проектом:
PowerTower
Авторы: @DPOH-VAR , @MYXOMOPX
Идея заключается в создании конструкций из блоков (башен), каждая из которых будет выполнять какую-то функцию.
Видео для ознакомления:
Тут представлен только один вид башен, который стреляет лазером по всем живым существам.

Каждая башня сохраняется в файл
PowerTower/towers/%UUID_башни%.yml
В этом файле записывается класс башни а также дополнительные параметры (жизни, броня, энергия и т.д.)
У игроков будет возможность построить или купить собственные башни, настраивать их, возможно прокачивать, создавать оборонные конструкции и так далее. Это добавит в игру элементы стратегии, а также новые цели для игроков.

Необходимые плагины:
VarScript 0.6.x - ядро PowerTower написано на Groovy. Без варскрипта тут никак)
HoloAPI - для отображения показателей башен: жизней, энергии и т.д.
PowerNBT 0.7.x - нужен только в том случае, если будет использоваться запись уникальных метаданных в предметы

Установка:
- Установить VarScript и Groovy к нему
- забросить PowerTower.jar в папку lib
- настроить воркспейс (одним скриптом, инструкция будет позже прилагаться к исходникам)
- готово!

Проект будет с открытым исходным кодом на гитхабе (как только мы его заведем ;) )

Башня, стреляющая лазером - это круто, но этого не достаточно.
Поэтому ждем ваших идей!

Для разработчиков:

Можно очень простым способом создать свой тип башен, или расширить существующий.
Достаточно создать класс своей башни, завернуть в jar-архив и кинуть в папку lib.
Что-то вроде такого:
Код:
class MyTower extends SimpleBlockTower{
    @TowerData('Healing') double healValue = 2.0
    private long trigger = -1

    @TowerStart def 'on start' (Workspace workspace) {
        trigger = workspace.addPeriod({
            location.world.players.find {
                it.location.distance(location) < 5
            } ?.health += healValue
        },20)
    }

    @TowerStop def 'on stop' (Workspace workspace) {
        workspace.stopPeriod trigger
    }
}
Эта башня будет каждую секунду лечить игрока в радиусе 5 блоков на 2 hp.
Причем это значение будет сохраняться в yaml:
class: MyTower
Healing: 2
​
Я привел пример на груви, никто не запрещает писать на чистой java.
документация к API будет вместе с исходниками.
 
Идеи от @Hephest​

FreezyTower: башня, в основе лежит блок льда. Второй блок - дроппер, направленный вверх. Каждый период (от 5 до 10 секунд) выпускает particles белого цвета круглой формы. После этого, игроки, попавшие в радиус действия FreezyTower, получают замедление на 3 секунды. Радиус действия и размер "снежного шара" взаимосвязаны. Т.е. радиус действия 3 блока - шар визуально достигает 2,5 блока

CreepyTower: башня, в основе которой лежит блок песка душ. Второй блок - голова скелета-иссушителя. Каждый период воспроизводится анимация летящей головы иссушителя (та, которой он стреляет), визуально выглядит, что каждый период голова "активируется" (увеличивается/изменяет цвет, т.к. entity головы иссушителя имеет несколько другую цветовую гамму). После анимации, спавнит в направлении игрока зомби и скелетов, причём в рандомном количестве и соотношении. Максимальное кол-во мобов ограничивается в конфиге

WitchTower: башня, в основе которой лежит блок адского кирпича. Второй блок - котёл, без воды. Каждый период выпускает "луч" чёрных particles от феерверка и спустя 1 секунду в "зону поражения" падают зелья урона, отравления и слабости (в рандомном кол-ве и порядке). Зелья представляют собой entity, начинают спавнится на высоте 3-х блоков над котлом. "Зона поражения" - площадка с радиусом действия, указанная в конфиге.

CannonTower: башня, в основе которой лежит блок железа. Второй блок - наковальня. Каждый период, если игрок находится в радиусе действия, башня "издаёт" звуки зажигания и взрыва динамита. Во время звучания взрыва, из наковальни вылетает фаербол гаста в направлении игрока. радиус опять же указывается в конфиге.

SkyTower: башня, в основе которой лежит блок кварца. Второй блок - паутина. При обнаружении игрока в радиусе действия, башня будет откидывать игрока с регулируемой силой в направлении, противоположном к направлению движения игрока. При откидывании, с паутины "выстреливает" луч белых particles.

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

MageTower: башня, в основе которой лежит блок книжного шкафа. Второй блок - зачаровальня. При обнаружении игрока в радиусе действия, воспроизводиться particles букв со стола зачарования в виде взрыва сферы из этих же букв. После этого, в игрока ударяет молния.
 
Последнее редактирование:
Опять неплохо, @DPOH-VAR ! Идеи для башен писать сюда или есть уютный скайп?
Думаю, что лучше сюда. Одним постом на форуме удается лучше сформулировать мысль, чем в том самом уютном.
Я завтра распишу свои идеи)
 
Вау, продолжайте!
Думаю нужно сделать чтобы около башни накладывался эффект замедления, слабости, иссушения.
 
Идея отличная, хотелось бы увидеть картинок :)
 
Идеи от @Hephest​

FreezyTower: башня, в основе лежит блок льда. Второй блок - дроппер, направленный вверх. Каждый период (от 5 до 10 секунд) выпускает particles белого цвета круглой формы. После этого, игроки, попавшие в радиус действия FreezyTower, получают замедление на 3 секунды. Радиус действия и размер "снежного шара" взаимосвязаны. Т.е. радиус действия 3 блока - шар визуально достигает 2,5 блока

CreepyTower: башня, в основе которой лежит блок песка душ. Второй блок - голова скелета-иссушителя. Каждый период воспроизводится анимация летящей головы иссушителя (та, которой он стреляет), визуально выглядит, что каждый период голова "активируется" (увеличивается/изменяет цвет, т.к. entity головы иссушителя имеет несколько другую цветовую гамму). После анимации, спавнит в направлении игрока зомби и скелетов, причём в рандомном количестве и соотношении. Максимальное кол-во мобов ограничивается в конфиге

WitchTower: башня, в основе которой лежит блок адского кирпича. Второй блок - котёл, без воды. Каждый период выпускает "луч" чёрных particles от феерверка и спустя 1 секунду в "зону поражения" падают зелья урона, отравления и слабости (в рандомном кол-ве и порядке). Зелья представляют собой entity, начинают спавнится на высоте 3-х блоков над котлом. "Зона поражения" - площадка с радиусом действия, указанная в конфиге.

CannonTower: башня, в основе которой лежит блок железа. Второй блок - наковальня. Каждый период, если игрок находится в радиусе действия, башня "издаёт" звуки зажигания и взрыва динамита. Во время звучания взрыва, из наковальни вылетает фаербол гаста в направлении игрока. радиус опять же указывается в конфиге.

SkyTower: башня, в основе которой лежит блок кварца. Второй блок - паутина. При обнаружении игрока в радиусе действия, башня будет откидывать игрока с регулируемой силой в направлении, противоположном к направлению движения игрока. При откидывании, с паутины "выстреливает" луч белых particles.

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

MageTower: башня, в основе которой лежит блок книжного шкафа. Второй блок - зачаровальня. При обнаружении игрока в радиусе действия, воспроизводиться particles букв со стола зачарования в виде взрыва сферы из этих же букв. После этого, в игрока ударяет молния.
Идеи неплохие. И, кстати, башни не обязательно должны быть их двух блоков.
 
Ха! По идее возможны башни вообще без блоков. Например, в виде энтитей, летающих блоков, сгустка эффектов и т.д. Но для простоты пока что рассматриваем башни как конструкции из обычных блоков.


Мои идеи, как обещал:

1) Башни (не все, но многие) будут иметь запас энергии. За каждый выстрел или какое-то действие тратится энергия.
2) Башни-генераторы. Они будут генерировать энергию в зависимости от чего-либо
(например от солнечного света, на дровах, высасывая жизни из энтитей и др. варианты)
Генератор может передать свою энергию другим башням, но имеет ограничение на скорость передачи
3) Башни-накопители. Аналогичны генераторам, но сами не создают энергию. Могут накапливать в себе большое количество энергии.
4) Генератор щита. Его можно установить на некоторые башни. При получении повреждения башня сначала тратит очки щита. Для восстановления щита требуется энергия, причем щит восстанавливается достаточно медленно.
5) Башни-цитадели. Описание ниже.

Теперь то, что стоит обдумать в первую очередь:

1. Как игроки будут строить башни?

Идея №1.1: Для постройки башни требуется уникальный предмет (блок). Когда ставим этот блок на землю, на этом месте разворачивается башня. В мета-информации блока записан тип башни, а также какие-то дополнительные параметры. Эти блоки можно где-то купить (например в лаборатории у жителей) или скрафтить.
Недостатки: требуется PowerNBT для чтения мета-информации у предмета. В режиме Creative мета у предметов иногда сбрасывается.

Идея №1.2: Сначала необходимо построить конструкцию башни, а затем провести ритуал. Например, ритуал - клик компасом по верхнему блоку. Компас тратится, башня начинает работать.
Недостатки: Цена каждой башни определяется блоками, из которых она состоит. ИМХО для таких башен это слишком дешево. Еще в данном случае придется фиксировать набор блоков, из которых состоит башня.

Идея №1.3: Существуют большие башни-цитадели. Строить другие башни можно только в определенном радиусе от цитадели. Чтобы создать башню, нужно как-то указать цитадели, какой тип башни и где нужно построить. /** C&C Red Alert **/ После этого башня связана с цитаделью. При разрушении цитадели башня перестает функционировать.
Недостатки: Сложно, много тонкостей, которые нужно продумать. Но мне кажется, что это самый интересный вариант.

2. Распознавание свой-чужой
Для атакующих башен очень важно определять цель, союзников и врагов.
Вот, что я думаю по этому поводу:

Идея 2.1: У каждой башни будет что-то похожее на список пермитов для игроков. Пусть сохраняется таблица вида <Игрок, Уровень доступа>
Уровень доступа - целое число.
Игрок, который поставил башню, является ее владельцем (имеет уровень 10)
Владелец может выставлять уровни другим игрокам с помощью команд.
например /tower userlevel MYXOMOPX 5 - добавить игрока MYXOMOPX в список союзников.
Уровень 0 игрок является врагом. Башня атакует его
Уровень 1-3 игрок нейтрален. Его не нужно атаковать, если он сам первый не начнет.
Уровень 4-5 игрок - союзник. Ему можно оказывать поддержку. Например, лечить (если башня умеет)
Уровень 6-7 игрок - пользователь. Он может выполнять какие-то команды башни. Например, включить/отключить щит.
Уровень 8-9 допустим, игрокам позволены более продвинутые команды.
Уровень 10 - игрок - владелец, и может назначать уровни другим игрокам.
Недостатки: Каждой башне необходимо настраивать эти уровни. Утомительно, долго. При изменении состава команды - придется перенастраивать все башни.

Идея 2.2, при наличии цитаделей: Те же самые списки пермитов хранятся в цитадели. Башня проверяет уровень доступа игрока, обращаясь к своей цитадели.

Идея 2.3: Формировать команды (группы игроков). Башня принадлежит какой-то конкретной команде. В команде есть точно такая же таблица уровней доступа <Игрок, Уровень доступа>, а может быть что-то более подробное, аналогичное PEX. Тогда в этом случае можно каждой команде игроков дать имя, это имя отображать над башней. Игрок может быть одновременно в нескольких командах, и иметь в них разные пермиты. Эта идея мне кажется лучшей на данный момент

3. Управление башнями:
У многих башен будут некоторые параметры, которые доступны для владельцев/пользователей
К примеру: режим огня, включение щита, апгрейды, настройка уровней доступа
Вот варианты реализации:

Идея 3.1: С помощью команд. Смотрим на башню и вводим команду. Примеры ниже, просто без описания
/tower shield enable
/tower userlevel DPOHVAR 15
/tower upgrade cannon
/tower ammo ice
/tower supply other-tower
/tower disable
Это уже было реализовано, см. видео
С точки зрения API добавить команду очень просто:
Код:
@OnCommand(value="ammo", level=8) cmd(Player sender, String ammo){
    if (ammo==null) sender.sendMessage "ammo is $weapon.ammo"
    else weapon.setAmmo(ammo)
}
PS: команды у каждого типа башен свои.
/tower [команда башни] [аргументы]
Явный недостаток - игрокам нужно будет запоминать эти команды.
Но можно выводить список команд и их описание при вызове /tower без аргументов

Идея 3.2: Инвентарь-меню. Этот способ мне сильно не нравится. К тому же, таким способом нельзя будет передать кастомные параметры. Но возможно есть преимущества, о которых я еще не знаю.

Идея 3.3: Отображать меню башни с помощью HoloAPI над ней или около.
Чтобы выбрать пункт, придется кликнуть по нему. Возможно это будет красиво. Насколько удобно - не знаю.
Недостаток как у предыдущего - можно только выбирать из предложенных вариантов, нельзя ввести свои данные.


Теперь о печальном, про сроки :D...
Это долгосрочный проект, я займусь им вплотную только летом. Сейчас им занимается @MYXOMOPX
Попробовать, проверить, посмотреть и протестировать - пожалуйста, на нашем тестовом сервере, по предварительной договоренности. Можно собрать из исходников и поставить на свой. За работоспособность снапшотов я не отвечаю, к тому же, на данный момент есть только наброски API.
 
Добрый день!

Хочу поделиться нашим новым проектом:
PowerTower
Авторы: @DPOH-VAR , @MYXOMOPX
Идея заключается в создании конструкций из блоков (башен), каждая из которых будет выполнять какую-то функцию.
Видео для ознакомления:
Тут представлен только один вид башен, который стреляет лазером по всем живым существам.

Каждая башня сохраняется в файл
PowerTower/towers/%UUID_башни%.yml
В этом файле записывается класс башни а также дополнительные параметры (жизни, броня, энергия и т.д.)
У игроков будет возможность построить или купить собственные башни, настраивать их, возможно прокачивать, создавать оборонные конструкции и так далее. Это добавит в игру элементы стратегии, а также новые цели для игроков.

Необходимые плагины:
VarScript 0.6.x - ядро PowerTower написано на Groovy. Без варскрипта тут никак)
HoloAPI - для отображения показателей башен: жизней, энергии и т.д.
PowerNBT 0.7.x - нужен только в том случае, если будет использоваться запись уникальных метаданных в предметы

Установка:
- Установить VarScript и Groovy к нему
- забросить PowerTower.jar в папку lib
- настроить воркспейс (одним скриптом, инструкция будет позже прилагаться к исходникам)
- готово!

Проект будет с открытым исходным кодом на гитхабе (как только мы его заведем ;) )

Башня, стреляющая лазером - это круто, но этого не достаточно.
Поэтому ждем ваших идей!

Для разработчиков:

Можно очень простым способом создать свой тип башен, или расширить существующий.
Достаточно создать класс своей башни, завернуть в jar-архив и кинуть в папку lib.
Что-то вроде такого:
Код:
class MyTower extends SimpleBlockTower{
    @TowerData('Healing') double healValue = 2.0
    private long trigger = -1

    @TowerStart def 'on start' (Workspace workspace) {
        trigger = workspace.addPeriod({
            location.world.players.find {
                it.location.distance(location) < 5
            } ?.health += healValue
        },20)
    }

    @TowerStop def 'on stop' (Workspace workspace) {
        workspace.stopPeriod trigger
    }
}
Эта башня будет каждую секунду лечить игрока в радиусе 5 блоков на 2 hp.
Причем это значение будет сохраняться в yaml:
class: MyTower
Healing: 2
​
Я привел пример на груви, никто не запрещает писать на чистой java.
документация к API будет вместе с исходниками.
Ты как обычно в ударе)) лойс
С таким плагином можно реализовать тааакое, если бы знать его досконально и не лень.))
 
Класс!!! Отличная вещь! Мои лазеры стали стационарными ;) Кусаю локти - как я сам не додумался ;)

Кстати, надписи висящие чем делались? Это уже тоже есть в Varscript?
 
Идея №1.2: Сначала необходимо построить конструкцию башни, а затем провести ритуал. Например, ритуал - клик компасом по верхнему блоку. Компас тратится, башня начинает работать.
Недостатки: Цена каждой башни определяется блоками, из которых она состоит. ИМХО для таких башен это слишком дешево. Еще в данном случае придется фиксировать набор блоков, из которых состоит башня.

Вопрос цены можно лечить стоимостью предмета которым нужно кликнуть для "ритуала", если это компас - то пусть у него будет изменено название и Lore. Тогда, во-первых, MCPatcher'ом и соотвествующим ресурс-паком ему можно будет будет придать какой-то новый внешний вид (это возможно, возможно даже в зависимости от энчантов по-разному отрисовывать ;))

Идея №1.3: Существуют большие башни-цитадели. Строить другие башни можно только в определенном радиусе от цитадели. Чтобы создать башню, нужно как-то указать цитадели, какой тип башни и где нужно построить. /** C&C Red Alert **/ После этого башня связана с цитаделью. При разрушении цитадели башня перестает функционировать.

Если говорить о RedAlert, то это нормальная идея. Но вообще, стрельба должна быть "потребляемой". В RedAlert'е (я говорю про первый, потому что всё остальное - это не RedAlert а отстой самый настоящий ;)) нормальной тактикой было построить кучу башен Tesla и... вобщем-то не беспокоиться о нападающих.

Т.е. если тут поставить в ряд несколько башен, то как я понимаю игрок не сможет даже мимо пробежать (особенно если стрялять они будут вразнобой и предсказать кто и когда выстрелит будет нельзя). Соотвественно нужна настройка на ограничение. Допустим 1 башня на 10 метров (радиус) или же башня должна жрать какой-то ресурс (дрова или уголь - даёшь стимпанковские лазеры!!! ;)


2. Распознавание свой-чужой
Для атакующих башен очень важно определять цель, союзников и врагов.
Вот, что я думаю по этому поводу:
Идея 2.1: У каждой башни будет что-то похожее на список пермитов для игроков. Пусть сохраняется таблица вида <Игрок, Уровень доступа>

Мне кажется слишком заморачиваться с уровнями не нужно. Должно быть главное: свой-чужой. Всё. Причем в идеале должна быть возможность увязаться с: пермишенами/группами, а также (по возможности) с какими-то популярными плагинами: Factions, Towny, WorldGuard (или что там позволяет регионами торговать).

3. Управление башнями:
У многих башен будут некоторые параметры, которые доступны для владельцев/пользователей
К примеру: режим огня, включение щита, апгрейды, настройка уровней доступа
Вот варианты реализации:

Идея 3.1: С помощью команд. Смотрим на башню и вводим команду. Примеры ниже, просто без описания
/tower shield enable
Явный недостаток - игрокам нужно будет запоминать эти команды.
Но можно выводить список команд и их описание при вызове /tower без аргументов
Идея 3.2: Инвентарь-меню. Этот способ мне сильно не нравится. К тому же, таким способом нельзя будет передать кастомные параметры. Но возможно есть преимущества, о которых я еще не знаю.

Андрей, ты не играл случайно в Team Fortress 2? Мне сейчас мысль пришла. Там игрок-инженер ставил туррель, а потом апгрейдил её тарабаня по ней монтировкой.

Может и тут что-то подобное предусмотреть? Лично я был бы счастлив, встретив такую фишку на каком-нибудь сервере :)
И это кстати, даст элемент защиты: в пылу боя никто не будет развертывать туррель, если не позаботился об этом заранее: пока игрок будет колотить по туррели монтировкой, его десять раз зарежут супостаты ;)
 
Вопрос цены можно лечить стоимостью предмета которым нужно кликнуть для "ритуала", если это компас - то пусть у него будет изменено название и Lore. Тогда, во-первых, MCPatcher'ом и соотвествующим ресурс-паком ему можно будет будет придать какой-то новый внешний вид (это возможно, возможно даже в зависимости от энчантов по-разному отрисовывать ;))



Если говорить о RedAlert, то это нормальная идея. Но вообще, стрельба должна быть "потребляемой". В RedAlert'е (я говорю про первый, потому что всё остальное - это не RedAlert а отстой самый настоящий ;)) нормальной тактикой было построить кучу башен Tesla и... вобщем-то не беспокоиться о нападающих.

Т.е. если тут поставить в ряд несколько башен, то как я понимаю игрок не сможет даже мимо пробежать (особенно если стрялять они будут вразнобой и предсказать кто и когда выстрелит будет нельзя). Соотвественно нужна настройка на ограничение. Допустим 1 башня на 10 метров (радиус) или же башня должна жрать какой-то ресурс (дрова или уголь - даёшь стимпанковские лазеры!!! ;)




Мне кажется слишком заморачиваться с уровнями не нужно. Должно быть главное: свой-чужой. Всё. Причем в идеале должна быть возможность увязаться с: пермишенами/группами, а также (по возможности) с какими-то популярными плагинами: Factions, Towny, WorldGuard (или что там позволяет регионами торговать).



Андрей, ты не играл случайно в Team Fortress 2? Мне сейчас мысль пришла. Там игрок-инженер ставил туррель, а потом апгрейдил её тарабаня по ней монтировкой.

Может и тут что-то подобное предусмотреть? Лично я был бы счастлив, встретив такую фишку на каком-нибудь сервере :)
И это кстати, даст элемент защиты: в пылу боя никто не будет развертывать туррель, если не позаботился об этом заранее: пока игрок будет колотить по туррели монтировкой, его десять раз зарежут супостаты ;)
Главное, чтоб команда хайпикселя не добралась до ВарСкрипта. Они: Мы только узнали и увидели функционал ВарСкрипта и тут понеслась.
Будет ли возможность:
- башни 100% попадают по игроку
- скорость атаки и урон башен
 
Главное, чтоб команда хайпикселя не добралась до ВарСкрипта. Они: Мы только узнали и увидели функционал ВарСкрипта и тут понеслась.
Сейчас ВарСкрипт - это всего лишь мост, соединяющий функционал плагина и Java Scripting API (JSR223)
Отличие от других плагинов [1] [2] [3] [4] в том, что я разработал идею изолированных воркспейсов. И к тому же варскриптом пользоваться намного удобнее с точки зрения разработчика. В целом же
Всё, что можно сделать с помощью обычного плагина, можно реализовать на варскрипте. И наоборот
Я мог бы выбрать Java для написания PowerTower в виде отдельного плагина, тогда исходного кода было бы в ~5 раз больше.

Планируется, что это будет проект с открытым исходным кодом и доступным API. Любой может скачать его с гитхаба, скомпилировать (школьники пусть учат мавен), и установить себе. А также написать парочку дополнительных классов башен (еще пусть учат java/groovy) и сделать свой сервер уникальным.
Хайпиксель на это дело не возьмется. А если и прознает, то сделает с нуля и по-своему.

Исходники опубликую к тому моменту, как хотя бы будет спланирован и готов API. Дальше каждый может модернизировать башни под себя.
Класс!!! Отличная вещь! Мои лазеры стали стационарными ;)
Именно эти лазеры и подали мне идею стреляющих башен.
Вопрос цены можно лечить стоимостью предмета которым нужно кликнуть для "ритуала", если это компас - то пусть у него будет изменено название и Lore. Тогда, во-первых, MCPatcher'ом и соотвествующим ресурс-паком ему можно будет будет придать какой-то новый внешний вид (это возможно, возможно даже в зависимости от энчантов по-разному отрисовывать ;))
Видимо, я просто вынесу процесс постройки башен из API. На деле - пусть у каждой башни будет это по своему.
ИМХО - если все равно используются уникальные предметы, почему бы не сделать постройку башен как посадку деревьев? кликнул - и появилась готовая структура из блоков. Игрокам не нужно будет запоминать, из чего строить башни, а того хуже - рыться по форумам и искать строительные чертежи.
Допустим 1 башня на 10 метров (радиус) или же башня должна жрать какой-то ресурс (дрова или уголь - даёшь стимпанковские лазеры!!! ;)
Ресурс - это энергия башен.
Я очень нагло тырю идею отсюда: И не только идею! Даже название! .
Мне кажется слишком заморачиваться с уровнями не нужно. Должно быть главное: свой-чужой. Всё. Причем в идеале должна быть возможность увязаться с: пермишенами/группами, а также (по возможности) с какими-то популярными плагинами: Factions, Towny, WorldGuard (или что там позволяет регионами торговать).
Вот это истина!

Андрей, ты не играл случайно в Team Fortress 2? Мне сейчас мысль пришла. Там игрок-инженер ставил туррель, а потом апгрейдил её тарабаня по ней монтировкой.
Я хотел, чтобы постройка башен и апгрейды занимали очень длительное время.
Например,
постройка обычной башни = 5-15 минут,
апгрейд башни = ближе к часу,
постройка цитадели или какой-то очень важной башни = 2-3 часа
апгрейд цитадели = заходи завтра, будет готово)
При постройке башня не функционирует и очень уязвима, но находиться с ней рядом не нужно.
При апгрейде - башня тоже перестает функционировать, однако апгрейд можно экстренно отменить. Голограммы тут очень кстати - писать прогресс постройки/апгрейда.

Еще один из вариантов апгрейда - принести какой-то редкий предмет и кликнуть им по башне. Например, принес линзу - лазер стал точнее фокусироваться и увеличился радиус обстрела. Принес кристалл - повысился дамаг. Принес батарею - удвоил ёмкость энергии. и т.д. При этом нужно 100 раз кликуть по башне, чтобы апгрейд установился.

Будет ли возможность:
- башни 100% попадают по игроку
- скорость атаки и урон башен
Я специально делал, чтобы башни могли промахиваться. Т.е. перед наведением на цель и выстрелом проходит около двух тиков. Это дает возможность игроку сбежать от выстрела, но если башен много - от всех не скроешься. Изначальный вариант башни просто искал цель и отнимал у нее жизни - это же скучно!
Скорость атаки и урон мб пусть апгрейдятся. Но варианты апгрейдов еще надо продумать. А перед этим и варианты самих башен.
 
Есть еще одна мысль, которую просто озвучу. Реализовывать не собираюсь

Привязать PowerTower к DynMap
И будет вам браузерная стратегия из майнкрафта! :D
Особенно весело тем, у кого 2 монитора.
В браузере можно будет включать/отключать/прокачивать башни, распределять энергию, следить за состоянием базы. Еще, например, если будут дальнобойные башни (артиллерия) - им задавать цель для атаки.
Это скорее всего не будет реализовано потому что:
- долго разрабатывать
- нужно комплексное тестирование
- не многим понравится идея управлять башнями в браузере.
- будьте добры выделить отдельный порт для работы HTTP службы, использующей AJAX
- я криворукий в плане веб-дизайна и JavaScript
Можно добавить особые цитадели. Вроде комбинаций: построишь правильную комбинацию - цитадель получает +n к защите/жизням/атаке или получает баффы
Хак, который даёт +100 к защите:
обстроить башню обсидианом. Пока его пробьешь - тебя зажарят остальные башни.
 
Е
Хак, который даёт +100 к защите:
обстроить башню обсидианом. Пока его пробьешь - тебя зажарят остальные башни.
Например, комбинация "Ортханк" - спавнит 4 зомби каждые 3 секунды. Или "Барад-Дум" - при попадании луча центральной башни в игрока, игрок слепнет.

Да, я поклонник творчества Толкиена. И да, обсидиан - слишком жестоко :С
 
Еще один из вариантов апгрейда - принести какой-то редкий предмет и кликнуть им по башне. Например, принес линзу - лазер стал точнее фокусироваться и увеличился радиус обстрела. Принес кристалл - повысился дамаг. Принес батарею - удвоил ёмкость энергии. и т.д. При этом нужно 100 раз кликуть по башне, чтобы апгрейд установился.

Да, что-то подобное я и имел в виду, когда упоминал TF2. Но наверное лучше будет так: установил предмет для апгрейда - апгрейд длится, допустим, 3 минуты. Но если стоять и кликать, то апгрейд произойдёт быстрее.
 
Да, что-то подобное я и имел в виду, когда упоминал TF2. Но наверное лучше будет так: установил предмет для апгрейда - апгрейд длится, допустим, 3 минуты. Но если стоять и кликать, то апгрейд произойдёт быстрее.
Так и мышку сломать можно :D
 
Я специально делал, чтобы башни могли промахиваться. Т.е. перед наведением на цель и выстрелом проходит около двух тиков. Это дает возможность игроку сбежать от выстрела, но если башен много - от всех не скроешься. Изначальный вариант башни просто искал цель и отнимал у нее жизни - это же скучно!
Скорость атаки и урон мб пусть апгрейдятся. Но варианты апгрейдов еще надо продумать. А перед этим и варианты самих башен.
Просто есть идея, пусть у игрока будет шанс уклониться от башни, но опять у него должен быть такой предмет, а на счет башни: пусть она 100% попадает, т.е. чтоб была возможность это настроить. Пусть даже снаряд ганялся за героем.
 

Поделиться этой страницей

Назад
Верх