PlayGround.ru
Ropnet
, Гарри Поттер и Принц-полукровка на PlayStation 2, трейнер Ил-2 Штурмовик: Битва за Британию, NHL 09 NoCD


Craft Calculator

похмелье   15 августа 2010 в 13:05

Craft Calculator позволяет рассчитывать ilvl,clvl,alvl, а также вероятность выпадения аффиксов и групп аффиксов.



было бы интересно услышать конструктивную критику и замечания.
з.ы. read readme.txt first ;)

Craft Calculator src

Компот из груш   15 августа 2010 в 13:15

Следует выкладывать исходники.
А где выбор шмотки?

На самом деле, достаточно сделать такое. Выбираешь шмотку из списка и тебе показывается таблица соответствия ilvl <-> alvl.

похмелье   15 августа 2010 в 13:18

так их же 3 на большинство крафтов (окромя weapon). соответственно для большинства крафтов выбирается тип и итем, а для меньшинства (weapon) задаётся непосредственно.

з.ы. нашёл отсутствие одной проверки, так что лучше перекачайте, перезалил

похмелье   15 августа 2010 в 13:27

добавил исходники, но вряд ли они будут кому-то интересны.

похмелье   15 августа 2010 в 13:31

На самом деле, достаточно сделать такое. Выбираешь шмотку из списка и тебе показывается таблица соответствия ilvl alvl.
ну, фактически это и происходит. просто показываются "все" годные к крафту шмотки. крафт - это чаще всего gamble, по этому вид "по три" мне кажется более уместным.

Компот из груш   15 августа 2010 в 14:10

А, я думал немного о другом.. Если так, то с qlvl пользователю вообще не нужно иметь дела.
Выбираешь рецепт крафта, выбираешь шмотку, устанавливаешь ilvl и clvl, а оно тебе пишет: Normal - такой-то alvl, Exceptional - такой-то, Elite - такой-то. Ну или можно (даже нужно для неискушенного пользователя) в отдельном окошечке выводить список доступных аффиксов с вероятностями.
Gamble далеко не всегда служит источником шмота для крафта, да и даёт случайный ilvl, так что тут тоже не стоило бы его упоминать. Ну или выводить минимальный и минимальный лучший уровни чара для получения данного alvl при условии, что источником шмота будет гембл.
Под "минимальным лучшим" я понимаю такой левел, начиная с которого в гембле всегда получается шмотка нужного alvl.
Можно пойти ещё дальше и учитывать вероятность генерации аффикса. Т.е. выводить будешь уже 3 числа - минимально необходимый уровень для получения данного аффикса и диапазон уровней, при котором шанс получить шмотку с заданным аффиксом максимальный.

Т.е., по-хорошему, должно быть два режима в калькуляторе. Первый - отображение доступных аффиксов с вероятностями для данного рецепта, шмотки, ilvl, clvl.
Второй - отображение минимально необходимого и минимального наилучшего clvl для получения заданного alvl (ну или аффикса из списка, чтоб не парить юзеру голову), если источником шмотки служит торговля с NPC или гембл. Это в некотором роде то, что у тебя сейчас (но в не очень удобном и завершённом виде).

EDIT: Написал там несколько сумбурно, поправил.

похмелье   15 августа 2010 в 14:43

Ну или можно (даже нужно для неискушенного пользователя) в отдельном окошечке выводить список доступных аффиксов с вероятностями.
вот это хорошая идея ;)

Gamble далеко не всегда служит источником шмота для крафта, да и даёт случайный ilvl, так что тут тоже не стоило бы его упоминать. Ну или выводить минимальный и минимальный лучший уровни чара для получения данного alvl при условии, что источником шмота будет гембл.
при расчёте с флагом "gamble" используется значение clvl-5, т.е. минимальный лучший, что логично. смысла в просто "минимальном" не вижу, ибо дозволенными способами ilvl шмотки из gamble не узнать. ну, кто будет варить в надежде на аффикс на который возможно будет не хватать ilvl?! уж проще левел чару качнуть.

два режима в калькуляторе
они вроде как не пересекающиеся и можно их сделать одновременно.

с вероятностями для данного рецепта, шмотки, ilvl, clvl.
я бы сказал для данного рецепта, шмотки, alvl (это к слову о несвязанности двух задач, результат одной - alvl, результат другой - список аффиксов, или наоборот)

Компот из груш   15 августа 2010 в 14:55

похмелье, перечитай мой пост, я его дополнял.

ибо дозволенными способами ilvl шмотки из gamble не узнать. ну, кто будет варить в надежде на аффикс на который возможно будет не хватать ilvl?! уж проще левел чару качнуть.
Мб кто-то и будет. Тем более, что есть и другие сервера. Да и удовлетворить любопытство.

они вроде как не пересекающиеся и можно их сделать одновременно.
Да. Это не особо важно. В практическом плане первый режим нужен только для любопытных, считай.
Во втором режиме список аффиксов можно сильно сократить, если использовать только "интересные" аффиксы.

я бы сказал для данного рецепта, шмотки, alvl
Ну как бы alvl у нас - результат, пусть мб и скрытый в случае отображения лишь списка аффиксов (при прочих равных каждому alvl однозначно соответствует некоторый список аффиксов).

Лучше всего делать такой калькулятор, чтоб юзеру нужно было как можно меньше знать и куда-то ещё смотреть.

Сделай так:
- Дропдаун лист со списком "направлений" рецептов (Hit Power, Safety и т.д)
- Дропдаун лист со списком "типов" шмота (boots, amulet и т.д.)
- Дропдаун лист для выбора аффикса (список в нём зависит от выбранного типа шмотки), можно сделать даже два - отдельно для префиксов и суффиксов (выбор в одном очищает другой)
- Радиобаттоны From Gamble и Buy from NPC, устанавливающие источник шмотки
- Чекбокс Normal Difficulty, который становится enabled, если источник шмота выбран Buy from NPC.
- Дропдаун лист с номерами актов, который становится enabled, если Normal Difficulty enabled и checked (например).
Ниже для выбранного рецепта и типа шмотки показывается - какие компоненты нужны на рецепт и какие свойства он даёт (удобно для нубов, справочник прямо в калькуляторе)
Ниже табличка на 3 строки.
В каждой строке сперва написано название шмотки (Normal, Exceptional и Elite версии основного компонента крафта), затем - минимальный clvl, необходимый для получения аффикса, вероятность получения аффикса при этом, затем - диапазон clvl, при которых шанс получения аффикса максимален, ну и собственно сам этот шанс. Удобно, понятно, ничего особо лишнего.

похмелье   15 августа 2010 в 15:11

Лучше всего делать такой калькулятор, чтоб юзеру нужно было как можно меньше знать и куда-то ещё смотреть.
у меня совершенно другое отношение к этому. всегда любил программы, которые выдают много информации (пусть даже и не всегда нужной) aka статистика/промежуточные значения и т.д. и ограничивать информативность в угоду субъективно "незнающему" юзеру как-то не хочется.

Компот из груш   15 августа 2010 в 15:13

Перечитай ещё раз выше, я там предложил конкретную схему. :)

у меня совершенно другое отношение к этому. всегда любил программы, которые выдают много информации
Ну, смотря для кого и для чего ты это делаешь.
В крайнем случае, можно сделать переключатель basic/advanced.

похмелье   15 августа 2010 в 15:29

- Радиобаттоны From Gamble и Buy from NPC, устанавливающие источник шмотки
а что на счёт дропа с мобов aka "ivl directly"

Buy from NPC
честно говоря не знаю какой ilvl получается при покупке у NPC и судя по "Чекбокс Normal Difficulty" это ещё зависит от сложности. буду признателен, если ты напишешь ;)

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

added:
- как на счёт affix group?
- стоит ли включать все аффиксы одной группы или только перф?
- выводить статистику выпадения аффикса из группы?

и ещё к слову о целесообразности расчёта вероятности выпадения:
шанс выпадения отдельно взятых аффиксов не равен их одновременному появлению на шмотке, а игроку чаще всего хочется/требуется больше одного аффикса =)

