Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Разбор XML (https://forum.zone-game.info/showthread.php?t=38701)

BaldIriskin 18.06.2015 00:29

Разбор XML
 
Всем добрый вечер столкнулся с проблемой при редактировании дропа в сборке L2Jserver, Что за <group chance="33.52899932861328"> ?
И как напримет мне сделать шанс дропа 10.92% — 13.28% на
<item id="118" min="1" max="1" chance="22.8201" /> <!-- Necklace of Magic -->

Код HTML:

                <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>


med_ved 18.06.2015 00:34

Re: Разбор XML
 
group chance - шанс что итемы из списка выпадут гурппе

<group chance="100">
<item id="118" min="1" max="1" chance="13.2801" /> <!-- Necklace of Magic -->
</group>

Influence 18.06.2015 00:55

Re: Разбор XML
 
<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 (Сообщение 396451)
И как напримет мне сделать шанс дропа 10.92% — 13.28% на

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

BaldIriskin 18.06.2015 01:15

Re: Разбор XML
 
Спасибо, что про группу объяснили, так с разбросам не как не указать?

Carline 18.06.2015 08:46

Re: Разбор XML
 
Цитата:

Сообщение от BaldIriskin (Сообщение 396455)
Спасибо, что про группу объяснили, так с разбросам не как не указать?

Дописывайте парсер дропа, с добавлением параметров minChance - maxChance, и радуйтесь жизни, в чем проблема то?

BaldIriskin 18.06.2015 12:11

Re: Разбор XML
 
Цитата:

Сообщение от Carline (Сообщение 396466)
Дописывайте парсер дропа, с добавлением параметров minChance - maxChance, и радуйтесь жизни, в чем проблема то?

Есть сборки в каких реализовано это?

Donatte 18.06.2015 12:32

Re: Разбор XML
 
Цитата:

Сообщение от BaldIriskin (Сообщение 396471)
Есть сборки в каких реализовано это?

Что вам мешает добавить новые переменные getMin() и getMax() за место getChance(), а при вызове шанса дропа вызывать его как-то так:
if (getMin() != getMax())
	double chance = Rnd.get(getMin(), getMax());
else
	double chance = getMax();
Code: Java

Gaikotsu 18.06.2015 13:41

Re: Разбор XML
 
только вот в итоге будет та еще порнография, разве что играться именно с шансом группы, но никак не с шансами вещей внутри группы, ибо для адекватных расчетов, в большинстве сборок, требуется чтобы суммарный шанс всех вещей внутри группы был равен 100%.
да и если как-то умудрится сделать изменение шанса какой-то вещи внутри группы в определенном диапазоне - это будет влиять и на шансы всех остальных вещей в этой группе.

в принципе на уровне шанса группы такое и правда достаточно легко делается - пара строк в парсер дропа, да парочка непосредственно в сами расчеты, определяющие выпадение группы.

З.Ы. а конечный шанс дропа той или иной вещи получается как (шанс_группы * шанс_вещи_внутри_группы) / 100

Добавлено через 6 минут
Цитата:

Сообщение от BaldIriskin (Сообщение 396471)
Есть сборки в каких реализовано это?

ни разу не видел
ты видимо первый, кому такое извращение потребовалось

L2CCCP 18.06.2015 14:02

Re: Разбор XML
 
Заметка по дроп движку.

Общий шанс всех предметов в группе должен быть ровно 100%.

На счет рандом шанса по потолкам как и написал Donatte, создайте новую переменную шанса и обработчик.

Строка дропа в группе
 
	<item id="118" min="1" max="1" chance="10.92;13.28" /> <!-- Necklace of Magic -->
 
Code: XML

В парсер дропа (Скорей всего в парсере нпц)
 
	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);
 
Code: 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;
	}
 
Code: Java

BaldIriskin 18.06.2015 14:07

Re: Разбор XML
 
Цитата:

Сообщение от L2CCCP (Сообщение 396479)
Заметка по дроп движку.

Общий шанс всех предметов в группе должен быть ровно 100%.

На счет рандом шанса по потолкам как и написал Donatte, создайте новую переменную шанса и обработчик.

Строка дропа в группе
 
	<item id="118" min="1" max="1" chance="10.92;13.28" /> <!-- Necklace of Magic -->
 
Code: XML

В парсер дропа (Скорей всего в парсере нпц)
 
	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);
 
Code: 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;
	}
 
Code: Java

Спасибо, буду пробывать


Текущее время: 15:47. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot