Информация [WIKI] Terra.ya1.ru: Divide and Conquer (Conquest)

Статус
В этой теме нельзя размещать новые ответы.

xtend

Суетолог
conqlogo.png
В чём суть:
Terra Conquest:
Серверная модификация кардинально изменяющая геймплей одиночки на командный захват регионов.
На сей раз в схватке за необъятные земли "Терра Стратос" сойдутся четыре могущественных державы:
Королевство рода Датэ, Королевство Вестероса, Священная Империя и Бессмертный Альянс.
Неизведанные земли "Терра Стратос" представляют из себя огромные равнины и высокие горы, подземелья которых порабощены адскими неписями а в небесах порой можно встретить летающие острова населённые древнейшими драконами.
Истории кланов:
??????????????????????????????????????????
Терминология:
Поле боя:
Квадратная зона размером в 4,096х4,096 блоков разделённая на регионы. По углам поля боя расположены основные базы команд. Игрок не может выходить и захватывать регионы находящиеся за полем боя.
Регион:
Участок земли размером в 256х256 блоков. Может быть захвачен любой командой. Для начала захвата региона нужно чтобы в нём находилось минимум 4 человека из команды захватчиков. После захвата автоматически запривачивается(подобно резиденции). Имеет разделение прав на Приватный и Публичный. В приватных регионах может застраиваться только владелец и прописанные игроки, а в публичных - все игроки команды.
Тип и права региона:
Регионы делятся на 2 типа:

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

Администратор команды (Император, Царь):
Полноценный владелец команды, может приглашать и удалять игроков из команды, назначать владельцев регионов и операторов команды, объявлять войны, просматривать статистику и совершать покупки ресурсов за счёт денежных единиц. Полноценно использует банк команды. Может строить даже в приватных регионах. Внимательно относитесь к выбору администратора команды.
Оператор команды (Герцог):
В некотором роде заместитель администратора команды, может устраивать войны, приглашать и удалять игроков из команды, полноценно использовать банк команды. В отличии от администратора не может строить в приватных регионах.
Игрок команды (Рыцарь либо Крестьянин, по выбору):
Игрок, которого пригласили в команду, может строиться в регионах где он прописан, может класть денежные единицы в казну.
Пенальти:
Вычет денежных единиц при смерти игрока в пользу противника. За администратора команды снимается большое пенальти (~100 ед), за оператора ниже (~20), а за простого игрока малое количество (~5). Пенальти имеет комиссию: За каждое последующее убийство будет сниматься комиссия в 20%, после 5 смертей с игрока пенальти не взимается (Слив).
Денежные единицы:
Некий вариант псевдо–экономики используемый администраторами команды для покупки различных ресурсов. Денежные единицы присуждаются за уничтожение игроков вражеской команды, победы в войнах, а так же могут приобретены путём продажи золота и изумрудов простыми игроками.
Нейтрал (Игрок без команды):
Игроки без команды будут находиться в регионе респавна, за него они смогут выйти только тогда, когда присоединяться к какой-либо команде. В случае нехватки места для игрока находящегося в команде, будут кикнуты.
Битва за регион:
Битва за регион возможна только в случае присутствия хотя-бы 2 игроков из противоположной команды. В начале захвата каждой команде будет дано 100 очков захвата, в случае смерти игрока в захватываемом регионе его команда потеряет 1 очко захвата, за малое количество (1-2 против 8) игроков в регионе или полное их отсутствие будут сниматься 1 очко каждую минуту. Команда у которой останется 0 очков - проиграет.
Шаги:
Каждый день команда может захватить 4 региона. После исчерпывания всех шагов, команда сможет только обороняться, в случае успешной обороны, команда-победитель получает дополнительный шаг. Неудачная попытка захвата региона - сгорает шаг (Победа обороняющихся).
Информация будет пополняться. Грамматические ошибки допустимы, никто не безгрешен.
Инвайт:
Инвайт это индивидуальное приглашение в команду. После приглашения администратором команды игрок может принять приглашение или отклонить его. Возможен только один инвайт (от 1 команды) в 60 секунд.
Режим PvP:
По-умолчанию игроки, находящиеся в одной команде не могут навредить друг-другу.
Два игрока с включенным режимом PvP - могут наносить урон друг-другу.
Для включения и отключения режима используется соответствующая команда в чате.
Режим включается мгновенно. Для отключения и следующего включения придётся подождать 30 секунд.
Что ещё нужно реализовать(To-Do):
1. Система проведения захвата регионов ----------------------------- (0%)
2. Переделать систему регионных координат ------------------------(100%)
3. Хелп к командам плагина ---------------------------------------------(100%)
4. Командная экономика -------------------------------------------------(0%)
5. Генератор карты ---------------------------------------------------------(100%)
6. Переписать систему прав игроков на более гибкую---------------(50%)
7. Провести закрытый бета-тест среди нескольких желающих---- (0%).
8. Последующие баг-фиксы. Возможно и рефакторинг-------------(?%).
 
Последнее редактирование:
Тема открыта для обсуждений. Пожалуйста делитесь идеями и предложениями.
В ближайшее время тут будет доступна информация о том, что уже готово, а что ещё предстоит сделать.
От команд: Придумайте историю команды, минимум 140 строк.
Прошу не задавать вопросы о том, когда это будет готово, времени у меня нынче не так много.
На данный момент разработкой модификации занимается небольшая команда энтузиастов (~3 человек, в свободное время).
 
Сервер с данным режимом будет стоять отдельно от сурва/хардкора или заменит его?
 
Сервер с данным режимом будет стоять отдельно от сурва/хардкора или заменит его?
Говорили о том, что сервер будет заменен, а как альтернатива обычному серверу выйдет Raydary. Не утверждаю, но вроде так)

Несколько вопросов:
1. Администратор клана только один? Операторов может быть сколько угодно, или же один?
2. Если я умру убив самого себя или же если меня убьет моб - пенальти засчитывается?
3. Начальное расположение кланов будет являться спавном для клана? Или же по умолчанию в обычном спавне?
4. Можно ли перенести постройки кланов со старых креативов? Или же карты не сохранены?
5. Будет ли реализовано "жители и налоги", то бишь принятие игроков "под свое крыло" как жителей, а с них уже взимать налог в виде этих самых денег (к примеру N-ое количество кредитов в реальную неделю) на автоматической основе.
6. При длительном зажиме одного из кланов в первоначальном расположении - будет как-то решаться?
7. Запрещены ли союзы между кланами? В смысле один клан может договориться с двумя другими и захватить все земли зажав одного, при этом поделив все земли между собой поровну.

Несколько предложений:
1. В случае длительного неактива клана автоматический сжигать кредиты клана(к 7-ому вопросу можно кинуть). В неделю хоть один ход делать, к примеру.
2. В случае длительного неактива администратора клана - в неделю отбирать одну землю, то бишь кидать ее в нейтральные(земли неподконтрольные клану, что-то на подобии захламления).
3. Ввести несколько правил в связи с новым режимом(закину позже свои мысли об этом).
 
Говорили о том, что сервер будет заменен, а как альтернатива обычному серверу выйдет Raydary. Не утверждаю, но вроде так)

Несколько вопросов:
1. Администратор клана только один? Операторов может быть сколько угодно, или же один?
2. Если я умру убив самого себя или же если меня убьет моб - пенальти засчитывается?
3. Начальное расположение кланов будет являться спавном для клана? Или же по умолчанию в обычном спавне?
4. Можно ли перенести постройки кланов со старых креативов? Или же карты не сохранены?
5. Будет ли реализовано "жители и налоги", то бишь принятие игроков "под свое крыло" как жителей, а с них уже взимать налог в виде этих самых денег (к примеру N-ое количество кредитов в реальную неделю) на автоматической основе.
6. При длительном зажиме одного из кланов в первоначальном расположении - будет как-то решаться?
7. Запрещены ли союзы между кланами? В смысле один клан может договориться с двумя другими и захватить все земли зажав одного, при этом поделив все земли между собой поровну.

