название говорит само за себя :
- Код:
Index: java/config/Character.properties
===================================================================
--- java/config/Character.properties (revision 2190)
+++ java/config/Character.properties (working copy)
@@ -449,6 +449,12 @@
# Retail: false
AutoLoot = False
+# This option when set to true will enable automatically picking up
+# items dropped by Raid Bosses. If set false it will force the player
+# to pickup dropped items. (This excludes herbs mentioned above)
+# Retail: false
+AutoLootRaid = False
+
# This is the time in seconds that it will take for the player command:
# //unstuck will take.
# Retail: 300
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java (revision 2190)
+++ java/net/sf/l2j/Config.java (working copy)
@@ -176,6 +176,7 @@
public static int ALT_PARTY_RANGE2;
public static int STARTING_ADENA;
public static boolean AUTO_LOOT;
+ public static boolean AUTO_LOOT_RAID;
public static int UNSTUCK_INTERVAL;
public static int PLAYER_SPAWN_PROTECTION;
public static boolean RESPAWN_RANDOM_ENABLED;
@@ -1196,6 +1197,7 @@
ALT_PARTY_RANGE2 = Integer.parseInt(Character.getProperty("AltPartyRange2", "1400"));
STARTING_ADENA = Integer.parseInt(Character.getProperty("StartingAdena", "100"));
AUTO_LOOT = Boolean.parseBoolean(Character.getProperty("AutoLoot", "true"));
+ AUTO_LOOT_RAID = Boolean.parseBoolean(Character.getProperty("AutoLootRaid", "true"));
UNSTUCK_INTERVAL = Integer.parseInt(Character.getProperty("UnstuckInterval", "300"));
PLAYER_SPAWN_PROTECTION = Integer.parseInt(Character.getProperty("PlayerSpawnProtection", "0"));
RESPAWN_RANDOM_ENABLED = Boolean.parseBoolean(Character.getProperty("RespawnRandomInTown", "False"));
@@ -2049,6 +2051,7 @@
else if (pName.equalsIgnoreCase("LifeCrystalNeeded")) LIFE_CRYSTAL_NEEDED = Boolean.parseBoolean(pValue);
else if (pName.equalsIgnoreCase("SpBookNeeded")) SP_BOOK_NEEDED = Boolean.parseBoolean(pValue);
else if (pName.equalsIgnoreCase("AutoLoot")) AUTO_LOOT = Boolean.parseBoolean(pValue);
+ else if (pName.equalsIgnoreCase("AutoLootRaid")) AUTO_LOOT_RAID = Boolean.parseBoolean(pValue);
else if (pName.equalsIgnoreCase("AutoLootHerbs")) AUTO_LOOT_HERBS = Boolean.parseBoolean(pValue);
else if (pName.equalsIgnoreCase("AltKarmaPlayerCanBeKilledInPeaceZone")) ALT_GAME_KARMA_PLAYER_CAN_BE_KILLED_IN_PEACEZONE = Boolean.parseBoolean(pValue);
Index: java/net/sf/l2j/gameserver/model/L2Attackable.java
===================================================================
--- java/net/sf/l2j/gameserver/model/L2Attackable.java (revision 2190)
+++ java/net/sf/l2j/gameserver/model/L2Attackable.java (working copy)
@@ -1356,7 +1356,8 @@
if (Config.DEBUG) _log.fine("Item id to drop: " + item.getItemId() + " amount: " + item.getCount());
// Check if the autoLoot mode is active
- if (Config.AUTO_LOOT) player.doAutoLoot(this, item); // Give this or these Item(s) to the L2PcInstance that has killed the L2Attackable
+ if (Config.AUTO_LOOT_RAID && isRaid()) player.doAutoLoot(this, item); // Give this or these Item(s) to the L2PcInstance that has killed the L2Attackable
+ else if (Config.AUTO_LOOT && !isRaid()) player.doAutoLoot(this, item);
else dropItem(player, item); // drop the item on the ground
// Broadcast message if RaidBoss was defeated
@@ -1409,7 +1410,7 @@
if ((random < Config.RATE_DROP_SPECIAL_HERBS) && !_spec) // && !_spec useless yet
{
RewardItem item = new RewardItem(8612, 1); // Herb of Warrior
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
_spec = true;
}
@@ -1423,7 +1424,7 @@
if (i == 1) item = new RewardItem(8608, 1); // Herb of Atk. Spd.
if (i == 2) item = new RewardItem(8610, 1); // Herb of Critical Attack
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
break;
}
@@ -1434,7 +1435,7 @@
if ((random < Config.RATE_DROP_SPECIAL_HERBS) && !_spec)
{
RewardItem item = new RewardItem(8613, 1); // Herb of Mystic
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
_spec = true;
}
@@ -1447,7 +1448,7 @@
if (i == 0) item = new RewardItem(8607, 1); // Herb of Magic
if (i == 1) item = new RewardItem(8609, 1); // Herb of Casting Speed
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
break;
}
@@ -1458,7 +1459,7 @@
if ((random < Config.RATE_DROP_SPECIAL_HERBS) && !_spec)
{
RewardItem item = new RewardItem(8614, 1); // Herb of Recovery
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
_mp = true;
_hp = true;
@@ -1471,7 +1472,7 @@
if (random < Config.RATE_DROP_MP_HP_HERBS)
{
RewardItem item = new RewardItem(8600, 1); // Herb of Life
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
_hp = true;
}
@@ -1482,7 +1483,7 @@
if (random < Config.RATE_DROP_GREATER_HERBS)
{
RewardItem item = new RewardItem(8601, 1); // Greater Herb of Life
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
_hp = true;
}
@@ -1493,7 +1494,7 @@
if (random < Config.RATE_DROP_SUPERIOR_HERBS)
{
RewardItem item = new RewardItem(8602, 1); // Superior Herb of Life
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
}
}
@@ -1504,7 +1505,7 @@
if (random < Config.RATE_DROP_MP_HP_HERBS)
{
RewardItem item = new RewardItem(8603, 1); // Herb of Manna
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
_mp = true;
}
@@ -1515,7 +1516,7 @@
if (random < Config.RATE_DROP_GREATER_HERBS)
{
RewardItem item = new RewardItem(8604, 1); // Greater Herb of Mana
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
_mp = true;
}
@@ -1526,7 +1527,7 @@
if (random < Config.RATE_DROP_SUPERIOR_HERBS)
{
RewardItem item = new RewardItem(8605, 1); // Superior Herb of Mana
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
}
}
@@ -1535,7 +1536,7 @@
if (random < Config.RATE_DROP_COMMON_HERBS)
{
RewardItem item = new RewardItem(8611, 1); // Herb of Speed
- if (Config.AUTO_LOOT && Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
+ if (Config.AUTO_LOOT_HERBS) player.addItem("Loot", item.getItemId(), item.getCount(), this, true);
else dropItem(player, item);
}
}
@@ -1578,7 +1579,8 @@
if (Rnd.get(L2DropData.MAX_CHANCE) < drop.chance)
{
RewardItem item = new RewardItem(drop.items[Rnd.get(drop.items.length)], Rnd.get(drop.min, drop.max));
- if (Config.AUTO_LOOT) player.doAutoLoot(this, item); // Give this or these Item(s) to the L2PcInstance that has killed the L2Attackable
+ if (Config.AUTO_LOOT_RAID && isRaid()) player.doAutoLoot(this, item); // Give this or these Item(s) to the L2PcInstance that has killed the L2Attackable
+ else if (Config.AUTO_LOOT && !isRaid()) player.doAutoLoot(this, item);
else dropItem(player, item); // drop the item on the ground
}
}