장시간 운영을 위하여
오브젝트아이디(이하 번호)라는게 내화면에 있는 아이템, 케렉터, 기타모든 것에 번호가 있고 그 번호가 움직인다 생각하면 됩니다.
그래서 번호가 겹치면 클라는 이상 동작을 하게 되고 서버에 이상한 번호를 줘서 불안정하게 만든느거죠.
소스르 보면 pc_objid, item_objid, etc_objid, inn_objid, temp_etc_objid 구성 후 커운팅합니다.
초기화하는 디비가 없어서 대충 감으로 초기화 아마 pc_objid = 500000 item_objid=10000000, inn_key=0 이겠죠. 겹치지 말하야하니
그러면 integer가 0~2147483647이니깐 몬스터,NPC = 1~499999, 케렉터 = 500000 ~ 9999999, 아이템 = 10000000 ~ 2147483647 이렇게 세팅된다는 거겠죠?
(아니면 할수 없는 거고요)
처음에 long으로 잡혀 있어 어마어마한 범위라서 없어도 되겟다 했는데 패킥보느는곳 보니 4바이트 사용중이더라고요.
실험해보니 2147483647이후론 마이너스 값 리턴합니다.
범위가 잘 구분 되잇어서 간단하게 소팅만 다시 해주면 될거같아 3~4주 정도에서 서버정검 시 케렉터는 500000부터 제정렬,
아이템 및 기타는 10000000부터 재정렬 하시면 번호겹치는 부분이나 오버풀로우로 인한 버그를 막으실 수 잇을 것입니다. (해당소스 업로드)
저는 번호를 좀더 세분화해서 케렉터와 케렉터아이템을 분리 후 번호를 재사용하게 만들어 좀더 장시간 사용할 수 있도록 했습니다.
이렇게 몹스래드와 오브젝트아이디만 수정해도 원본 소스가 좋아서 정말 좋은 서버가 될거라는 개인적 생각입니다.

스트릭스 님의 최근 댓글