Несколько предложений:
1. В случае длительного неактива клана автоматический сжигать кредиты клана(к 7-ому вопросу можно кинуть). В неделю хоть один ход делать, к примеру.
2. В случае длительного неактива администратора клана - в неделю отбирать одну землю, то бишь кидать ее в нейтральные(земли неподконтрольные клану, что-то на подобии захламления).
3. Ввести несколько правил в связи с новым режимом(закину позже свои мысли об этом).
1. Администратор, он же король - да, только один. Операторов - до 5.
2. Не засчитывается.
3. Начальные позиции кланом будут спавном, да. Можно телепортироваться по подконтрольным регионам.
4. Над этим вариантом стоит подумать.
5. Казна у кланов будет общей, так что игроки смогут пополнять "баланс" клана путём внесения в казну золота или других драгоценностей, не вижу препятствий, но нужно ли? :)
6. Главную точку атаковать изначально не рекомендуется. Есть некоторые причины :D
7. Технически - запрещены, напоминаю, что чем больше клан удерживает позиций, тем больше он зарабатывает денег в казну в день.
 
Последнее редактирование:
Что именно можно будет купить на денежную валюту? Какой будет интерфейс? Как будет называться?)
 
Ограничьте права у модераторов.... так дисбаланса не будет.
 
Что именно можно будет купить на денежную валюту? Какой будет интерфейс? Как будет называться?)
В основном ресурсы, которые помогут в обороне или в нападении (обсидиан, динамит, и.т.п), в общем аналог гива, только за валюту.
В будущем запланирована покупка "перков" к примеру за 20000 золотых можно будет ударить всех противников в радиусе 128 блоков молнией, а за 5000 вам укажет направление противника относительно вашего положения, в радиусе 256 блоков (Север, Восток, и.т.д) Интерфейс текстовый, для покупки нужно будет ввести команду в чате.
Внесение валюты в казну будет анонсироваться в чате королей и их подопечных.
 
  • Нравится
Реакции: Wapr
В основном ресурсы, которые помогут в обороне или в нападении (обсидиан, динамит, и.т.п), в общем аналог гива, только за валюту.
В будущем запланирована покупка "перков" к примеру за 20000 золотых можно будет ударить всех противников в радиусе 128 блоков молнией, а за 5000 вам укажет направление противника относительно вашего положения, в радиусе 256 блоков (Север, Восток, и.т.д) Интерфейс текстовый, для покупки нужно будет ввести команду в чате.
Внесение валюты в казну будет анонсироваться в чате королей и их подопечных.
Помоему для игроков будет лучше сделать интерфейс в виде инвентаря, ибо писать команду и дополнительные к нему аргументы неудобно и долго.
 
Последнее редактирование:
Помоему для игроков будет лучше сделать интерфейс в виде инвентаря, ибо писать команду и дополнительные к нему аргументы неудобно и долго.
Для инвентаря придётся вписать команду, чтобы открылся инвентарь, найти в нём нужный предмет, перетащить к себе в инвентарь, а это больше действий требующихся от игрока и больше кода.
Кстати команды конквеста просты до безобразия
/tec shop buy tnt
/tec shop sell
Для прописывания в регионе
/tec region setplayer nick , для списывания игрока ввести ту же команду. Аналогично для большинства команд.
 
Для инвентаря придётся вписать команду, чтобы открылся инвентарь, найти в нём нужный предмет, перетащить к себе в инвентарь, а это больше действий требующихся от игрока и больше кода.
Кстати команды конквеста просты до безобразия
/tec shop buy tnt
/tec shop sell
Для прописывания в регионе
/tec region setplayer nick , для списывания игрока ввести ту же команду. Аналогично для большинства команд.
Цензоров разбудить, пусть гайд по новому режиму делают)
 
Цензоров разбудить, пусть гайд по новому режиму делают)
Они не знают большинства команд, и прочих мелочей) Если уж и напишут, то по самому описанию conquest'а)
Собрать команду администрации и написать нормальный гайд, а то я помню как криво мы с хелперами писали гайд про первый хардкор) Вписать основное, базовое, то бишь команды все, описание команд, все таймы кд и т.д.
 
Как долго будет длится Conquest - до определенной даты, или же до полного господства одного из королевств?
Могут ли игроки поднять "бунт", тем самым "свергнуть" администратора?
Может ли одно из королевств сдаться?
Как будут добываться ресурсы? (или же это обычный ограниченный мир, только разделенный?)
Будут ли деревни жителей?
Драконы? о.о Драконы края, или какие-нибудь уникальные? Или же кучка скрепленных в McEdit зомби и летучих мышей? :)
Если в Conquest войдут лишь игроки, уже вступившие в королевство - что будет с остальными? Наблюдатели, или отдельный мир/сервер для них?
На этом вроде все. Жду ответа :)
 
