귀환장소 변경소스 #2
2007.04.12 11:41
***********[ 귀환장소 설정 ]***********
* 형식
- "제3의눈"이라는 머드에서 쓰는 형식인데.. 귀환장소로 정하고
싶은 장소에서 "귀환장소 설정"라고 치면 back 라는 변수에 방
번호가 저장이 되고, 귀환 할때마다 그 방번호를 불러서 사용.
* mstruct.h 수정
typedef struct creature {
char name[80];
char description[80];
char talk[80];
char password[15];
char key[3][20];
short fd;
unsigned char level;
short back; /* 추가(방번호) */
char type;
.
.
.
.
* command1.c 수정
- return_square() 함수 부분 수정
.
.
if(rom_ply->rom_num==15) { /* 삭제 */
print(fd," 당신은 이미 쉼터에 와 있습니다.."); /* 삭제 */
return 0; /* 삭제 */
} /* 삭제 */
.
.
.
if(!F_ISSET(ply_ptr->PFRTUN)) load_rom(7,&rom_ply); /* 이줄 삭제 */
else load_rom(15 + ply_ptr->daily[DL_EXPND].max, &rom_ply); /* 이줄 삭제 */
load_rom(ply_ptr->back,&rom_ply); /* 추가 */
add_ply_rom(ply_ptr,rom_ply);
* command5.c 수정
- flag_list() 함수 부분 수정
room *rom_ply;
... 생략 ...
print(fd," 패거리귀환 : %s\n", F_ISSET(ply_ptr,PFRTUN)?"설정":"미설정");/*
삭제 */
load_rom(ply_ptr->back,&rom_ply);
print(fd," 귀환장소 : %s\n", rom_ply->name); /* 추가 */
... 생략 ...
- set()함수 수정
... 생략 ...
int fd,i;
room *rom_ply; /*추가*/
struct {
... 생략 ...
else if(!strcmp(cmnd->str[1],"패거리귀환")) { /* 삭 */
if(F_ISSET(ply_ptr,PFAMIL)){ /* 제 */
F_SET(ply_ptr,PFRTUN); /* 부 */
print(fd,"패거리 존으로 귀환을 합니다.\n"); /* 분 */
} /* */
else print(fd,"당신은 패거리에 가입되어 있지 않습니다.\n");/* */
} /* */
load_rom(ply_ptr->back,&rom_ply); /*추가*/
else if(!strcmp(cmnd->str[1],"귀환장소")) { /* 추 */
ply_ptr->back=ply_ptr->parent_rom->rom_num; /* 가 */
print(fd,"이제부터 %s 으로 귀환합니다.\n",rom_ply->name);/* 추가 */
}
...생략...
* 참고 .
여기서 패거리귀환을 없앤 이유는 다 아시겠죠?
그러니깐 패거리방으로 연결되는 길이 꼭 있어야 합니다.
좀 어지러워도 이해를 ~~ ^^
그리고 이 방식은 사용자데이터와 몹데이터를 모조리 지워야 함다.
그럼 ^^~...
* 형식
- "제3의눈"이라는 머드에서 쓰는 형식인데.. 귀환장소로 정하고
싶은 장소에서 "귀환장소 설정"라고 치면 back 라는 변수에 방
번호가 저장이 되고, 귀환 할때마다 그 방번호를 불러서 사용.
* mstruct.h 수정
typedef struct creature {
char name[80];
char description[80];
char talk[80];
char password[15];
char key[3][20];
short fd;
unsigned char level;
short back; /* 추가(방번호) */
char type;
.
.
.
.
* command1.c 수정
- return_square() 함수 부분 수정
.
.
if(rom_ply->rom_num==15) { /* 삭제 */
print(fd," 당신은 이미 쉼터에 와 있습니다.."); /* 삭제 */
return 0; /* 삭제 */
} /* 삭제 */
.
.
.
if(!F_ISSET(ply_ptr->PFRTUN)) load_rom(7,&rom_ply); /* 이줄 삭제 */
else load_rom(15 + ply_ptr->daily[DL_EXPND].max, &rom_ply); /* 이줄 삭제 */
load_rom(ply_ptr->back,&rom_ply); /* 추가 */
add_ply_rom(ply_ptr,rom_ply);
* command5.c 수정
- flag_list() 함수 부분 수정
room *rom_ply;
... 생략 ...
print(fd," 패거리귀환 : %s\n", F_ISSET(ply_ptr,PFRTUN)?"설정":"미설정");/*
삭제 */
load_rom(ply_ptr->back,&rom_ply);
print(fd," 귀환장소 : %s\n", rom_ply->name); /* 추가 */
... 생략 ...
- set()함수 수정
... 생략 ...
int fd,i;
room *rom_ply; /*추가*/
struct {
... 생략 ...
else if(!strcmp(cmnd->str[1],"패거리귀환")) { /* 삭 */
if(F_ISSET(ply_ptr,PFAMIL)){ /* 제 */
F_SET(ply_ptr,PFRTUN); /* 부 */
print(fd,"패거리 존으로 귀환을 합니다.\n"); /* 분 */
} /* */
else print(fd,"당신은 패거리에 가입되어 있지 않습니다.\n");/* */
} /* */
load_rom(ply_ptr->back,&rom_ply); /*추가*/
else if(!strcmp(cmnd->str[1],"귀환장소")) { /* 추 */
ply_ptr->back=ply_ptr->parent_rom->rom_num; /* 가 */
print(fd,"이제부터 %s 으로 귀환합니다.\n",rom_ply->name);/* 추가 */
}
...생략...
* 참고 .
여기서 패거리귀환을 없앤 이유는 다 아시겠죠?
그러니깐 패거리방으로 연결되는 길이 꼭 있어야 합니다.
좀 어지러워도 이해를 ~~ ^^
그리고 이 방식은 사용자데이터와 몹데이터를 모조리 지워야 함다.
그럼 ^^~...
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
37 | 레벨을 32767까지 가능하게 | 그리움 | 2007.04.12 | 200 |
36 | 직업 추가하기 #2 | 그리움 | 2007.04.12 | 199 |
35 | 이도류 | 그리움 | 2007.04.12 | 199 |
34 | 기술추가 | 그리움 | 2007.04.12 | 199 |
» | 귀환장소 변경소스 #2 | 그리움 | 2007.04.12 | 198 |
32 | 베팅소스 | 그리움 | 2007.04.12 | 198 |
31 | 방 전체공격 소스 | 그리움 | 2007.04.12 | 197 |
30 | 자동으로 돈줍기 #2 | 그리움 | 2007.04.12 | 197 |
29 | 패거리 레벨 조정 소스 | 그리움 | 2007.04.12 | 195 |
28 | 자기 아파트 자기가 방설명 넣기 | 그리움 | 2007.04.12 | 195 |
27 | 지도 소스 #2 | 그리움 | 2007.04.12 | 195 |
26 | 패거리창고 소스 | 그리움 | 2007.04.12 | 194 |
25 | 안시 문자열로 인한 공백 | 그리움 | 2007.04.12 | 193 |
24 | 배경색 바꾸기 | 그리움 | 2007.04.12 | 192 |
23 | 안시 문자열로 인한 공백 #2 | 그리움 | 2007.04.12 | 191 |
22 | 귀환장소 설정 | 그리움 | 2007.04.12 | 190 |
21 | 이동력 추가하기 | 그리움 | 2007.04.12 | 188 |
20 | 명성치 도입 | 그리움 | 2007.04.12 | 187 |
19 | 출구 정렬 | 그리움 | 2007.04.12 | 186 |
18 | 분신을 만드는 기술 | 그리움 | 2007.04.12 | 183 |