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

Помогите Спавн монстров днем

dnebik

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
dnebik
гуглил я гуглил ни как не нашел, но нашел подобный плагин где есть такая функция, но он слишком много лишнего дает. Так что жду советов на то, как это осуществить
 
гуглил я гуглил ни как не нашел, но нашел подобный плагин где есть такая функция, но он слишком много лишнего дает. Так что жду советов на то, как это осуществить
1. Спавним
2. Отменяем горение
 
Что мешает в ручную заспавнить монстра?
что вы имеете в виду?
Можно всегда держать ночь на сервере, а игроку отправлять дневное время.
ну тогда марочно делать чтобы еще и время менялось у игрока на ночь ну и не только
если же нет то подскажите как это вообще сделать о то я не представляю
может можно как то изменить уровень освещения при котором моб может спавнится
 
что вы имеете в виду?

ну тогда марочно делать чтобы еще и время менялось у игрока на ночь ну и не только
если же нет то подскажите как это вообще сделать о то я не представляю
Время игрока меняется методом Player.setPlayerTime(), время в мире World.setTime()
Менять уровень освещённости блоков куда более муторно, поверьте.
 
Время игрока меняется методом Player.setPlayerTime(), время в мире World.setTime()
Менять уровень освещённости блоков куда более муторно, поверьте.
хорошо, тогда как синхронизировать время со всеми игроками, чтобы не было, что у одного день а у другого ночь?
 
я наверное супер затупчик, но я конкретно не понимаю как мне сделать Player.setPlayerTime() и World.setTime()
так чтобы первое шло у всех одинакова, а второе было неизменяемо скажем 20000
и главное я не пойму в какой ивент или еще что это запихнуть
 
С таких что идёт речь не о ручном спавне мобов, а о таком же как ночью.
А, вот вы о чем. Ну тогда различия во времени подходят. Или можно почитать вики о том, как спавнятся монстры и по наступлении дня спавнить самому.
я наверное супер затупчик, но я конкретно не понимаю как мне сделать Player.setPlayerTime() и World.setTime()
так чтобы первое шло у всех одинакова, а второе было неизменяемо скажем 20000
и главное я не пойму в какой ивент или еще что это запихнуть
Создаем Шедуллер в котором каждый тик прибавляем ко времени всех игроков 1. Для мира устанавливаем нужное время и в gamerule отключаем ход времени.
 
А, вот вы о чем. Ну тогда различия во времени подходят. Или можно почитать вики о том, как спавнятся монстры и по наступлении дня спавнить самому.

Создаем Шедуллер в котором каждый тик прибавляем ко времени всех игроков 1. Для мира устанавливаем нужное время и в gamerule отключаем ход времени.
Можно каждый тик, а можно каждые 10 - по 10 тиков прибавлять, чтобы нагрузка меньше была, хоть она и так не большая.
 
Можно каждый тик, а можно каждые 10 - по 10 тиков прибавлять, чтобы нагрузка меньше была, хоть она и так не большая.
так рывки будут. Нагрузка не меняется. Сервер это делал и без тебя, до того как ты отключил в gamerule.
 
ну ок время я могу застопорить через /gamerule
А, вот вы о чем. Ну тогда различия во времени подходят. Или можно почитать вики о том, как спавнятся монстры и по наступлении дня спавнить самому.

Создаем Шедуллер в котором каждый тик прибавляем ко времени всех игроков 1. Для мира устанавливаем нужное время и в gamerule отключаем ход времени.

Код:
    public static void main(String args[]) throws InterruptedException {
        Timer time = new Timer();
        ScheduledTask st = new ScheduledTask();
        time.schedule(st, 0, 1);
        for (int i = 0; i <= 23000; i++) {
            Thread.sleep(27);
            Player[] onlinePlayers = Bukkit.getServer().getOnlinePlayers();
            for(Player player : onlinePlayers){
                i++;
                player.setPlayerTime(i, true);
            }
        }
    }

не работает
 
ну ок время я могу застопорить через /gamerule


Код:
    public static void main(String args[]) throws InterruptedException {
        Timer time = new Timer();
        ScheduledTask st = new ScheduledTask();
        time.schedule(st, 0, 1);
        for (int i = 0; i <= 23000; i++) {
            Thread.sleep(27);
            Player[] onlinePlayers = Bukkit.getServer().getOnlinePlayers();
            for(Player player : onlinePlayers){
                i++;
                player.setPlayerTime(i, true);
            }
        }
    }

не работает
wtf

http://wiki.bukkit.org/Scheduler_Programming
 

Код:
    public void onEnable(){
        getServer().getPluginManager().registerEvents(this, this);
        saveDefaultConfig();
        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
        scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
            public void run() {
                    Player[] onlinePlayers = Bukkit.getServer().getOnlinePlayers();
                    for(Player player : onlinePlayers){
                        player.setPlayerTime(1000, true);
                    }
            }
        }, 0L, 27L);
    }
итог тот же
 

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

Назад
Верх