[circle]구 에프라임 재컴파일시 오류
시험이
2,685
0
0
2009-03-03 10:56:00
10여년전쯤(벌써 그렇게 됐네요;) 에프라임이라는 머드게임을 운영했었는데요..
구석에 넣어두었다가 컴파일하려니 gcc버젼이 틀려서 그런지 계속 컴파일 에러가 뜨네요
알아보니 crypt 옵션 문제여서 겨우 잡고 다른 몇군데 수정해서 컴파일은
에러나 워닝없이 완료했는데.. (트리거쪽도 문제가 있어서 거의 다 죽였습니다)
테스트 해보니 이게 거의 랜덤으로 방폭이 나네요..
그냥 '봐'는 괜찮은데.
'나 봐' 나 '시험이 봐' 이렇게 치면 바로 방폭.
또 어떻게 하다가 (전투나 이동 후에) 다시 '나 봐' 하면 괜찮습니다.
근데 이번엔 몹을 보면 또 방폭..
꼭 '봐'에 한정된게 아니고.. 주로 구문을 나눠 쓰면 오류가 납니다.
'어디'는 괜찮은데 '누구 어디' 하면 난다던가.. '누구 뭐 가져'하면 난다던가..
어떨땐 또 저장만 해도 그러고..
그것도 똑 부러지게 어느때 나는게 아니고 났다가 안났다가..
코어 덤프를 봐도 안잡히고..
전에 인포샵에서 몇주동안 오류없이 안정적으로 돌리던 소슨데
그대로 재컴파일만 했더니 이모양이라 감이 안잡히네요..
전공도 바꿔서 프로그램 손뗀지도 꽤 됐고.. 가물가물.. ㅎㅎ
생각엔 포인터쪽이나 루프에 문제가 있는듯 싶은데..
혹시 gcc버젼이 바뀌면서 따로 설정해주어야 하는게 있나요?
circle 3.1버젼을 갖다가 설치해보니 문제없이 잘 됩니다.
답글이나 메일로 조언 부탁드립니다.
sihumy@empal.com
6Comments
시험이
2009.03.03(화) 오전 11:14:47
패턴을 하나 찾았네요.. 게시판이 있는 곳에서 '무엇 봐' 하면 바로 방폭납니다.
(물론 그 외에도 여러개가 나구요)
시험이
2009.03.03(화) 오후 03:47:47
게시판 관련 에러가
interpreter.c의 special 함수에서 스페셜 오브젝트 찾는 부분 있잖아요?
/* special in object present? */ 주석처리된 밑부분.
거기 GET_OBJ_SPEC(i) 이걸 불러올 때 문제가 생깁니다.
utils.h에서 GET_OBJ_SPEC을 define하는 부분에서 GET_OBJ_RNUM(obj)를 1로 고쳐버리니
게시판 관련해서는 문제가 안생기네요 (물론 게시판도 안보이게 됩니다)
게시판등 스페셜 오브젝트를 찾는 루틴에서 문제가 생기는 건 확실한데..
이게 왜 문제가 생기는지는 모르겠습니다 -_- 멀쩡히 잘 되던건데..;
시험이
2009.03.03(화) 오후 10:59:37
좀 더 접근.
게시판(spec_assign.c과 boards.c에서 정의 된 번호)이 있는 곳에서
게시판을 제외한 다른 물건을 '봐'로 do_look을 호출하면 터집니다.
bank등 다른 special관련은 멀쩡하구요.
또 oedit에서 숏디스크립션을 세가지 이상 주어도 같은 현상.
...
잘 정리하고 가능하면 자답 올리도록 노력해 보겠습니다.. ㅋㅋ
시험이
2009.03.04(수) 오후 05:58:33
해결했습니다.. 의외로 간단한 문제였네요..
하나씩 추적해보니 결국 isname에 에서 부르는 isalpha에서 멈추더라는..;;;
구버젼 써클머드의 경우 줄임말을 일일히 적어줘야 인식하도록 되어 있는데
그걸 앞글자만 써도 인식되도록 포인터로 하나씩 밀어내면서 비교하게 고치다보니
예전엔 괜찮던게 새서버에서 컴파일하면서 꼬인 것 같네요.
써클머드 새버젼에 있는 is_alpha참조해서 넣으니 깨끗해졌습니다^^
요거 하나 고치니 트리거랑 다른 문제까지 다 해결됐네요. ㅎㅎ
테스트 서버 돌리게 되면 주소 올릴께요~
김현철(2)
2009.03.05(목) 오후 06:20:30
뭔진 몰라도 기대가 되는 1인
시험이
2009.03.06(금) 오후 08:28:26
서버 열었습니다.
telnet : thiq.com 9999
고맙습니다!
총 게시물 956개 / 검색된 게시물: 956개