Установка jbforth...

 
1 2 3 4
+
-
edit
 

Balancer

администратор
★★★★★
Хм, пример, который я привел придуман не мною, а просто выдран из Fortress и в данной сборке компилция проходит успешно. А замена на L2World.getInstance().getAllPlayers() не приводит к нужному результату :(
 


В Fortress весь L2World (как и многие другие базовые классы) статический. Соответственно, getInstance не нужен. В SF - нужен.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
+
-
edit
 

Malish

новичок
Муркт, Balancer, спасибо вам. Компилится теперь, но вот что-то пока не пойму работает ли ето как надо ... где-то что-то не хватат :)
 
+
-
edit
 

Malish

новичок
С сборку установил старую папку jbforth, при запуске выдает ошибку:

Input:



File: datajbforthl2jvar-load.f
... : suvalue ( val — name )
user-value
last-word >| suv-list |< list+
player@ null? if exit then
last_word uv@ d ...



Return stack trace:
java.lang.ArrayIndexOutOfBoundsException: -1
at ru.balancer.jbforth.Stack.pop(Stack.java:55)
at ru.balancer.JBForth.do_code(JBForth.java:219)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:42
)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:341)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:331)
at ru.balancer.JBForth.tryAsFile(JBForth.java:320)
at ru.balancer.JBForth.do_code(JBForth.java:292)
at ru.balancer.JBForth.do_code(JBForth.java:218)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:42
)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:341)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:328)
at ru.balancer.JBForth.tryAsFile(JBForth.java:317)
at ru.balancer.JBForth.do_code(JBForth.java:292)
at ru.balancer.JBForth.do_code(JBForth.java:218)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:42
)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:341)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:328)
at ru.balancer.JBForth.tryAsFile(JBForth.java:317)
at ru.balancer.JBForth.do_code(JBForth.java:292)
at ru.balancer.JBForth.do_code(JBForth.java:218)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:42
)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:341)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:325)
at ru.balancer.JBForth.tryAsFile(JBForth.java:320)
at ru.balancer.JBForth.do_code(JBForth.java:292)
at ru.balancer.JBForth.do_code(JBForth.java:210)
at ru.balancer.JBForth.exec(JBForth.java:138)
at ru.balancer.JBForth.execp(JBForth.java:149)
at ru.balancer.JBForth.reload(JBForth.java:119)
at ru.balancer.JBForth. at net.sf.l2j.gameserver.GameServer. at net.sf.l2j.gameserver.GameServer.main(GameServer.java:513)
Abort: Unknown word 'last-word' in File: datajbforthl2jvar-load.f
... ( val — name )
user-value >|
last-word |< suv-list list+
player@ null? i ... in file datajbforthl2jvar-load.f

Как я понимаю раньше данное слово (last-word) было определенно в самой библиотеке форта?
 
+
-
edit
 

Malish

новичок
Подскажите где я в очередной раз туплю? :(
 
+
-
edit
 

Malish

новичок
Старый jbforth удалось прикрутить к сборке SF. Кажется все работает как надо, спасибо всем кто оказывал помощь :) Теперь буду пытаться новый jbforth прикрутить :)
 

a4n

новичок
Ну и как успехи ?
У меня вот все встало на старте сервера:

....
EnchantSkillTreeTable: Loaded 13200 enchant skills.
Abort: Unknown word 'item_spawn' in File: data\jbforth\l2j\spawns.f
... r >r >r
        swap
        self
        r> r> r> >|  item_spawn |<
;
....

И так далее, а потом:

Exception in input file .\data\jbforth\geodata\main.f
Input:
=== cut ===
File: .\data\jbforth\geodata\main.f
... odata: definitions

territories/main.f

previous >|  definitions |<
=== cut ===
Return stack trace:

java.lang.NullPointerException
        at ru.balancer.JBForth.findWord(JBForth.java:170)
        at ru.balancer.JBForth.do_code(JBForth.java:246)
        at ru.balancer.JBForth.do_code(JBForth.java:227)
        at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:42
)
        at ru.balancer.JBForth.tryAsFileExact(JBForth.java:365)
        at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:349)
        at ru.balancer.JBForth.tryAsFile(JBForth.java:332)
        at ru.balancer.JBForth.do_code(JBForth.java:307)
        at ru.balancer.JBForth.do_code(JBForth.java:227)
        at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:42
)
        at ru.balancer.JBForth.tryAsFileExact(JBForth.java:365)
        at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:343)
        at ru.balancer.JBForth.tryAsFile(JBForth.java:332)
        at ru.balancer.JBForth.do_code(JBForth.java:307)
        at ru.balancer.JBForth.do_code(JBForth.java:227)
        at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:42
)
        at ru.balancer.JBForth.tryAsFileExact(JBForth.java:365)
        at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:340)
        at ru.balancer.JBForth.tryAsFile(JBForth.java:335)
        at ru.balancer.JBForth.do_code(JBForth.java:307)
        at ru.balancer.JBForth.do_code(JBForth.java:219)
        at ru.balancer.JBForth.exec(JBForth.java:138)
        at ru.balancer.JBForth.execp(JBForth.java:149)
        at ru.balancer.JBForth.reload(JBForth.java:119)
        at ru.balancer.JBForth.<init>(JBForth.java:92)
        at net.sf.l2j.gameserver.GameServer.<init>(GameServer.java:165)
        at net.sf.l2j.gameserver.GameServer.main(GameServer.java:512)


Декомпилировал 3525, сам jar форта с свн последний.

есть идеи ? :)
 
+
-
edit
 

Diamond

втянувшийся

Лучше сначало удали все лишнее, а уже потом запускай. То что в папке geodata да и многое другое на сф работать не будет...
 

a4n

новичок
Он почему-то не выучивает слова item*, adena*, inventory* хотя из Дикта классы грузит, но видимо что-то не так.
  • ну и производные к ним (например item_spawn)
 
+
-
edit
 

photon

новичок
Где взять Forth virtual machine или или как там называется сама прога??
Она ж не станет понимать этот язык без установленной на компе программы!!??
Зарание спасобо за ответ...
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

photon

новичок
или JBfirth,jar в ява машину в библиотеки засунуть??
Если да то куда..?
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

Balancer

администратор
★★★★★
jbforth.jar входит в комплект l2fortress.

Отдельно скачать можно с http://trac.balancer.ru/jbforth/
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
+
-
edit
 

photon

новичок
Balancer> jbforth.jar входит в комплект l2fortress.
Взял от туда

Balancer> Отдельно скачать можно с http://trac.balancer.ru/jbforth/
и от туда тоже брал

что хранится здесь = data/jbforth ( по-моему код форта)
что хранится здесь = ./l2f (а здесь вроде код ява скомпиленый)

вопрос в следующем ка это между собой взаимодействует?

Например //do скажем эта команда описана в data/jbforth...и в яве ./net/sf/......
каким образом Ява поймет что надо при команде //do обратится к коду в data/jbforth...

А может я вообще что то не то несу...
Не судите строго минут 30 читаю форум и просматриваю сборку 4216....


основная задача на данный момент запустить скажем AI на сборке не имеющей Forth..
И кстати мне не принципиальна сборка Херо Фрее или СТ просто мне интересно научится как задействовать Форз на других серверах...
А там может и Рома ответит мне в Жабере...
ps: Рома уже больше месяца прошло с того момента как ты обещал мне ответить...Ник мой немного сменился 2 раза каждый раз свой пароль забывал..!!Очень надеюсь на ответ..
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

Balancer

администратор
★★★★★
>Например //do скажем эта команда описана в data/jbforth...и в яве ./net/sf/......

А "в яве" где? DO - это, вообще-то, штатное слово стандартного Форта. Начало цикла с параметром :)

Кажется, когда-то ещё по //do можно было вызывать на исполнение Форт-код (тогда его Ява обрабатывала, как синоним админкоманде //forth), но это не слово Форта. И впоследствии эти команды были убраны, так как сейчас сервер обрабатывает как Форт-команды всё, что не понял, как админ-команды.

>каким образом Ява поймет что надо при команде //do обратится к коду в data/jbforth...

Сервер, получив админ-команду (//
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
+
-
edit
 

photon

новичок
>>Например //do скажем эта команда описана в data/jbforth...и в яве ./net/sf/......
Balancer> А "в яве" где? DO - это, вообще-то, штатное слово стандартного Форта. Начало цикла с параметром :)

Я этим не хотел показать конкретную задачу на команду //do
я имел ввиду не конкретно \\ду а любую команду ведь при //(неважно что тут будет) он отправляет запрос на данную команду пускай даже //notworkthiscommand он ищет такую команду и выполняет действие связанное с ним....

Ну так вот интересует всвязи с ответом следуещее :
Почему сработает не в яве а в форзе если скажем Форя только прикручен к серверу ??или у него приоритет выше??
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

Balancer

администратор
★★★★★
Вот точный код. Надеюсь, тут всё понятно :)

gameserver/clientpackets/SendBypassBuildCmd.java

    void runImpl()
    {
        if(Config.DEBUG)
            _log.info("Got command '" + _command + "'");

        L2Player activeChar = getClient().getActiveChar();

        if(activeChar == null)
            return;

        String word = (_command.split("\\s+"))[0];
        String args = _command.substring(word.length()).trim();

        if(JBForth.word_exists("admin_" + word))
        {

            if(Config.DEBUG)
                _log.info("Parsed by forth as '" + args + "' admin_" + word);
            if(!(activeChar.getPlayerAccess().IsGM || activeChar.getPlayerAccess().CanUseGMCommand))
            {
                activeChar.illegalAction(activeChar.getName() + " user use adm command admin_" + _command, 200);
                return;
            }
            JBForth tmp = new JBForth(activeChar);
            tmp.st.push(args);
            tmp.execp("admin_" + word);
            return;
        }

        if(JBForth.word_exists("gm_" + word))
        {
            if(Config.DEBUG)
                _log.info("Parsed by forth as '" + args + "' gm_" + word);
            if(!(activeChar.getPlayerAccess().IsGM || activeChar.getPlayerAccess().CanUseGMCommand))
            {
                activeChar.illegalAction(activeChar.getName() + " user use adm command admin_" + _command, 200);
                return;
            }
            JBForth tmp = new JBForth(activeChar);
            tmp.st.push(args);
            tmp.execp("gm_" + word);
            return;
        }

        IAdminCommandHandler ach = AdminCommandHandler.getInstance().getAdminCommandHandler("admin_" + _command);
        if(ach != null)
        {
            if(!(activeChar.getPlayerAccess().IsGM || activeChar.getPlayerAccess().CanUseGMCommand))
            {
                activeChar.illegalAction(activeChar.getName() + " user use adm command admin_" + _command, 200);
                return;
            }
            ach.useAdminCommand("admin_" + _command, activeChar);
            return;
        }

        if(activeChar.getPlayerAccess().UseForth)
        {
            if(Config.DEBUG)
                _log.info("Eval by JBForth");
            activeChar.getJBForth().execp(_command);
            return;
        }

        activeChar.sendMessage("No access to use forth or command '" + _command + "' not recognized");
    }
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
+
-
edit
 

photon

