Собственно имеем БД вида:
PHP код:
<?xml version="1.0" encoding="utf-8"?>
<list>
<npc id="18910" name="Solina Knight Captain" title="">
<set name="aggroRange" value="200" />
<set name="ai_type" value="Fighter" />
<set name="baseAtkRange" value="40" />
<set name="baseCON" value="43" />
<set name="baseCritRate" value="40" />
<set name="baseDEX" value="30" />
<set name="baseHpMax" value="3835.591" />
<set name="baseHpRate" value="3" />
<set name="baseHpReg" value="8.5" />
<set name="baseINT" value="21" />
<set name="baseMAtk" value="1457" />
<set name="baseMAtkSpd" value="333" />
<set name="baseMDef" value="494" />
<set name="baseMEN" value="20" />
<set name="baseMpMax" value="1777.4" />
<set name="baseMpReg" value="3" />
<set name="basePAtk" value="2250" />
<set name="basePAtkSpd" value="253" />
<set name="basePDef" value="609" />
<set name="baseRunSpd" value="66" />
<set name="baseSTR" value="40" />
<set name="baseShldDef" value="0" />
<set name="baseShldRate" value="0" />
<set name="baseWIT" value="20" />
<set name="baseWalkSpd" value="30" />
<set name="collision_height" value="31.5" />
<set name="collision_radius" value="14.0" />
<set name="level" value="83" />
<set name="rewardExp" value="44216" />
<set name="rewardRp" value="0" />
<set name="rewardSp" value="4545" />
<set name="shots" value="NONE" />
<set name="texture" value="LineageMonster5.solina_knight" />
<set name="type" value="Monster" />
<faction name="n_solina_clan" range="300"/>
<skills>
<skill id="4276" level="5" /> <!--Weak Point against Bow/Crossbow Weapons-->
<skill id="4410" level="15" /> <!--Strong P. Atk.-->
<skill id="4411" level="14" /> <!--Strong M. Atk.-->
<skill id="4416" level="8" /> <!--Angels-->
<skill id="5466" level="1" /> <!--Holy Attacks-->
<skill id="5620" level="4" /> <!--Short-Range Physical Attack Weakness-->
<skill id="6312" level="1" /> <!--Launch Sacred Sword Energy-->
<skill id="6313" level="1" /> <!--Solina Bless-->
</skills>
<rewardlist type="RATED_GROUPED">
<group chance="70.0">
<reward item_id="57" min="1730" max="3492" chance="100.0000" /> <!--Adena-->
</group>
<group chance="1.3371">
<reward item_id="14109" min="1" max="1" chance="0.0372" /> <!--Sealed Vesper Gauntlet-->
<reward item_id="14113" min="1" max="1" chance="0.0372" /> <!--Sealed Vesper Leather Gloves-->
<reward item_id="14116" min="1" max="1" chance="0.0372" /> <!--Sealed Vesper Gloves-->
<reward item_id="14110" min="1" max="1" chance="0.0372" /> <!--Sealed Vesper Boots-->
<reward item_id="14114" min="1" max="1" chance="0.0372" /> <!--Sealed Vesper Leather Boots-->
<reward item_id="14117" min="1" max="1" chance="0.0372" /> <!--Sealed Vesper Shoes-->
<reward item_id="15667" min="1" max="1" chance="16.6295" /> <!--Sealed Vesper Gauntlet Piece-->
<reward item_id="15671" min="1" max="1" chance="16.6295" /> <!--Sealed Vesper Leather Gloves Piece-->
<reward item_id="15674" min="1" max="1" chance="16.6295" /> <!--Sealed Vesper Gloves Piece-->
<reward item_id="15668" min="1" max="1" chance="16.6295" /> <!--Sealed Vesper Boots Piece-->
<reward item_id="15672" min="1" max="1" chance="16.6295" /> <!--Sealed Vesper Leather Boots Piece-->
<reward item_id="15675" min="1" max="1" chance="16.6293" /> <!--Sealed Vesper Shoes Piece-->
</group>
<group chance="18.1342">
<reward item_id="1895" min="1" max="1" chance="78.3705" /> <!--Metallic Fiber-->
<reward item_id="4040" min="1" max="1" chance="5.4859" /> <!--Mold Lubricant-->
<reward item_id="4042" min="1" max="1" chance="4.5716" /> <!--Enria-->
<reward item_id="4043" min="1" max="1" chance="9.1432" /> <!--Asofe-->
<reward item_id="10483" min="1" max="1" chance="1.9048" /> <!--Life Stone - Level 82-->
<reward item_id="10484" min="1" max="1" chance="0.4762" /> <!--Mid-Grade Life Stone - Level 82-->
<reward item_id="10485" min="1" max="1" chance="0.0478" /> <!--High-Grade Life Stone - Level 82-->
</group>
</rewardlist>
<rewardlist type="SWEEP">
<reward item_id="15667" min="1" max="1" chance="1.3541" /> <!--Sealed Vesper Gauntlet Piece-->
<reward item_id="15671" min="1" max="1" chance="1.3541" /> <!--Sealed Vesper Leather Gloves Piece-->
<reward item_id="15674" min="1" max="1" chance="1.3541" /> <!--Sealed Vesper Gloves Piece-->
<reward item_id="15668" min="1" max="1" chance="1.3541" /> <!--Sealed Vesper Boots Piece-->
<reward item_id="15672" min="1" max="1" chance="1.3541" /> <!--Sealed Vesper Leather Boots Piece-->
<reward item_id="15675" min="1" max="1" chance="1.3541" /> <!--Sealed Vesper Shoes Piece-->
<reward item_id="15801" min="1" max="1" chance="0.1515" /> <!--Recipe - Sealed Vesper Gauntlet (60%) -->
<reward item_id="15802" min="1" max="1" chance="0.1515" /> <!--Recipe - Sealed Vesper Leather Gloves (60%) -->
<reward item_id="15803" min="1" max="1" chance="0.1515" /> <!--Recipe - Sealed Vesper Gloves (60%) -->
<reward item_id="15804" min="1" max="1" chance="0.1515" /> <!--Recipe - Sealed Vesper Boots (60%) -->
<reward item_id="15805" min="1" max="1" chance="0.1515" /> <!--Recipe - Sealed Vesper Leather Boots (60%) -->
<reward item_id="15806" min="1" max="1" chance="0.1515" /> <!--Recipe - Sealed Vesper Shoes (60%) -->
</rewardlist>
<attributes>
<attack attribute="holy" value="170" />
<defence attribute="fire" value="200" />
<defence attribute="water" value="200" />
<defence attribute="wind" value="200" />
<defence attribute="earth" value="150" />
<defence attribute="holy" value="160" />
<defence attribute="unholy" value="40" />
</attributes>
</npc>
</list>
Надо вытащить из нее дроп и привести к виду:
Код:
18900 Sealed Vesper Gauntlet 1-1 [1.3371 * 100 / 0.0372]
18900 Sealed Vesper Leather Gloves 1-1 [1.3371 * 100 / 0.0372]
и т.д.
Где 18900 - id моба (тег <npc id="xxx"...>)
Sealed Vesper Gauntlet - название предмета (тег <reward item_id="xxx"...>) - основная проблема почему создал тему, т.к. в самом теге нету названия итема есть только id. БД с id предметов тоже есть но как потом сопоставить... Понятия не имею. Либо вариант 2: вытаскивать из комментария справа.
1-1 - количество (тег <reward item_id="xxx" min="yyy" max="zzz">)
И еще одна вкусность - шанс составляется по формуле значение chance в теге <group chance="ххх"> умножить на 100 и делить на значение chance тега <reward item_id="" .... chance="yyy" />
P.S. Значения из тегов <set> доставал примерно так:
PHP код:
<?php
set_time_limit(0);
$xml = simplexml_load_file('1a.xml');
foreach ($xml->xpath('/list/npc/set') as $set)
{
if ($set ["name"] == "aggroRange")
echo $set ["value"];
}
?>
Но переделать под требуемое сейчас не смог...
P.S. Приму любую помощь. Cовет \ кусок кода \ куда копать \ готовый код О_О