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

Помогите Генерация цифр в мире из блоков

  • Автор темы Автор темы Dereku
  • Дата начала Дата начала

Dereku

Старожил
Пользователь
Баллы
173
Имя в Minecraft
_Dereku
Сабж - решил сделать авторизация/регистрацию как на nessus.lv, делаю капчу.
Сделал цифры трафаретами сейчас:
Java:
public void drawFive(int offset) {
        world.getBlockAt(-5 + offset, 65, z).setType(Material.STONE);
        world.getBlockAt(-5 + offset, 68, z).setType(Material.STONE);
        world.getBlockAt(-5 + offset, 69, z).setType(Material.STONE);
        world.getBlockAt(-5 + offset, 70, z).setType(Material.STONE);
        world.getBlockAt(-4 + offset, 64, z).setType(Material.STONE);
        world.getBlockAt(-4 + offset, 68, z).setType(Material.STONE);
        world.getBlockAt(-4 + offset, 70, z).setType(Material.STONE);
        world.getBlockAt(-3 + offset, 64, z).setType(Material.STONE);
        world.getBlockAt(-3 + offset, 68, z).setType(Material.STONE);
        world.getBlockAt(-3 + offset, 70, z).setType(Material.STONE);
        world.getBlockAt(-2 + offset, 64, z).setType(Material.STONE);
        world.getBlockAt(-2 + offset, 68, z).setType(Material.STONE);
        world.getBlockAt(-2 + offset, 70, z).setType(Material.STONE);
        world.getBlockAt(-1 + offset, 65, z).setType(Material.STONE);
        world.getBlockAt(-1 + offset, 66, z).setType(Material.STONE);
        world.getBlockAt(-1 + offset, 67, z).setType(Material.STONE);
        world.getBlockAt(-1 + offset, 70, z).setType(Material.STONE);
    }
но это много кода.
Как можно сделать это более элегантно?
 
Я бы украл капчу с какого-нибудь сайта и плагином перевел в блоки.
 
Я бы украл капчу с какого-нибудь сайта и плагином перевел в блоки.
Сама капча не проблема. Проблема в генерации самих блоков в мире. Ну как проблема, много кода, что мне не сильно нравится.

Видос, чтобы точно было понятно:

Правда, фон не нужен, у меня на шумы есть другой вариант.
 
Стибри из Digital Clock шаблоны.
Вообще можно сделать так:
При установке по трафаретам рассчитываешь для каждого место под цифру для каждой цифры хранишь нужный набор координат.
При обновлении цифр тупо стираешь все блоки и расставляешь нужные.
 
Стибри из Digital Clock шаблоны.
Вообще можно сделать так:
При установке по трафаретам рассчитываешь для каждого место под цифру для каждой цифры хранишь нужный набор координат.
При обновлении цифр тупо стираешь все блоки и расставляешь нужные.
Это я и сделал.
Значит, нет никаких более красивых решений данной задачи, да?
 
Это я и сделал.
Значит, нет никаких более красивых решений данной задачи, да?

Ну, можно, кончено, нарисовать картинки для каждой цифры(черные цифры на белом фоне), а потом считывать их и рисовать как по шаблону, но это будет довольно сложно.
 
Ну, можно, кончено, нарисовать картинки для каждой цифры(черные цифры на белом фоне), а потом считывать их и рисовать как по шаблону, но это будет довольно сложно.
Скорее не сложно, а нудно.

Хотя, оно работает, и это уже хорошо.
2014-07-24_21.32.36.png
 
Хотя, оно работает, и это уже хорошо.
Можешь попробовать спросить у @xDiP-а как это сделано, на его сервере "точно" такая же защита при входе, может и подскажет тебе что-то ;)
 
Я сначала выстраивал все буквы и цыфры, сохранял их, дальше уже использовал их как шаблон. Подгржаю символы во время запуска плагина, ну и дальше все по логике действий (позиции, типы блоков, и т.д.)
 
В общем, выжать из BukkitAPI большего не получится, как я понимаю.
Ну что ж, будем рисовать по одному блоку, щито тут поделать.
/thread
 
Назад
Верх