캐릭터 - hyunsang-shim/Project-M GitHub Wiki

목차

캐릭터 능력치

  1. ID

  2. 이름

  3. 캐릭터

  4. 최대체력

  5. 현재체력

  6. 체력회복

  7. 공격력

  8. 이동속도

  9. 장탄수

  10. 발사속도

  11. 총알 타입

  12. 총알 속도

캐릭터 기능

  1. 이동

    1.1 방향 전환

    1.2 조준점 이동

  2. 공격

    2.1. 이동 중 공격

    2.2. 제자리 공격

  3. 재장전


캐릭터 능력치

1. ID

  • 변수명 : Player_ID
  • 데이터 타입 : WORD (?)
  • 캐릭터가 서버 접속 시 획득하는 고유한 Session ID

2. 이름

  • 변수명 : Player_Name
  • 데이터 타입 : char[16]
  • 화면에 표시 될 플레이어의 이름. 서버 접속 시 입력하게 된다.

3. 캐릭터

  • 변수명 : Character_No
  • 데이터 타입 : WORD
  • 플레이어가 선택 한 캐릭터의 고유 ID

4. 공격력

  • 변수명 : Attack
  • 데이터 타입 : WORD
  • 값의 범위 : 0 ~ 255
  • 총알 한 발 당 데미지

5. 최대체력

  • 변수명 : MaxHP
  • 데이터 타입 : DWORD
  • 값의 범위 : 최소 100 / 최대 600
  • 캐릭터의 최대 HP값.

6. 현재체력

  • 변수명 : CurHP
  • 데이터 타입 : DWORD
  • 값의 범위 : 최소 0 / 최대 600
  • 캐릭터의 현재 HP 값.
  • 0이 되면 사망한다.

7. 체력 회복 속도

  • 변수명 : HP_Regen
  • 데이터 타입 : WORD
  • 값의 범위 : 최소 0 ~ 127
  • 캐릭터의 현재 HP가 1분당 회복 되는 양.

8. 이동속도

  • 변수명 : MoveSpeed
  • 데이터 타입 : DWORD
  • 값의 범위 : 기본값 : 1,500, 최소값 = 0, 최대값 = 3,000
  • 캐릭터의 이동 속도. 1,000 = 1,000ms동안 1.0f를 갈 수 있다.

9. 장탄수

  • 변수명 : Mag_Size
  • 데이터 타입 : WORD
  • 값의 범위 : 기본값 : 20, 최소값 : 10, 최대값 : 100
  • 한번 장전으로 연속 발사 가능한 총알 수.
  • 재장전 동작이 끝나면 최대값으로 갱신된다.

10. 최대 장탄수

  • 변수명 : MaxMag
  • 데이터 타입 : WORD
  • 값의 범위 : 기본값 : 20, 최소값 : 10, 최대값 : 100
  • 한번의 장전 동작으로 채울 수 있는 탄창의 최대 크기.
  • 재장전 동작이 끝나면 최대값으로 갱신된다.

11. 발사속도

  • 변수명 : Shoot_Speed
  • 데이터 타입 : DWORD
  • 기본값 2,000. 최소 1,000, 최대 5,000
  • 총알을 발사 한 후, 다음 총알을 발사할 때까지 걸리는 시간.(값이 클 수록 다음 총알이 빨리 나간다)
  • 표시 수치는 ms단위의 정수.
  • 공식 = 발사 간격(ms 단위) / 1,000ms 예1> 발사간격 1,000 / 1,000ms = 1초 당 1발. 예2> 발사간격 2,000 / 1,000ms = 1초당 2발.

12. 총알 타입

  • 변수명 : Bullet_Type
  • 데이터 타입 : WORD(?)
  • 총알이 날아가는 방식.
  • 1 = 즉시 타격, 2 = 발사체 충돌, 3 = 포물선

13. 총알 속도

  • 변수명 : Bullet_Speed
  • 데이터 타입 : WORD
  • 총알이 1초당 날아가는 거리.
  • 1,000 = 1초에 10.0f수준.
  • 기본 값 1,500, 최소값 500, 최대값 10,000.
  • 단, 총알 타입이 즉시 타격 이외의 경우에만 유효.

