37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using LiteNetLib;
|
|
using MMOserver.Game.Channel;
|
|
using MMOserver.Packet;
|
|
using ProtoBuf;
|
|
using ServerLib.Packet;
|
|
using ServerLib.Service;
|
|
|
|
namespace MMOserver.Game.Service;
|
|
|
|
/*
|
|
* 플레이어 공격 요청 메시지 핸들러
|
|
*/
|
|
public partial class GameServer : ServerBase
|
|
{
|
|
private void OnActionPlayer(NetPeer peer, int hashKey, byte[] payload)
|
|
{
|
|
ActionPlayerPacket packet = Serializer.Deserialize<ActionPlayerPacket>(new ReadOnlyMemory<byte>(payload));
|
|
|
|
ChannelManager cm = ChannelManager.Instance;
|
|
int channelId = cm.HasUser(hashKey);
|
|
if (channelId < 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Player? player = cm.GetChannel(channelId).GetPlayer(hashKey);
|
|
if (player == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// 같은 맵 유저들에게 행동 브로드캐스트 (나 제외)
|
|
byte[] data = PacketSerializer.Serialize((ushort)PacketCode.ACTION_PLAYER, packet);
|
|
BroadcastToMap(channelId, player.CurrentMapId, data, peer);
|
|
}
|
|
}
|