Помогите Невидимость игроков с помощью пакетов.

  • Автор темы Автор темы FyuzYT
  • Дата начала Дата начала

FyuzYT

Активный участник
Пользователь
Баллы
76
Всем здрасте. Нужно сделать переключатель видимости игроков и чтобы игроки были видны как призраки -> через team scoreboard -> seefriendlyinvisibles. Но нужно сделать так чтобы игроку которого хотят сделать призраком не давался эффект невидимости. Думаю что это можно реализовать с помощью пакетов.

Буду благодарен если Вы напишите пример кода невидимости игроков с помощью пакетов.
 
Всем здрасте. Нужно сделать переключатель видимости игроков и чтобы игроки были видны как призраки -> через team scoreboard -> seefriendlyinvisibles. Но нужно сделать так чтобы игроку которого хотят сделать призраком не давался эффект невидимости. Думаю что это можно реализовать с помощью пакетов.

Буду благодарен если Вы напишите пример кода невидимости игроков с помощью пакетов.
из "запросы на разработку плагинов"? хах. Никак. Нужен эффект невидимости.
 
А так: посылаешь пакет что игрок невидимый другим игрокам и пакет добавления в команду.
 
Эмм, попробуй так:

Код:
Player you = ......;
Player playerToHide = ......;
p.hidePlayer(playerToHide);
 
Эмм, попробуй так:

Код:
Player you = ......;
Player playerToHide = ......;
p.hidePlayer(playerToHide);
Ему нужен эффект невидимости, т.е чтобы игрок не полностью прозрачным был. Такое только со скорборд командами можно сделать
 
Отправил пакет, эффект появился, игрока видно, но скорборд со своей прозрачностью на это не реагирует...
Код:
PacketContainer packet = new PacketContainer(ENTITY_EFFECT);
int effectID = effect.getType().getId();
int amplifier = effect.getAmplifier();
int duration = effect.getDuration();
int entityID = target.getEntityId();
packet.getIntegers().write(0, entityID);
packet.getBytes().write(0, (byte) effectID);
packet.getBytes().write(1, (byte) amplifier);
packet.getIntegers().write(1, duration);
packet.getBytes().write(2, (byte) 0);
try {pm.sendServerPacket(target, packet);} catch (InvocationTargetException e) {e.printStackTrace();}
QyjT0TKSQseCcJVALXh6JA.png
CKQqPAWqQo_VDpOt8f_lUQ.png
 
Отправил пакет, эффект появился, игрока видно, но скорборд со своей прозрачностью на это не реагирует...
Код:
PacketContainer packet = new PacketContainer(ENTITY_EFFECT);
int effectID = effect.getType().getId();
int amplifier = effect.getAmplifier();
int duration = effect.getDuration();
int entityID = target.getEntityId();
packet.getIntegers().write(0, entityID);
packet.getBytes().write(0, (byte) effectID);
packet.getBytes().write(1, (byte) amplifier);
packet.getIntegers().write(1, duration);
packet.getBytes().write(2, (byte) 0);
try {pm.sendServerPacket(target, packet);} catch (InvocationTargetException e) {e.printStackTrace();}
QyjT0TKSQseCcJVALXh6JA.png
CKQqPAWqQo_VDpOt8f_lUQ.png
Может потому что в скор борд тоже надо добавить и отправить всю инфу о команде...?
 
Я так и не понял, в каком случае достигается подобный эффект. Scoreboard + PotionEffect?
Приведи код, который работает, а я уже с пакетами подскажу.
 
Я так и не понял, в каком случае достигается подобный эффект. Scoreboard + PotionEffect?
Приведи код, который работает, а я уже с пакетами подскажу.
При добавлении флага в команду, в которой оба игрока, точное название не помню
 
Код:
public void hide(Player to){
    for (Player o : Bukkit.getOnlinePlayers()){
        if (!o.getName().equalsIgnoreCase(to.getName())){
            hideEntity(to, o);
        }
    }
}

public void show(Player to){
    for (Player o : Bukkit.getOnlinePlayers()){
        if (!o.getName().equalsIgnoreCase(to.getName())){
            showEntity(to, o);
        }
    }
}

private static void addToTeam(Player p){
    Team g;
    if (p.getScoreboard().getTeam("ghosts") != null) g = p.getScoreboard().getTeam("ghosts");
    else{
        g = p.getScoreboard().registerNewTeam("ghosts");
        g.setCanSeeFriendlyInvisibles(true);
    }

    for (Player o : Bukkit.getOnlinePlayers()){
        g.addPlayer(o);
    }
}

public static void prepare(){
    for (Player p : Bukkit.getOnlinePlayers()){
        setInvisible(p);  // Обычное зелье невидимости
        addToTeam(p);
        hide(p);
    }
}

Вот собсна код, буду благодарен если поможете с пакетами (а именно шаманство с поушен эффектами)
UPD: Обновил, тот код оказался не рабочим...
 
Последнее редактирование:
Назад
Верх