Перейти к содержимому


JiURQ (Java interpreter Universal Ripsoft Quest)


Сообщений в теме: 27

#1 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 817 сообщений
  • ГородТамбовская обл.

Отправлено 20 Декабрь 2011 - 23:24

Для тех кто не знает что это можете почитать здесь
Если проще то это не сложный язык текстовых квестов, развивающийся по сей день.
Предлагаю вам совой интерпретатор этого языка под Java
На данный момент библиотека JiURQ может работать с простыми квестами.
Находится в режиме тестирования, потому как ещё сырая, но что то уже может)

Итак: пример класса работающего с этой либой для 4 ветки бота
получилось чтото типо текстовых квестов в icq
Скрытый текст

Скачать всё можно здесь
еще должна быть либа bsh.jar (без нее пока не работает) уже ненунжна
папку с квестами надо поместить в директорию со своим ботом


~P.S. JiURQ может работать и без бота достаточно её запустить командой java -jar JiURQ.jar
Скачать дополнительные квесты можно здесь но как писал уже выше сложные квесты могут работать некорректно, библиотека в разработке

Сообщение отредактировал ~ёМАё~: 06 Февраль 2012 - 09:49


#2 _KinG_

    Новичок

  • Пользователи
  • Pip
  • 32 сообщений
  • ГородUfa

Отправлено 21 Декабрь 2011 - 09:40

Молодец :) Сейчас попробую) Спасибо)

#3 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 21 Декабрь 2011 - 15:17

# java -jar JiURQ.jar
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at Frames.StartJFrame.start(StartJFrame.java:158)
        at Frames.StartJFrame.main(StartJFrame.java:166)
!UNKNOWN! operator : ╩3
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 2, Size: 0
        at java.util.ArrayList.rangeCheck(Unknown Source)
        at java.util.ArrayList.get(Unknown Source)
        at ru.interpreter.universal.ripsoft.quest.JiURQ.ButtonOnClick(JiURQ.java:116)
        at Frames.ButtonListener.actionPerformed(ButtonListener.java:26)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
quest: На даче
Начало игры > дальше > в магазин > шампанское > назад > ехать на точку > на дачу > просто сидим > кровать 3 (ещё клик и error)

Сообщение отредактировал scano: 21 Декабрь 2011 - 15:20


#4 spec

    Администратор

  • Администраторы
  • 2 399 сообщений
  • ГородКаменск-Уральский

Отправлено 21 Декабрь 2011 - 16:16

Исходники будут доступны?
Можно было бы включить эту штуку модулем в 0.6

#5 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 817 сообщений
  • ГородТамбовская обл.

Отправлено 21 Декабрь 2011 - 16:58

Просмотр сообщенияscano (21 Декабрь 2011 - 15:17) писал:

quest: На даче
Начало игры > дальше > в магазин > шампанское > назад > ехать на точку > на дачу > просто сидим > кровать 3 (ещё клик и error)
ошибка возникала из за того, что учитывался регистр в названии локаций
ошибку исправил, обновлённая ссылка в первом посте

Просмотр сообщенияspec (21 Декабрь 2011 - 16:16) писал:

Исходники будут доступны?
Можно было бы включить эту штуку модулем в 0.6
ссылку обновил в первом посте исходники там же
до полноценного рабочего варианта ещё далеко,
много чего надо переделывать, работа с if then else, определение операторов, инвентарь и т.д.
всё это пока коряво, по этому не стал пока делать модулем

#6 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 817 сообщений
  • ГородТамбовская обл.

Отправлено 25 Декабрь 2011 - 22:21

есть обновления, исправлены ошибки, ускорена загрузка квеста, доделана работа с инвентарём
ссылка на либу JiURQ v0.2-beta в первом посте запуск командой java -jar JiURQ v0.2-beta.jar для коретной работы должна присутствовать папка lib с библиотекой bsh.jar
протестировать можно на этом квесте (после запуска в панеле инвентаря по ходу квеста правой кнопкой можно выбирать действия)

ещё есть мыслишка, если кому интересно:
язык URQ поддерживает математические функции например по ходу квеста мы считываем строку
MaxHpHero=5*4+20
здесь должен присваиваться переменной MaxHpHero результат 40
на данный момент все вычисления и работа с булевыми значениями на себя берёт либа(BeanShell) bsh.jar
т.е. имеем строку которая приводится в надлежащий вид и как скрипт обрабатывается этой либой и возвращается результат вычислений...

так вот мыль избавиться от bsh.jar..нужно как то парсить строку и получать результат вычислений..
можно конечно разбить строку на отдельные части и наставить кучу if`ов
направьте на мысль если у кого есть идеи как лучьше обработать например String s = 5*4+10 и получить результат вычислений

Сообщение отредактировал ~ёМАё~: 25 Декабрь 2011 - 22:27


#7 spec

    Администратор

  • Администраторы
  • 2 399 сообщений
  • ГородКаменск-Уральский

Отправлено 25 Декабрь 2011 - 22:46

Сходу нагуглил несколько ссылок на эту тему:
http://vampirus.ru/c...c-compile-java/
http://piarmedia.ru/?page_id=8
http://www.javatalks.ru/sutra2365.php

#8 fantomas

    Пользователь

  • Пользователи
  • PipPip
  • 77 сообщений
  • ГородВладимир

Отправлено 29 Декабрь 2011 - 03:54

Проблемка


Цитата

fantomas
!квест


Chat
Для продолжения выберете квест из списка:
1 |+даче
2 |lift-2
3 |Древний_кинжал_1
4 |Хомяк_часть-1
5 |Хомяк_часть-2
6 |Хомяк_часть-3


fantomas
1

Chat
На даче с красавицами или первый секс

----------
1 | начало игры
2 | предыстория
3 | автор
4 | о компании
==========
!справка - информация о командах


fantomas
1

fantomas
3

fantomas
1

fantomas
!квест

Chat
Напишите цифру!

Сообщение отредактировал fantomas: 29 Декабрь 2011 - 04:11


#9 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 817 сообщений
  • ГородТамбовская обл.

Отправлено 29 Декабрь 2011 - 09:39

Какой версией либы пользовались?
Что меняли в коде?
Что меняли в квесте?

на последней версии данных ошибок не наблюдается
Скрытый текст

~p.s. в скором времени выйдет обновленная версия, убрана либа bsh..

Сообщение отредактировал ~ёМАё~: 29 Декабрь 2011 - 10:02


#10 BezzzDelnickTMB

    Специалист

  • Пользователи
  • PipPipPipPip
  • 217 сообщений
  • ГородТамбов

Отправлено 29 Декабрь 2011 - 11:24

блин, эти квесты даже лучше игр, которые щас есть, я щас сидел и читал что написано выше, жаль что у меня своего чата нету(((

#11 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 29 Декабрь 2011 - 13:58

Это обычные игры с коротким сценарием.
Если написать громдный квест то его масштаб будет сравним с игрой встроенной в мод.

#12 fantomas

    Пользователь

  • Пользователи
  • PipPip
  • 77 сообщений
  • ГородВладимир

Отправлено 29 Декабрь 2011 - 15:52

Просмотр сообщения~ёМАё~ (29 Декабрь 2011 - 09:39) писал:

Какой версией либы пользовались?
Что меняли в коде?
Что меняли в квесте?

на последней версии данных ошибок не наблюдается
Скрытый текст

~p.s. в скором времени выйдет обновленная версия, убрана либа bsh..
Использовал JiURQ v0.2-beta
если запустить её просто так то она отлично работает, сейчас попробую ещё раз всё установить. Может что-то упустил <_<
_______________________________
Я понял что не так!
Ругается на:
jiURQ.Buttononclick(i);
Как исправить :blink:

Сообщение отредактировал fantomas: 29 Декабрь 2011 - 15:55


#13 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 817 сообщений
  • ГородТамбовская обл.

Отправлено 29 Декабрь 2011 - 16:01

Просмотр сообщенияfantomas (29 Декабрь 2011 - 15:52) писал:

Я понял что не так!
Ругается на:
jiURQ.Buttononclick(i);
Как исправить :blink:
да были уже вопросы на счет jiURQ.Buttononclick(i);
на форуме некорректно отображается метод (не знаю с чем связано)
напишу в тегах что бы было понятнее, должно быть так jiURQ.ButtonOnClick(i);
O и C заглавные

#14 fantomas

    Пользователь

  • Пользователи
  • PipPip
  • 77 сообщений
  • ГородВладимир

Отправлено 29 Декабрь 2011 - 16:40

Просмотр сообщения~ёМАё~ (29 Декабрь 2011 - 16:01) писал:

да были уже вопросы на счет jiURQ.Buttononclick(i);
на форуме некорректно отображается метод (не знаю с чем связано)
напишу в тегах что бы было понятнее, должно быть так jiURQ.ButtonOnClick(i);
O и C заглавные

Спасибо :rolleyes:
Всё работает

#15 ShtopoR

    Новичок

  • Пользователи
  • Pip
  • 34 сообщений
  • ГородНогинск

Отправлено 29 Декабрь 2011 - 23:58

Эти квесты... Это же мечта просто. Спасибо за свободное распространение твоих разработок.

#16 dim@X

    Хостер ICQ чатов

  • Пользователи
  • PipPipPipPipPip
  • 1 538 сообщений
  • ГородОрел

Отправлено 06 Январь 2012 - 09:05

А я побуду в роли критика, кушают они довольно хорошо, для игры в чате нужно уединение , скорее подойдет для ICQ бота как убивалка времени.

#17 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 817 сообщений
  • ГородТамбовская обл.

Отправлено 06 Январь 2012 - 12:50

Просмотр сообщенияdim@X (06 Январь 2012 - 09:05) писал:

А я побуду в роли критика, кушают они довольно хорошо, для игры в чате нужно уединение , скорее подойдет для ICQ бота как убивалка времени.
да есть такое, не проверял конечно на конкретный расход ресурсов..
это связано с самим языком URQ, по сравнению с java он очень не рационален и неудобен
не явное объявление переменных, причём они могут состоять из нескольких слов
в конструкциях if then могут находится переменные которые не были объявлены до этого
нет учета регистра, переносы строки и многое другое... какая-то смесь vba pascal dos и ещё чегото
на интерпретацию всего этого естественно будут уходить ресурсы..
вот собственно над упрощением кода интерпретатора, делая его рациональнее, что бы снизить нагрузку и приходится работать
еще ресурсы может кушать размер квеста, потому как на данный момент лучшего варианта как загружать его в кеш не нашёл..


#18 spec

    Администратор

  • Администраторы
  • 2 399 сообщений
  • ГородКаменск-Уральский

Отправлено 06 Январь 2012 - 16:17

Другой вариант - создание "нативного" квеста прямо в боте.
Комнаты выстроить в виде лабиринта. Переход по ним - с,ю,з,в.
Добавить анутраж. Добавить команды взаимодействия с окружающей средой.
Можно добавить боевую систему.
Самое сложное - придумать вменяемый сюжет совместных похождений, иначе быстро все наскучит.

Получится текстовая онлайн-рпг.

#19 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 06 Январь 2012 - 16:21

Специализированный пакет с классами похожих игр интегрированная в проект - такая реализации будет куда скромнее.

#20 mobinext2009

    Продвинутый пользователь

  • Специалисты
  • PipPipPip
  • 118 сообщений
  • ГородСатка

Отправлено 06 Январь 2012 - 18:16

в jabber один парень делает квест "остров отчаянных" вроде называется. очень длинный квест, сюжет довольно интересный пишет его до сих пор, есть у него и в ICQ боты но они уж слишком тормозят там. Намного проще было бы писать квесты под самого бота ну или переписывать готовые. Сделать подобие скриптов.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей