Вопросы по JBF

 
+
-
edit
 

Balancer

администратор
★★★★★
>- вывода сообщений в Trade канал, сейчас объявления аукциона выкидываются в announce

Написал. Протестирую и выложу.

>- как зная ID вещи вывести окошечко с инфой которое выпрыгивает например когда на вещь щелкаешь в инвентаре или в магазине.

С этим пока туго. Даже средствами Java не совсем понятно, как делать такое автоматически.

>- как зная ID вещи получить ее название.

Ещё сложнее. Ни один из нынешних датапаков не содержит в себе корректных имён всех вещей :-/

>- ну и для полного счастья сейчас аукционер спрашивает ID вещи которую ты выставляешь на аукцион, игрокам это будет неудобно, чтобы выставить на аукцион надо будет знать ID вещи, как организовать окошко как при обмене или торговле,складе например.

Только через Java. И то не уверен, что всюду подойдёт. Подумаю, как на Форте реализовать.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

BLaS

новичок
>> как зная ID вещи вывести окошечко с инфой которое выпрыгивает например когда на вещь щелкаешь в инвентаре или в магазине.

> С этим пока туго. Даже средствами Java не совсем понятно, как делать такое автоматически.

в принципе можно сделать как было с примеркой, то есть по команде .auc_info в инвентаре игрока создается вещь с тем же ID, что и на аукционе и он может ее посмотреть. Но как я понял это отключили из-за того что игроки успевали разбить вещи или передать кому то еще.

Можно решить и примерку и аук так: Вещи даются, но слово по таймер-события, когда должно забрать эту вещь, если ее не находит то забрасывает игрока в тюрьму на неопределенный срок до дальнейшего разбирательства.

Чтобы не гребли вещи мультами которых не жалко бросить в тюрьме, дополнительно ввести торговую систему, персонаж достигший 40го уровня у любого кладовщика может получить торговый билет. Тогда его начинают уважать в магазинах и давать вещи на примерку, ессно если вещи пропадут к моменту возврата персонаж окажется в тюрьме и только с торговым билетом можно торговать на аукционе, смотреть инфу о вещах. Можно конечно и просто сделать в словах проверку на лвл, но так будет ролеплейнее.
 

BLaS

новичок
Бал подскажи код, сижу и думаю тут а возможности потестить нету сейчас
Нужно увеличить любой стат персонажа на 1 (STR WIT и тд)
по памяти и логике выплывает чтото вроде

code forth
  1. : UPSTR player@ "STR" p@ 1 + player@ "STR" p! ;


изменит ли данный код STR+1 у админа при вызове, или как написать и есть ли вообще такая возможность?
 
+
-
edit
 

Balancer

администратор
★★★★★
p! записывает только строковые значения. Если точно, то "string" object "Name" p! вызывает object.setName("string").

Для записи целых чисел есть ip! (int-property-set): number object "Field" ip!.

Но для наших целей оно не пойдёт. Функций setSTR в игре нет вообще. Никаких. Они были в вариантах годичной давности, но народ, вводя новые калькуляторы, зачем-то выбросил такие функции. Вообще!

Сейчас лень смотреть, но по памяти - персонажи не пользуются хранением индивидуальных базовых STR/WIT/CON... Используются только значения шаблона класса игрока.

Посмотрю, можно ли что-то с этим сделать в Java... Вообще, это одна из областей игры (статсы, AI, скиллы), где я бы делал всё совершенно не так и где то, что сделано, мне кажется непродуманным и даже, где-то, бредовым :)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

BLaS

новичок
Ммм, Бал посмотри пожалуйста. Народ сделал оч плохо :(

Хочу сделать следующую вещь, если базовые статы можно будет изменять, то ввести систему поднятия статов.
То есть стоит в адене на площади сэр Ровенхольм, игрок подходит к нему и за плату в 50 SoP(Stone of Puryti), имеет возможность поднять любой свой базовый стат на +1, 2 раз поднять любой стат +1 ему уже будет стоить 100 SoP, 3 раз 200 SoP и тд в геометрической прогрессии, на 10 раз 25к+ SoP но все равно такая возможность будет.

Что это даст?
Во первых сейчас все хай левельные игроки схожей расы профы похожи друг на друга как близнецы. Носят на самом деле приблизительно одинаковый стаф статы у всех одинаковые. А при такой системе игрок будет иметь возможность самому развивать своего персонажа. Кто то поднимет +5 CON а кто то +2 WIT +3 INT. И это не тоже самое, что тату тк система более гибкая (тату существуют только определенные), статы только прибавляются, и что оч важно для игроков, система поднятия статов - якобы бесконечна, хотя на самом деле ясно что >10 ну может быть самые упорные экономисты управленцы поднимут на 11-12 во что я не верю (80к SoP) :) но должны же они чем то награждатся за свой труд.

Во вторых это несколько оттянет проблему достижения макс лвла, сейчас Игроки 75+ становятся в тупик, делать им больше абсолютно нечего, а так они смогут "теоретически" неограниченно развивать своего персонажа.

В третьих у игроков появится действительно за что ценить своего "мейн" чара, тк прокидывать всех сразу достаточно накладно, деньги и силы будут вкладываться в основного чара, который и будет ценим игроком.

В четвертых эта система очень удобна для эвентов, тк с вознаграждением за эвент меньше вопросов, можно спокойно награждать игроков сотней SoP и они будут на 7 небе от счастья. Тк SoP будут очень сильно ценится.

Если будет возможность изменять статы через jbf - реализация такой системы очень проста.
 

BLaS

новичок
можно ли вообще редактировать значения из таблицы Characters?

сейчас пробовал изменять их по следующему принципу:
code forth
  1. : test ( string -- )
  2.    dup player@ swap p@ . 2 + player@ swap ip!
  3. ;


например: //"Karma" test , //"MaxHp" test и тд

сидел и брал значения(названия параметров) из Characters некоторые пишет правильно, на некоторые ругается, но не изменяет никакие, к примеру карму.

мб ip! поломалось?
 
+
-
edit
 

Balancer

администратор
★★★★★
BLaS:
можно ли вообще редактировать значения из таблицы Characters?
 


Только те, изменения которых предусмотрены в Java-коде. Скажем, HP игрока ты можешь изменить так (сразу слово опишу для выбранной цели):
code forth
  1. : gm_set-hp  вызов как //set-hp 200 вызовет это слово, поместив строку на стек
  2.     int  строку в число
  3.     player@ target@  выбрали нашу цель
  4.     "CurrentHp"  для вызова setCurrentHp(Double)
  5.     set(d)  вызываем присваивание
  6. ;


Должно работать, если в коде не напутал, по крайней мере проверял пару дней назад саму возможность - работала. Хотя для этого пришлось ввести в l2j.sf слова setCurrentHp(Double) вдобавок к setCurrentHp(double), так как слова с небоксовыми параметрами через Reflect не вызыаются :-/
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
+
-
edit
 

Balancer

администратор
★★★★★
public void setKarma(int karma)

Значит, можно вызывать по вышеописанной схеме, передавая целочисленный параметр. Т.е. твой код сработает.

А вот setMaxHp больше не определена. Убрали. Сейчас, опять, MaxHp считается только от шаблона :-/ В общем, это было одно из решений, которыми я недоволен...
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
+
-
edit
 

Balancer

администратор
★★★★★
У игроков сейчас даже непосредственного атрибута MaxHp нет. Только вычисляемые из параметров шаблона под воздействием на него калькулятора эффектов:
code java
  1. public int getMaxHp()
  2. {
  3.     double val;
  4.     if (this instanceof L2NpcInstance){
  5.         val = _template.baseHpMax * ((L2NpcTemplate)_template).rateHp;
  6.             val = calcStat(Stats.MAX_HP, val , null, null);
  7.     }else
  8.             val = calcStat(Stats.MAX_HP, _template.baseHpMax, null, null);
  9.         return (int)val;
  10.     }


Калькулятор эффектов - это та самая штука, которую я самым элементарным образом не понимаю. Не понимаю, как можно было так извратиться с идеей и кодом на ровном месте...
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

BLaS

новичок
>> можно ли вообще редактировать значения из таблицы Characters?
> Только те, изменения которых предусмотрены в Java-коде.

1. как узнать для каких значений персонажа в коде предусмотрены изменения

2. как попросить чтобы туда добавили изменения некоторых значений (оч хотелось бы "Karma")
(пока писал про карму ты уже ответил :) )

3. стоит ли вообще пытатся изменять игровую механику (то есть делать не эвенты к примеру, а обновления игрового процесса: торговые аукционы, биржи, частичное регулирование статов самим персонажем, добавлять (модифицируя существующие) свои игровые зоны и тд.) примет ли эти вещи сообщество l2j или оно целиком ориентировано на 100% соответствие официальной игре?

(у меня идеи гибнут одна за другой :( )
 

BLaS

новичок
> У игроков сейчас даже непосредственного атрибута MaxHp нет. Только вычисляемые из параметров шаблона
> под воздействием на него калькулятора эффектов:

хоть я и не разработчик ни в одном месте но у меня есть догадка зачем нужно было вводить калькулятор эффектов, видимо просто не знали формул расчета здоровья, маны, уклонения, критов и тд в зависимости от статов, зато знали сколько чего должно быть у конкретных проф на конкретном лвле. Поэтому сделали "калькулятор" решение действительно более простое, но имхо и более слабое :(

предположение на уровне догадок чисто...
 
AD Реклама Google — средство выживания форумов :)
+
-
edit
 

Balancer

администратор
★★★★★
>1. как узнать для каких значений персонажа в коде предусмотрены изменения

Смотреть в коде сервера :) В папке model файлы, типа L2Character.java, L2PcInstance.java и др. Искать функции setXXX(..)

> как попросить чтобы туда добавили изменения некоторых значений

Можно меня попросить :D Если параметр в принципе меняется, а функций для его изменений нет - добавить легко. Вот добавить MaxMp будет сложно. Так как его в чистом виде для отдельного персонажа в нынешней реализации, увы, нет :-/

>3. стоит ли вообще пытатся изменять игровую механику (то есть делать не эвенты к примеру, а обновления игрового процесса: торговые аукционы, биржи, частичное регулирование статов самим персонажем, добавлять (модифицируя существующие) свои игровые зоны и тд.) примет ли эти вещи сообщество l2j или оно целиком ориентировано на 100% соответствие официальной игре?

Если свои, несовестимые с официальными, расширения будут отключаемыми и при этом по умолчанию выключены - то никто против не будет :)

>видимо просто не знали формул расчета здоровья, маны, уклонения, критов и тд в зависимости от статов, зато знали сколько чего должно быть у конкретных проф на конкретном лвле. Поэтому сделали "калькулятор" решение действительно более простое, но имхо и более слабое

Да нет, всё проще. Народ не хотел подождать буквально несколько недель до окончания отладки ядра JBForth и ещё не додумался прикрутить Jython, а параметры скиллов вдруг захотели перенести в XML. (как меня это решение тогда бесило... - Unknown topic 904 и т.п...). Тогда поспешили, теперь имеем невнятную систему, которая отвратительно расширяется... Оставили бы ядро статических параметров персонажей как раньше, сейчас бы не было никаких проблем с их модификацией откуда угодно. Хоть из тех же XML, приписав к каждому скиллу параметр типа "code" с Форт-текстом, вызываемым при активации скилла и т.п. Чую, что итак всё к такому варианту придёт, но когда?...
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

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