[hanlp][참고] 무한대전식 '가' 명령 루틴. 예제.
#include <mudlib.h>
inherit DAEMON;
int cmd(string str) {
object th, room;
string *exits, exit;
int len;
if( !str || str == "" ) {
write("어디로 갈까요?\n");
return 1;
}
th = this_player();
room = environment(th);
if( !room ) {
/*
* 사용자가 룸에 없는 경우가 있을까?
* 그럴리야 없겠지만.. 가능성이 전혀 없는것도 아니다.
*/
write("이곳은 갈 수 있는 길이 없습니다.\n");
return 1;
}
/* 만약 룸에 그런 출구가 있다면 정상적인 이동루틴으로 넘겨준다. */
if( room->valid_exit(str) ) {
return th->go_exit(str, room);
}
/* 그런 출구가 없다. 그렇다면 출구를 string 배열로 가져온다. */
exits = room->query_exit_dirs();
/*
* 여기서 루프를 돌린다.
*
* 사실 머드 전체에 이런류의 루프가 들어간다는것은 효율적이지
* 못하다. 코더라면 어떻게 해서든지 루프를 줄여 나가고 되도록
* 루프를 사용하지 않고 처리 할 수 있는 방법이 있다면 그런 방
* 법을 찾는것이 바람직하다.
*
* 가령 예를 들어서 룸이 생성될때 출구명이 한글로 두글자 이상
* 이라면 따로 인덱스를 만들어 두고 인덱스를 한번 비교하는 것
* 으로 루프를 피해갈 수 있으리라 본다.
*
*/
len = strlen(str);
foreach( exit in exits ) {
if( exit[0..(len-1)] == str ) {
return th->go_exit(exit, room);
}
}
write("그런쪽으로는 출구가 없습니다.\n");
return 1;
}
inherit DAEMON;
int cmd(string str) {
object th, room;
string *exits, exit;
int len;
if( !str || str == "" ) {
write("어디로 갈까요?\n");
return 1;
}
th = this_player();
room = environment(th);
if( !room ) {
/*
* 사용자가 룸에 없는 경우가 있을까?
* 그럴리야 없겠지만.. 가능성이 전혀 없는것도 아니다.
*/
write("이곳은 갈 수 있는 길이 없습니다.\n");
return 1;
}
/* 만약 룸에 그런 출구가 있다면 정상적인 이동루틴으로 넘겨준다. */
if( room->valid_exit(str) ) {
return th->go_exit(str, room);
}
/* 그런 출구가 없다. 그렇다면 출구를 string 배열로 가져온다. */
exits = room->query_exit_dirs();
/*
* 여기서 루프를 돌린다.
*
* 사실 머드 전체에 이런류의 루프가 들어간다는것은 효율적이지
* 못하다. 코더라면 어떻게 해서든지 루프를 줄여 나가고 되도록
* 루프를 사용하지 않고 처리 할 수 있는 방법이 있다면 그런 방
* 법을 찾는것이 바람직하다.
*
* 가령 예를 들어서 룸이 생성될때 출구명이 한글로 두글자 이상
* 이라면 따로 인덱스를 만들어 두고 인덱스를 한번 비교하는 것
* 으로 루프를 피해갈 수 있으리라 본다.
*
*/
len = strlen(str);
foreach( exit in exits ) {
if( exit[0..(len-1)] == str ) {
return th->go_exit(exit, room);
}
}
write("그런쪽으로는 출구가 없습니다.\n");
return 1;
}
5Comments
MaGuN
2004.02.01(일) 오후 03:17:42
이 부분을 가.c 로 만들어서.. 사용자 명령어 디렉토리에 넣어 주면 됩니다.
머드를 리부팅하거나 그렇지 않다면 '명령갱신'이라고 친 후.. 테스트 해 보시면 됩니다.
쓸데 없는 주석이 많이 들어갔네요 ㅠㅠ;;;
아무튼 출구가 '대장간' 이라면 "대장간 가", "대장 가", "대 가" 이런식이 다 먹히게
됩니다.
머드를 리부팅하거나 그렇지 않다면 '명령갱신'이라고 친 후.. 테스트 해 보시면 됩니다.
쓸데 없는 주석이 많이 들어갔네요 ㅠㅠ;;;
아무튼 출구가 '대장간' 이라면 "대장간 가", "대장 가", "대 가" 이런식이 다 먹히게
됩니다.
박대성
2004.02.01(일) 오후 06:24:48
캬울~ 굿임니다!! 이거 강좌란에 옮길만한 베스트자료
감사합니다 ^^...
감사합니다 ^^...
박대성
2004.02.01(일) 오후 06:29:40
*Error in loading object '/cmds/player/가'
* 쓰기 에러 : /log/log
/cmds/player/가.c line 33: End of file in a comment before the end of file
/cmds/player/가.c line 33: parse error before the end of file
* 에러 : 갱신을 위한 object 로드 실패.
다음과 같은 애러가 뜨네요..
* 쓰기 에러 : /log/log
/cmds/player/가.c line 33: End of file in a comment before the end of file
/cmds/player/가.c line 33: parse error before the end of file
* 에러 : 갱신을 위한 object 로드 실패.
다음과 같은 애러가 뜨네요..
박대성
2004.02.01(일) 오후 06:44:26
exits = room->query_exit_dirs();
이 부분인가요??
이 부분인가요??
MaGuN
2004.02.02(월) 오후 02:29:30
제가 테스트 해 보니 잘 동작하는데요 -_-;;;
혹시 괄호가 하나 빠졌다든지.. 한번 체크해 보시구요..
/cmds/player/가 갱신 이라고 해서..
확인해 보세요..
혹시 괄호가 하나 빠졌다든지.. 한번 체크해 보시구요..
/cmds/player/가 갱신 이라고 해서..
확인해 보세요..
코멘트를 삭제할 비밀번호를 입력하세요.
정회원 이상만 코멘트 쓰기가 가능합니다.
총 게시물 956개 / 검색된 게시물: 956개
글번호 | 제목 | 작성자 | 조회수 | 좋아요 | 싫어요 | 작성일 | |
---|---|---|---|---|---|---|---|
[기타]질문 답변 외 글은 자유 게시판에 올려 주세요... | 머드클럽 | 4426 | 0 | 0 | 2004-01-01 | ||
156 | [hanlp] 아이템 사용횟수..부문,,좀 [1] | &미카엘& | 1703 | 0 | 0 | 2004-02-02 | |
155 | [hanlp] 경험치 셋팅 해주는 부문..좀.. [1] | &미카엘& | 1583 | 0 | 0 | 2004-02-02 | |
154 | [hanlp] 아이디에 대한 질문입니다 [1] | verde | 1610 | 0 | 0 | 2004-02-02 | |
153 | [hanlp] hanlp에서 직업별 능력치 상승치를; [4] | verde | 1727 | 0 | 0 | 2004-02-02 | |
152 | [hanlp] 으아아아~~ 안되~~ [1] | 박대성 | 1638 | 0 | 0 | 2004-02-02 | |
151 | [hanlp] 사용횟수 부문..좀 가르쳐주세요 | &미카엘& | 1743 | 0 | 0 | 2004-02-01 | |
150 | [hanlp] 몹이 죽으면 에러가...... [1] | 탈퇴 | 1871 | 0 | 0 | 2004-02-01 | |
149 | [hanlp] 머드게임을 만들려면 C언어를 배우면 되나요 [2] | 머드제작자 | 2113 | 0 | 0 | 2004-02-01 | |
148 | [hanlp] 아이템떨굼 방지... [1] | Xerxes | 1774 | 0 | 0 | 2004-02-01 | |
147 | [hanlp] 이것저것 질문 -_-. 궁금한거 [1] | 박대성 | 1887 | 0 | 0 | 2004-02-01 | |
146 | [hanlp] [참고] 횟수가 저장되는 아이템 예제 ( 쥬데식용 조명탄.c ) [1] | MaGuN | 2561 | 0 | 0 | 2004-02-01 | |
145 | [hanlp] 경매,아탬 사용횟수 이부분 너무 어렵내요 [1] | &미카엘& | 1741 | 0 | 0 | 2004-02-01 | |
144 | [hanlp] 전투할때 몹을 포획해서 같이 하는 식으로 하려고하는데.. [2] | &미카엘& | 1716 | 0 | 0 | 2004-02-01 | |
143 | [hanlp] 아이템에서.. [4] | Xerxes | 1707 | 0 | 0 | 2004-02-01 | |
142 | [hanlp] [참고] 무한대전식 '가' 명령 루틴. 예제. [5] | MaGuN | 1749 | 0 | 0 | 2004-02-01 | |
141 | [hanlp] 이런 -_-. 질문이 너무 많아서.. 이번엔 이동에 관한 질문 -_-a [2] | 박대성 | 1637 | 0 | 0 | 2004-02-01 | |
140 | [hanlp] 아이템 기능... [2] | 5sigo | 2070 | 0 | 0 | 2004-02-01 | |
139 | [hanlp] 쥬데직에서요 자동으로 짧게 받는 명령어 --:; 뭐라고하지.. [8] | 박대성 | 1993 | 0 | 0 | 2004-02-01 | |
138 | [hanlp] 마군님 질문입니다. 알려주세요. [9] | 새천사 | 1725 | 0 | 0 | 2004-01-31 | |
137 | [hanlp] 도움말에 글이 안 나옵니다. [2] | 탈퇴 | 1749 | 0 | 0 | 2004-01-31 |