Beliy.IV 3 Опубликовано 30 октября, 2014 (изменено) Занялся созданием дроп/споил патча своими силами. Создал список, пришло время добавить кол-во и шансы, пока занимаюсь только спойлом без рейтов, т.е. по тому кол-ву и шансом которые вбиты в базу т.е. х1 рейты. Может кто-то рассказать подробно. Вот есть например Правильно ли я понял 1806 - 10,9% 1871 - 9,8% 116 - min = 3 ; max = 4; на max шанс 43% 1786 - 45,3% 1871 - 56,6% Изменено 30 октября, 2014 пользователем Beliy.IV Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 31 октября, 2014 (изменено) если это дроп без групп или спойл, то да в дропе с группами расчеты чуть сложнее. ---- upd: а хотя да, забыл что в таком виде, в бд, даже с группами расчет такой же, не по правилам оффа. Изменено 31 октября, 2014 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Beliy.IV 3 Опубликовано 31 октября, 2014 (изменено) Вопрос возник, рейты х20 (например) предмет в БД min=13 max=13 шанс=22% Сервер: 22%*х20=440% берет min=13*4=52 и их шанс становиться 100% а остаток %, т.е. 40% кидает на max в итоге мин=52 шанс 100% , max=52+13=65шт. с шансом 40% так? или мин=13*4=52 c шансом 100% max=13*4=52 с шансом 40% ???? Изменено 31 октября, 2014 пользователем Beliy.IV Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 31 октября, 2014 от сервера зависит это все - по разному бывает считает может к примеру еще дополнительно разделить на несколько отдельных групп, если итоговое количество превысит определенное значение. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Beliy.IV 3 Опубликовано 31 октября, 2014 А если без групп. чисто споил. Я вот тестил мин=13 max=13 то 39 то 52 т.е. он 13*x20 рейты и выдал мне что минимум стал 39 и когда мне везло выпадал max ещё +13 или же он мне выдавал минимум 39 и иногда 60% что выпадет ещё раз минимум. Вот вижу отличный пример. мин=1 max=13 шанс=90,93% Что сервер мне выдаст? при Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Beliy.IV 3 Опубликовано 1 ноября, 2014 Ты зачем удалил сообщение? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Beliy.IV 3 Опубликовано 1 ноября, 2014 Ребят, нашёл код в сервере который просчитывает дроп при шансе > 100% Я во всём вроде разобрался, но на практике. Вкратце: если ШАНС больше 100% умножается кол-во на ШАНС/100 т.е. 120%/100=1,2 Таким образом Я рассчитал что кол-во = 13 шанс 19% при рейтах х10 получаем ШАНС =190 13*1,9=24,7=25шт с шансом от 19% На практике 95%=26шт и 5%=13 26шт я ещё как-т омогу объяснить но вот откуда 13 шт? 1132 // Count and chance adjustment for high rate servers 1133 if (dropChance > L2DropData.MAX_CHANCE && !L2Config.PRECISE_DROP_CALCULATION) 1134 { 1135 int multiplier = dropChance / L2DropData.MAX_CHANCE; 1136 if (min < max) itemCount += Rnd.get(min * multiplier, max * multiplier); 1137 else if (min == max) itemCount += min * multiplier; 1138 else itemCount += multiplier; 1139 1140 dropChance = dropChance % L2DropData.MAX_CHANCE; объясните dropChance = dropChance % L2DropData.MAX_CHANCE; и как округление срабатывает, на сколько dropChance = Math.round(dropChance); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 1 ноября, 2014 dropChance = dropChance % L2DropData.MAX_CHANCE; в результате остается остаток от деления dropChance на L2DropData.MAX_CHANCE dropChance = Math.round(dropChance); просто отбрасывается вся не целая часть. если хочется получить ближайшее большее или меньшее целое число, то используй Math.floor или Math.ceil Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты