<npc id="22852" name="Dragon Guard" title="">
<set name="aggroRange" value="400" />
<set name="ai_type" value="Fighter" />
<set name="baseAtkRange" value="80" />
<set name="baseAtkType" value="POLE" />
<set name="baseCON" value="43" />
<set name="baseCritRate" value="40" />
<set name="baseDEX" value="30" />
<set name="baseHpMax" value="55817.8012671518" />
<set name="baseHpRate" value="2" />
<set name="baseHpReg" value="187.410040552143" />
<set name="baseINT" value="21" />
<set name="baseMAtk" value="8707.81891430402" />
<set name="baseMAtkSpd" value="333" />
<set name="baseMDef" value="635.378064" />
<set name="baseMEN" value="20" />
<set name="baseMpMax" value="1846.8" />
<set name="baseMpReg" value="3" />
<set name="basePAtk" value="12008.0135566142" />
<set name="basePAtkSpd" value="253" />
<set name="basePDef" value="578.861024" />
<set name="baseRunSpd" value="200" />
<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="55.0" />
<set name="collision_radius" value="40.0" />
<set name="corpse_time" value="7" />
<set name="level" value="85" />
<set name="race" value="DRAGON" />
<set name="rewardExp" value="1031278" />
<set name="rewardRp" value="0" />
<set name="rewardSp" value="103445" />
<set name="soulshot_count" value="0" />
<set name="spiritshot_count" value="0" />
<set name="type" value="Monster" />
<ai_params>
<set name="noRandomWalk" value="true" />
</ai_params>
<faction name="loa_antharas_clan" range="400"/>
<skills>
<skill id="4408" level="10" /> <!--HP Increase (2x)-->
<skill id="4409" level="1" /> <!--MP Increase (1x)-->
<skill id="4410" level="16" /> <!--Very Strong P. Atk.-->
<skill id="4411" level="15" /> <!--Strong M. Atk.-->
<skill id="4412" level="16" /> <!--Very Strong P. Def.-->
<skill id="4413" level="5" /> <!--Very Weak M. Def.-->
<skill id="4414" level="2" /> <!--Standard Type-->
<skill id="4415" level="11" /> <!--Spears-->
<skill id="4416" level="10" /> <!--Dragons-->
<skill id="5465" level="1" /> <!--Earth Attacks-->
<skill id="6768" level="1" /> <!--Stun Attack-->
</skills>
<rewardlist type="RATED_GROUPED">
<group chance="66.0">
<reward item_id="57" min="45317" max="105714" chance="100.0000" /> <!--Adena-->
</group>
<group chance="0.0293">
<reward item_id="13462" min="1" max="1" chance="8.3929" /> <!--Vesper Stormer-->
<reward item_id="13461" min="1" max="1" chance="8.3929" /> <!--Vesper Fighter-->
<reward item_id="13893" min="1" max="1" chance="41.9647" /> <!--Sealed Holy Spirit's Cloak-->
<reward item_id="14108" min="1" max="1" chance="41.2495" /> <!--Sealed Vesper Gaiters-->
</group>
<group chance="44.3337">
<reward item_id="1879" min="3" max="9" chance="33.9823" /> <!--Cokes-->
<reward item_id="1885" min="2" max="6" chance="25.4868" /> <!--High-Grade Suede-->
<reward item_id="9628" min="1" max="1" chance="9.5950" /> <!--Leonard-->
<reward item_id="9630" min="1" max="1" chance="6.4388" /> <!--Orichalcum-->
<reward item_id="9629" min="1" max="1" chance="5.3190" /> <!--Adamantine-->
<reward item_id="14166" min="1" max="1" chance="5.9100" /> <!--Life Stone - Level 84-->
<reward item_id="14167" min="1" max="1" chance="1.4757" /> <!--Mid-Grade Life Stone - Level 84-->
<reward item_id="14168" min="1" max="1" chance="0.1476" /> <!--High-Grade Life Stone - Level 84-->
<reward item_id="9554" min="1" max="1" chance="0.2447" /> <!--Earth Crystal-->
<reward item_id="9548" min="1" max="1" chance="9.7869" /> <!--Earth Stone-->
<reward item_id="15644" min="1" max="1" chance="0.7297" /> <!--Vesper Thrower Piece-->
<reward item_id="15642" min="1" max="1" chance="0.7205" /> <!--Vesper Caster Piece-->
<reward item_id="9626" min="1" max="1" chance="0.1630" /> <!--Giant's Codex - Discipline-->
</group>
</rewardlist>
<rewardlist type="SWEEP">
<reward item_id="9628" min="1" max="1" chance="84.1937" /> <!--Leonard-->
<reward item_id="2134" min="1" max="1" chance="21.4694" /> <!--Gemstone S-->
<reward item_id="15669" min="1" max="1" chance="72.7776" /> <!--Sealed Vesper Verteidiger Piece-->
<reward item_id="13459" min="1" max="1" chance="0.0150" /> <!--Vesper Buster-->
</rewardlist>
<attributes>
<attack attribute="unholy" value="250" />
<defence attribute="fire" value="220" />
<defence attribute="water" value="220" />
<defence attribute="wind" value="220" />
<defence attribute="earth" value="220" />
<defence attribute="holy" value="170" />
<defence attribute="unholy" value="250" />
</attributes>
</npc>
оно, только это по айди, но в твоем случаи нужно по типуНе видел у него подобного. У него только добавление дропа для НПЦ.
Хотя вот нашел. Оно?
Код:# Айди вещей которые будут удалены в моба # (пример 57,4356,4355.....) ItemId = 0
Ну вместо ид, можно указать тип. Если немного изменить код.оно, только это по айди, но в твоем случаи нужно по типу
Ну вместо ид, можно указать тип. Если немного изменить код.
Причем тут Ваш пост? Я так понял у него есть исходник и он на нём работает3к бублей) если не подорожало...
Это не стоит 3к)3к бублей) если не подорожало...
он намекал наверно на приобретении клиентки, а не за кодЭто не стоит 3к)
Ну мб. Только толку мне от сборки, если у меня будет не совсем хф.)он намекал наверно на приобретении клиентки, а не за код
ну тоже и я написал вышеНу мб. Только толку мне от сборки, если у меня будет не совсем хф.)
//Здесь был неправильный код.Ну мб. Только толку мне от сборки, если у меня будет не совсем хф.)
Спасиб, но смогу проверить после устранения ерроров.Код:public void removeResourseDrop() { for (NpcTemplate npc : _allTemplates) if (npc != null && !npc.getRewards().isEmpty()) npc.getRewards().remove(EtcItemType.MATERIAL, EtcItemType.RECIPE); }
Код:public void addData(RewardData item) { if(item.getItem().isAdena()) _isAdena = true; NpcHolder.getInstance().removeResourseDrop(); _chanceSum += item.getChance(); item.setChanceInGroup(_chanceSum); _items.add(item); }
проверяй, ибо я сплю уже. Есть вероятность того что я проебался.
Господи, зачем так? при каждом добавлении итема в группу будем гонять все темплейты нпцов? Не проще просто не добавлять итем этот? по типу?Код:public void removeResourseDrop() { for (NpcTemplate npc : _allTemplates) if (npc != null && !npc.getRewards().isEmpty()) npc.getRewards().remove(EtcItemType.MATERIAL, EtcItemType.RECIPE); }
Код:public void addData(RewardData item) { if(item.getItem().isAdena()) _isAdena = true; NpcHolder.getInstance().removeResourseDrop(); _chanceSum += item.getChance(); item.setChanceInGroup(_chanceSum); _items.add(item); }
проверяй, ибо я сплю уже. Есть вероятность того что я проебался.
пиши в скуп хулСпасиб, но смогу проверить после устранения ерроров.
спал проснулся сделал шляпу, уснул дальше. потом перепилю.Господи, зачем так? при каждом добавлении итема в группу будем гонять все темплейты нпцов? Не проще просто не добавлять итем этот? по типу?
p.s. а каким образом из коллекции (которую вернёт npc.getRewards()) удалите итемы по их типу?)
Походу твоего скайпа у меня нет.пиши в скуп хул
спал проснулся сделал шляпу, уснул дальше. потом перепилю.
На сайте жопакода))0Походу твоего скайпа у меня нет.
package org.mmocore.gameserver;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.mmocore.gameserver.data.xml.holder.ItemHolder;
import org.mmocore.gameserver.data.xml.parser.ItemParser;
import org.mmocore.gameserver.data.xml.parser.OptionDataParser;
import org.mmocore.gameserver.tables.SkillTable;
import org.mmocore.gameserver.templates.item.ItemTemplate;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Collection;
/**
* @author Mangol
*/
public final class RemoveNpcDrop {
public static void main(String[] args) throws IOException, DocumentException {
SkillTable.getInstance().load();
OptionDataParser.getInstance().load();
ItemParser.getInstance().load();
final Collection<File> files = FileUtils.listFiles(new File("./data/npc/"), FileFilterUtils.suffixFileFilter(".xml"), FileFilterUtils.directoryFileFilter());
for(File f : files) {
if(!f.isHidden()) {
final SAXReader reader = new SAXReader();
reader.setValidation(false);
Document document = reader.read(f);
for(final Element element : document.getRootElement().elements()) {
final int npcId = Integer.parseInt(element.attributeValue("id"));
element.elements().stream().filter(block -> block.getName().equalsIgnoreCase("rewardlist")).forEach(block -> {
for(Element e : block.elements()) {
if(e.getName().equalsIgnoreCase("group")) {
for(Element r : e.elements()) {
int itemId = Integer.parseInt(r.attributeValue("item_id"));
ItemTemplate template = ItemHolder.getInstance().getTemplate(itemId);
if(template == null)
continue;
if(template.isHerb() || template.isCommonItem() || template.isRecipe() || template.getItemClass() == ItemTemplate.ItemClass.MATHERIALS || template.getItemClass() == ItemTemplate.ItemClass.SPELLBOOKS)
r.detach();
if(e.elements().isEmpty())
e.detach();
}
}
else if(e.getName().equalsIgnoreCase("reward")) {
int itemId = Integer.parseInt(e.attributeValue("item_id"));
ItemTemplate template = ItemHolder.getInstance().getTemplate(itemId);
if(template == null)
continue;
if(template.isHerb() || template.isCommonItem() || template.isRecipe() || template.getItemClass() == ItemTemplate.ItemClass.MATHERIALS || template.getItemClass() == ItemTemplate.ItemClass.SPELLBOOKS)
e.detach();
}
}
if(block.elements().isEmpty())
block.detach();
});
}
OutputFormat of = new OutputFormat("\t", true);
of.setOmitEncoding(false);
of.setEncoding("UTF-8");
XMLWriter writer = null;
try {
String name = "/".split(document.getName())["/".split(document.getName()).length - 1];
writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("./data/new_npc/" + name), "UTF8"), of);
writer.write(document);
}
finally {
if(writer != null) {
writer.flush();
writer.close();
}
}
}
}
}
}
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?