Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Совет Ферма. (на bol)

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем repeat, 8 авг 2011.

  1. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    от безделья периодического сажусь писать скрипт для
    BucketOfLua - Lua for Bukkit
    принцип пока наипростейший - прямоугольная область с точками х1,z1; х2,z2 где отслеживаются животные определённого типа (пусть будут Pig). в момент когда игра их метит как умершие своей смертью (isDead() = true) и собирается удалить из мира (entity.remove()) прервать это действие или спавнить новое животное, если отключить удаление не получится.
    Дальше можно будет уже думать о рождаемости новых особей.

    Сейчас меня интересует может есть у кого алгоритм, рабочая версия определения существа в заданной области? Пока я собираюсь использовать вариант: выяснять по координате(*) чанк, брать всех животных в чанке брать у каждого координату и проверять внутри ли он заданной области. Если внутри, проверять состояние isDead().

    (*) - алгоритм выяснения чанков покрытых заданной площадью очень приветствуется.
     
    D_ART и alexoz12 нравится это.
  2. Хостинг MineCraft
    <
  3. miker9

    miker9 Активный участник

    Баллы:
    88
    Код:
        int cnoy = 0, cnox = 0;
              if(((maxX-minX)/16 -Math.floor((maxX-minX)/16))*16 - Math.ceil(minX/16)*16-minX <= 0)
                {
                    cnox=(int) ((maxX-minX)/16) + 1;
                }
                else if(((maxX-minX)/16 -Math.floor((maxX-minX)/16))*16 - Math.ceil(minX/16)*16-minX > 0)
                {
                    cnox=(int) ((maxX-minX)/16) + 2;
                }
    
                if(((maxY-minY)/16 -Math.floor((maxY-minY)/16))*16 - Math.ceil(minY/16)*16-minY <= 0)
                {
                    cnoy=(int) ((maxY-minY)/16) + 1;
                }
                else if(((maxY-minY)/16 -Math.floor((maxY-minY)/16))*16 - Math.ceil(minY/16)*16-minY > 0)
                {
                    cnoy=(int) ((maxY-minY)/16) + 2;
                }
            for(int i = 0; i < cnox; i++)
            {
                for(int k = 0; k < cnoy; k++)
                {
                    int X, Y;
                    X = (int)minX + i*16;
                    Y = (int)minY + k*16;
                    System.out.println(X + " " + Y);
                    //заменить на поиск чанка по координатам (world.getChunkAt(X, Y))
                }
            }
    Переменные maxX maxY minX minY типа double

    Это не lua но думаю смысл понятен.
     
  4. kursorik

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

    Баллы:
    76
    Имя в Minecraft:
    kursorik
    Lua и Java связаны друг с другом ?
     
  5. Mr_RoboMan

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

    Баллы:
    123
    OMG Зачем апать такую старую тему?
     

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