Replaced seed CSV data with aCis free version XML data.
This commit is contained in:
@@ -70,6 +70,7 @@ import org.l2jmobius.gameserver.datatables.xml.FenceData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.FishData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.HennaData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.RecipeData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.StaticObjectData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SummonItemData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
|
||||
@@ -109,7 +110,6 @@ import org.l2jmobius.gameserver.instancemanager.QuestManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.RaidBossPointsManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.SiegeManager;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.entity.Announcements;
|
||||
import org.l2jmobius.gameserver.model.entity.Hero;
|
||||
@@ -339,7 +339,7 @@ public class GameServer
|
||||
}
|
||||
|
||||
Util.printSection("Manor");
|
||||
Manor.getInstance();
|
||||
SeedData.getInstance();
|
||||
CastleManorManager.getInstance();
|
||||
|
||||
Util.printSection("Castles");
|
||||
|
@@ -0,0 +1,321 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* 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 org.l2jmobius.gameserver.datatables.xml;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import org.l2jmobius.commons.util.IXmlReader;
|
||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.holders.SeedDataHolder;
|
||||
import org.l2jmobius.gameserver.model.items.Item;
|
||||
|
||||
/**
|
||||
* This class loads and stores manor seed information.
|
||||
* @author l3x, Mobius
|
||||
*/
|
||||
public class SeedData implements IXmlReader
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(SeedData.class.getName());
|
||||
|
||||
private static Map<Integer, SeedDataHolder> _seeds = new ConcurrentHashMap<>();
|
||||
|
||||
protected SeedData()
|
||||
{
|
||||
load();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load()
|
||||
{
|
||||
_seeds.clear();
|
||||
parseDatapackFile("data/Seeds.xml");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _seeds.size() + " seeds.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void parseDocument(Document doc, File f)
|
||||
{
|
||||
// StatSet used to feed informations. Cleaned on every entry.
|
||||
final StatSet set = new StatSet();
|
||||
|
||||
// First element is never read.
|
||||
final Node n = doc.getFirstChild();
|
||||
|
||||
for (Node node = n.getFirstChild(); node != null; node = node.getNextSibling())
|
||||
{
|
||||
if ("seed".equalsIgnoreCase(node.getNodeName()))
|
||||
{
|
||||
final NamedNodeMap attrs = node.getAttributes();
|
||||
for (int i = 0; i < attrs.getLength(); i++)
|
||||
{
|
||||
final Node att = attrs.item(i);
|
||||
set.set(att.getNodeName(), att.getNodeValue());
|
||||
}
|
||||
|
||||
final int id = set.getInt("id");
|
||||
_seeds.put(id, new SeedDataHolder(id, set.getInt("level"), set.getInt("cropId"), set.getInt("matureId"), set.getInt("reward1"), set.getInt("reward2"), set.getInt("castleId"), set.getBoolean("isAlternative"), set.getInt("seedsLimit"), set.getInt("cropsLimit")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<Integer> getAllCrops()
|
||||
{
|
||||
final List<Integer> crops = new ArrayList<>();
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if (!crops.contains(seed.getCrop()) && (seed.getCrop() != 0))
|
||||
{
|
||||
crops.add(seed.getCrop());
|
||||
}
|
||||
}
|
||||
return crops;
|
||||
}
|
||||
|
||||
public int getSeedBasicPrice(int seedId)
|
||||
{
|
||||
final Item seedItem = ItemTable.getInstance().getTemplate(seedId);
|
||||
if (seedItem != null)
|
||||
{
|
||||
return seedItem.getReferencePrice();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getSeedBasicPriceByCrop(int cropId)
|
||||
{
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return getSeedBasicPrice(seed.getId());
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getCropBasicPrice(int cropId)
|
||||
{
|
||||
final Item cropItem = ItemTable.getInstance().getTemplate(cropId);
|
||||
if (cropItem != null)
|
||||
{
|
||||
return cropItem.getReferencePrice();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getMatureCrop(int cropId)
|
||||
{
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getMature();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns price which lord pays to buy one seed
|
||||
* @param seedId
|
||||
* @return seed price
|
||||
*/
|
||||
public int getSeedBuyPrice(int seedId)
|
||||
{
|
||||
final int buyPrice = getSeedBasicPrice(seedId) / 10;
|
||||
return buyPrice > 0 ? buyPrice : 1;
|
||||
}
|
||||
|
||||
public int getSeedMinLevel(int seedId)
|
||||
{
|
||||
final SeedDataHolder seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getLevel() - 5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int getSeedMaxLevel(int seedId)
|
||||
{
|
||||
final SeedDataHolder seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getLevel() + 5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int getSeedLevelByCrop(int cropId)
|
||||
{
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getLevel();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getSeedLevel(int seedId)
|
||||
{
|
||||
final SeedDataHolder seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getLevel();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public boolean isAlternative(int seedId)
|
||||
{
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if (seed.getId() == seedId)
|
||||
{
|
||||
return seed.isAlternative();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getCropType(int seedId)
|
||||
{
|
||||
final SeedDataHolder seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getCrop();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public synchronized int getRewardItem(int cropId, int type)
|
||||
{
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getReward(type); // there can be several seeds with same crop, but reward should be the same for all
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public synchronized int getRewardItemBySeed(int seedId, int type)
|
||||
{
|
||||
final SeedDataHolder seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getReward(type);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all crops which can be purchased by given castle
|
||||
* @param castleId
|
||||
* @return
|
||||
*/
|
||||
public List<Integer> getCropsForCastle(int castleId)
|
||||
{
|
||||
final List<Integer> crops = new ArrayList<>();
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if ((seed.getManorId() == castleId) && !crops.contains(seed.getCrop()))
|
||||
{
|
||||
crops.add(seed.getCrop());
|
||||
}
|
||||
}
|
||||
return crops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return list of seed ids, which belongs to castle with given id
|
||||
* @param castleId - id of the castle
|
||||
* @return seedIds - list of seed ids
|
||||
*/
|
||||
public List<Integer> getSeedsForCastle(int castleId)
|
||||
{
|
||||
final List<Integer> seedsID = new ArrayList<>();
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if ((seed.getManorId() == castleId) && !seedsID.contains(seed.getId()))
|
||||
{
|
||||
seedsID.add(seed.getId());
|
||||
}
|
||||
}
|
||||
return seedsID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns castle id where seed can be showed<br>
|
||||
* @param seedId
|
||||
* @return castleId
|
||||
*/
|
||||
public int getCastleIdForSeed(int seedId)
|
||||
{
|
||||
final SeedDataHolder seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getManorId();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getSeedSaleLimit(int seedId)
|
||||
{
|
||||
final SeedDataHolder seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getSeedLimit();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getCropPuchaseLimit(int cropId)
|
||||
{
|
||||
for (SeedDataHolder seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getCropLimit();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static SeedData getInstance()
|
||||
{
|
||||
return SingletonHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private static class SingletonHolder
|
||||
{
|
||||
protected static final SeedData INSTANCE = new SeedData();
|
||||
}
|
||||
}
|
@@ -18,9 +18,9 @@ package org.l2jmobius.gameserver.handler.itemhandlers;
|
||||
|
||||
import org.l2jmobius.gameserver.datatables.SkillTable;
|
||||
import org.l2jmobius.gameserver.datatables.csv.MapRegionTable;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.handler.IItemHandler;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.Skill;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.Playable;
|
||||
@@ -363,7 +363,7 @@ public class Seed implements IItemHandler
|
||||
|
||||
private boolean areaValid(int castleId)
|
||||
{
|
||||
return Manor.getInstance().getCastleIdForSeed(_seedId) == castleId;
|
||||
return SeedData.getInstance().getCastleIdForSeed(_seedId) == castleId;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -20,8 +20,8 @@ import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.util.Rnd;
|
||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.handler.ISkillHandler;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.Skill;
|
||||
import org.l2jmobius.gameserver.model.Skill.SkillType;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
@@ -140,11 +140,11 @@ public class Sow implements ISkillHandler
|
||||
}
|
||||
|
||||
// TODO: check all the chances
|
||||
int basicSuccess = (Manor.getInstance().isAlternative(_seedId) ? 20 : 90);
|
||||
int basicSuccess = (SeedData.getInstance().isAlternative(_seedId) ? 20 : 90);
|
||||
int minlevelSeed = 0;
|
||||
int maxlevelSeed = 0;
|
||||
minlevelSeed = Manor.getInstance().getSeedMinLevel(_seedId);
|
||||
maxlevelSeed = Manor.getInstance().getSeedMaxLevel(_seedId);
|
||||
minlevelSeed = SeedData.getInstance().getSeedMinLevel(_seedId);
|
||||
maxlevelSeed = SeedData.getInstance().getSeedMaxLevel(_seedId);
|
||||
|
||||
final int levelPlayer = _player.getLevel(); // Attacker Level
|
||||
final int levelTarget = _target.getLevel(); // taret Level
|
||||
|
@@ -29,9 +29,9 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.util.Rnd;
|
||||
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.model.ClanWarehouse;
|
||||
import org.l2jmobius.gameserver.model.ItemContainer;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||
@@ -328,7 +328,7 @@ public class CastleManorManager
|
||||
|
||||
if (count >= 1)
|
||||
{
|
||||
cwh.addItem("Manor", Manor.getInstance().getMatureCrop(crop.getId()), count, null, null);
|
||||
cwh.addItem("Manor", SeedData.getInstance().getMatureCrop(crop.getId()), count, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ public class CastleManorManager
|
||||
private List<SeedProduction> getNewSeedsList(int castleId)
|
||||
{
|
||||
final List<SeedProduction> seeds = new ArrayList<>();
|
||||
final List<Integer> seedsIds = Manor.getInstance().getSeedsForCastle(castleId);
|
||||
final List<Integer> seedsIds = SeedData.getInstance().getSeedsForCastle(castleId);
|
||||
for (int sd : seedsIds)
|
||||
{
|
||||
seeds.add(new SeedProduction(sd));
|
||||
@@ -446,7 +446,7 @@ public class CastleManorManager
|
||||
private List<CropProcure> getNewCropsList(int castleId)
|
||||
{
|
||||
final List<CropProcure> crops = new ArrayList<>();
|
||||
final List<Integer> cropsIds = Manor.getInstance().getCropsForCastle(castleId);
|
||||
final List<Integer> cropsIds = SeedData.getInstance().getCropsForCastle(castleId);
|
||||
for (int cr : cropsIds)
|
||||
{
|
||||
crops.add(new CropProcure(cr));
|
||||
|
@@ -1,464 +0,0 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* 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 org.l2jmobius.gameserver.model;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.LineNumberReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import org.l2jmobius.gameserver.model.items.Item;
|
||||
|
||||
/**
|
||||
* Service class for manor
|
||||
* @author l3x
|
||||
*/
|
||||
public class Manor
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(Manor.class.getName());
|
||||
|
||||
private static Map<Integer, SeedData> _seeds = new ConcurrentHashMap<>();
|
||||
|
||||
public Manor()
|
||||
{
|
||||
_seeds.clear();
|
||||
parseData();
|
||||
}
|
||||
|
||||
public List<Integer> getAllCrops()
|
||||
{
|
||||
final List<Integer> crops = new ArrayList<>();
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if (!crops.contains(seed.getCrop()) && (seed.getCrop() != 0))
|
||||
{
|
||||
crops.add(seed.getCrop());
|
||||
}
|
||||
}
|
||||
return crops;
|
||||
}
|
||||
|
||||
public int getSeedBasicPrice(int seedId)
|
||||
{
|
||||
final Item seedItem = ItemTable.getInstance().getTemplate(seedId);
|
||||
|
||||
if (seedItem != null)
|
||||
{
|
||||
return seedItem.getReferencePrice();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getSeedBasicPriceByCrop(int cropId)
|
||||
{
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return getSeedBasicPrice(seed.getId());
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getCropBasicPrice(int cropId)
|
||||
{
|
||||
final Item cropItem = ItemTable.getInstance().getTemplate(cropId);
|
||||
if (cropItem != null)
|
||||
{
|
||||
return cropItem.getReferencePrice();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getMatureCrop(int cropId)
|
||||
{
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getMature();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns price which lord pays to buy one seed
|
||||
* @param seedId
|
||||
* @return seed price
|
||||
*/
|
||||
public int getSeedBuyPrice(int seedId)
|
||||
{
|
||||
final int buyPrice = getSeedBasicPrice(seedId) / 10;
|
||||
return buyPrice > 0 ? buyPrice : 1;
|
||||
}
|
||||
|
||||
public int getSeedMinLevel(int seedId)
|
||||
{
|
||||
final SeedData seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getLevel() - 5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int getSeedMaxLevel(int seedId)
|
||||
{
|
||||
final SeedData seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getLevel() + 5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int getSeedLevelByCrop(int cropId)
|
||||
{
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getLevel();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getSeedLevel(int seedId)
|
||||
{
|
||||
final SeedData seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getLevel();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public boolean isAlternative(int seedId)
|
||||
{
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if (seed.getId() == seedId)
|
||||
{
|
||||
return seed.isAlternative();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getCropType(int seedId)
|
||||
{
|
||||
final SeedData seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getCrop();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public synchronized int getRewardItem(int cropId, int type)
|
||||
{
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getReward(type); // there can be several seeds with same crop, but reward should be the same for all
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public synchronized int getRewardItemBySeed(int seedId, int type)
|
||||
{
|
||||
final SeedData seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getReward(type);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all crops which can be purchased by given castle
|
||||
* @param castleId
|
||||
* @return
|
||||
*/
|
||||
public List<Integer> getCropsForCastle(int castleId)
|
||||
{
|
||||
final List<Integer> crops = new ArrayList<>();
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if ((seed.getManorId() == castleId) && !crops.contains(seed.getCrop()))
|
||||
{
|
||||
crops.add(seed.getCrop());
|
||||
}
|
||||
}
|
||||
return crops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return list of seed ids, which belongs to castle with given id
|
||||
* @param castleId - id of the castle
|
||||
* @return seedIds - list of seed ids
|
||||
*/
|
||||
public List<Integer> getSeedsForCastle(int castleId)
|
||||
{
|
||||
final List<Integer> seedsID = new ArrayList<>();
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if ((seed.getManorId() == castleId) && !seedsID.contains(seed.getId()))
|
||||
{
|
||||
seedsID.add(seed.getId());
|
||||
}
|
||||
}
|
||||
return seedsID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns castle id where seed can be sowned<br>
|
||||
* @param seedId
|
||||
* @return castleId
|
||||
*/
|
||||
public int getCastleIdForSeed(int seedId)
|
||||
{
|
||||
final SeedData seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getManorId();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getSeedSaleLimit(int seedId)
|
||||
{
|
||||
final SeedData seed = _seeds.get(seedId);
|
||||
if (seed != null)
|
||||
{
|
||||
return seed.getSeedLimit();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getCropPuchaseLimit(int cropId)
|
||||
{
|
||||
for (SeedData seed : _seeds.values())
|
||||
{
|
||||
if (seed.getCrop() == cropId)
|
||||
{
|
||||
return seed.getCropLimit();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private class SeedData
|
||||
{
|
||||
private int _id;
|
||||
private final int _level; // seed level
|
||||
private final int _crop; // crop type
|
||||
private final int _mature; // mature crop type
|
||||
private int _type1;
|
||||
private int _type2;
|
||||
private int _manorId; // id of manor (castle id) where seed can be farmed
|
||||
private int _isAlternative;
|
||||
private int _limitSeeds;
|
||||
private int _limitCrops;
|
||||
|
||||
public SeedData(int level, int crop, int mature)
|
||||
{
|
||||
_level = level;
|
||||
_crop = crop;
|
||||
_mature = mature;
|
||||
}
|
||||
|
||||
public void setData(int id, int t1, int t2, int manorId, int isAlt, int lim1, int lim2)
|
||||
{
|
||||
_id = id;
|
||||
_type1 = t1;
|
||||
_type2 = t2;
|
||||
_manorId = manorId;
|
||||
_isAlternative = isAlt;
|
||||
_limitSeeds = lim1;
|
||||
_limitCrops = lim2;
|
||||
}
|
||||
|
||||
public int getManorId()
|
||||
{
|
||||
return _manorId;
|
||||
}
|
||||
|
||||
public int getId()
|
||||
{
|
||||
return _id;
|
||||
}
|
||||
|
||||
public int getCrop()
|
||||
{
|
||||
return _crop;
|
||||
}
|
||||
|
||||
public int getMature()
|
||||
{
|
||||
return _mature;
|
||||
}
|
||||
|
||||
public int getReward(int type)
|
||||
{
|
||||
return type == 1 ? _type1 : _type2;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public boolean isAlternative()
|
||||
{
|
||||
return _isAlternative == 1;
|
||||
}
|
||||
|
||||
public int getSeedLimit()
|
||||
{
|
||||
return _limitSeeds * Config.RATE_DROP_MANOR;
|
||||
}
|
||||
|
||||
public int getCropLimit()
|
||||
{
|
||||
return _limitCrops * Config.RATE_DROP_MANOR;
|
||||
}
|
||||
}
|
||||
|
||||
private void parseData()
|
||||
{
|
||||
FileReader reader = null;
|
||||
BufferedReader buff = null;
|
||||
LineNumberReader lnr = null;
|
||||
|
||||
try
|
||||
{
|
||||
final File seedData = new File(Config.DATAPACK_ROOT, "data/csv/seeds.csv");
|
||||
|
||||
reader = new FileReader(seedData);
|
||||
buff = new BufferedReader(reader);
|
||||
lnr = new LineNumberReader(buff);
|
||||
|
||||
String line = null;
|
||||
|
||||
while ((line = lnr.readLine()) != null)
|
||||
{
|
||||
if ((line.trim().length() == 0) || line.startsWith("#"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final SeedData seed = parseList(line);
|
||||
_seeds.put(seed.getId(), seed);
|
||||
}
|
||||
|
||||
LOGGER.info("ManorManager: Loaded " + _seeds.size() + " seeds");
|
||||
}
|
||||
catch (FileNotFoundException e)
|
||||
{
|
||||
LOGGER.info("seeds.csv is missing in data csv folder");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.info("error while loading seeds: " + e.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lnr != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
lnr.close();
|
||||
}
|
||||
catch (Exception e1)
|
||||
{
|
||||
LOGGER.warning("Problem with Manor: " + e1);
|
||||
}
|
||||
}
|
||||
|
||||
if (buff != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
buff.close();
|
||||
}
|
||||
catch (Exception e1)
|
||||
{
|
||||
LOGGER.warning("Problem with Manor: " + e1);
|
||||
}
|
||||
}
|
||||
|
||||
if (reader != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
reader.close();
|
||||
}
|
||||
catch (Exception e1)
|
||||
{
|
||||
LOGGER.warning("Problem with Manor: " + e1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private SeedData parseList(String line)
|
||||
{
|
||||
final StringTokenizer st = new StringTokenizer(line, ";");
|
||||
|
||||
final int seedId = Integer.parseInt(st.nextToken()); // seed id
|
||||
final int level = Integer.parseInt(st.nextToken()); // seed level
|
||||
final int cropId = Integer.parseInt(st.nextToken()); // crop id
|
||||
final int matureId = Integer.parseInt(st.nextToken()); // mature crop id
|
||||
final int type1R = Integer.parseInt(st.nextToken()); // type I reward
|
||||
final int type2R = Integer.parseInt(st.nextToken()); // type II reward
|
||||
final int manorId = Integer.parseInt(st.nextToken()); // id of manor, where seed can be farmed
|
||||
final int isAlt = Integer.parseInt(st.nextToken()); // alternative seed
|
||||
final int limitSeeds = Integer.parseInt(st.nextToken()); // limit for seeds
|
||||
final int limitCrops = Integer.parseInt(st.nextToken()); // limit for crops
|
||||
|
||||
final SeedData seed = new SeedData(level, cropId, matureId);
|
||||
seed.setData(seedId, type1R, type2R, manorId, isAlt, limitSeeds, limitCrops);
|
||||
|
||||
return seed;
|
||||
}
|
||||
|
||||
public static Manor getInstance()
|
||||
{
|
||||
return SingletonHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private static class SingletonHolder
|
||||
{
|
||||
protected static final Manor INSTANCE = new Manor();
|
||||
}
|
||||
}
|
@@ -32,11 +32,11 @@ import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import org.l2jmobius.gameserver.ai.FortSiegeGuardAI;
|
||||
import org.l2jmobius.gameserver.ai.SiegeGuardAI;
|
||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager;
|
||||
import org.l2jmobius.gameserver.model.CommandChannel;
|
||||
import org.l2jmobius.gameserver.model.DropCategory;
|
||||
import org.l2jmobius.gameserver.model.DropData;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.Party;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.DoorInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.FolkInstance;
|
||||
@@ -3157,7 +3157,7 @@ public class Attackable extends NpcInstance
|
||||
|
||||
}
|
||||
|
||||
final int diff = getLevel() - (Manor.getInstance().getSeedLevel(_seedType) - 5);
|
||||
final int diff = getLevel() - (SeedData.getInstance().getSeedLevel(_seedType) - 5);
|
||||
|
||||
// hi-lvl mobs bonus
|
||||
if (diff > 0)
|
||||
@@ -3167,7 +3167,7 @@ public class Attackable extends NpcInstance
|
||||
|
||||
final List<RewardItem> harvested = new ArrayList<>();
|
||||
|
||||
harvested.add(new RewardItem(Manor.getInstance().getCropType(_seedType), count * Config.RATE_DROP_MANOR));
|
||||
harvested.add(new RewardItem(SeedData.getInstance().getCropType(_seedType), count * Config.RATE_DROP_MANOR));
|
||||
|
||||
_harvestItems = harvested.toArray(new RewardItem[harvested.size()]);
|
||||
}
|
||||
|
@@ -31,12 +31,12 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.datatables.xml.DoorData;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.CropProcure;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.SeedProduction;
|
||||
import org.l2jmobius.gameserver.instancemanager.CrownManager;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.DoorInstance;
|
||||
@@ -870,7 +870,7 @@ public class Castle
|
||||
{
|
||||
for (SeedProduction seed : production)
|
||||
{
|
||||
total += Manor.getInstance().getSeedBuyPrice(seed.getId()) * seed.getStartProduce();
|
||||
total += SeedData.getInstance().getSeedBuyPrice(seed.getId()) * seed.getStartProduce();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* 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 org.l2jmobius.gameserver.model.holders;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class SeedDataHolder
|
||||
{
|
||||
private final int _id;
|
||||
private final int _level; // seed level
|
||||
private final int _crop; // crop type
|
||||
private final int _mature; // mature crop type
|
||||
private final int _type1;
|
||||
private final int _type2;
|
||||
private final int _manorId; // id of manor (castle id) where seed can be farmed
|
||||
private final boolean _isAlternative;
|
||||
private final int _limitSeeds;
|
||||
private final int _limitCrops;
|
||||
|
||||
public SeedDataHolder(int id, int level, int crop, int mature, int type1, int type2, int manorId, boolean isAlternative, int limitSeeds, int limitCrops)
|
||||
{
|
||||
_id = id;
|
||||
_level = level;
|
||||
_crop = crop;
|
||||
_mature = mature;
|
||||
_type1 = type1;
|
||||
_type2 = type2;
|
||||
_manorId = manorId;
|
||||
_isAlternative = isAlternative;
|
||||
_limitSeeds = limitSeeds;
|
||||
_limitCrops = limitCrops;
|
||||
}
|
||||
|
||||
public int getManorId()
|
||||
{
|
||||
return _manorId;
|
||||
}
|
||||
|
||||
public int getId()
|
||||
{
|
||||
return _id;
|
||||
}
|
||||
|
||||
public int getCrop()
|
||||
{
|
||||
return _crop;
|
||||
}
|
||||
|
||||
public int getMature()
|
||||
{
|
||||
return _mature;
|
||||
}
|
||||
|
||||
public int getReward(int type)
|
||||
{
|
||||
return type == 1 ? _type1 : _type2;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public boolean isAlternative()
|
||||
{
|
||||
return _isAlternative;
|
||||
}
|
||||
|
||||
public int getSeedLimit()
|
||||
{
|
||||
return _limitSeeds * Config.RATE_DROP_MANOR;
|
||||
}
|
||||
|
||||
public int getCropLimit()
|
||||
{
|
||||
return _limitCrops * Config.RATE_DROP_MANOR;
|
||||
}
|
||||
}
|
@@ -21,9 +21,9 @@ import java.util.List;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.CropProcure;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.ManorManagerInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.items.Item;
|
||||
@@ -132,7 +132,7 @@ public class RequestBuyProcure extends GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final Item template = ItemTable.getInstance().getTemplate(Manor.getInstance().getRewardItem(itemId, manor.getCastle().getCrop(itemId, CastleManorManager.PERIOD_CURRENT).getReward()));
|
||||
final Item template = ItemTable.getInstance().getTemplate(SeedData.getInstance().getRewardItem(itemId, manor.getCastle().getCrop(itemId, CastleManorManager.PERIOD_CURRENT).getReward()));
|
||||
weight += count * template.getWeight();
|
||||
|
||||
if (!template.isStackable())
|
||||
@@ -171,7 +171,7 @@ public class RequestBuyProcure extends GameClientPacket
|
||||
count = 0;
|
||||
}
|
||||
|
||||
final int rewradItemId = Manor.getInstance().getRewardItem(itemId, manor.getCastle().getCrop(itemId, CastleManorManager.PERIOD_CURRENT).getReward());
|
||||
final int rewradItemId = SeedData.getInstance().getRewardItem(itemId, manor.getCastle().getCrop(itemId, CastleManorManager.PERIOD_CURRENT).getReward());
|
||||
|
||||
int rewradItemCount = 1; // Manor.getInstance().getRewardAmount(itemId, manor.getCastle().getCropReward(itemId));
|
||||
|
||||
|
@@ -18,10 +18,10 @@ package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.CropProcure;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.ManorManagerInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
|
||||
@@ -136,7 +136,7 @@ public class RequestProcureCropList extends GameClientPacket
|
||||
try
|
||||
{
|
||||
final CropProcure crop = CastleManager.getInstance().getCastleById(manorId).getCrop(itemId, CastleManorManager.PERIOD_CURRENT);
|
||||
final int rewardItemId = Manor.getInstance().getRewardItem(itemId, crop.getReward());
|
||||
final int rewardItemId = SeedData.getInstance().getRewardItem(itemId, crop.getReward());
|
||||
final Item template = ItemTable.getInstance().getTemplate(rewardItemId);
|
||||
weight += count * template.getWeight();
|
||||
|
||||
@@ -203,14 +203,14 @@ public class RequestProcureCropList extends GameClientPacket
|
||||
|
||||
int fee = 0; // fee for selling to other manors
|
||||
|
||||
final int rewardItem = Manor.getInstance().getRewardItem(cropId, crop.getReward());
|
||||
final int rewardItem = SeedData.getInstance().getRewardItem(cropId, crop.getReward());
|
||||
|
||||
if (count > crop.getAmount())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final int sellPrice = count * Manor.getInstance().getCropBasicPrice(cropId);
|
||||
final int sellPrice = count * SeedData.getInstance().getCropBasicPrice(cropId);
|
||||
final int rewardPrice = ItemTable.getInstance().getTemplate(rewardItem).getReferencePrice();
|
||||
|
||||
if (rewardPrice == 0)
|
||||
|
@@ -19,8 +19,8 @@ package org.l2jmobius.gameserver.network.serverpackets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.CropProcure;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
|
||||
/**
|
||||
* Format: ch cddd[ddddcdcdcd] c - id (0xFE) h - sub id (0x1D) c d - manor id d d - size [ d - crop id d - residual buy d - start buy d - buy price c - reward type d - seed level c - reward 1 items d - reward 1 item id c - reward 2 items d - reward 2 item id ]
|
||||
@@ -58,11 +58,11 @@ public class ExShowCropInfo extends GameServerPacket
|
||||
writeD(crop.getStartAmount()); // Buy
|
||||
writeD(crop.getPrice()); // Buy price
|
||||
writeC(crop.getReward()); // Reward
|
||||
writeD(Manor.getInstance().getSeedLevelByCrop(crop.getId())); // Seed Level
|
||||
writeD(SeedData.getInstance().getSeedLevelByCrop(crop.getId())); // Seed Level
|
||||
writeC(1); // rewrad 1 Type
|
||||
writeD(Manor.getInstance().getRewardItem(crop.getId(), 1)); // Rewrad 1 Type Item Id
|
||||
writeD(SeedData.getInstance().getRewardItem(crop.getId(), 1)); // Rewrad 1 Type Item Id
|
||||
writeC(1); // rewrad 2 Type
|
||||
writeD(Manor.getInstance().getRewardItem(crop.getId(), 2)); // Rewrad 2 Type Item Id
|
||||
writeD(SeedData.getInstance().getRewardItem(crop.getId(), 2)); // Rewrad 2 Type Item Id
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -18,10 +18,10 @@ package org.l2jmobius.gameserver.network.serverpackets;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.CropProcure;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.entity.siege.Castle;
|
||||
|
||||
/**
|
||||
@@ -44,20 +44,20 @@ public class ExShowCropSetting extends GameServerPacket
|
||||
{
|
||||
_manorId = manorId;
|
||||
final Castle c = CastleManager.getInstance().getCastleById(_manorId);
|
||||
final List<Integer> crops = Manor.getInstance().getCropsForCastle(_manorId);
|
||||
final List<Integer> crops = SeedData.getInstance().getCropsForCastle(_manorId);
|
||||
_count = crops.size();
|
||||
_cropData = new int[_count * 14];
|
||||
int i = 0;
|
||||
for (int cr : crops)
|
||||
{
|
||||
_cropData[(i * 14) + 0] = cr;
|
||||
_cropData[(i * 14) + 1] = Manor.getInstance().getSeedLevelByCrop(cr);
|
||||
_cropData[(i * 14) + 2] = Manor.getInstance().getRewardItem(cr, 1);
|
||||
_cropData[(i * 14) + 3] = Manor.getInstance().getRewardItem(cr, 2);
|
||||
_cropData[(i * 14) + 4] = Manor.getInstance().getCropPuchaseLimit(cr);
|
||||
_cropData[(i * 14) + 1] = SeedData.getInstance().getSeedLevelByCrop(cr);
|
||||
_cropData[(i * 14) + 2] = SeedData.getInstance().getRewardItem(cr, 1);
|
||||
_cropData[(i * 14) + 3] = SeedData.getInstance().getRewardItem(cr, 2);
|
||||
_cropData[(i * 14) + 4] = SeedData.getInstance().getCropPuchaseLimit(cr);
|
||||
_cropData[(i * 14) + 5] = 0; // Looks like not used
|
||||
_cropData[(i * 14) + 6] = (Manor.getInstance().getCropBasicPrice(cr) * 60) / 100;
|
||||
_cropData[(i * 14) + 7] = Manor.getInstance().getCropBasicPrice(cr) * 10;
|
||||
_cropData[(i * 14) + 6] = (SeedData.getInstance().getCropBasicPrice(cr) * 60) / 100;
|
||||
_cropData[(i * 14) + 7] = SeedData.getInstance().getCropBasicPrice(cr) * 10;
|
||||
CropProcure cropPr = c.getCrop(cr, CastleManorManager.PERIOD_CURRENT);
|
||||
if (cropPr != null)
|
||||
{
|
||||
|
@@ -18,7 +18,7 @@ package org.l2jmobius.gameserver.network.serverpackets;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
|
||||
/**
|
||||
* format(packet 0xFE) ch cd [ddddcdcd] c - id h - sub id c d - size [ d - level d - seed price d - seed level d - crop price c d - reward 1 id c d - reward 2 id ]
|
||||
@@ -30,7 +30,7 @@ public class ExShowManorDefaultInfo extends GameServerPacket
|
||||
|
||||
public ExShowManorDefaultInfo()
|
||||
{
|
||||
_crops = Manor.getInstance().getAllCrops();
|
||||
_crops = SeedData.getInstance().getAllCrops();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -43,13 +43,13 @@ public class ExShowManorDefaultInfo extends GameServerPacket
|
||||
for (int cropId : _crops)
|
||||
{
|
||||
writeD(cropId); // crop Id
|
||||
writeD(Manor.getInstance().getSeedLevelByCrop(cropId)); // level
|
||||
writeD(Manor.getInstance().getSeedBasicPriceByCrop(cropId)); // seed price
|
||||
writeD(Manor.getInstance().getCropBasicPrice(cropId)); // crop price
|
||||
writeD(SeedData.getInstance().getSeedLevelByCrop(cropId)); // level
|
||||
writeD(SeedData.getInstance().getSeedBasicPriceByCrop(cropId)); // seed price
|
||||
writeD(SeedData.getInstance().getCropBasicPrice(cropId)); // crop price
|
||||
writeC(1); // rewrad 1 Type
|
||||
writeD(Manor.getInstance().getRewardItem(cropId, 1)); // Rewrad 1 Type Item Id
|
||||
writeD(SeedData.getInstance().getRewardItem(cropId, 1)); // Rewrad 1 Type Item Id
|
||||
writeC(1); // rewrad 2 Type
|
||||
writeD(Manor.getInstance().getRewardItem(cropId, 2)); // Rewrad 2 Type Item Id
|
||||
writeD(SeedData.getInstance().getRewardItem(cropId, 2)); // Rewrad 2 Type Item Id
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -19,8 +19,8 @@ package org.l2jmobius.gameserver.network.serverpackets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.SeedProduction;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
|
||||
/**
|
||||
* format(packet 0xFE) ch ddd [dddddcdcd] c - id h - sub id d - manor id d d - size [ d - seed id d - left to buy d - started amount d - sell price d - seed level c d - reward 1 id c d - reward 2 id ]
|
||||
@@ -56,11 +56,11 @@ public class ExShowSeedInfo extends GameServerPacket
|
||||
writeD(seed.getCanProduce()); // Left to buy
|
||||
writeD(seed.getStartProduce()); // Started amount
|
||||
writeD(seed.getPrice()); // Sell Price
|
||||
writeD(Manor.getInstance().getSeedLevel(seed.getId())); // Seed Level
|
||||
writeD(SeedData.getInstance().getSeedLevel(seed.getId())); // Seed Level
|
||||
writeC(1); // reward 1 Type
|
||||
writeD(Manor.getInstance().getRewardItemBySeed(seed.getId(), 1)); // Reward 1 Type Item Id
|
||||
writeD(SeedData.getInstance().getRewardItemBySeed(seed.getId(), 1)); // Reward 1 Type Item Id
|
||||
writeC(1); // reward 2 Type
|
||||
writeD(Manor.getInstance().getRewardItemBySeed(seed.getId(), 2)); // Reward 2 Type Item Id
|
||||
writeD(SeedData.getInstance().getRewardItemBySeed(seed.getId(), 2)); // Reward 2 Type Item Id
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -18,10 +18,10 @@ package org.l2jmobius.gameserver.network.serverpackets;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.SeedProduction;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.entity.siege.Castle;
|
||||
|
||||
/**
|
||||
@@ -43,20 +43,20 @@ public class ExShowSeedSetting extends GameServerPacket
|
||||
{
|
||||
_manorId = manorId;
|
||||
final Castle c = CastleManager.getInstance().getCastleById(_manorId);
|
||||
final List<Integer> seeds = Manor.getInstance().getSeedsForCastle(_manorId);
|
||||
final List<Integer> seeds = SeedData.getInstance().getSeedsForCastle(_manorId);
|
||||
_count = seeds.size();
|
||||
_seedData = new int[_count * 12];
|
||||
int i = 0;
|
||||
for (int s : seeds)
|
||||
{
|
||||
_seedData[(i * 12) + 0] = s;
|
||||
_seedData[(i * 12) + 1] = Manor.getInstance().getSeedLevel(s);
|
||||
_seedData[(i * 12) + 2] = Manor.getInstance().getRewardItemBySeed(s, 1);
|
||||
_seedData[(i * 12) + 3] = Manor.getInstance().getRewardItemBySeed(s, 2);
|
||||
_seedData[(i * 12) + 4] = Manor.getInstance().getSeedSaleLimit(s);
|
||||
_seedData[(i * 12) + 5] = Manor.getInstance().getSeedBuyPrice(s);
|
||||
_seedData[(i * 12) + 6] = (Manor.getInstance().getSeedBasicPrice(s) * 60) / 100;
|
||||
_seedData[(i * 12) + 7] = Manor.getInstance().getSeedBasicPrice(s) * 10;
|
||||
_seedData[(i * 12) + 1] = SeedData.getInstance().getSeedLevel(s);
|
||||
_seedData[(i * 12) + 2] = SeedData.getInstance().getRewardItemBySeed(s, 1);
|
||||
_seedData[(i * 12) + 3] = SeedData.getInstance().getRewardItemBySeed(s, 2);
|
||||
_seedData[(i * 12) + 4] = SeedData.getInstance().getSeedSaleLimit(s);
|
||||
_seedData[(i * 12) + 5] = SeedData.getInstance().getSeedBuyPrice(s);
|
||||
_seedData[(i * 12) + 6] = (SeedData.getInstance().getSeedBasicPrice(s) * 60) / 100;
|
||||
_seedData[(i * 12) + 7] = SeedData.getInstance().getSeedBasicPrice(s) * 10;
|
||||
SeedProduction seedPr = c.getSeed(s, CastleManorManager.PERIOD_CURRENT);
|
||||
if (seedPr != null)
|
||||
{
|
||||
|
@@ -20,8 +20,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.l2jmobius.gameserver.datatables.xml.SeedData;
|
||||
import org.l2jmobius.gameserver.instancemanager.CastleManorManager.CropProcure;
|
||||
import org.l2jmobius.gameserver.model.Manor;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
|
||||
@@ -42,7 +42,7 @@ public class ExShowSellCropList extends GameServerPacket
|
||||
_castleCrops = new HashMap<>();
|
||||
_cropsItems = new HashMap<>();
|
||||
|
||||
final List<Integer> allCrops = Manor.getInstance().getAllCrops();
|
||||
final List<Integer> allCrops = SeedData.getInstance().getAllCrops();
|
||||
for (int cropId : allCrops)
|
||||
{
|
||||
final ItemInstance item = player.getInventory().getItemByItemId(cropId);
|
||||
@@ -80,11 +80,11 @@ public class ExShowSellCropList extends GameServerPacket
|
||||
{
|
||||
writeD(item.getObjectId()); // Object id
|
||||
writeD(item.getItemId()); // crop id
|
||||
writeD(Manor.getInstance().getSeedLevelByCrop(item.getItemId())); // seed level
|
||||
writeD(SeedData.getInstance().getSeedLevelByCrop(item.getItemId())); // seed level
|
||||
writeC(1);
|
||||
writeD(Manor.getInstance().getRewardItem(item.getItemId(), 1)); // reward 1 id
|
||||
writeD(SeedData.getInstance().getRewardItem(item.getItemId(), 1)); // reward 1 id
|
||||
writeC(1);
|
||||
writeD(Manor.getInstance().getRewardItem(item.getItemId(), 2)); // reward 2 id
|
||||
writeD(SeedData.getInstance().getRewardItem(item.getItemId(), 2)); // reward 2 id
|
||||
|
||||
if (_castleCrops.containsKey(item.getItemId()))
|
||||
{
|
||||
|
Reference in New Issue
Block a user