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

Помогите Изменение урона

Тема в разделе "Разработка плагинов для новичков", создана пользователем LichKing2, 16 июл 2018.

Статус темы:
Закрыта.
  1. Автор темы
    LichKing2

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

    Баллы:
    68
    Имя в Minecraft:
    LichKing2
    Подскажите, можно ли изменить получаемый урон на какой-то процент/сколько-то едениц? С помощью каких методов? Искал в spigot API, не нашел, мб плохо искал
     
  2. Krutius

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

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    EntityDamageEvent event

    event.setDamage(event.getDamage() * 1.5 ); // Увеличение урона в 1,5 раза
     
  3. Автор темы
    LichKing2

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

    Баллы:
    68
    Имя в Minecraft:
    LichKing2
    Вопрос, относится ли это к получаемому урону от игроков? Не сильно ли будет нагружаться сервер, если при каждом ударе по тебе плагин будет смотреть в бд, получать модификаторы урона? Отсюда еще вопрос - можно ли сделать переменные, привязанные к какому-то игроку, которые отображают эти модификаторы?

    И, наконец, можно ли наносимый урон изменять таким же способом?
     
  4. Akame

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

    Баллы:
    76
    Имя в Minecraft:
    Akame
    плагин получит данные с бд в течении 0.00mc, а об нагружаемости подавно речи не пойдет. Вы вовсе можете один раз обратиться к бд и сохранить ничтожные данные в оперативке ввиде одной ячейки ( как крупица в стоге сена )
     
  5. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Map<String, Double> damage = new HashMap<String, Double> в помощь, получай игрока и урон с бд при загрузке плагина, а дальше уже работай с этой мапой
     
  6. Автор темы
    LichKing2

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

    Баллы:
    68
    Имя в Minecraft:
    LichKing2
    Спасибо, но тут одна проблемка.

    public void onLogin(PlayerLoginEvent event) {
    Player player = event.getPlayer();
    String pl = player.getPlayerListName();
    if(pl == "Krya") damage.put(pl, 10.0);
    else damage.put(pl, 3.0);
    }

    Создал двух персонажей, одного из них с ником Krya. Но в обоих случаях ветка условия переходит в else. Может, в кодировке какая-то проблема?
     
  7. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    player.getName()
    PlayerList - это список игроков в табе, там можно даже ник длинной 128 символов на русском выставить через setPlayerListName.
     
  8. Автор темы
    LichKing2

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

    Баллы:
    68
    Имя в Minecraft:
    LichKing2
    Та же проблема, решил проверить, какой там ник в переменную приходит:
    player.sendMessage(pl);
    Приходит Krya
     
  9. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Сейчас бы строки через == сравнивать в 2к18.
     
  10. Автор темы
    LichKing2

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

    Баллы:
    68
    Имя в Minecraft:
    LichKing2
    хз, раньше на c# через "==" сравнивал данные типа String, на c++ через strcmp, но там были строки типа char*. Вот и подумал, ну раз String - то через "==" сравнивать) А как тогда? По-моему, должен работать этот метод)
     
  11. Автор темы
    LichKing2

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

    Баллы:
    68
    Имя в Minecraft:
    LichKing2
    В общем, спасибо всем за помощь)
     
Статус темы:
Закрыта.

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