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

Плагин [ECON/RPG] Griswold v0.073 – починка и зачарование вещей без команд! [1.7.9-R0.2]

Тема в разделе "Релизы плагинов", создана пользователем Toxuin, 5 май 2012.

  1. HomeFox

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

    Баллы:
    68
    Имя в Minecraft:
    HomeFox
    На серверах выше версии 1.5.2 редко кто сидит, поэтому пришлось откатиться с 1.7.2 на 1.5.2 для того, чтобы народ заходил на сервер. Иначе прогорели бы.
     
  2. Хостинг MineCraft
    <
  3. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    HomeFox, не знал. Я думал, сейчас актуальные версии 1.6.4 и 1.7.2.
     
    ql_Nik_lp нравится это.
  4. HomeFox

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

    Баллы:
    68
    Имя в Minecraft:
    HomeFox
    Кстати, плагин работает нормально. Спасибо.
     
  5. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Установил себе на сервер Forge, моды Mo'Creatures (новая живность), Super Slopes (живая изгородь и угловые блоки) и Balcon's Mod (новое оружие). В свете появления множества новых инструментов пришлось приучать к ним плагин GriswoldReloaded.

    Сначала пришлось откатить версию плагина на 0.1 версии назад. Класс версии 1_7_R2 последней версии MCPC+ оказался незнаком. Долго парился, пока это выяснил. Дело в том, что, как я понял, там внутри нет этих классов, но есть таблица переадресаций на другие классы. Я нашел эту таблицу и увидел, что там нет 1_7_R2, а есть только 1_7_R1. Изменив класс, удалось починить зачаровывание ванильных шмоток.

    С зачаровыванием модовых шмоток пришлось повозиться. 92 предмета, к каждому пришлось писать отдельную формулу вычисления цены ремонта, привязывая цены к ванильным материалам, уже существующим в конфиге.

    Самое приятное - переделанный плагин имеет обратную совместимость с обычным баккитом 1.7.2 (не 1.7.5!). То есть, удалось реализовать прозрачность нестандартных блоков - обычный баккит с ними в коде просто не сталкивается. Это особенно важно, если у вас стоит не три мода, как у меня, а только какой-то один из них (ну или два).

    Часть предметов чарится только на прочность - например, мечи из жал скорпионов, набивники для слонов. Это не мешает наложить на них другие чары через книжки. Зато снять чары наш кузнец может с любого предмета, независимо от количества и качества чар.

    В общем, пока плагин находится в стадии тестирования - наверняка в коде еще найдутся баги, которые я тогда и исправлю.

    В архиве конфиг с моими кузнецами. Просто удалите их командой: /bs delete Ашот, /bs delete Селим

    P.S. Забыл сказать: цеп не обрабатывал. Тупое оружие, сделанное зачем-то из удочки. У себя я его отключил - и вам советую. Кузнец не ремонтирует его, не зачаровывает, не расчаровывает - просто не знает его.
     

    Вложения:

    Последнее редактирование: 14 апр 2014
    TeamCraft нравится это.
  6. Автор темы
    Toxuin

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

    Баллы:
    103
    @LaoTheLizard Твои исходники получил, глянул только поверхностно. Детально буду разбираться на выходных:)
    Обновил кодбазу до 1.7.2, включая AI у кузнеца. Добавил всякие новомодные ништяки типа отображение имени над головой (вкл\выкл в конфиге). Пока только на гитхабе, так как тестирую пока. Кто хочет собрать для себя – более чем welcome. Или дождитесь 0.7.
     
  7. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Toxuin, ок. Ну, в общем, на всякий случай, подытожу проблемы, которые не решил я:

    1. AI мобов, из которых делается кузнец.
    2. Мобы множатся при каждом перезапуске сервера.
    3. Если моб - не житель - при клике на нем элементом брони он самонадевается на игрока, если на игрока не надет элемент этого типа.
    4. Если моб - житель - рано или поздно вокруг него собирается куча зомби, которые предпринимают безуспешные попытки его убить. В таком случае окрестности наполняются не очень приятными завываниями этих милых зеленых человечков.[DOUBLEPOST=1397720667,1397719322][/DOUBLEPOST]Взял из гитхаба блок OverwriteAI, обновленный тобой, сунул в свой код. Все ошибки при компиляции исчезли (это раз), ошибки из консоли исчезли (это два), но мобы все равно не стоят на месте - если не ограничить их, то начинают бродить. Что я делаю не так? :)[DOUBLEPOST=1397720788][/DOUBLEPOST]В моем коде обрати внимание на этот блок:
    /* } else if(squidward.presence.equalsIgnoreCase("player")){
    repairman = (LivingEntity) loc.getWorld().spawn(loc, EntityType.PLAYER.getEntityClass()); */

    Он закомментирован, потому что не работает. Но мы же оба понимаем, что я пытался сделать, да? Буду рад, если ты реализуешь этот момент.
     
  8. Автор темы
    Toxuin

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

    Баллы:
    103
    Сейчас с самыми обидными глюками разберусь – и все остальное.

    Собственно, проблемы которые ты указал, у меня не очень-то и вылезают. AI вроде годный, NPC не множатся (/reload не в счет – я его даже не тестил, там вообще все плохо), зомбей как раз в последнем коммите отвадил от кузнецов, самонадевание брони и открытие интерфейса – это кто-то там в баккит-тим накрутил приоритеты событий, я поправил у себя и вроде все нормально теперь.

    Нате пока, потестите со мной, человеки.
    Свежий релиз-кандитат 0.07. Если все ок - запушу на девбаккит.
    Тестировал на 1.7.2.
     
    Последнее редактирование: 19 апр 2014
  9. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Toxuin, потестил на чистом 1.7.2, вообще без плагинов. Результаты ниже.

    1. NPC вообще не множатся. Даже при /reload. Возможно, у меня множатся из-за несостыковок с другими плагинами. Кстати, выяснил, что у меня не множатся при /reload (теперь).

    2. Зомби действительно не агрятся. Посмотрел, как реализовано, скопировал себе - все равно агрятся. Не понял, почему.

    3. Насчет самонадевания брони - не надевается. Если "кто-то" - это я, то соглашусь, виноват. Какое событие и к какому приоритету нужно привести - так и не нашёл. Нашёл одно - у меня было LOWEST, у тебя - HIGH. Изменил - все равно самонадевается. Что касается "открытия интерфейса" - такого и не было. Обычно это происходит, если версия плагина несовместима с ведром - при второй интеракции. Например, плагин под 1_7_R2, а ведро 1_7_R1.

    4. (продолжая п.3) При попытке зачаровать вещь вылезает ошибка и открывается интерфейс. Ремонт - работает. Ведро: craftbukkit-1.7.2-R0.1-20131205.042212-19. Какую версию использовать?[DOUBLEPOST=1397731097,1397730802][/DOUBLEPOST]А, уточню. Проблема самонадевания была (и остается у меня) только если моб был не-NPC, а корова, волк и т. п. Как это исправить?
     
  10. Автор темы
    Toxuin

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

    Баллы:
    103
    PHP:
    @EventHandler(priority EventPriority.LOWESTignoreCancelled true)
    public 
    void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
            final 
    Player player event.getPlayer();
            final 
    ItemStack[] was_armor player.getInventory().getArmorContents();
            final 
    ItemStack held_item player.getItemInHand();

            
    BukkitRunnable placeItemsBack = new BukkitRunnable() {
                @
    Override
                
    public void run() {
                    
    ItemStack[] now_armor player.getInventory().getArmorContents();
                    for (
    int i=0i<now_armor.lengthi++) {
                        if (
    now_armor[i].equals(held_item)) {
                            
    now_armor[i] = was_armor[i];
                            
    player.setItemInHand(held_item);
                        }
                    }
                    
    player.getInventory().setArmorContents(now_armor);
                    
    player.updateInventory();
                }
            };

            
    this.getServer().getScheduler().scheduleSyncDelayedTask(thisplaceItemsBack5L);
            
    event.setCancelled(true);
    }
    [DOUBLEPOST=1397886812,1397886730][/DOUBLEPOST]––––––––––––––––––––––

    Через ~1.5 года после предыдущей верии: держите версию 0.07. Новое:

    – Обновлено для баккита 1.7.2.
    – Имена над головами NPC! (+ команда /blacksmith names)
    – При взаимодействии с NPC они издают звуки! (+ команда: /blacksmith sound blacksmith_name minecraft_sound. Звуки можно настраивать для каждого NPC отдельно)
    – Маленькие баги пофикшены.
    – Разработчика – с днем рождения!
     
  11. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Toxuin, ну что ж, рад, что ты вернулся - теперь все будет хорошо. :)
     
  12. poiNt_3D

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

    Баллы:
    68
    Что-то на Spigot-1371 не хочет работать.
    А по поводу глюков с дубликацией и зомби - посмотрите плагин Shopkeepers - там используются villager'ы и эти проблемы решены (раньше тоже было).
     
  13. Автор темы
    Toxuin

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

    Баллы:
    103
    1371 это 1.7.5-R0.1.
    Залил на dev-bukkit бетки для 1.7.5-R0.1 и 1.7.9-R0.1.

    Баг с копированием NPC при выключении сервера не подтверждаю. Пробовал на 1.7.2 – делал /stop, /reload и просто закрывал окошко с сервером. Все работает как нужно. Возможно, просто возникла путаница – в прошлых версиях этот баг наблюдался, но был пофикшен в последней, 0.07.[DOUBLEPOST=1399776773,1399608349][/DOUBLEPOST]Я тут еще кой-чего подкрутил, смотрите кому интересно:
    • Новая схема защиты от деспауна. Теперь чанки не держатся всегда загруженными, копии чанков не висят в памяти и вообще все работает куда проще и быстрее. Ура!
    • Поддержка вещей из модов. Да-да, теперь кузнецы могут чинить (и зачаровывать!) вообще что угодно.
    • Меньше спагетти-кода, больше багфиксов.
    Потестируйте, пожалуйста, на серверах с модами. Я не особенно с ними дело имел, может еще что-нибудь подкрутить нужно чтоб работало.

    Итак, как добавлять свои вещи в конфиг?
    Довольно просто: Копируем в конец конфига вот это:
    Код:
    CustomItems:
      Tools:
        '261': Bow
        '259': Flint and steel
      Armor:
        '12': Random armor
        '69': Some other armor
    И изменяем айди и названия на свои. Названия вещей нужны только чтобы вам было потом удобно разбираться что есть что, в плагине они не используются.
     
    Последнее редактирование: 11 май 2014
    Hephest и poiNt_3D нравится это.
  14. poiNt_3D

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

    Баллы:
    68
    Спасибо.
    Keep up the good work!
     
  15. syllik

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

    Баллы:
    153
    Кажется, мы начали забывать,
    как должен выглядеть Грисвольд.

    griswold.gif
     
  16. Jr.

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

    Баллы:
    78
    Skype:
    teqmouse
    Может ли к примеру другой игрок забрать вещь, которую я чиню?[DOUBLEPOST=1401089451,1401088097][/DOUBLEPOST]Почему кузнеца можно толкать? ;c
     
    ПриветОтЛайки нравится это.
  17. poiNt_3D

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

    Баллы:
    68
    Нет, вещь попадает прямо в инвентарь игрока.
     
    Лайка2 и mahimamax нравится это.
  18. neon52

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

    Баллы:
    88
    spigot 1.7.5 Попробовал установить для теста плагин.
    при вызове команды создания NPC, получил следующее в консоли

    "an internal error occurred while attempting to perform this kommand"

    В логах имею следующее

    Код:
    [01:54:30] [Server thread/INFO]: neon52 issued server command: /blacksmith create Ратибор tools
    [01:54:30] [Server thread/ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'blacksmith' in plugin Griswold v0.071
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at org.bukkit.craftbukkit.v1_7_R2.CraftServer.dispatchCommand(CraftServer.java:709) ~[spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.PlayerConnection.handleCommand(PlayerConnection.java:984) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.PlayerConnection.a(PlayerConnection.java:829) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.NetworkManager.a(NetworkManager.java:148) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.ServerConnection.c(ServerConnection.java:77) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.MinecraftServer.v(MinecraftServer.java:703) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.DedicatedServer.v(DedicatedServer.java:273) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.MinecraftServer.u(MinecraftServer.java:566) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.MinecraftServer.run(MinecraftServer.java:472) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at net.minecraft.server.v1_7_R2.ThreadServerApplication.run(SourceFile:618) [spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
    Caused by: java.lang.NoClassDefFoundError: net/minecraft/server/v1_7_R1/EntityInsentient
        at com.github.toxuin.Griswold.createRepairman(Griswold.java:207) ~[?:?]
        at com.github.toxuin.Griswold.createRepairman(Griswold.java:178) ~[?:?]
        at com.github.toxuin.CommandListener.onCommand(CommandListener.java:38) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        ... 13 more
    Caused by: java.lang.ClassNotFoundException: net.minecraft.server.v1_7_R1.EntityInsentient
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:67) ~[spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:62) ~[spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_51]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_51]
        at com.github.toxuin.Griswold.createRepairman(Griswold.java:207) ~[?:?]
        at com.github.toxuin.Griswold.createRepairman(Griswold.java:178) ~[?:?]
        at com.github.toxuin.CommandListener.onCommand(CommandListener.java:38) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-1.4.5-R0.2-1802-g21760c6]
        ... 13 more
    
    но при этом сам продавец в конфиг был добавлен

    Код:
      Ратибор:
        world: world
        X: -90.64318212947231
        Y: 51.0
        Z: 149.34462411663583
        sound: mob.villager.haggle
        type: all
        cost: 1.0
     
    Лайка2 нравится это.
  19. AlexWar

    AlexWar Новичок

    Баллы:
    18
    Skype:
    Alex-War19
    Имя в Minecraft:
    AlexWar19
    Ну норм.
    На сервере всем понравился плагин)
     
    Лайка2 и mahimamax нравится это.
  20. neon52

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

    Баллы:
    88
    LaoTheLizard, попробовал на 1.7.5. Все хорошо, все чинится, но.. NPC почему то не хочет видеть экономику, предлагает все за бесплатно. А настроек включения/выключения экономики в конфиге вроде бы нет
     
    Лайка2 и Tarock12 нравится это.
  21. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Поищи в логе по маске "Economy not found". Может, у тебя нет плагина Vault?
     
    Лайка2 и mahimamax нравится это.

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