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

Помогите Рефлексия [Решено(Оооо дааа)]

Тема в разделе "Разработка плагинов для новичков", создана пользователем Exception_Prototype, 19 мар 2017.

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

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

    Баллы:
    96
    Т.е. мои подозрения верны? Рефлекия при онлайне 80-90 игроков и хрен знает сколько выпущенных пуль в секунду сделает плохо серверу?
     
  2. alexandrage

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

    Баллы:
    173
    И это тоже.
    Но у тебя все равно нету зацепки к ентитям кроме как получить их через гетентити.
     
  3. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    [​IMG]
    Ну, я могу получить их когда они наносят урон другому энтити, а дальше...
     
  4. alexandrage

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

    Баллы:
    173
    А еще тебе придется ручками дергать боундинг бокс каждый тик, а это уже x2 боундинг бокс на одну ентити== x2 лагги.
    Не имея ивента на дамаг
     
  5. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    А как насчёт варика отмены взаимодействия в ноу пвп зоне? Каким способом можно корректно реализовать отмену взаимодействия так, чтобы пушка не успевала выстрелить?
     
  6. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Лично это не помогает:
    Лишние else и т.д. где инвертирования на данный момент нет чисто для дебага.
    Код:
        @EventHandler
        public void onPlayerInteractEvent(PlayerInteractEvent event) {
            if (plugin.isDebug) {
                Bukkit.broadcastMessage("[Debug] call PlayerInteractEvent");
            }
    
            p = event.getPlayer();
            mgr = plugin.getWorldGuard().getRegionManager(p.getWorld());
            if (mgr.getApplicableRegions(p.getLocation()).allows(DefaultFlag.PVP)) {
                if (plugin.isDebug) {
                    p.sendMessage("[Debug] PvP: true");
                }
            } else {
                if (plugin.isDebug) {
                    p.sendMessage("[Debug] PvP: false");
                }
                if (plugin.isCanUse(p.getItemInHand().getType())) {
                    p.sendMessage("[Debug] isCanUse: true");
                } else {
                    p.sendMessage("[Debug] isCanUse: false");
                    p.sendMessage(CHAT_PREFIX + ChatColor.RED + "Вы не можете взаимодействовать с этим предметом находясь в безопасной зоне.");
                    event.setCancelled(true);
                }
    
            }
    
        }
    
     
  7. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    С пушкой в руке, просто айтемом. Разве обычный итеракт не подходит?
     
  8. alexandrage

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

    Баллы:
    173
    А это. Смотреть гет директион и делать овер900 вычислений. Лучше не станет.
     
  9. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Писец, неужели так трудно отменить обычный ПКМ пользователя с конкретным предметом в руке.
     
  10. alexandrage

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

    Баллы:
    173
    Отменить то можно, но тебе же нужно просчитать вектор полета пули.
     
  11. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Вы имеете ввиду чтобы пули в небо летели? или что?
     
  12. alexandrage

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

    Баллы:
    173
    Но это не точная наука, ибо игроки двигаются и во время вычисление на пути может. или не может быть игрока. Но это не значит, что он там будет. когда реалпуля туда долетит.
     
  13. Blc_Dragon

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

    Баллы:
    76
    нет, ты при клике вытаскиваешь Direction того кто стрельнул, и расчитываешь куда полетит пулька.
    если она в кого то врезалась, то отменяешь
     
  14. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Я имею ввиду отменить взаимодействие с оружие настолько быстро, чтобы оружие не успело выстрелить.
     
  15. Blc_Dragon

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

    Баллы:
    76
    InteractEvent, getItemInMainHand, calculate vector, cancell or no
     
  16. alexandrage

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

    Баллы:
    173
    Да оно и так отменится еще до выстрела. Но тебе же надо вектор знать, инче получится что игрок в пвп зоне сможет убивать игрока вне пвп зоне. А тот в свою очередь сасай, из нопвпзоны не сможет ответить.
     
  17. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    1. Оружие даже при отмене успевает выстрелить.
    2. Игрок который стреляет из ПВП зоны НЕ может повредить того, кто находится в НОУ ПВП зоне.

    Вообще как я понял.
    Происходит взаимодействие одного из нужного нам предмета. Если игрок находится в ноу пвп зоне == типо отменяем сразу же и берём вектор игрока. Просчитываем по этому вектору смог бы он попасть в кого то (т.е. получаем по направлению взгляда игрока? и если да, то... ЧТО? Контроля над пулей нет, всё равно не получается отменить дамаг. Взаимодействие с оружием не успевает отменится до того, как оно уже выстрелило.
     
  18. alexandrage

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

    Баллы:
    173
    Что говорит о костыле с 250 пакетом или чего еще. Тогда никак. Возвращаемся к патчу мода.
     
  19. Автор темы
    Exception_Prototype

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

    Баллы:
    96
    Чисто ради прикола, не подскажите, как задать правильно локацию игроку, чтобы его взгляд перенаправился до упора вверх.
     
  20. alexandrage

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

    Баллы:
    173
    А как он ходить будет?
    А вообще синусы косинусы все дела. Питч и вай назначить игроку.
     

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