Как долго будет длится Conquest - до определенной даты, или же до полного господства одного из королевств?
Могут ли игроки поднять "бунт", тем самым "свергнуть" администратора?
Может ли одно из королевств сдаться?
Как будут добываться ресурсы? (или же это обычный ограниченный мир, только разделенный?)
Будут ли деревни жителей?
Драконы? о.о Драконы края, или какие-нибудь уникальные? Или же кучка скрепленных в McEdit зомби и летучих мышей? :)
Если в Conquest войдут лишь игроки, уже вступившие в королевство - что будет с остальными? Наблюдатели, или отдельный мир/сервер для них?
На этом вроде все. Жду ответа :)
До полного господства одного королевства.
Если король не будет справляться с обязанностями, можно будет поднять вопрос о его замене.
Нет. Бои будут идти до последнего.
Это обычный ограниченный мир.
Будут.
Драконы края.
Придётся выбирать одну из сторон. Иначе дальше спавна не уйти.
 
Цензоров разбудить, пусть гайд по новому режиму делают)
да там совсем легко разобратся.
а, и кстати, каким образом зрители будут выберать стороны?
и разницы в привилегиях между первоначальным составом и этих самых зрителей будут?
 
Реализовал графическое отображение карты, вопрос в том, куда её размещать. Тут два варианта:
1. Можно загружать на сайт и отображать в виде изображения общей карты с цветом регионов.
Плюсы: Наглядно, Стильно, Модно, Молодёжно.
Минусы: Дополнительная организация и оптимизация.​
2. Можно отображать её в чате.
Плюсы: В организации и оптимизации не нуждается.
Минусы: Никак не наглядно.​
Код:
public void displayMap(){
  double x = 16;
  double z;
  String row;
  String region;
  String teamcolor;
  for(int i=0;i<=32;i++){
      row = "";
      z = -16;
      for(int j=0; j<=32;j++){
          region = TerraConquestRegion.getRegionId(x*256, z*256);
          teamcolor = TerraConquestRegion.getRegionTeam(region);
          row=row + teamcolor + " ";
          z++;
      }
      System.out.print(row);
      x--;
  }
}
public static String getRegionId(double x, double z){
  Double region_x = x/256;
  Double region_z = z/256;
  return region_x.intValue() + "," + region_z.intValue();
}
public static String getRegionTeam(String region){
  if(db.getString("regions."+region) != null){
      return db.getString("regions."+region+".team");
  }
  return "none";
}
Вывод:
123123321.png
 
При отсутствии аргумента к команде было невозможно получить несуществующий аргумент.
Собсна, в общем без понятия как нам исключить такую ситуацию другим способом.
Ведём яростное костылирование имеющихся плюшек.
Код:
//Сезон велосипедистов открыт, в методах выполнения команд есть фильтрация пустых переменных,
//пусть тогда жрут пустые переменные, а не исключения.
public static String getArg(String[] args, int index){
    try{
        args[index].length(); //Не делает НИЧЕГО, спецом нарочно натыкается на исключения.
        return args[index];
    }catch(ArrayIndexOutOfBoundsException e){
        return "";
    }
}
case("region"):
    switch(getArg(args,1)){
        case("setowner"): Regions.setOwner(invoker, getArg(args,2));  break;
        case("setbuild"): Regions.setBuild(invoker, getArg(args,2));  break;
        case("settype"):  Regions.setType(invoker, getArg(args,2));   break;
        case("tp"):       Regions.regionTp(invoker, getArg(args,2));  break;
        case("info"):     Regions.regionInfo(invoker,getArg(args,2)); break;
    }
break;
Код:
//Если же пропихнуть Regions.setOwner(invoker, args[2]); break;
//Мы получим оплеуху в виде исключения,
//так как элемента под номером 2 не существует и размер строкового массива args[] меньше чем требуется.
org.bukkit.command.CommandException: Unhandled exception executing command 'cq' in plugin TerraConquest v0.5a
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
Тестирование TerraConquest in a nutshell.
2014-07-07_02.24.14.png
 
6удет ли какой-ни6удь "эпический" шмот, или данжы, допустим, в определенных регионах?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху