Сообщений: 12
Тем: 3
Зарегистрирован: May 2015
Репутация:
0
Всем добрый вечер столкнулся с проблемой при редактировании дропа в сборке L2Jserver, Что за <group chance="33.52899932861328"> ?
И как напримет мне сделать шанс дропа 10.92% — 13.28% на
<item id="118" min="1" max="1" chance="22.8201" /> <!-- Necklace of Magic -->
<drop_lists>
<death>
<group chance="70">
<item id="57" min="30" max="42" chance="100" /> <!-- Adena -->
</group>
<group chance="33.52899932861328">
<item id="112" min="1" max="1" chance="30.627" /> <!-- Apprentice's Earring -->
<item id="118" min="1" max="1" chance="22.8201" /> <!-- Necklace of Magic -->
<item id="116" min="1" max="1" chance="46.5529" /> <!-- Magic Ring -->
</group>
<group chance="6.698800086975098">
<item id="1864" min="1" max="1" chance="29.1262" /> <!-- Stem -->
<item id="1865" min="1" max="1" chance="14.5631" /> <!-- Varnish -->
<item id="1866" min="1" max="1" chance="9.7087" /> <!-- Suede -->
<item id="1873" min="1" max="1" chance="5.8252" /> <!-- Silver Nugget -->
<item id="1868" min="1" max="1" chance="29.1262" /> <!-- Thread -->
<item id="1788" min="1" max="1" chance="11.6506" /> <!-- Recipe: Bow -->
</group>
</death>
<corpse>
<item id="1871" min="1" max="1" chance="5.6617" /> <!-- Charcoal -->
<item id="116" min="1" max="1" chance="45.2932" /> <!-- Magic Ring -->
<item id="1786" min="1" max="1" chance="4.5293" /> <!-- Recipe: Broad Sword -->
</corpse>
</drop_lists>
<collision>
Сообщений: 4
Тем: 0
Зарегистрирован: May 2015
Репутация:
-1
group chance - шанс что итемы из списка выпадут гурппе
<group chance="100">
<item id="118" min="1" max="1" chance="13.2801" /> <!-- Necklace of Magic -->
</group>
Сообщений: 666
Тем: 15
Зарегистрирован: Aug 2014
Репутация:
1,790
06-18-2015, 12:55 AM
(Сообщение последний раз редактировалось: 06-18-2015, 12:57 AM Influence.)
<group chance="33.52899932861328"> это шанс что выпадет именно эта группа предметов, а из этой группы выпадет предмет с своим шансом.
то есть 33% что выпадет группа
Код: <group chance="33.52899932861328">
<item id="112" min="1" max="1" chance="30.627" /> <!-- Apprentice's Earring -->
<item id="118" min="1" max="1" chance="22.8201" /> <!-- Necklace of Magic -->
<item id="116" min="1" max="1" chance="46.5529" /> <!-- Magic Ring -->
</group>
а потому уже из данной группы какой то предмет
Добавлено через 1 минуту
BaldIriskin Написал:И как напримет мне сделать шанс дропа 10.92% — 13.28% на
ну, сделать можно, вот только зачем разброс? или вы насмотрелись всяких баз данных по л2, где шанс указан в приблизительных цифрах с определенным разбросом?
Сообщений: 12
Тем: 3
Зарегистрирован: May 2015
Репутация:
0
Спасибо, что про группу объяснили, так с разбросам не как не указать?
Сообщений: 18
Тем: 0
Зарегистрирован: May 2015
BaldIriskin Написал:Спасибо, что про группу объяснили, так с разбросам не как не указать?
Дописывайте парсер дропа, с добавлением параметров minChance - maxChance, и радуйтесь жизни, в чем проблема то?
Сообщений: 12
Тем: 3
Зарегистрирован: May 2015
Репутация:
0
Carline Написал:Дописывайте парсер дропа, с добавлением параметров minChance - maxChance, и радуйтесь жизни, в чем проблема то? Есть сборки в каких реализовано это?
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
BaldIriskin Написал:Есть сборки в каких реализовано это?
Что вам мешает добавить новые переменные getMin() и getMax() за место getChance(), а при вызове шанса дропа вызывать его как-то так:
[SRC="java"]if (getMin() != getMax())
double chance = Rnd.get(getMin(), getMax());
else
double chance = getMax();[/SRC]
Родился, живу и когда-нибудь умру.
Сообщений: 1,065
Тем: 20
Зарегистрирован: Mar 2010
Репутация:
3,855
06-18-2015, 01:41 PM
(Сообщение последний раз редактировалось: 06-18-2015, 01:49 PM Gaikotsu.)
только вот в итоге будет та еще порнография, разве что играться именно с шансом группы, но никак не с шансами вещей внутри группы, ибо для адекватных расчетов, в большинстве сборок, требуется чтобы суммарный шанс всех вещей внутри группы был равен 100%.
да и если как-то умудрится сделать изменение шанса какой-то вещи внутри группы в определенном диапазоне - это будет влиять и на шансы всех остальных вещей в этой группе.
в принципе на уровне шанса группы такое и правда достаточно легко делается - пара строк в парсер дропа, да парочка непосредственно в сами расчеты, определяющие выпадение группы.
З.Ы. а конечный шанс дропа той или иной вещи получается как (шанс_группы * шанс_вещи_внутри_группы) / 100
Добавлено через 6 минут
BaldIriskin Написал:Есть сборки в каких реализовано это? ни разу не видел
ты видимо первый, кому такое извращение потребовалось
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
Заметка по дроп движку.
Общий шанс всех предметов в группе должен быть ровно 100%.
На счет рандом шанса по потолкам как и написал Donatte, создайте новую переменную шанса и обработчик.
Строка дропа в группе
[SRC="xml"]
<item id="118" min="1" max="1" chance="10.92;13.28" /> <!-- Necklace of Magic -->
[/SRC]
В парсер дропа (Скорей всего в парсере нпц)
[SRC="java"]
final String[] chance = element.attributeValue("chance").split(";");
final double min = Double.parseDouble(chance[0]);
final double max = chance.length > 1 ? Double.parseDouble(chance[1]) : min;
drop.setChance(min, max);
[/SRC]
В модель дропа
[SRC="java"]
// Метод присвоения разброса шанса
public void setChance(final double min, final double max)
{
_min = min;
_max = max;
}
// Метод получения рандом шанса.
public double getChance()
{
return _min != _max ? Rnd.get(_min, _max) : _max;
}
[/SRC]
Сообщений: 12
Тем: 3
Зарегистрирован: May 2015
Репутация:
0
L2CCCP Написал:Заметка по дроп движку.
Общий шанс всех предметов в группе должен быть ровно 100%.
На счет рандом шанса по потолкам как и написал Donatte, создайте новую переменную шанса и обработчик.
Строка дропа в группе
[SRC="xml"]
<item id="118" min="1" max="1" chance="10.92;13.28" /> <!-- Necklace of Magic -->
[/SRC]
В парсер дропа (Скорей всего в парсере нпц)
[SRC="java"]
final String[] chance = element.attributeValue("chance").split(";");
final double min = Double.parseDouble(chance[0]);
final double max = chance.length > 1 ? Double.parseDouble(chance[1]) : min;
drop.setChance(min, max);
[/SRC]
В модель дропа
[SRC="java"]
// Метод присвоения разброса шанса
public void setChance(final double min, final double max)
{
_min = min;
_max = max;
}
// Метод получения рандом шанса.
public double getChance()
{
return _min != _max ? Rnd.get(_min, _max) : _max;
}
[/SRC] Спасибо, буду пробывать
|