지도 기능
2007.04.12 12:59
이 소스는 INS비비에스에서 어떤 분이 올리신 글입니다.
기억이 잘 안나네여!
움. 그런데 지도를 화면에 출력하는 부분만 수정을 해주시면
아주 훌룡한 지도가 될거 같기에 올립니다.
지도 기능을 원하시는분들 이거 조금만 수정해보세여!
훌륭한 지도가 탄생될거 같네여. 참고로 제가 운영하는 천외천도
이와 비슷한 루틴을 이용해서 만들었거던요.
int map(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
char rooms[6][6];
char rooml[17];
char Blank;
room *rom_ptr, *new_rom;
exit_ *ext_ptr;
xtag *xp;
int i, ii;
rom_ptr = ply_ptr->parent_rom;
Blank = ' ';
for (i=0;i<6;i++)
for (ii=0;ii<6;ii++)
rooms[i][ii] = ' ';
for (i=0;i<17;i++)
rooml[i] = ' ';
xp = rom_ptr->first_ext;
if (xp) do {
if (!strcmp(xp->ext->name, "동")) {
rooml[9] = '-';
rooms[3][4] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "동", 1);
if (ext_ptr) {
rooml[10] = '-';
rooms[3][5] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "남", 1);
if (ext_ptr) {
rooml[13] = '|';
rooms[4][4] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "북", 1);
if (ext_ptr) {
rooml[6] = '|';
rooms[2][4] = 'O';
rooms[3][3] = 'S';
}
}
}
if (!strcmp(xp->ext->name, "서")) {
rooml[8] = '-';
rooms[3][2] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "서", 1);
if (ext_ptr) {
rooml[7] = '-';
rooms[3][1] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "남", 1);
if (ext_ptr) {
rooml[11] = '|';
rooms[4][2] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "북", 1);
if (ext_ptr) {
rooml[4] = '|';
rooms[2][2] = 'O';
rooms[3][3] = 'S';
}
}
}
if (!strcmp(xp->ext->name, "남")) {
rooml[12] = '|';
rooms[4][3] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "동", 1);
if (ext_ptr) {
rooml[15] = '-';
rooms[4][4] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "서", 1);
if (ext_ptr) {
rooml[14] = '-';
rooms[4][2] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "남", 1);
if (ext_ptr) {
rooml[16] = '|';
rooms[5][3] = 'O';
rooms[3][3] = 'S';
}
}
}
if (!strcmp(xp->ext->name, "북")) {
rooml[5] = '|';
rooms[2][3] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "동", 1);
if (ext_ptr) {
rooml[3] = '-';
rooms[2][4] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "서", 1);
if (ext_ptr) {
rooml[2] = '-';
rooms[2][2] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "북", 1);
if (ext_ptr) {
rooml[1] = '|';
rooms[1][3] = 'O';
rooms[3][3] = 'S';
}
}
}
} while(xp = xp->next_tag);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[1][1], Blank, rooms[1][2], Blank, rooms[1][3], Blank,
rooms[1][4], Blank, rooms[1][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, Blank, Blank, rooml[1], Blank, Blank, Blank,
Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[2][1], Blank, rooms[2][2], rooml[2], rooms[2][3],
rooml[3], rooms[2][4], Blank, rooms[2][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, rooml[4], Blank, rooml[5], Blank, rooml[6],
Blank, Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[3][1], rooml[7], rooms[3][2], rooml[8], rooms[3][3],
rooml[9], rooms[3][4], rooml[10], rooms[3][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, rooml[11], Blank, rooml[12], Blank, rooml[13],
Blank, Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[4][1], Blank, rooms[4][2], rooml[14], rooms[4][3],
rooml[15], rooms[4][4], Blank, rooms[4][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, Blank, Blank, rooml[16], Blank, Blank, Blank,
Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[5][1], Blank, rooms[5][2], Blank, rooms[5][3], Blank,
rooms[5][4], Blank, rooms[5][5] );
return(0);
}
홈지기 "그륨"
기억이 잘 안나네여!
움. 그런데 지도를 화면에 출력하는 부분만 수정을 해주시면
아주 훌룡한 지도가 될거 같기에 올립니다.
지도 기능을 원하시는분들 이거 조금만 수정해보세여!
훌륭한 지도가 탄생될거 같네여. 참고로 제가 운영하는 천외천도
이와 비슷한 루틴을 이용해서 만들었거던요.
int map(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
char rooms[6][6];
char rooml[17];
char Blank;
room *rom_ptr, *new_rom;
exit_ *ext_ptr;
xtag *xp;
int i, ii;
rom_ptr = ply_ptr->parent_rom;
Blank = ' ';
for (i=0;i<6;i++)
for (ii=0;ii<6;ii++)
rooms[i][ii] = ' ';
for (i=0;i<17;i++)
rooml[i] = ' ';
xp = rom_ptr->first_ext;
if (xp) do {
if (!strcmp(xp->ext->name, "동")) {
rooml[9] = '-';
rooms[3][4] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "동", 1);
if (ext_ptr) {
rooml[10] = '-';
rooms[3][5] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "남", 1);
if (ext_ptr) {
rooml[13] = '|';
rooms[4][4] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "북", 1);
if (ext_ptr) {
rooml[6] = '|';
rooms[2][4] = 'O';
rooms[3][3] = 'S';
}
}
}
if (!strcmp(xp->ext->name, "서")) {
rooml[8] = '-';
rooms[3][2] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "서", 1);
if (ext_ptr) {
rooml[7] = '-';
rooms[3][1] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "남", 1);
if (ext_ptr) {
rooml[11] = '|';
rooms[4][2] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "북", 1);
if (ext_ptr) {
rooml[4] = '|';
rooms[2][2] = 'O';
rooms[3][3] = 'S';
}
}
}
if (!strcmp(xp->ext->name, "남")) {
rooml[12] = '|';
rooms[4][3] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "동", 1);
if (ext_ptr) {
rooml[15] = '-';
rooms[4][4] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "서", 1);
if (ext_ptr) {
rooml[14] = '-';
rooms[4][2] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "남", 1);
if (ext_ptr) {
rooml[16] = '|';
rooms[5][3] = 'O';
rooms[3][3] = 'S';
}
}
}
if (!strcmp(xp->ext->name, "북")) {
rooml[5] = '|';
rooms[2][3] = 'O';
rooms[3][3] = 'S';
load_rom(xp->ext->room, &new_rom);
if (new_rom) {
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "동", 1);
if (ext_ptr) {
rooml[3] = '-';
rooms[2][4] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "서", 1);
if (ext_ptr) {
rooml[2] = '-';
rooms[2][2] = 'O';
rooms[3][3] = 'S';
}
ext_ptr = find_ext(ply_ptr, new_rom->first_ext, "북", 1);
if (ext_ptr) {
rooml[1] = '|';
rooms[1][3] = 'O';
rooms[3][3] = 'S';
}
}
}
} while(xp = xp->next_tag);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[1][1], Blank, rooms[1][2], Blank, rooms[1][3], Blank,
rooms[1][4], Blank, rooms[1][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, Blank, Blank, rooml[1], Blank, Blank, Blank,
Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[2][1], Blank, rooms[2][2], rooml[2], rooms[2][3],
rooml[3], rooms[2][4], Blank, rooms[2][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, rooml[4], Blank, rooml[5], Blank, rooml[6],
Blank, Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[3][1], rooml[7], rooms[3][2], rooml[8], rooms[3][3],
rooml[9], rooms[3][4], rooml[10], rooms[3][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, rooml[11], Blank, rooml[12], Blank, rooml[13],
Blank, Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[4][1], Blank, rooms[4][2], rooml[14], rooms[4][3],
rooml[15], rooms[4][4], Blank, rooms[4][5] );
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
Blank, Blank, Blank, Blank, rooml[16], Blank, Blank, Blank,
Blank);
print(ply_ptr->fd, "\n%c %c %c %c %c %c %c %c %c",
rooms[5][1], Blank, rooms[5][2], Blank, rooms[5][3], Blank,
rooms[5][4], Blank, rooms[5][5] );
return(0);
}
홈지기 "그륨"
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
17 | 자기 아파트 방설명은 자기가 #2 | 그리움 | 2007.04.12 | 182 |
16 | 암호 *****로 보이게 하기 | 그리움 | 2007.04.12 | 181 |
15 | 경매 소스 | 그리움 | 2007.04.12 | 180 |
» | 지도 기능 | 그리움 | 2007.04.12 | 178 |
13 | 개량형 우체국 | 그리움 | 2007.04.12 | 177 |
12 | 안시 사용하기 | 그리움 | 2007.04.12 | 175 |
11 | 순위 소스 | 그리움 | 2007.04.12 | 174 |
10 | 글자색, 배경색 15색 사용하기 | 그리움 | 2007.04.12 | 173 |
9 | 몹과 자신을 "비교" | 그리움 | 2007.04.12 | 171 |
8 | 게시판 검색 기능 추가하기 | 그리움 | 2007.04.12 | 170 |
7 | 방설명 안시 넣기 | 그리움 | 2007.04.12 | 168 |
6 | 접속화면을 멋있게 | 그리움 | 2007.04.12 | 165 |
5 | 패거리 전쟁시 적과 아군 구분 | 그리움 | 2007.04.12 | 165 |
4 | 패거리 상점 만들기 | 그리움 | 2007.04.12 | 163 |
3 | Ctrl+Enter 패치하기 | 그리움 | 2007.04.12 | 161 |
2 | 패거리 전쟁 승패 기록 | 그리움 | 2007.04.12 | 160 |
1 | 패거리 직위 내리기 | 그리움 | 2007.04.12 | 156 |