mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-03 04:36:03 +08:00
31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
using EggLink.DanhengServer.GameServer.Game.Scene.Entity;
|
|
using EggLink.DanhengServer.GameServer.Server.Packet.Send.MiscModule;
|
|
using EggLink.DanhengServer.Kcp;
|
|
using EggLink.DanhengServer.Proto;
|
|
|
|
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.MiscModule;
|
|
|
|
[Opcode(CmdIds.MazeKillDirectCsReq)]
|
|
public class HandlerMazeKillDirectCsReq : Handler
|
|
{
|
|
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
|
{
|
|
var req = MazeKillDirectCsReq.Parser.ParseFrom(data);
|
|
|
|
foreach (var entityId in req.EntityList.ToList())
|
|
{
|
|
if (!connection.Player!.SceneInstance!.Entities.TryGetValue((int)entityId, out var entity)) continue;
|
|
if (entity is EntityMonster monster)
|
|
{
|
|
await monster.Kill();
|
|
}
|
|
else
|
|
{
|
|
// remove entity if it's not a monster
|
|
connection.Player.SceneInstance.Entities.Remove((int)entityId);
|
|
}
|
|
}
|
|
|
|
await connection.SendPacket(new PacketMazeKillDirectScRsp(req.EntityList.ToList()));
|
|
}
|
|
} |