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

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

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

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

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

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

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    И это тоже.[DOUBLEPOST=1489944774,1489944690][/DOUBLEPOST]Но у тебя все равно нету зацепки к ентитям кроме как получить их через гетентити.
     
  4. Автор темы
    Exception_Prototype

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

    Баллы:
    46
    [​IMG][DOUBLEPOST=1489944818,1489944785][/DOUBLEPOST]
    Ну, я могу получить их когда они наносят урон другому энтити, а дальше...
     
  5. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    А еще тебе придется ручками дергать боундинг бокс каждый тик, а это уже x2 боундинг бокс на одну ентити== x2 лагги.[DOUBLEPOST=1489945093][/DOUBLEPOST]
    Не имея ивента на дамаг
     
  6. Автор темы
    Exception_Prototype

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

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

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

    Баллы:
    46
    Лично это не помогает:
    Лишние 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);
                }
    
            }
    
        }
    
     
  8. Автор темы
    Exception_Prototype

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

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

    alexandrage Администратор

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

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

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

    alexandrage Администратор

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

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

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

    alexandrage Администратор

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

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

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    InteractEvent, getItemInMainHand, calculate vector, cancell or no
     
  17. alexandrage

    alexandrage Администратор

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

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

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

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

    alexandrage Администратор

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

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

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

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    А как он ходить будет?[DOUBLEPOST=1489947420,1489947390][/DOUBLEPOST]А вообще синусы косинусы все дела. Питч и вай назначить игроку.
     

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