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

Плагин [ADMN/DEV/FUN] VarScript 1.2 - Пишем скрипты на Groovy

Тема в разделе "Релизы плагинов", создана пользователем DPOH-VAR, 29 сен 2012.

  1. Benseeley

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

    Баллы:
    123
    можно это великолепие на последнюю версию? или же и так будет работать? и да, кинул джар-файл варскрипта в папку "плагины", запустил сервер, ничего не сгенерировалось... всё это делать в том же самом джарнике?
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Этот скриптик только для версии 0.4
    Мобыть мы сделаем для 0.5, но на груви.
     
  4. Benseeley

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

    Баллы:
    123
    DPOH-VAR, жду-не дождусь, очень уж полезный скрипт!
     
  5. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Сейчас я совершенствую систему планировщика.
    Будет работать он так:
    В папке plugins/VarScript/scheduler располагаются директории events,conditions,actions с классами.
    К примеру, файл plugins/VarScript/scheduler/events/CLICK.class будет отвечать за событие клика по блоку.
    файл plugins/VarScript/scheduler/actions/BROADCAST.class будет отсылать сообщение всем игрокам

    В папке plugins/VarScript/scheduler/tasks будут по старинке лежать yml файлы задач.

    Пример: plugins/VarScript/scheduler/tasks/test.monitor.yml

    enabled: true
    description: Описание задачи
    init:
    - SET gm = SURVIVAL
    events:
    - CLICK 225 74 161 world
    - CLICK 225 74 159 world
    actions:
    - BROADCAST "&cBlock is clicked? Arrrr!"
    - BEAN $Player velocity = 2:2:2 gameMode = $gm health = 10
    - BEAN $Block data=7


    При нажатии на любой из двух блоков произойдет следующее:
    - сообщение Block is clicked? Arrrr!
    - игрок получит ускорение (2,2,2), игровой режим SURVIVAL, а также установит кол-во жизней в 10.
    - блок, на который нажали, получит data = 7

    PS:
    А еще будет раздел reactions (запустится, если хотя бы одно условие оказалось ложным) :D:D:D
    Посмотреть вложение 15471 Посмотреть вложение 15471 Посмотреть вложение 15472 Посмотреть вложение 15473 Посмотреть вложение 15474 Посмотреть вложение 15475 Посмотреть вложение 15476 Посмотреть вложение 15477
     
    Последнее редактирование: 30 ноя 2013
    Оригинало_о и FedorNogopletov нравится это.
  6. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Создаю репозиторий для модулей.
    https://github.com/DPOH-VAR/VarScript/tree/master/groovy-modules
    Тут можно найти свеженькие модули на груви.
    На данный момент там имеются:
    1. NBTTools.groovy - полностью заменяет все функции PowerNBT. Позволяет работать с NBT-данными как с обычными хешмапами и списками.
    2. metaclasses.groovy - упрощает написание других скриптов. Однако для использования ее в модулях - нужно указать зависимость от metaclasses
    [DOUBLEPOST=1385926313,1385842399][/DOUBLEPOST]Текущая версия работает с 1.7.2, полет нормальный)
     
    fromgate нравится это.
  7. DigitalMisha

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

    Баллы:
    58
    Кстате, а можно любой диалект ЕКМЫ использовать? ActionScript можно?
     
  8. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Нет. Используется только тот, который установлен в вашей java-машине.
    В большинстве случаев это движок Rhino 1.7R4, и он использует синтаксис javascript.
    К тому же я не видел движка ActionScript, реализуемого на java-машине.
     
  9. DigitalMisha

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

    Баллы:
    58
    Кстате, а как можно использовать Jython с этим чудом?
     
  10. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    1) Скачать jar (ищите на офсайте)
    ~10 мегабайт
    Убедиться, что внутри архива лежит метаинформация о службе
    файл \META-INF\services\javax.script.ScriptEngineFactory
    я использовал jython-2.7-b1.jar

    2) Поместить этот файл в папку lib и запустить сервер
    Советую добавить ключи перед запуском:
    -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
    Они изменяют поведение GC, чтобы он мог выгружать неиспользуемые объекты и классы.

    3) Видим сообщение в консоли:
    [23:23:24 INFO]: [VarScript] load jython 2.7.0
    lang: python 2.7
    name: python,jython
    extension: py


    4) Пользуемся!
    Я не предусмотрел отдельной команды для работы с питоном, поэтому придется обращаться к нему по имени:
    >->> jython Server.worlds[0].time
    [23:23:24 INFO]: [VarScript] 17451

    Можно юзать команды в игре:
    /-> python команда
    /->> python команда и вывод результата на экран


     
    fromgate нравится это.
  11. DigitalMisha

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

    Баллы:
    58
    проблема в том, что я не смог найти jar
     
  12. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Серьезно?
     
  13. DigitalMisha

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

    Баллы:
    58
    А разве это не инсталятор?
     
  14. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    jython-2.5.4-rc1.jar - не инсталлятор.
    Это именно тот jar, который нужен варскрипту.[DOUBLEPOST=1389121253,1389121053][/DOUBLEPOST]PS:
    jython при использовании создает немного мусора в директории lib\cachedir\packages\
    У меня он занимает примерно 1.5Mb и периодически увеличивается.
     
  15. DigitalMisha

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

    Баллы:
    58
    Мусор я переживу. Просто многие просят Питоно-подобный синтаксис. И я подумал почем бы не использовать Питон?
     
  16. snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    Есть туториал по работе с mysql?
    Запись данных в mysql?
     
  17. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    varscript не имеет своих команд для работы с MySQL
    Теоретически можно использовать механизм рефлексий, но это не удобно.

    Я советую взять любой скриптовый движок и выполнить всю работу с MySQL на нем.
    К примеру, подключить groovy и использовать JDBC (туториал)
    То же самое можно сделать на JavaScript (он установлен по умолчанию), если есть определенные знания языка и особенностей движка Rhino.
     
    Likeobot и Hephest нравится это.
  18. snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    У меня пишет, что нету прав на команду />
    пермиссионов никакх не стоит

    только через консоль пашет


    upd:

    :O с PEX не работает, как убрал - заработало
     
    Последнее редактирование: 8 янв 2014
  19. MYXOMOPX

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

    Баллы:
    78
    Skype:
    MYXOMOPX
    Имя в Minecraft:
    MYXOMOPX
    Написал модуль кастомных достижений!
    • Создание ачивки: /g> CustomAchievements.addAchievement("название","отображаемое название","описание")
    • Выдать игроку ачивку: /g> CustomAchievements.giveAchievement("ник игрока","название ачивки") P.S. если у игрока она уже есть - ничего не произойдет
    • Проверить ачивку у игрока: /g>> CustomAchievements.hasAchievement("ник игрока","название ачивки")
    • Показать игроку его ачивки: /g> CustomAchievements.selfListAchievements("имя игрока")
    • Показать ачивки игрока всем: /g> CustomAchievements.printListAchievements("ник игрока")
    • Показать игрку ачивки которые существуют: /g> CustomAchievements.selfAllAchievements("ник игрока")
    • Удалить ачивку: /g> CustomAchievements.removeAchievement("название ачивки")
    Ставим на спавне нажимную плиту, под нее командный блок и пишем в него:
    • /g> CustomAchievements.selfListAchievements(" @p ".trim())
    И когда игрок наступит - ему выведутся все его ачивки.
    • /g> CustomAchievements.selfAllAchievements(" @p ".trim())
    При нажатии на плиту, игрок увидит все ачивки, которые вы создали.

    Пишем в чат /g> CustomAchievements.addAchievement("SecretRoom","Secret room! ^_^","Find the secret room").
    Делаем секретную комнату, в ней ставим кнопку, командный блок, в который пишем:
    • /g> CustomAchievements.giveAchievement(" @p ".trim(),"SecretRoom")
    При нажатии на эту кнопку, игрок получит ачивку. ^_^

    в архивах уже есть 5 созданных мной достижений.
    This is MINECRAAAFT - столкнуть кого-нибудь с обрыва так, что-бы он умер!
    But.. you tried D: - сломать алмазную руду золотой киркой.
    Nice trick: - спрыгнуть на лошади в небытие.
    Munchausen!: - скрафтить любой фейерверк из плагина Munchausen Fireworks.
    Steep miner!: - быть в 5 блоках от взрывающегося TNT и не смотреть на взрыв.
    Может быть чуть позже добавлю обычные команды (/customachievement give...)
     
    BaO и Hephest нравится это.
  20. DigitalMisha

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

    Баллы:
    58
    Улыбнула ачивка "This is Minecraft". Пока видео смотрел захотелось сделать такую, и вот те на: она есть![DOUBLEPOST=1389297327,1389296519][/DOUBLEPOST]Каким IDE Вы пользуетесь для Груви?
     
    Hephest нравится это.
  21. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Intellij IDEA 13 очень даже ничего справляется, но в каждом скрипте приходится вручную указывать используемые переменные и их тип. Я написал на нем модули metaclasses и NBTTools
    IDEA 12 в этом плане хуже работает с груви.
    Для простеньких скриптов достаточно Sublime Text
    на худой конец пойдет и Notepad++, подсветка синтаксиса у него отличная.
     

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