root/trunk/AE-go_GameServer/src/com/aionemu/gameserver/controllers/GatherableController.java
| 2325 | 2440 | ||
|---|---|---|---|
26 | import com.aionemu.gameserver.dataholders.DataManager; | 26 | import com.aionemu.gameserver.dataholders.DataManager; |
27 | import com.aionemu.gameserver.model.DescriptionId; | 27 | import com.aionemu.gameserver.model.DescriptionId; |
28 | import com.aionemu.gameserver.model.gameobjects.Gatherable; | 28 | import com.aionemu.gameserver.model.gameobjects.Gatherable; |
29 | import com.aionemu.gameserver.model.gameobjects.Item; | ||
29 | import com.aionemu.gameserver.model.gameobjects.player.Player; | 30 | import com.aionemu.gameserver.model.gameobjects.player.Player; |
30 | import com.aionemu.gameserver.model.templates.GatherableTemplate; | 31 | import com.aionemu.gameserver.model.templates.GatherableTemplate; |
31 | import com.aionemu.gameserver.model.templates.gather.Material; | 32 | import com.aionemu.gameserver.model.templates.gather.Material; |
32 | import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE; | 33 | import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE; |
34 | import com.aionemu.gameserver.services.ItemService; | ||
33 | import com.aionemu.gameserver.services.RespawnService; | 35 | import com.aionemu.gameserver.services.RespawnService; |
34 | import com.aionemu.gameserver.skillengine.task.GatheringTask; | 36 | import com.aionemu.gameserver.skillengine.task.GatheringTask; |
35 | import com.aionemu.gameserver.utils.PacketSendUtility; | 37 | import com.aionemu.gameserver.utils.PacketSendUtility; |
... | ... | ||
87 | } | 89 | } |
88 | 90 | ||
89 | else | 91 | else |
90 | { | 92 | { |
93 | | ||
94 | // need space in inventory | ||
95 | long storedMaterialCount = player.getInventory().getItemCountByItemId(material.getItemid()); | ||
96 | // player doesn't have material in inventory | ||
97 | if(storedMaterialCount == 0) | ||
98 | { | ||
99 | if(player.getInventory().getNumberOfFreeSlots() == 0) | ||
100 | { | ||
101 | PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.EXTRACT_GATHER_INVENTORY_IS_FULL()); | ||
102 | return; | ||
103 | } | ||
104 | } | ||
105 | // player already has material in inventory | ||
106 | else | ||
107 | { | ||
108 | Item materialItem = ItemService.newItem(material.getItemid(), 1); | ||
109 | if(storedMaterialCount >= materialItem.getItemTemplate().getMaxStackCount() && player.getInventory().getNumberOfFreeSlots() == 0) | ||
110 | { | ||
111 | PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.EXTRACT_GATHER_INVENTORY_IS_FULL()); | ||
112 | return; | ||
113 | } | ||
114 | } | ||
115 | | ||
91 | int gatherRate = 1; // 1x rates (probably make config later, if fixed to non-linear statistic probability) | 116 | int gatherRate = 1; // 1x rates (probably make config later, if fixed to non-linear statistic probability) |
92 | float maxrate = 0; | 117 | float maxrate = 0; |
93 | int rate = 0; | 118 | int rate = 0; |
... | ... | ||
180 | int xpReward = (int)((0.008*(skillLvl+100)*(skillLvl+100)+60)*player.getRates().getGatheringXPRate()); | 205 | int xpReward = (int)((0.008*(skillLvl+100)*(skillLvl+100)+60)*player.getRates().getGatheringXPRate()); |
181 | 206 | ||
182 | if (player.getSkillList().addSkillXp(player, getOwner().getObjectTemplate().getHarvestSkill(), xpReward)) | 207 | if (player.getSkillList().addSkillXp(player, getOwner().getObjectTemplate().getHarvestSkill(), xpReward)) |
208 | { | ||
209 | PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.EXTRACT_GATHER_SUCCESS_GETEXP()); | ||
183 | player.getCommonData().addExp(xpReward); | 210 | player.getCommonData().addExp(xpReward); |
211 | } | ||
184 | else | 212 | else |
185 | PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.MSG_DONT_GET_PRODUCTION_EXP(new DescriptionId(DataManager.SKILL_DATA.getSkillTemplate(getOwner().getObjectTemplate().getHarvestSkill()).getNameId()))); | 213 | PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.MSG_DONT_GET_PRODUCTION_EXP(new DescriptionId(DataManager.SKILL_DATA.getSkillTemplate(getOwner().getObjectTemplate().getHarvestSkill()).getNameId()))); |
186 | 214 |
Download diff