1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как сделать что бы команду можно выполнять в определённом месте???

Тема в разделе "Помощь", создана пользователем _EneRo_, 5 апр 2019.

Статус темы:
Закрыта.
  1. Автор темы
    _EneRo_

    _EneRo_ Активный участник Пользователь

    Баллы:
    76
    Как сделать что бы команду можно выполнять в определённом месте???
    Например: Хочу что-бы команду /auc выполняли в определённом месте
     
  2. HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Ну, как вариант, дать право, запретить её в регионе __global__ и разрешить в нужном.
     
  3. Автор темы
    _EneRo_

    _EneRo_ Активный участник Пользователь

    Баллы:
    76
    А как сделать что бы писало что команда разрешенна на /warp auc
     
  4. HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Не думаю, что как-либо, кроме как самописом.
     
  5. Автор темы
    _EneRo_

    _EneRo_ Активный участник Пользователь

    Баллы:
    76
    Я играю на 5 серверах,и на этих все серверах есть такая штучка не думаю что 5+ серверов писали разные плагины на 1 функцию
     
  6. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
    Проверяй координаты игрока. В 3 цикла for это делается, и если все ок, то выполняй команду, иначе нет.

    Сейчас мода продавать сборку сервера. Раньше так вообще заходишь на 10 серверов и все под копирку, кроме лобби и названия да прочей косметики))
     
    Последнее редактирование: 6 апр 2019
  7. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
    Код не тестил, но что-то такое:
    PHP:
    //Координаты игрока берем округленные
    for(int x=<число>; x<=<число>; x++){
    for(
    int y=<число>; y<=<число>; y++){
    for(
    int z=<число>; z<=<число>; z++){
    if((
    playerX == x) & (playerY == y) & (playerZ == z)){
    //игрок в нужной зоне
    return;
    }
    }
    }
    }
    //игрок не в нужной зоне
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
  9. Автор темы
    _EneRo_

    _EneRo_ Активный участник Пользователь

    Баллы:
    76
    Спс попробую
     
  10. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
    Зачем использовать api, если можно просто проверить, есть ли игрок в зоне?
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    То и делается. Тупо проверяем наличие игрока в кубоиде.
     
  12. _Ruleto4ka_

    _Ruleto4ka_ Активный участник Пользователь

    Баллы:
    76
    Не давно начал изучать java,тут просто надо написать под этот код плагин,или в коде надо что-то вписывать(Пример:размер мира,где будет запрещаться команда,где разрешаться)
     
  13. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
    Тут пишешь с какой по какую координату (x, y, z соответственно смотреть). Изи использовать))
     
  14. _Ruleto4ka_

    _Ruleto4ka_ Активный участник Пользователь

    Баллы:
    76
    А это потом что?
     
  15. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
    Видишь код?
    PHP:
    //Координаты игрока берем округленные
    for(int x=<число>; x<=<число>; x++){
    for(
    int y=<число>; y<=<число>; y++){
    for(
    int z=<число>; z<=<число>; z++){
    if((
    playerX == x) & (playerY == y) & (playerZ == z)){
    //игрок в нужной зоне
    return;
    }
    }
    }
    }
    //игрок не в нужной зоне
    Пиши его в onCommand, вот так:
    (код набран на телефоне, не тестировал, возможны ошибки)
    PHP:
    @Override
    public boolean onCommand(CommandSender senderCommand cmdString labelString[] args) {
    if(
    cmd.equalsIgnoreCase("example"){
    if(
    sender instanceof Player) {
    Player pl = (playersender;
    int playerX = (int)pl.getX(); //пишу на телнфоне, апи только учу, не помню, может надо так: pl.getLocation().getX и т.п.
    int playerY = (int)pl.getY();
    int playerZ = (int)pl.getZ();
    //Координаты игрока берем округленные, поэтому используем явное преобразование примитивных типов (приведение типов) - с терминами у меня слабо, если где-то чего не так сказал, сори.
    //------
    //Координаты начала зоны:
    int xBegin = -50;
    int yBegin 30;
    int zBegin 147;
    //Координаты конца зоны:
    int xEnd 100;
    int yEnd 90;
    int zEnd = -80;
    //---------------
    for(int x=xBeginx<=xEndx++){
    for(
    int y=yBeginy<=yEndy++){
    for(
    int z=zBeginz<=zEndz++){
    if((
    playerX == x) & (playerY == y) & (playerZ == z)){
    //игрок в нужной зоне
    return;
    }
    }
    }
    }
    //игрок не в нужной зоне
    return true;
    }
    else
    {
    //команда введена из консоли
    return true;
    }
    }
    return 
    true;
    }
     
  16. Namer_PRO

    Namer_PRO Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Namer_PRO
Статус темы:
Закрыта.

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