• Услуги и сервис от третьих лиц. Внимание!

    Rubukkit.org не может гарантировать добропорядочность всех пользователей. Не станьте жертвой мошенничества, требуйте гарантии от продавца и проверяйте достоверность информации.
    Rubukkit.org не имеет никакого отношения к торговле в данном разделе.
    • Запрещена любая коммерческая деятельность, которая затрагивает исходный код серверной площадки Bukkit или игры Minecraft.
    • Запрещено продавать сборки сервера и модификации плагинов.
    • Запрещено заниматься перепродажей ключей Minecraft.
    • Запрещена любая деятельность, нарушающая авторские права.
    • Полные правила раздела

Требуется исполнитель Программист-JAVA (Легкое и оплачиваемое задание)

Vedroyder

Старожил
Пользователь
Баллы
103
Имя в Minecraft
Vedroyder
Ищу JAVA-программиста для написания костыля.

Суть,кратко:
Из-за кривого взаимодействия веб-шопа и .dat-файлов игроков (/world/players)
иногда в дат-файлы забивается неправильное значение для урона игроков.
Речь идет о модификаторах атаки - по идее, когда игрок держит какой-либо предмет, у него добавляется модификатор атаки, из которого складывается суммарный дамаг.Но по непонятным причинам он подвисает, и когда игрок убирает предмет из руки, модификатор атаки остается,в результате имеем у некоторых игроков по 10 и более модификаторов атаки, и суммарный дамаг больше сотни.

Покажу на скринах из nbt-editor:
(Игрок с аж 4 модификаторами атаки, наносит урон рукой под сотню)
2R7dL8f1cPU.jpg

На скрине видно, что у него 4 модификатора атаки. На момент выхода из игры он не держал в руке ничего, т.е по идее у него должен быть дамаг=1 + 0 модификаторов атаки, т.е. еденица на выходе, но рукой он бьет по сотне.
Разверну модификатор, имею внутри:
NKKelktrGqs.jpg

Модификатор от держания в руке инструмента на 18 ед. (Да, у нас есть такие инструменты, это нормально. Но дело в том,что он опять же не держит этот инструмент в руке, и более того у него еще 3 модификатора атаки).

Варианты решения:

1). Закроненная программа которая каждые n-часов проверяет все профиля игроков и удаляет у них все модификаторы атаки (ну или обнуляет).
Рассматриваю даже этот вариант.

2).Серверный мод, который проверяет .dat-файлы игроков и чистит модификаторы атаки, например сразу после выхода игрока из игры (т.е. после того как дат файл сохранился и не используется,чтобы нормально его перезаписать).

Платформа : mcpc+ 1.6.4 , последний билд до ее смерти, forge965.
Оплата будет достойная если все будет работать, предоплату даю по отзывам.
 
Последнее редактирование:
the.just3 (Germany). Пиши, все сделаем.
 
Ап! Подправил тему, все еще актуально!
 
Судя по всему данный баг вылезает при использовании CombatLog/CombatTag. А именно, игрок логофается при PVP таге, далее его вышеозначенные плагины убивают. У игрока чистится инвентори, однако атрибуты от прошлого оружия остаются. Далее игрок заходит в игру, умирает и возрождается в следствии чего получает "убер руку" с кучей дамага.
Ковырялся в nms данных, стало грустно. Как примитивный способ, сунуть такому "особо умному" любой предмет с дамагой.

Код:
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        Player player = e.getPlayer();
        if (player.getHealth() <= 0) {
            player.setItemInHand(new ItemStack(Material.WOOD_SWORD));
            player.saveData();
        }
        player.sendMessage(ChatColor.GOLD + "Вы умерли, для утешения мы дарим вам этот меч!");
    }
 
Последнее редактирование:
Судя по всему данный баг вылезает при использовании CombatLog/CombatTag. А именно, игрок логофается при PVP таге, далее его вышеозначенные плагины убивают. У игрока чистится инвентори, однако атрибуты от прошлого оружия остаются. Далее игрок заходит в игру, умирает и возрождается в следствии чего получает "убер руку" с кучей дамага.
Ковырялся в nms данных, стало грустно. Как примитивный способ, сунуть такому "особо умному" любой предмет с дамагой.

Код:
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
        Player player = e.getPlayer();
        if (player.getHealth() <= 0) {
            player.setItemInHand(new ItemStack(Material.WOOD_SWORD));
            player.saveData();
        }
        player.sendMessage(ChatColor.GOLD + "Вы умерли, для утешения мы дарим вам этот меч!");
    }
у меня нет плагинов которые убивают за пвп-эскейп.
 
Назад
Верх