Случайный дроп ингридиентов

Теги:
 
+
-
edit
 
Яву обычно ставят на серверы с небольшим онлайном, так что собирать сабж крайне муторно. Есть смысл добавить возможность дропа случайных ингридиентов первого уровня (которые нельзя скрафтить, только найти) с любого монстра (количество и тип пропорционален уровню). То есть чтобы к обычному дропу из дроплиста добавлялся дроп типа stem или varnish. С хайлевелов есть шанс что будет stone of purity например.

Сделать это включаемым через конфиг я не могу, так что делаю это надстройкой над бд.

Список ингридиентов добываемых таким образом:
С монстров 1+: Stem, Varnish, Suede, Animal Skin, Thread, Iron Ore, Coal, Charcoal, Animal Bone, Silver Nugget
С монстров 20+: Oriharukon Ore, Stone of Purity, Mithril Ore, Adamantite Nugget
С монстров 40+: Mold Glue, Mold Lubricant, Mold Hardener, Enria, Asofe, Thons

Шансы выпадения рассчитываются основываясь на цене. Т.е. если цена stem (100a) в 5 раз ниже чем у silver nugget (500a) то и шансы соответственно отличаются в 5 раз. Кроме того в скрипте есть единый множитель для подгонки под рейты конкретного сервера. В приведенном мной примере шансы подогнаны так чтобы шанс stem был примерно 1/20. Минимальное количество выпавших кусков всегда 1, максимальное рассчитывается по формуле level/10 для первого типа ингридиентов, level/20 для второго и level/30 для третьего, не менее чем 1.

Учтите что шансы рассчитываются независимо, так что с одного монстра может выпасть одновременно несколько видов ресурсов.

В архиве есть php скрипт для генерации sql файла (code.php) и пример с шансом на stem 1/20 (randdrop_full.sql полный, randdrop_part1.sql и randdrop_part2.sql оно же разбитое на куски меньше 2 мб для phpmyadmin).

Чтобы откатить к стандарту просто восстановите оригинальную таблицу droplist.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  

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