Files
a301_mmo_game_server/MMOTestServer/MMOserver/Game/Player.cs
tolelom 64855c5a69 Fix: 플레이어 프로필 DB 연동, 파티 초대/추방 프로토콜 구현
- 채널 입장 시 API 서버에서 플레이어 프로필 로드 (레벨/스탯/위치)
- 채널 퇴장 시 위치/플레이타임 DB 저장 (SaveGameDataAsync)
- Player.cs에 AttackPower/AttackRange/SprintMultiplier/Experience 필드 추가
- ToPlayerInfo에서 전투 스탯 매핑 추가
- Session에 ChannelJoinedAt 추가 (플레이타임 계산용)
- PartyUpdateType에 INVITE/KICK 추가
- RequestPartyPacket에 TargetPlayerId 필드 추가
- GameServer에 INVITE/KICK 핸들러 구현
- Channel에 GetPeer() 메서드 추가
- RestApi에 GetPlayerProfileAsync/SaveGameDataAsync 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:10:05 +09:00

123 lines
1.4 KiB
C#

namespace MMOserver.Game;
public class Player
{
public int HashKey
{
get;
set;
}
public int PlayerId
{
get;
set;
}
public string Nickname
{
get;
set;
} = string.Empty;
public int Level
{
get;
set;
}
public int Hp
{
get;
set;
}
public int MaxHp
{
get;
set;
}
public int Mp
{
get;
set;
}
public int MaxMp
{
get;
set;
}
public int Experience
{
get;
set;
}
public int NextExp
{
get;
set;
}
public float AttackPower
{
get;
set;
}
public float AttackRange
{
get;
set;
}
public float SprintMultiplier
{
get;
set;
}
// 위치/방향 (클라이언트 패킷과 동일하게 float)
public float PosX
{
get;
set;
}
public float PosY
{
get;
set;
}
public float PosZ
{
get;
set;
}
public float RotY
{
get;
set;
}
// 현재 위치한 맵 ID
public int CurrentMapId
{
get;
set;
}
// 레이드 입장 전 이전 맵 ID (레이드 종료 후 복귀용, 서버 캐싱)
public int PreviousMapId
{
get;
set;
}
}