14. 위치

  • 변수명 : CurPos
  • 데이터 타입 : D3DXVECTOR3
  • 캐릭터의 현재 위치

15. 방향

  • 변수명 : Dir
  • 데이터 타입 : D3DXVECTOR3
  • 캐릭터가 바라보는 방향

16. 상태

  • 변수명 : Status
  • 데이터 타입 : enum
  • 캐릭터의 현재 상태
    • Stand

      제자리에 서 있는 상태

    • Stand_Shoot

      제자리에 서 있는 상태 + 총 쏘기

    • Run_Front

      앞으로 달리는 상태

    • Run_Front_Shoot

      앞으로 달리는 상태 + 총 쏘기

    • Run_Left

      앞으로 달리는 상태 + 총 쏘기

    • Run_Left_Shoot

      앞으로 달리는 상태 + 총 쏘기

    • Run_Right_Shoot

      앞으로 달리는 상태 + 총 쏘기

    • Run_Back

      앞으로 달리는 상태 + 총 쏘기

    • Run_Back_Shot

      앞으로 달리는 상태 + 총 쏘기

    • Dash

      앞으로 질주 상태 (솔져: 76 전용)

    • Hit

      • 피격 상태. 큰 공격에 맞아서 일시적으로 공격 및 행동 불가 상태가 된다.
      • 사격 불가, 이동 불가
    • Down

      • 캐릭터가 넘어지는 동작
      • 곧바로 Sleep으로 이어진다.
    • Sleep

      • 캐릭터가 다운되어 누워있는 상태
    • Stand_Up

      • 캐릭터가 일어서는 동작
      • 동작이 진행되는 동안 이동불가, 사격 불가, 피해를 입지 않음.
      • 곧바로 Idle로 이어진다.
    • Dead

      • 캐릭터가 사망 상태.
      • 사망 후 일정 시간이 지나면 부활한다.

17. 대상

캐릭터 기능

1. 이동

  • 캐릭터 이동은 키보드 WASD로 한다.

  • W = 전진, S = 후진, A = 좌 이동, D = 우 이동

  • 캐릭터가 바라보는 방향은 마우스 회전으로 조정할 수 있다.

  • 예를 들어, S를 누르면 앞을 바라본 채 후진하지만, 마우스를 왼쪽 또는 오른쪽으로 밀면 그만큼 캐릭터가 바라보는 방향도 따라서 회전한다.

  • 앉기 기능을 사용하지 않는다.

  • 점프 기능을 사용한다. 기본 키 조작은 Space Bar로 한다.

  • 이동 애니메이션은 달리기(4방향)와 질주(전방)만 사용한다

    1.1 방향 전환

    • 캐릭터의 방향 전환은 마우스의 이동으로 한다.
    • 방향의 전환은 현재 바라보는 방향을 기준으로 한다.
    • 마우스를 왼쪽 방향으로 이동하면 캐릭터가 왼쪽으로 회전하며, 오른쪽을 이동하면 캐릭터가 오른쪽으로 회전한다.
    • 마우스의 상하 움직임에 따른 캐릭터의 회전은 없으다.

    1.2 조준점 이동

    • 마우스의 움직임에 따라 캐릭터의 조준점이 변경된다.
    • 마우스의 상하/좌우 움직임에 맞추어 조준점이 이동된다.

공격

  • 기본 공격 키는 마우스 왼쪽 버튼으로 한다.

  • 캐릭터에게 할당된 공격 방법에 따라 1회 공격한다.

  • 마우스 왼쪽 버튼이 계속 눌려있는 상태라면, 공격 간격(공격 속도)에 따라 연속으로 공격할 수 있다.

    이동 중 공격

    • 캐릭터가 이동중 공격을 할 때는, 이동 애니메이션을 그대로 유지한다.

    제자리 공격

    • 제자리 공격 시에는 제자리 공격 애니메이션을 사용한다.

재장전

  • 재장전 시 제자리에 멈춰서 재장전 한다.
  • 재장전 시간은 캐릭터 스탯에 지정한 값에 따른다. (기본값 = 2초)