Packet Generator #3

CJB_ny·2022년 2월 27일
0

Unity_Server

목록 보기
41/55
post-thumbnail

앞으로는

여기 GenPackets에 있는 내용들을

수동으로 복붙해서 붙여 넣는게 아니라

클라든 서버든 필요한쪽에서 "참조"를 하게끄름 만들어 줘야한다.

그래서 이 파일이 완전체로 제공되기 위해서

뭐가 빠졌는지 유심히 살펴보면은

이런식으로 enum값 필요 할테고

그리고 이런 using 시리즈가 있어야 에러없이 파일 사용 가능 할 듯하다.

그렇다는 것은 패킷포맷으로 돌아가서 몇개만 더 추가를 해주면 된다.

이런식으로 fileFormat을 만들어주면될듯!

그래서 Program > 여기 위에다가 더 추가를 해줘야 하는데

이렇게 하고 두번째 인자에 이제

패킷 목록이 들어가야 한다.

그리고 첫번째 인자에

이것을 만들어서 넣어줘야한다.

추가해서

이렇게 넣어주면되는데

packetId는 PlayerInfoReq와 같은 패킷들이 나중에 막 더 생기니까

몇개인지 새주기 위한 것이고

packetEnums는

나중에 패킷들이 여러개 일때 이것들의 목록들을 가지고 있기위한 것이다.

그리고 ParsePacket안에서

genPacket을 만드는 부분 바로 밑에

이렇게

format형식에 따라 패킷 이름과 packetId 넣어주면 된다.

이런 형식으로 들어 갈 수 있도록.

그리고

Packet제네레이터 > 시작프로젝트 설정 > 실행하면

이렇게 잘뜨는데

이게 여러개 일때도 잘되는지 테스트를 해보도록 하자.

PDL에다가 패킷 하나만 더 추가를 해주도록 하자.

그러면 이렇게 잘 생성되기는 하는데

이상한점이 몇가지 있다.

1) PDL에 패킷안에서

데이터 이름 첫글자 대문자로 하면 에러 뜸

2)

이런식으로 붙어서 나옴


2)번 수정은 이렇게 하도록 하자.

( 1)번은 음... 나중에 )

그록 다시 보면

잘뜸 ㅇㅇ


그리고 지난번에 byte처리 하는 부분을 하지 않았는데

바이트 배열에서 바이트로 빼오는 것은 indexer를 통해 바로 빼올 수 있기 때문에

따로 처리를 해주지 않았는데

인덱서 이용해서 빼오는 부분 만들어 주도록 하자.

이런거 만들어 주고

이부분이 결국 자동화 해줘야하는 부분이 되는 것이다.

그리고 Write하는 부분은 이곳에서 반대로 넣어주면 되겠다.


그리고 이것을 다시 자동화 하는 부분을 하도록 하겠다.

이렇게 ㄱㄱ.

그런데 sbyte도 하고싶을 수 있으니까

경우를 뺴주돌록 하자.

이렇게 하고 Write하는 부분도 굉장히 비슷할 것이다.

이렇게 반대로 ㄱㄱ.

그다음 Program > ㄱㄱ

요따가 추가를 ㄱㄱ

그다음 복붙해서 생각을 해보도록 하자.

이렇게 해주면됨

그리고 실행 > GenPacket가보면

이렇게 늘어나있는것 확인 가능.

그리고 sbyte일 경우를 대비를 해서 이렇게 하고

원본 캐스팅 ㄱㄱ


그리고 우리는 지금

리스트 하나일 경우만을 생각해서 넣어놨는데

이중 리스트를 하고싶을 경우도 있다.

예를들어 skill안에 skill의 속성을 넣고 싶은 경우

그럴 경우에

이렇게 되면 자동적으로 처리가 될지 궁금하다.

그릭 실행을 해보면

리스트도 만들어 준대로 잘 들어가있다.


그리고 GenPacket내용 클라세션, 서버세션에다가

복붙하자.

그리고 클라 -> 서버로 데이터 보내고 있었으니까

여서 함 살펴보면은

이렇게 skill의 att를 추가를 해보도록 하자.

그리고

구조체 뭐시기 에러 난다 -> class로 바꿔주도록 하자.

그리고 이렇게 해준다.

그리고 반대쪽에서 받을 때는

정상적으로 파싱이 되면 성공적인 것이다.

실행을 해보면 잘되는데

패킷 포맷 잠시 수정 ㄱㄱ

struct -> class 로 수정해줘야 이중 리스트 됨!

보면 잘된다!

우리가 PDL에 정의해놓은게

지금 자동화로 잘 되고있는 것이다.

굿.

profile
공부 일기장으로 변해버린 블로그 (https://cjbworld.tistory.com/ <- 이사중)

0개의 댓글