Продажа по табличкам и автопродажа, локал/глобал бусты

Spokers

Пользователь
Сообщения
70
Решения
1
1)Я уже задавал подобный вопрос, но тут я дополню его "Автопродажа", по факту там одно и тоже, также про бусты была мысля сделать в файле каждого игрока буст, но тут проблема с глобал бустом тк его над выносить где-то и держать 30 минут а потом удалить, вернусь к продаже, мне надо продавать только блоки
2) Spigot 1.8
3) нету
[OFFTOPIC]Простите, но я не понимаю как это реализовать[/OFFTOPIC]
 
Решение
Обнулять его каждые 30 минут?

Java:
Map<Player, Float> privateBoost = new HashMap<Player, Float>();
float globalBoost = 4.5F;

/* устанавливаешь нужный тебе индивидуальный буст,
например privateBoost.put(event.getPlayer(), 5.0F)

тут мы каждые delay секунд обнуляем всем буст ->
*/
public void myAwesomeMethod() {
    new BukkitRunnable() {
        @Override
        public void run() {
            privateBoost.clear();
        }
    }.runTaskTimerAsynchronously(plugin, 20*delay, period);
    /**
        plugin - the reference to the plugin scheduling task
        delay - the ticks to wait before running the task for the first time
        period - the ticks to wait between runs
    */
}
// вызываешь потом этот метод где-нибудь, и все
...
Глобальный буст делается легко, не надо выносить его ни в какой файл.
Можешь хранить в переменных:
int mult = 1, time = 0;

А при активации множитель и время делаешь такими, какими указываешь.
Запускаешь BukkitScheduler, который каждую минуту из time вычитает 1, пока оно не станет равняться нулю (когда = 0, множитель ставишь 1, а шедуляр выключаешь).
 
Обнулять его каждые 30 минут?

Java:
Map<Player, Float> privateBoost = new HashMap<Player, Float>();
float globalBoost = 4.5F;

/* устанавливаешь нужный тебе индивидуальный буст,
например privateBoost.put(event.getPlayer(), 5.0F)

тут мы каждые delay секунд обнуляем всем буст ->
*/
public void myAwesomeMethod() {
    new BukkitRunnable() {
        @Override
        public void run() {
            privateBoost.clear();
        }
    }.runTaskTimerAsynchronously(plugin, 20*delay, period);
    /**
        plugin - the reference to the plugin scheduling task
        delay - the ticks to wait before running the task for the first time
        period - the ticks to wait between runs
    */
}
// вызываешь потом этот метод где-нибудь, и все
Авто объединение сообщений:

[OFFTOPIC]BuseSo ну вот, пока я писал код и копировал документацию, за меня все сделали[/OFFTOPIC]
 
[OFFTOPIC]Кхм, спасибо, есть варианты с автопродажей? [/OFFTOPIC]
Авто объединение сообщений:

Обнулять его каждые 30 минут?

Java:
Map<Player, Float> privateBoost = new HashMap<Player, Float>();
float globalBoost = 4.5F;

/* устанавливаешь нужный тебе индивидуальный буст,
например privateBoost.put(event.getPlayer(), 5.0F)

тут мы каждые delay секунд обнуляем всем буст ->
*/
public void myAwesomeMethod() {
    new BukkitRunnable() {
        @Override
        public void run() {
            privateBoost.clear();
        }
    }.runTaskTimerAsynchronously(plugin, 20*delay, period);
    /**
        plugin - the reference to the plugin scheduling task
        delay - the ticks to wait before running the task for the first time
        period - the ticks to wait between runs
    */
}
// вызываешь потом этот метод где-нибудь, и все
Авто объединение сообщений:

[OFFTOPIC]BuseSo ну вот, пока я писал код и копировал документацию, за меня все сделали[/OFFTOPIC]
Да каждые 30 минут
 
Последнее редактирование:
есть варианты с автопродажей?
Не знаю, где и как ты хранишь предметы для продажи, но ты можешь автоматически продавать точно так же как я и показал, например, спустя определенное время. Только я не советую для каждого запускать свой Runnable.
 
Не знаю, где и как ты хранишь предметы для продажи, но ты можешь автоматически продавать точно так же как я и показал, например, спустя определенное время. Только я не советую для каждого запускать свой Runnable.
Ладно
 
Назад
Сверху Снизу