Компот из груш   15 августа 2010 в 15:43

а что на счёт дропа с мобов aka "ivl directly"
А надо ли? Я вот что-то не помню, чтоб крафтил что-то из дропнутых шмоток. Доставал или в гембл (кольца, амулеты) или у вендоров в трейде (перчи в основном).
Т.е. можно, конечно, но это усложнит интерфейс.

А вообще, для многих вопрос левела для крафта сводится к левелу, который необходим для постоянного получения +2 Class Skills амулей в Gamble. :) Ну, тут они хоть на вероятности посмотрят.

честно говоря не знаю какой ilvl получается при покупке у NPC и судя по "Чекбокс Normal Difficulty" это ещё зависит от сложности. буду признателен, если ты напишешь ;)
Если Nightmare или Hell, то ilvl = clvl + 5, но не более 99.
Иначе ilvl зависит от акта (я забыл это написать):
1) 12
2) 20
3) 28
4) 36
5) 45

Единственное что - не всякую шмотку можно получить у того или иного вендора при том или ином clvl. Т.е. тут неплохо было бы проверять и доступность тех или иных шмоток, но это уже будет сложнее.

- как на счёт affix group?
Ну, можно где-то там выводить, да и только.

- стоит ли включать все аффиксы одной группы или только перф?
Стоит исключить просто откровенно слабые аффиксы, которые точно никто не захочет.

- выводить статистику выпадения аффикса из группы?
Обычного человека это не очень интересует (он даже не знает об этом), уж скорее просто вероятность получить аффикс на шмотке (с учётом возможности недостаточного alvl в gamble, quality шмотки и т.д.). Т.е. у него простой вопрос обычно - "сколько мне нужно в среднем задротить"?

шанс выпадения отдельно взятых аффиксов не равен их одновременному появлению на шмотке, а игроку чаще всего хочется/требуется больше одного аффикса =)
Можно рассматривать и сочетания аффиксов, но это будет уже сложнее, опять же.

похмелье   15 августа 2010 в 16:22

Единственное что - не всякую шмотку можно получить у того или иного вендора при том или ином clvl. Т.е. тут неплохо было бы проверять и доступность тех или иных шмоток, но это уже будет сложнее.
если зависимость (clvl,qlvl), то не очень сложно, ибо оба значения будут определены.

Стоит исключить просто откровенно слабые аффиксы, которые точно никто не захочет.
я немного не об этом. слабые группы аффиксов - это понятно, а как быть допустим с Fire Resistance? никто не захочет (целенаправленно) Crimson (5-10%), а вот на Ruby (31-40%) будет "спрос".

И ещё вопрос о выпадении аффиксов:
все ли аффиксы из одной группы равновероятны? и какова последовательность:
- выбор группы -> выбор аффикса из группы
или
- выбора аффикса
в общем вопрос касательно вероятности и её расчёта.

Компот из груш   16 августа 2010 в 12:49

а как быть допустим с Fire Resistance? никто не захочет (целенаправленно) Crimson (5-10%), а вот на Ruby (31-40%) будет "спрос".
Да точно так же. Забудь про группы, рассматривай полезность каждого аффикса отдельно.

все ли аффиксы из одной группы равновероятны?
Нет, у каждого аффикса задан свой frequency.

похмелье   16 августа 2010 в 18:21

Нет, у каждого аффикса задан свой frequency.
да, это я в таблице нашёл, но что это значит? "частота" появления - probability=freq/sum(freq) для каждой конкретной группы или это в общем для всех аффиксов конкретной шмотки?

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

з.ы. всё больше склоняюсь к мысли разнесения калькулятора ilvl/clvl/alvl/qlvl и калькулятора вероятности выпадания аффиксов.

added:
судя по инфе что я нагуглил, freq делится на сумму всех freq всех допустимых на данном ilvl для данного итема аффиксов.

похмелье   19 августа 2010 в 19:24

^
добавил расчёт вероятности появления аффиксов.

Skay703   19 августа 2010 в 19:29

ВОн оно как то так если это так )))

похмелье   19 августа 2010 в 22:16

ВОн оно как то так если это так )))

и что это значит? :|

ChronoExp[unv]   20 августа 2010 в 02:23

это вероятно значит, что не каждый решится(я например так и не решился) прочитать "ваш с Компотом" диалог))

А по видимому у Антохи хватило храбрости прочитать. вот его и понесло xD

похмелье   21 августа 2010 в 01:52

прочитать "ваш с Компотом" диалог))
в нём ничего "сверхъестественного" нет ^_^

Skay703   21 августа 2010 в 07:04

Конечно нет ничего сверх естественного! только я мельком читал текст и такая фраза сложилась в голове ну я и подумал а почему бы не написать. Но прочитав подумал поюзать прогу. Расскажу как попробую.

похмелье   29 августа 2010 в 21:47

^
- изменены поля и формулы расчёта clvl/alvl/ilvl out
- изменены поля вывода калькулятора вероятностей выпадения аффиксов. теперь приведены вероятности для разного количества "попыток" (количества случайных аффиксов на итеме)

MadPumpKin   31 августа 2011 в 00:27

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

Хотя бы примерная необходимая цифра уровня чара.

похмелье   31 августа 2011 в 00:45

какой нужен уровень игрока для гэмблинга например амулетов для крафта. И чтобы потом на этом крафте был шанс генерирования самых лучших параметров.
Если ты о +2 skills, то необходим 93 уровень персонажа.

added:
А вообще, лучше по проге спрашивай, там всё просто вроде ;)

bd_sm[TDPG]   31 августа 2011 в 00:46

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

bd_sm[TDPG]   31 августа 2011 в 00:47

похмелье, разве там не -5+4 разброс?
я мб забыл уже (

bd_sm[TDPG]   31 августа 2011 в 00:50

както пробовал чаром 91 лвла крафтить амул 89-го, вышел крафт 89 илвла, сделал вывод что берется илвл амула только
мб ошибся, проверять было лень, так как была возможность брать нужные илвлы

похмелье   31 августа 2011 в 01:10

bd_sm
Компот из груш писал, что так вычисляется уровень аффиксов, которые могут выпасть:

Это из галереи Компота.

похмелье   31 августа 2011 в 01:21

ilvl = 88; qlvl = 1; magic_level = 0;
ilvl2 = 88;
ilvl2 >= 99 - qlvl / 2; //false
alvl = ilvl2 - qlvl / 2;
return alvl;//88

Да, похоже ты был прав. Завтра программульку исправлю. Забавно, в ней у меня записано qlvl, а подставляю я clvl.

added:
Да, разброс ты правильно написал.

added#2:
А может и нет. Ладно, я сейчас уже слишком спать хочу. Завтра всё освежу в памяти.

похмелье   31 августа 2011 в 01:33

А, вспомнил!
Когда варишь в кубе появляется новый итем с новым(!) item lvl, который вычисляется как:
min(max(ilvl/2+clvl/2,1),99);
т.е. в случае 88ilvl 93clvl -> 44+46 = 90ilvl

А дальше уже на итем навешиваются аффиксы, alvl которых вычисляется по функции на скриншоте Компота и зависит от qlvl и malvl. Уф!

added:
Ну, а magic_level — это у всяких тиарок из которых крафты сделать невозможно, поэтому в программе не используется. А вообще, насколько я помню, Компот говорил, что это общая для всего д2 функция вычисления максимального уровня аффиксов при их генерации.

added#2:
както пробовал чаром 91 лвла крафтить амул 89-го, вышел крафт 89 илвла, сделал вывод что берется илвл амула только
А, ну вот как раз получается:
91/2+89/2 = 45+44 = 89
Это из-за нечётности.

shtyle   30 мая 2012 в 21:59

похмелье, если еще занимаешься этим перезалей пожалуйста исходники

malloc   30 мая 2012 в 23:44

rghost.ru/38384304

Но все прекрасно качалось и с айфолдера.

shtyle   31 мая 2012 в 18:29

Да когда это было-то...
Спасибо