Тема |
---|
9
2005-10-05, ivse: … цепочка мыслей: - jbf незнакомое слово - делаю grep jbf * */* - ничего явного - вижу каталог jbf, думаю наверное это его там вызывают - захожу внутрь - тоже вроде все нормально. как в этих условиях можно было догадаться, что где-то регистр уехал? ну…
|
12
2005-10-05, Balancer: "Никак" - в том смысле, что не зачем писать то, что уже реализовано И, если уж на то пошло: : user_loc loc@ "Server coordinates: " . rot . swap . . ; В плавающем виде целые печатать не обязательно :D, а манипуляции со стеком в конце…
|
1
2005-10-04, Balancer: Страница перенесена на http://la2.balancer.ru/wiki/inde x.php/Возможности_JBForth
|
36
2005-10-04, Balancer: … Смотреть в коде сервера В папке model файлы, типа L2Character.java, L2PcInstance.java и др. Искать функции setXXX(..) … Можно меня попросить Если параметр в принципе меняется, а функций для его изменений нет - добавить легко. Вот добавить MaxMp будет…
|
1
2005-10-01, BLaS: забавно у меня уже был int : code forth : int 0 + ; а вот так сработает интересно, число в строку code forth : string "" S+ ;
|
2
2005-10-01, BLaS: зашибись )
|
5
2005-10-01, Vairus: все понял сенк
|
2
2005-10-01, Balancer: Кстати, не помню уже когда, но ввёл слово gm_ride. Оно перекрывает вызов слова ride при вызове //ride и выдаёт соответствующий диалог.
|
1
2005-10-01, Balancer: .trade ( "text" "sender" — ) - соответственно, вывод в торговый канал.
|
1
2005-10-01, Balancer: Введён аналог команды show под именем pshow . Разница в том, что pshow требует ещё одного параметра - идентификатора игрока, для которого выводится окно. code text "Test" player@ target@ pshow Вывести окно тому, кто выбран твоей целью.
|
0
2005-10-01, Balancer: code text "2 2 * ." eval распечатает "4". code text 5 "to xxx" eval полностью эквивалентно code text 5 to xxx Соответственно, можно определять новые слова прямо из кода. (Написание программы программой): code text ": test 123 . ;" eval test
|
0
2005-10-01, Balancer: Переменные, описанные как suvalue ("Savable User VALUE-переменные") при выходе пользователя сохраняются в БД автоматически. При старте его - загружаются. Синтаксис и использование идентичны VALUE-переменным, за исключением того, что значение, присваиваемое в описании переменной, устанавливается только один раз, если эта переменная в БД пользователя отсутствует. code forth false suvalue jailed? 0 suvalue jail-to-collect 0 suvalue jail-total-collected "0 0 0" suvalue jail-coords-back ... : jail-me ( items_count -- ) int to jail-to-collect jail-to-collect jail-total-collected + to jail-total-collected true to jailed? Эти переменные будут сохраняться на сервере автоматически ... ;
|
4
2005-09-25, Balancer: Тьфу, конечно же, //jbf_reload Вообще, об этом много на форуме писалось
|
2
2005-09-23, Balancer: code text //true to event? //event-is-here Всё, после этого те, кто наберёт ".to_event" окажутся в этом месте. Для отключения: code text //false to event?
|
0
2005-09-21, Balancer: //bm+ <имя места> - добавить закладку //bm <имя места> - перенестись на выбранное место. Чуть позже добавлю переход по списку (с выбором из меню) и удаление ненужных букмарков.
|
0
2005-09-21, Balancer: code forth : on-skill-1170-target ... ; Вызывается на каждое применение скилла по каждой из целей. Реализовал, например, на нём базовый Anchor. Но толку очень мало пока. Механизм AI в l2j стал совсем кошмарным и идиотским. Реально из Форта управлять гибко чем-то фиг выходит. На каждый чих нужно дописывать заглушку-переходник. Всё из-за того, что тот, кто разрабатывал систему, помешался на enum'ах. А это кранты для reflection. По крайней мере, я не нашёл ни одного способа получить enum по его имени :-/ Если кто знает - поделитесь. А то пока работа встала.
|
8
2005-09-18, Balancer: Выложил это решение в SVN
|
0
2005-09-18, Balancer: explode разбивает строку на элементы, разделённые пробелами. Возвращается список элементов. Например, получение двух первых слов из строки любой длины: code text explode получаем список list> раскладываем список на отдельные элементы в стеке и их число 2 - ndrop сбрасываем из стека n-2 элементов всё, остались только первые два
|
0
2005-09-17, Balancer: Например, теперь "/main.f" при подключении подкаталогов указывать не обязательно. Исправлена работа слова <> Исправлен ndrop А вот в работе value-переменных при их переопределении заметил баг. Точнее сказать не могу, точно не вылавливал.
|
0
2005-09-17, Balancer: code text { 1 2 3 2 2 * } Будет создан список из 4-х элементов, 1, 2, 3 и 4. Слово '{' запоминает состояние стека, а '}' формирует из того, что появилось в стеке, список. Понятное дело, что если внутри будет формирование других списков - то они тоже попадут как элементы нового списка. code text { { "Player1" 12 } { "Player2" 14 } } " '.' do-list " do-list Слово do-list ( list "code" — ) выполняет код "code" для каждого элемента списка.
|
1
2005-09-17, zabbix: вот спасибо теперь через телнет буду плюшки раздавать
|
1
2005-09-17, Balancer: world Возвращает объект L2World сервера.
|
0
2005-09-17, Balancer: Кладёт на стек, соответственно, null
|
0
2005-09-17, Balancer: code text : find_player ( "name" -- player ) world "Player" get(s) ; Find player by his name ; Вызов xxx = world.getPlayer(name)
|
0
2005-09-17, Balancer: Если при обращени к html-файлу NPC с кодом NNNN, находится одно из сабжевых слов, то его вывод дописывается в конец нужного файла, перед тэгом </body>. Позволяет строить динамическую реакцию NPC. Например, дописать строчку эвента только тогда, когда этот эвент активен: code forth : npc-7120-dialog-append ' ' . '<a action="bypass -h jbf_event_theft-of-kamilla_7120& quot;>Event "Theft of Kamilla"</a> ' . ; Если будет загружаться этот код, то при обращении к NPC 7120 (Maximilan) внизу его диалога появится соответствующая сточка.
|