개발일지/TIL(Today I Learned)

2025-02-17

프린스 알리 2025. 2. 17.

 

서버 로직 흐름

파티 생성

(1) 클라이언트에서 파티 생성 버튼을 누른다. 서버는 C_CreateParty 패킷을 수신. new party(socket, player)로 파티 인스턴스를 생성한다. PartySession.addParty(party)로 파티 세션에 파티 인스턴스를 추가한다.

 

(2) 파티 생성 메시지와 현재 파티 구성을 응답 패킷으로 전송 => 클라이언트 UI에 반영

파티 초대

 

(1) 클라이언트에서 파티 초대 버튼을 누른다. 상대방 닉네임 입력.
(2) 닉네임을 통해 응답 패킷 전송(상대방 화면에 초대 알림창이 뜨고 파티에 대한 간략한 정보가 뜬다.)

파티 초대 수락/거절

(1) 클라이언트에서 수락/거절 버튼 누르기.
(2) 수락이면 joinParty 패킷 수신. party 정원이 남았는지 확인. party.addMember(socket, player)로 멤버 추가.
(3) 파티 참가 메시지와 함께 현재 파티 구성을 응답 패킷으로 전송 => 클라이언트 UI에 반영
(4) 거절이면 패킷 아무 일도 X

파티 참가

(1) 클라이언트에서 파티 참가 버튼을 누른다. 패킷 수신. party 정원이 남았는지 확인. party.addMember(socket, player)로 멤버 추가.
(2) 파티 참가 메시지와 함께 현재 파티 구성을 응답 패킷으로 전송 => 클라이언트 UI에 반영

파티 강퇴

(1) 파티원 강퇴 버튼을 누른다(파티장만 가능). 패킷 수신. 파티장이 맞는지, 파티원이 맞는지 확인. removeMember(playerId)로 멤버 삭제
(2) 파티 강퇴 메시지와 함께 현재 파티 구성을 응답 패킷으로 전송 => 클라이언트 UI에 반영

파티장 교체

(1) 파티장 변경 버튼 클릭(파티장만 가능). 패킷 수신. 파티장이 맞는지, 파티원이 맞는지 확인. setPartyLeader(player)로 파티장 교체
(2) 파티장 변경 메시지와 함께 현재 파티 구성을 응답 패킷으로 전송 => 클라이언트 UI에 반영

파티 해체

(1) 파티 해체 버튼 클릭(파티장만 가능). 패킷 수신. 파티장이 맞는지 검증. disbandParty()로 파티 해체
(2) 빈 패킷 전송


UI 구상안

 

실제 구현한 모습

 

앞으로 해야하는 것

  • 파티 UI 스크립트 작성하기
  • 'ID로 파티 참가하기' UI 및 스크립트 제작
  • '참여할 수 있는 파티 목록' UI 및 스크립트 제작
  • 인게임 파티 UI 제작

댓글