Теги форумов: JBForth

Фильтр: Forth, Java, программирование
Теги : Forth, Java, JBForth, программирование
 
Тема
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) внизу его диалога появится соответствующая сточка.
0
2005-09-17, Balancer: Не проверено точно, но теперь нераспознанные админ-команды обрабатываются хитрее. Если при вызове //command parameters находится слово gm_command , то оно вызывается без проверки доступа. Все проверки должно делать это слово. Если же такого слова нет, то тогда, как и раньше, выполняется Форт-код, если у игрока достаточный (GM_USE_FORTH) уровень доступа. Позволяет вводить новые админ-команды на Форте с тонким различием уровня доступа и переписывать старые команды. Полное тестирование будет чуть позже.
6
2005-09-17, TD_ALECS: Так, а у тебя написано дверь 2 её 12345678 или это не то ? Так, а будете реализовывать на Форте открываение дверей именно кланом.
0
2005-09-16, Balancer: Попробую тут собрать некоторое обобщение, а то не все знают, что к чему, и прикреплю эту тему Опять же, тут же можно делать заказы-хотелки. JBForth умеет: - Создавать, удалять, проверять наличие любых предметов или денег в инвентаре пользователя. - Проверять/изменять любые property любого объекта обращения к которым идет через getXxx()/setXxx(). Правда, не до всех объектов есть ещё доступ. - Телепортировать игрока, как по абсолютным координатам так и по относительным - Формировать HTML-диалоги - Вызывать слова на гибель NPC - Открывать/закрывать двери - Производить определённые операции на входе/выходе игрока, а при запуске сервера даже дважды - до начала всех инициализаций и после них. - Выполнять отложенный на произволное время вызов слова (таймерные задачи) - Выполнять определённый код для всех игроков сервера - Выполнять SQL-запросы - Обеспечивать посадку/ссаживание игрока с ездового животного - Переименовывать игрока - Выполнять визуальный эффект того или иного скилла - Проигрывать музыку клиента…
7
2005-09-16, Balancer: zabbix: а его проэксплоитить низя? выбрать непися, и байпасснуть слово из хелпа?   Нет. Я уже писал, что из bypass вызывать Форт-слова прямо сейчас нельзя. Не очень удобно, но такова жизнь. Точнее - кривь идеологии корейцев Было описано тут: Unknown…
0
2005-09-16, Balancer: get(i) ( n object1 "Function" — object2 ) Вызывает метод getFunction(Integer) для объекта object, передав ему параметр n. Результат возвращается как object2. Пример: door-id doors-table "Door" get(i) - аналог xxx = DoorTable.getDoor(door_id); в Java.
2
2005-08-22, Rockman: awarm: class@ возвращает цифровое значение. Назначать его не надо он прописан в сервере. player@ class@ . выдаст 35   Вот что пишет на это: Unknown word class@ Так я с самого начала пробовал. Причем если писать: 35 player@ class! то класс игрока…
2
2005-08-18, awarm: блин. ну в on-player-start.f напиши проверку. player@ "admin" = if / что-ты там с ним хочешь делать then типа такой. не проверял, но типа такого
53
2005-08-11, vini: awarm: ну лично я не тестил людские профы, но наверно на след. неделе займусь. у меня тут тоже с этим проблеммы. как будет готово, выложу где-нибудь оттестированные квесты отдельным файлом   я могу предоставить место до 1 гига и распространение для…
0
2005-08-07, garri_il: Бал скажи можно реализовать телепорт клана в замок на форте с проверкои принадлежности данного клана к захва4енному замку ?
18
2005-08-07, Balancer: Таймерный стек - локальный на каждого юзера, но общий для всех задач. Вообще - да, не сообразил сразу, для таймерных задач нужно заводить свой стек.
22
2005-07-28, garri_il: [quote|Balancer:]Кстати, для админа может быть полезна команда "jm" ( j ump by m ap), которая переносит по координатам карты : //45.5 50.2 jm Глянул по карте, куда тебе нужно, и прыгнул туда :)[/quote] kleva
4
2005-07-18, awarm: Оно-то так, но мне очень не хочется еще в чужих файлах копаться и разбираться в логике. А так - сделал все что надо и почистил за собой. упрощается разработка на порядок
6
2005-07-18, Balancer: awarm: теперь-бы еще то-же самое, но при выходе игрока   Еже ли не было замечено - сразу же и сделал. Только отписать забыл
0
2005-07-17, Balancer: Слова loc&gt;map ( x_loc y_loc — x_map y_map) и map&gt;loc ( x_map y_map — x_loc y_loc) служат для преобразования внутриигровых координат в координаты карты и наоборот. Слово jm  ( map_x map_y — ) телепортирует администратора в точку, заданную координатами map_x и map_y карты. Пример: //55.3 40 jm
0
2005-07-17, Balancer: Формат вызова: code forth ... DO    ...    ... LOOP ... Перед словом DO на стек кладутся конечное и начальное значение цикла. Эти числа при выполнении слова DO снимаются со стека (и кладутся на стек возврата - но это в стандарте не оговаривается) Тело цикла выполняется хотя бы один раз. Слово LOOP увеличивает на единицу переменную цикла, сверяет с конечным значением, и если занчения точно равны - завершает цикл. Иначе - повторяется тело цикла. Если изначально стартове значения равны, то цикл получается бесконечным (реально - до переполнения целочисленной переменной, до тех пор, пока переменная цикла и конечное значение не сравняются). Для избегания зацикливания, при возможном наличии на входе равных переменных, есть слово ?DO - полный аналог DO, за исключением дополнительной проверки. Если числа на старте равны, то цикл не выполняется ни разу. Для работы с шагом цикла отличным от +1 существует слово +LOOP Ему на вход требуется положить на стек шаг цикла. Шаг цикла может быть и…
1
2005-07-15, Balancer: code forth : npc-clan-test     player@ "ClanId" p@     0= if         "no-clan.html" show         exit     then       "have-clan.html" show…
4
2005-07-14, Balancer: Про переменные из Jython не думал. Но - мысль. Вот переменные игрока - как раз в квестовой таблице БД сохранять собирался. Кстати, юзеровские переменные-то физически реализованы уже. Только их сохранение/загрузку написать нужно ... Да, если до переменных…
1
2005-07-14, Balancer: Сделал. Сейчас обновлю L2JRU. Проверяется последовательностью player@ "ClanLeader" p? Слово p? аналогично p@, но читает Object не через getProperyName, а 0/-1 (традиционные boolean в Форте) через isContition. Можно определить одним словом: : clan-leader?…
1
2005-07-14, Balancer: В текущей реализации - нет. Периодических процессов нет, есть только задержанные. Объявления - сделать можно, но в нынешней версии они не будут сохраняться при рестарте сервера. Ключевые моменты - переменные VARIABLE - глобальные на весь сервер. Можно…
Смотри также

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