новичок
Я сделал следуещее:
Добавил из вашей сборки все что знал что можно добавить:
(jbforth и main.f в корень сервера)
(Форз коды из balance/data/jbforth в l2sf/data/jbforth)
(изменил gameserver.bat вставил java %-jar jbforth.jar%)
(Добавил в Корень ваши код сервера так как без него все ошибками засыпало оно и неудевительно что он не знал что такое playr@ после добавления вашего кода явы ошибки изчезли но одна всетаки осталась

Exception in thread "main" java.lang.NoClassDefFoundError: javolution/util/Fast
ist$Node
at l2f.extensions.jbforth.characters$do_players.exec(characters.java:21)
at ru.balancer.JBForth.do_word(JBForth.java:398)
at ru.balancer.JBForth.do_code(JBForth.java:249)
at ru.balancer.JBForth.do_code(JBForth.java:227)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:4)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:355)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:345)
at ru.balancer.JBForth.tryAsFile(JBForth.java:334)
at ru.balancer.JBForth.do_code(JBForth.java:306)
at ru.balancer.JBForth.do_code(JBForth.java:227)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:4)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:355)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:342)
at ru.balancer.JBForth.tryAsFile(JBForth.java:331)
at ru.balancer.JBForth.do_code(JBForth.java:306)
at ru.balancer.JBForth.do_code(JBForth.java:227)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:4)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:355)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:342)
at ru.balancer.JBForth.tryAsFile(JBForth.java:331)
at ru.balancer.JBForth.do_code(JBForth.java:306)
at ru.balancer.JBForth.do_code(JBForth.java:227)
at ru.balancer.jbforth.words.FileSystem$included.exec(FileSystem.java:4)
at ru.balancer.JBForth.tryAsFileExact(JBForth.java:355)
at ru.balancer.JBForth.tryAsFileWithPath(JBForth.java:339)
at ru.balancer.JBForth.tryAsFile(JBForth.java:334)
at ru.balancer.JBForth.do_code(JBForth.java:306)
at ru.balancer.JBForth.do_code(JBForth.java:219)
at ru.balancer.JBForth.exec(JBForth.java:138)
at ru.balancer.JBForth.execp(JBForth.java:149)
at ru.balancer.JBForth.reload(JBForth.java:119)
at ru.balancer.JBForth. at ru.balancer.JBForth.main(JBForth.java:592)
INFO : loading gameserver config)

Сервер запускается с двумя движками с Вашим и с СФ папки l2f и net ..из jar архива убраны все файлы так что он не использует l2jserver.jar...
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

photon

новичок
Рома ответь пожалуйста в Жабе или хоть в Асе ....В асе тебя знакомый мой видит каждый день а в Жабе ты не появляешся..
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

phoptik

разработчик L2J Fortress

Ты Форт к СТ прикручиваеш ?
 
+
-
edit
 

photon

новичок
phoptik> Ты Форт к СТ прикручиваеш ?
Пробую...Конкретной цели сделать это у меня нету!
А ты можешь что то мне посоветоввать на этот счет??
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

photon

новичок
вставил так
java -jar jbforth.jar
ibmaio.jar;log4j-1.2.14.jar;bsf.jar;bsh-2.0.jar;javolution.jar;c3p0-0.9.0.4.jar;mysql-connector-java-3.1.10-bin.jar;l2j-gameserver.jar;jython.jar net.sf.l2j.gameserver.GameServer


Сервер виснет при старте выводит=

Starting L2J Game Server.
JBForth loaded

и все...

Добавил только скаченный с СВН JBforth И main.f
Лед тронулся господа присяжные заседатели...  
UA SoulKeeper #12.12.2006 23:56
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Оно и в помине работать не должно.
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
+
-
edit
 

photon

новичок
SoulKeeper> Оно и в помине работать не должно.

Содержательный ответ....Все понял большое спасибо.!
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

phoptik

разработчик L2J Fortress

photon, забей, я уверен что ты не сможеш это сделать.
 
+
-
edit
 

photon

новичок
phoptik> photon, забей, я уверен что ты не сможеш это сделать.

И тебе спасибо добрый человек на добром слове=)
Лед тронулся господа присяжные заседатели...  
+
-
edit
 

photon

новичок
И вобще..! Танки грязи не боятся...!!
Не поможите сам сделаю просто времени больше потрачу...
Лед тронулся господа присяжные заседатели...  
1 2 3 4

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru