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

Статус
Закрыто для дальнейших ответов.

LichKing2

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

event.setDamage(event.getDamage() * 1.5 ); // Увеличение урона в 1,5 раза
 
EntityDamageEvent event

event.setDamage(event.getDamage() * 1.5 ); // Увеличение урона в 1,5 раза
Вопрос, относится ли это к получаемому урону от игроков? Не сильно ли будет нагружаться сервер, если при каждом ударе по тебе плагин будет смотреть в бд, получать модификаторы урона? Отсюда еще вопрос - можно ли сделать переменные, привязанные к какому-то игроку, которые отображают эти модификаторы?

И, наконец, можно ли наносимый урон изменять таким же способом?
 
Вопрос, относится ли это к получаемому урону от игроков? Не сильно ли будет нагружаться сервер, если при каждом ударе по тебе плагин будет смотреть в бд, получать модификаторы урона?
плагин получит данные с бд в течении 0.00mc, а об нагружаемости подавно речи не пойдет. Вы вовсе можете один раз обратиться к бд и сохранить ничтожные данные в оперативке ввиде одной ячейки ( как крупица в стоге сена )
 
Вопрос, относится ли это к получаемому урону от игроков? Не сильно ли будет нагружаться сервер, если при каждом ударе по тебе плагин будет смотреть в бд, получать модификаторы урона? Отсюда еще вопрос - можно ли сделать переменные, привязанные к какому-то игроку, которые отображают эти модификаторы?

И, наконец, можно ли наносимый урон изменять таким же способом?
Map<String, Double> damage = new HashMap<String, Double> в помощь, получай игрока и урон с бд при загрузке плагина, а дальше уже работай с этой мапой
 
Map<String, Double> damage = new HashMap<String, Double> в помощь, получай игрока и урон с бд при загрузке плагина, а дальше уже работай с этой мапой
Спасибо, но тут одна проблемка.

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. Может, в кодировке какая-то проблема?
 
player.getName()
PlayerList - это список игроков в табе, там можно даже ник длинной 128 символов на русском выставить через setPlayerListName.
Та же проблема, решил проверить, какой там ник в переменную приходит:
player.sendMessage(pl);
Приходит Krya
 
Сейчас бы строки через == сравнивать в 2к18.
хз, раньше на c# через "==" сравнивал данные типа String, на c++ через strcmp, но там были строки типа char*. Вот и подумал, ну раз String - то через "==" сравнивать) А как тогда? По-моему, должен работать этот метод)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх