Вопрос по дропу. Один предмет из группы

fruit_131

Пляшущий с бубном
Участник
Сообщения
80
Розыгрыши
0
Решения
3
Репутация
0
Реакции
20
Баллы
260
Хроники
  1. Prelude
Исходники
Присутствуют
Сборка
Mobius
Возможно ли добавить монстру группу предметов, что бы выпал только 1 предмет из это группы?
Условно добавить 5 разных кукол, но что бы рандомилась только 1
 
Возможно ли добавить монстру группу предметов, что бы выпал только 1 предмет из это группы?
Условно добавить 5 разных кукол, но что бы рандомилась только 1
сделать чтоб сумма шансов внутри группьі бьіла 100%?
Яб у себя так указал
XML:
            <group min="1" max="1" chance="0.4" >
                <parameter name="autoGet" value="true"/>
                <rate type="RATE_CHANCE" min="1" max="1" />
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->     
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->   
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->
            </group>
 
сделать чтоб сумма шансов внутри группьі бьіла 100%?
Яб у себя так указал
XML:
            <group min="1" max="1" chance="0.4" >
                <parameter name="autoGet" value="true"/>
                <rate type="RATE_CHANCE" min="1" max="1" />
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->    
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->  
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->
                <item id="57" min="1" max="1" chance="20" /> <!-- Адена -->
            </group>
Только что и Мобиус подсказал, да спасибо
Я почему то был уверен что в этом случае могут выпасть все предметы

Спрошу и тут, может кто тему найдет и ему тоже полезно будет.
А если шанс суммарный не 100%? И не пропорциональный
Условно
Код:
<group chance="100">
                    <item id="17416" min="1" max="1" chance="8" /> <!-- Helios Shaper -->
                    <item id="17417" min="1" max="1" chance="44" /> <!-- Helios Cutter -->
                </group>
Будет ли оно работать корректно?
 
Спрошу и тут, может кто тему найдет и ему тоже полезно будет.
А если шанс суммарный не 100%? И не пропорциональный
Условно
Код:
<group chance="100">
                    <item id="17416" min="1" max="1" chance="8" /> <!-- Helios Shaper -->
                    <item id="17417" min="1" max="1" chance="44" /> <!-- Helios Cutter -->
                </group>
Будет ли оно работать корректно?
ну группа выпадет всегда, а итемы только с шансом 52%
 
сделать чтоб сумма шансов внутри группьі бьіла 100%?

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

Спрошу и тут, может кто тему найдет и ему тоже полезно будет.
А если шанс суммарный не 100%? И не пропорциональный
Условно
Код:
<group chance="100">
                    <item id="17416" min="1" max="1" chance="8" /> <!-- Helios Shaper -->
                    <item id="17417" min="1" max="1" chance="44" /> <!-- Helios Cutter -->
                </group>
Будет ли оно работать корректно?

Пробуй и тести. никто не знает, какая у тебя механика подсчета дропа в исходниках. Есть сборки которые спокойно обрабатывают и меньше 100% в группе, есть те, которым обязательно 100%, а есть те, что и больше 100% в группе корректно воспринимают. Ну и если ты хочешь чтобы обязательно падала каждый раз и именно одна, и метод, работающий через 100%е группы, тогда да, надо подгонять под сумарный шанс 100%.
Даже если изначально у мобиуса один метод, то не факт, что то что у тебя - уже не полазили другие ручки. В акисе например надо проверять, можно ли это вообще сделать, чтобы только одна падала из группы.
Важный момент: айтем падает точно один и не более из группы, если у тебя рейты х1. Если у тебя рейты выше - то в зависимости от твоей сборки, может быть метод рейтовки дропа, когда группа циклически выпадает несколько раз, в зависимости от логики работы метода, множащего дроп под рейты. Или заноси твой дроп в такую группу, которая заведомо не рейтуется в сборке, или у нее рейт выставлен х1, отличный от других групп.
 
Последнее редактирование:
Да, я уже потестировал, не успел отписать
Код:
<group chance="100">
                    <item id="17416" min="1" max="1" chance="8" /> <!-- Helios Shaper -->
                    <item id="17417" min="1" max="1" chance="44" /> <!-- Helios Cutter -->
                </group>
Вроде все хорошо с таким вариантом - работает, шанс ощущается правильным
Спасибо

Правильно вроде так:
Шанс группы может быть любым
Шанс всех айтемов внутри группы должен быть 100%. То есть 1 из предметов в группе всегда должен выпадать, если группа прокнула.
(хоть оно и так работает если шанс не 100%, но наверное лучше не рисковать)

"Что делать если надо что бы падал один из предметов и не с пропорциональным шансом?"
Например 2% и 65%, что суммарно будет 67%, а не 100%
В таком случае можно пропорционально повысить шансы.
Как это сделать?
1) Смотрим на свой шанс группы, который вы уже придумали, например 20%
2) (2\100) * 20 = 0.4 — тут что то про доли от общего шанса
3) (65\100) * 20 = 13 — тут что то про доли от общего шанса
4) 0.4 + 13 = 13.4
Потом зачем то умножаем на 10
13.4 * 10 = 134
5)
(4\134) * 100 = 2.985075 %
(130\134) * 100 = 97.014925%

Получаем шансы сумма которых 100% Это должно работать и для 3х 4х и тд предметов
 
Правильно вроде так:
Шанс группы может быть любым
Шанс всех айтемов внутри группы должен быть 100%. То есть 1 из предметов в группе всегда должен выпадать, если группа прокнула.
(хоть оно и так работает если шанс не 100%, но наверное лучше не рисковать)

"Что делать если надо что бы падал один из предметов и не с пропорциональным шансом?"
Например 2% и 65%, что суммарно будет 67%, а не 100%
В таком случае можно пропорционально повысить шансы.
Как это сделать?
1) Смотрим на свой шанс группы, который вы уже придумали, например 20%
2) (2\100) * 20 = 0.4 — тут что то про доли от общего шанса
3) (65\100) * 20 = 13 — тут что то про доли от общего шанса
4) 0.4 + 13 = 13.4
Потом зачем то умножаем на 10
13.4 * 10 = 134
5)
(4\134) * 100 = 2.985075 %
(130\134) * 100 = 97.014925%

Получаем шансы сумма которых 100% Это должно работать и для 3х 4х и тд предметов

Мудрено, и не очевидно, где шанс группы среди этих страданий
Проще так:
1. необходимый шанс выпадения айтема - это произведение шанса группы на шанс айтема в группе.
2. если у тебя не хватает суммы шансов в группе до 100%, то тогда надо все шансы умножить на общий коэффициент, после которого сумма шансов в группе станет 100%. И на этот же коэффициент поделить шанс группы, чтобы итоговый шанс дропа айтема не изменился
3. 100%/ (2+65) = 1,4925
4.
2 *1,4925=2,9850
65*1,4925 = 97,0125
в коэффициенте можно взять больше значащих цифр, смотря сколько у тебя в сборке просчитывается цифр после запятой
5. шанс группы : 20/1,4925 = 13,4003

В коде я лучше бы сделал так- отсортировать группу по убыванию процента, как раз и в дроп- патче сгенеренному по этой дате будет отображаться красиво по порядку убывания шанса. И после этого все айтемы в группе после первого - множатся на коэффициент преобразования, и после этого первый считается как 100% минус сумма остальных. Небольшая погрешность вычислений таким образом попадет на самый большой шанс, изменив его пренебрежимо мало. И ты точно получишь сумму 100% в группе.

Но мне не нравится работа с суммами в 100%, так как с ними проблематично добавлять дроп. надо писать отдельную прогу по конвертации шансов в группе и самой группы при добавлении айтема для автоматизации. Но без суммы в 100% на некоторых сборках ты не добьешься как хотел того, чтобы точно выпадал минимум один айтем при 100% шансе группы. Например такое нужно при награде за квест среди нескольких вариантов.
 
Последнее редактирование:
Но мне не нравится работа с суммами в 100%, так как с ними проблематично добавлять дроп. надо писать отдельную прогу по конвертации шансов в группе и самой группы при добавлении айтема для автоматизации. Но без суммы в 100% на некоторых сборках ты не добьешься как хотел того, чтобы точно выпадал минимум один айтем при 100% шансе группы. Например такое нужно при награде за квест среди нескольких вариантов.
Да не так уж и сложно, тем более это же не требуется делать очень часто. Зато будет гарантия что все в дропе расписано как надо и работает как ожидается.
ради этого и не проблема и скриптик набросать, если необходимо массово скорректить какой-то дроп.

а к примеру для точечных правок дропа у конкретных мобов я когда-то на скорую руку набросал такую простенькую вещицу для себя :)

firefox_7gWkOPhdmu.png
 
Последнее редактирование:
3. 100%/ (2+65) = 1,4925
4.
2 *1,4925=2,9850
65*1,4925 = 97,0125
да, так по проще будет, всего 2 шага для каждого шанса
что то я действительно намудрил)

5. шанс группы : 20/1,4925 = 13,4003
не понял только, зачем и для чего делить шанс группы, если шанс группы он как был 20% так и остался 20%

В код мне смотреть [тяжело + нелегко], так что пока руками поредачу, но спасибо за идею )
 
не понял только, зачем и для чего делить шанс группы, если шанс группы он как был 20% так и остался 20%

Я ж на писал - если ты хочешь оставить шанс выпадения такой же, то надо пропорционально поменять и шанс айтема, и шанс группы. Так как при увеличении шанса айтема в группе, у тебя растет общий шанс дропа. Для компенсации этого понижается шанс группы. То есть шанс 2% в группе, и 20% шанс группы - это итоговый шанс 0.4%. и он будет такой же, при шансе в группе 2,985% (вырос) и шансе группы 13,4% (пропорционально понизился, компенсировав рост шанса в группе)

Да не так уж и сложно, тем более это же не требуется делать очень часто. Зато будет гарантия что все в дропе расписано как надо и работает как ожидается.
ради этого и не проблема и скриптик набросать, если необходимо массово скорректить какой-то дроп.

а к примеру для точечных правок дропа у конкретных мобов я когда-то на скорую руку набросал такую простенькую вещицу для себя :)

Для новичков - сложно. Да и многие якобы профи плавают в понимании этого. Мне это кажется перемудренным, так как при изменении шанса одного айтема у тебя все плывет - и все шансы других айтемов в числовом значении, а не в абсолютном, и шанс группы. А по мне одинаково должны работать оба варианта по хорошему:
И шанс группы 100% , и 25% в группе из одного айтема
И шанс группы 25%, и 100% шанс 1 айтема в группе.
А в идеале по мне как в акисе - сколько хочешь и любый проценты накидываешь, он потом просто принимает сумарный какой-нить 831% как 8 проходов 100% +31% . Там просто нет шанса группы, при наличии самой группы.
 
Назад
Сверху Снизу