tolelom 7f2cd281da fix: MMO 서버 로직 버그 6건 수정
1. PlayerId 스푸핑 방지: OnTransformPlayer, OnActionPlayer, OnStatePlayer에서
   브로드캐스트 전 packet.PlayerId = hashKey로 강제 교체

2. HP/MP 클라이언트 조작 방지: OnStatePlayer에서 범위 클램핑
   (0 ≤ Hp ≤ MaxHp, 0 ≤ Mp ≤ MaxMp)

3. CreateParty 파티원 등록 누락 수정:
   - memberIds 파라미터 사용 시 모든 멤버를 playerPartyMap에 등록
   - 리더 중복 추가 방지 (Contains 체크)

4. OnIntoChannel 채널 만석 유령 상태 방지:
   이전 채널 제거 후 새 채널 입장 실패 시 이전 채널로 복귀

5. HandleAuth async 경합 방지:
   authenticatingTokens HashSet으로 동일 토큰 동시 인증 차단

6. 레이드 맵 미반환 수정:
   TryReleaseRaidMap 헬퍼 추가, OnChangeMap/OnSessionDisconnected에서
   레이드 맵(1001+) 유저 0명 시 인스턴스 맵 해제

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 00:34:40 +09:00
2026-02-28 14:16:07 +09:00
2026-03-01 17:00:52 +09:00

DB 사용법

구조

MMOServer (실행 프로젝트 Test파일들은 임시용)
├── RDB/
├──── Handlers/
│   └──── TestHandler.cs
├──── Models/
│   └──── TestM.cs
├──── Repositories/
│   └──── TestRepository.cs
└──── Services/
    └──── TestService.cs

ServerLib (DLL)
├── RDB/
├──── Database/
│   └── DbConnectionFactory.cs
├──── Handlers/
│   ├── HandlerHelper.cs
│   └── Response.cs
└──── Repositories/
    └── ARepository.cs

데이터 흐름

호출부 (Packet 등)
    ↓  파라미터 전달
Handler       →  Service 호출 + 응답 포맷팅 (string, HelperHander 사용)
    ↓
Service       →  비즈니스 로직, 유효성 검사, 예외 throw
    ↓
Repository    →  DB 접근 (Class? / bool / long 반환)
    ↓
MySQL

반환 타입 정리

레이어 반환 타입
Repository class? / IEnumerable<class> / long / bool
Service 동일 (그대로 올림)
Handler string (JSON 포장)

새 테이블 추가 시

  1. MMOServer/RDB/Models/ 에 Model 추가
  2. MMOServer/RDB/Repositories/ 에 Repository 추가 (ARepository 상속)
  3. MMOServer/RDB/Services/ 에 Service 추가
  4. MMOServer/RDB/Handlers/ 에 Handler 추가

ServerLib (DLL) 은 건드릴 필요 없음.


Connection Pool 설정(MMOServer/config.json)

{
  "Database": {
    "Host": "localhost",
    "Port": "0000",
    "Name": "XXXX",
    "User": "root",
    "Password": "11212121",
    "Pooling": {
      "MinimumPoolSize": "5",
      "MaximumPoolSize": "100",
      "ConnectionTimeout": "30",
      "ConnectionIdleTimeout": "180"
    }
  }
}
Description
실시간 C#소켓 서버
Readme 959 KiB
Languages
C# 99.6%
Dockerfile 0.4%