Commit 286ab545 authored by Melledy's avatar Melledy
Browse files

Monsters should not drop items inside dungeons

parent 7e377dff
...@@ -375,8 +375,8 @@ public class Scene { ...@@ -375,8 +375,8 @@ public class Scene {
this.broadcastPacket(new PacketLifeStateChangeNotify(attackerId, target, LifeState.LIFE_DEAD)); this.broadcastPacket(new PacketLifeStateChangeNotify(attackerId, target, LifeState.LIFE_DEAD));
// Reward drop // Reward drop
if (target instanceof EntityMonster) { if (target instanceof EntityMonster && this.getSceneType() != SceneType.SCENE_WORLD) {
Grasscutter.getGameServer().getDropManager().callDrop((EntityMonster) target); getWorld().getServer().getDropManager().callDrop((EntityMonster) target);
} }
this.removeEntity(target); this.removeEntity(target);
......
...@@ -27,6 +27,7 @@ import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult; ...@@ -27,6 +27,7 @@ import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult;
import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType;
import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType; import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType;
import emu.grasscutter.scripts.data.SceneConfig; import emu.grasscutter.scripts.data.SceneConfig;
import emu.grasscutter.server.game.GameServer;
import emu.grasscutter.server.packet.send.PacketDelTeamEntityNotify; import emu.grasscutter.server.packet.send.PacketDelTeamEntityNotify;
import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify;
import emu.grasscutter.server.packet.send.PacketLifeStateChangeNotify; import emu.grasscutter.server.packet.send.PacketLifeStateChangeNotify;
...@@ -44,6 +45,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; ...@@ -44,6 +45,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
public class World implements Iterable<Player> { public class World implements Iterable<Player> {
private final GameServer server;
private final Player owner; private final Player owner;
private final List<Player> players; private final List<Player> players;
private final Int2ObjectMap<Scene> scenes; private final Int2ObjectMap<Scene> scenes;
...@@ -61,6 +63,7 @@ public class World implements Iterable<Player> { ...@@ -61,6 +63,7 @@ public class World implements Iterable<Player> {
public World(Player player, boolean isMultiplayer) { public World(Player player, boolean isMultiplayer) {
this.owner = player; this.owner = player;
this.server = player.getServer();
this.players = Collections.synchronizedList(new ArrayList<>()); this.players = Collections.synchronizedList(new ArrayList<>());
this.scenes = Int2ObjectMaps.synchronize(new Int2ObjectOpenHashMap<>()); this.scenes = Int2ObjectMaps.synchronize(new Int2ObjectOpenHashMap<>());
...@@ -75,6 +78,10 @@ public class World implements Iterable<Player> { ...@@ -75,6 +78,10 @@ public class World implements Iterable<Player> {
return owner; return owner;
} }
public GameServer getServer() {
return server;
}
public int getLevelEntityId() { public int getLevelEntityId() {
return levelEntityId; return levelEntityId;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment