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

Помогите Спрятать игрока

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

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

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    ссылки в студию
     
    MineMan910 нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Метод с эффектом зелья никак не подходит, ибо амуниция на игроке и что у него в руке все видят. Подожду ещё идей и попробую вариант от @maniak89
     
  4. mayor123

    mayor123 Старожил Девелопер Пользователь

    Баллы:
    173
    При взаимодействии с Entity клиент отсылает 0x09 - использование существа, там информация о правом/левом клике. Далее идут разнообразные проверки на сервере, не суть. Суть в том, что EntityDamageByEntityEvent или PlayerInreractEntityEvent не вызовется, вызовется лишь PlayerInteractEvent. Попробуйте, там есть метод getBlock(), возьмите координаты блока, переберите всех игроков, их координаты сравните, привести их оба к int. Но даже если и получится сия операция, то бой будет не очень точным.
     
    HoShiMin, MineMan910, DPOH-VAR и ещё 1-му нравится это.
  5. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    буду пробовать
     
  6. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Решил попробовать LEFT_CLICK_AIR, но он почему то не работает, хотя LEFT_CLICK_BLOCK вполне работает

    Код:
        public void onPlayerInteract(PlayerInteractEvent event)
        {
            Action act;
            Player player = event.getPlayer();
            act = event.getAction();
     
            if(act == Action.LEFT_CLICK_AIR)
            {
                player.sendMessage("12345");
            }
     
  7. 1lyaSweeper

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

    Баллы:
    173
    Skype:
    Iswperr
    Имя в Minecraft:
    1lyaSweeper
    Скобочка public void onPlayerInteract(PlayerInteractEvent event) не закрыта (вот такая: } )
     
  8. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    не придирайся к скобкам, я его наспех вытащил и сюда вставил. сам факт в том, что LEFT_CLICK_AIR не работает, а LEFT_CLICK_BLOCK работает
     
  9. maniak89

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

    Баллы:
    63
    LEFT_CLICK_BLOCK отрабатывает ли когда я смотрю в небо допустим?(щас не могу проверить)
     
    Сникерсни нравится это.
  10. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Попробуйте отослать клиенту левый пакет, в котором некий игрок или моб имеет эффект невидимости. Будут ли тогда отображаться пузырьки?
    Возможно, пакет придется отправить далеко не один раз.

    UPD: пакет http://mc.kev009.com/Protocol#Entity_Effect_.280x29.29
     
    Сникерсни нравится это.
  11. unreal

    unreal Старожил

    Баллы:
    103
    Skype:
    xD_UNREAL
    Vanish Там сразу и поддержка плагинов разных.
     
  12. Jampire

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

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    ...
    учитесь тему читать)
     
  13. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Сегодня, по неясной причине удар по воздуху стал работать:confused:
    а не подскажешь как их отправлять?
     
  14. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Packet packet = new Packet41EntityEffect(ищите параметры конструктора);
    // или придется пакет редактировать вручную, если нельзя это сделать конструктором
    ((CraftPlayer)player).getHandler().netServerHandler.sendPacket( packet );

    UPD: в параметрах конструктора указываем id игрока и PotionEffect.
     
    Den_Abr нравится это.

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