Index: C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java =================================================================== --- C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 528) +++ C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (working copy) @@ -50,6 +50,7 @@ import net.sf.l2j.gameserver.model.entity.CTF; import net.sf.l2j.gameserver.model.entity.Castle; import net.sf.l2j.gameserver.model.entity.Couple; +import net.sf.l2j.gameserver.model.entity.FactionMember; import net.sf.l2j.gameserver.model.entity.Hero; import net.sf.l2j.gameserver.model.entity.L2Event; import net.sf.l2j.gameserver.model.entity.TvT; Index: C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/model/actor/instance/L2CraftManagerInstance.java =================================================================== --- C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/model/actor/instance/L2CraftManagerInstance.java (revision 528) +++ C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/model/actor/instance/L2CraftManagerInstance.java (working copy) @@ -29,8 +29,8 @@ public class L2CraftManagerInstance extends L2FolkInstance { - private static final int ADENA_ID = 57; - private static final int ITEMS_PER_PAGE = 5; // items list size in craft and crystallize pages + public static final int ADENA_ID = 57; + public static final int ITEMS_PER_PAGE = 5; // items list size in craft and crystallize pages public L2CraftManagerInstance(int objectId, L2NpcTemplate template) { @@ -628,7 +628,7 @@ super.onBypassFeedback(player,command); } - private String getRecipeIcon(int grade) + public String getRecipeIcon(int grade) { return "icon.etc_recipe_"+( grade==1?"blue": @@ -638,7 +638,7 @@ grade==5?"black":"white")+"_i00"; } - private String getCrystalIcon(int grade) + public String getCrystalIcon(int grade) { return "icon.etc_crystal_"+(grade==1?"blue": grade==2?"green": @@ -646,7 +646,7 @@ grade==4?"silver":"gold")+"_i00"; } - private void sendOutOfItems(L2PcInstance player, String count, String itemname) + public void sendOutOfItems(L2PcInstance player, String count, String itemname) { NpcHtmlMessage npcReply = new NpcHtmlMessage(1); @@ -661,7 +661,7 @@ player.sendPacket(npcReply); } - private void sendCraftedItems(L2PcInstance player, int success, int failed, String itemname) + public void sendCraftedItems(L2PcInstance player, int success, int failed, String itemname) { NpcHtmlMessage npcReply = new NpcHtmlMessage(1); Index: C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/model/L2Attackable.java =================================================================== --- C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/model/L2Attackable.java (revision 528) +++ C:/dev/workspace/L2jfree_gameserver_c5/src/main/java/net/sf/l2j/gameserver/model/L2Attackable.java (working copy) @@ -54,6 +54,7 @@ import net.sf.l2j.gameserver.templates.L2EtcItemType; import net.sf.l2j.gameserver.templates.L2NpcTemplate; import net.sf.l2j.gameserver.util.Util; +import net.sf.l2j.gameserver.templates.L2Item; /** * This class manages all NPC that can be attacked.

@@ -724,6 +725,8 @@ if (getHaveToDrop()) doItemDrop(lastAttacker); // Manage drop of Special Events created by GM for a defined period doEventDrop(lastAttacker); + // soulshot drop + doSpecialDrop(lastAttacker); } @@ -1487,6 +1490,35 @@ } } } + + public void doSpecialDrop(L2Character lastAttacker) + { + L2PcInstance player = null; + if (lastAttacker instanceof L2PcInstance) + player = (L2PcInstance)lastAttacker; + else if (lastAttacker instanceof L2Summon) + player = ((L2Summon)lastAttacker).getOwner(); + + if (player == null) return; // Don't drop anything if the last attacker or ownere isn't L2PcInstance + + // mob is zwischen 20 bis bis40 + if (getLevel()>20 && getLevel()<40) + // level unterschied zwischen player/mob max 9 + if(player.getLevel()-getLevel() >9) + return; + else + // chance 2 zu 100000 + if (Rnd.get(100000) < 2) + { + int itemId=57; + int maxDrop=5000; + DropItem(player, itemId, maxDrop); + } + else + return; + else + return; + } /** * Drop reward item.