-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
패킷 하나의 멤버변수만 바꾸고 싶어도 패킷 전체를 보내야하나요?
21.10.15 14:05 작성 조회수 114
0
예를 들어, 패킷 안에 들어있는 멤버변수 level만 1 증가시키고 싶습니다.
그러면 C_PlayerInfoReq 라는 큰 용량의 패킷을 하나를 보내야하나요? 아니면
send(int packId, int offset, int desired); 처럼
packid만 송신해서 level 주소에 접근하는 방법이 있을까요?
답변을 작성해보세요.
1
Rookiss
지식공유자2021.10.15
네 아주 자주 사용될 것 같은 패킷은 별도로 파야 합니다.
레벨만 바뀌는 경우는 드물고 레벨이 바뀌면 스탯도 바뀌니 조금 상황이 다르겠지만,
정말 '그' 부분만 바뀌고 또 자주 사용된다면 전용 패킷을 파주면 됩니다.
(그런데 실무에서도 이 부분은 늘 딜레마이긴 합니다)
문희찬
질문자2021.10.16
감사합니다. 서버랑 클라 창 띄어놓고 디버깅하면서 공부중이에요. 재미있어요. 책보고 독학했으면 진작 포기했을 텐데 어렵지 않게 가르쳐준 루키스님께 너무너무 감사해요.
0
문희찬
질문자2021.10.15
송수신할 때 보내는 데이터의 최소 단위가 패킷이므로
새로운 패킷을 하나 만들어도 될거같아요.
C_PlayerInfoReq의 level만 변경하는 패킷인 C_PlayerLevelChange처럼요.
패킷의 종류를 늘리면 할 수 있는 일은 많아지지만, 코드가 조잡해질 수도 있을거같아요
답변 2