Hello, I'm trying to create a custom drop system, does anyone give me an idea? That's how it looks! Even registering in Gameserve.java is not running the drops
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.l2j.gameserver.datatables;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
import net.sf.l2j.gameserver.model.item.DropCategory;
import net.sf.l2j.gameserver.model.item.DropData;
import net.sf.l2j.gameserver.templates.StatsSet;
import net.sf.l2j.gameserver.xmlfactory.XMLDocumentFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
/**
* @author Williams
*
*/
public class FeanorTable
{
private static Logger _log = Logger.getLogger(FeanorTable.class.getName());
private final Map<Integer, NpcTemplate> _feanor = new HashMap<>();
protected FeanorTable()
{
loadFeanorTable();
}
public void reloadAllNpc()
{
_feanor.clear();
loadFeanorTable();
}
private void loadFeanorTable()
{
try
{
final File dir = new File("./data/xml/feanorTable");
final StatsSet set = new StatsSet();
for (File file : dir.listFiles())
{
final Document doc = XMLDocumentFactory.getInstance().loadDocument(file);
Node list = doc.getFirstChild();
for (Node npc = list.getFirstChild(); npc != null; npc = npc.getNextSibling())
{
NamedNodeMap attrs = npc.getAttributes();
for (Node cat = npc.getFirstChild(); cat != null; cat = cat.getNextSibling())
if ("drops".equalsIgnoreCase(cat.getNodeName()))
{
final List<DropCategory> drops = new ArrayList<>();
for (Node dropCat = cat.getFirstChild(); dropCat != null; dropCat = dropCat.getNextSibling())
{
if ("category".equalsIgnoreCase(dropCat.getNodeName()))
{
attrs = dropCat.getAttributes();
final DropCategory category = new DropCategory(Integer.parseInt(attrs.getNamedItem("id").getNodeValue()));
for (Node item = dropCat.getFirstChild(); item != null; item = item.getNextSibling())
{
if ("drop".equalsIgnoreCase(item.getNodeName()))
{
attrs = item.getAttributes();
final DropData data = new DropData();
data.setItemId(Integer.parseInt(attrs.getNamedItem("itemid").getNodeValue()));
data.setMinDrop(Integer.parseInt(attrs.getNamedItem("min").getNodeValue()));
data.setMaxDrop(Integer.parseInt(attrs.getNamedItem("max").getNodeValue()));
data.setChance(Integer.parseInt(attrs.getNamedItem("chance").getNodeValue()));
if (ItemTable.getInstance().getTemplate(data.getItemId()) == null)
{
_log.warning("Droplist data for undefined itemId: " + data.getItemId());
continue;
}
category.addDropData(data, true);
}
}
drops.add(category);
}
}
set.set("drops", drops);
}
else if ("set".equalsIgnoreCase(cat.getNodeName()))
{
attrs = cat.getAttributes();
set.set(attrs.getNamedItem("name").getNodeValue(), attrs.getNamedItem("val").getNodeValue());
}
else if ("teachTo".equalsIgnoreCase(cat.getNodeName()))
set.set("teachTo", cat.getAttributes().getNamedItem("classes").getNodeValue());
}
}
set.clear();
}
catch (Exception e)
{
_log.log(Level.SEVERE, "NpcTable: Error parsing NPC templates : ", e);
}
_log.info("NpcTable: Loaded " + _feanor.size() + " NPC templates.");
}
public NpcTemplate getTemplate(int id)
{
return _feanor.get(id);
}
/**
* @param name to search.
* @return the template list of NPCs for a given name.
*/
public NpcTemplate getTemplateByName(String name)
{
for (NpcTemplate npcTemplate : _feanor.values())
{
if (npcTemplate.getName().equalsIgnoreCase(name))
return npcTemplate;
}
return null;
}
public static FeanorTable getInstance()
{
return SingletonHolder._instance;
}
private static class SingletonHolder
{
protected static final FeanorTable _instance = new FeanorTable();
}
}
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
hello everyone !
I need help with a l2script Rev H5-Salvation/Classic build. I compiled the project, installed everything but I can't log in to the server, it won't log me in. I tried a thousand ways without good results. I leave you the error when logging in either with the H5-Salvation Client.
ERROR ---> WARN: IPBANMANAGER ---> IP !!!!
I'm waiting for help! Thank you!
Question
l2jkain
Hello, I'm trying to create a custom drop system, does anyone give me an idea? That's how it looks! Even registering in Gameserve.java is not running the drops
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.