패거리 전쟁 승패 기록
2007.04.12 11:45
이니 님의 글 퍼옴
우선 패거리전투 승패에 관한 이야기를 먼저 하지요.
원래 Mordor 소스에는 없는 부분으로 저도 확실히 어디 들어가 있는지는
모르거든요. 소스를 받아서 대충 살펴보긴 했지만.. 아마 지연님이
대충 집어 넣을 부분은 계산 하셔야 할껍니다.
우선.. 2가지 방법이 있습니다.
첫번째로는 패거리원들 목록처럼 다른 파일에 저장하는 것. 두번째는
리더에 변수를 두어 계산하는 법. 기부 명령도 있고 하니 두번째 방법으로
하겠습니다.
1) 변수 설정 (mstruct.h)
변수를 잡아야 합니다. 이전에 설명 한번 했었는데.. 잘 모르신다면
5130 번 게시물의 1번 항목을 보세요.
char name[80];
이걸.. 이렇게 바꿉니다.
char name[72];
short war_win;
short war_lose;
long war_gold;
2) 승패 처리
이제 변수를 만들었으니, 승패 처리를 해야 합니다. 이긴 패거리에겐
war_win을 +1 해구어야 하고 진 패거리에겐 war_lose를 +1 해주어야
겠죠.
패거리 전쟁이 있는 소스는 제가 구하지 못해서 자세히 설명은 못
드리겠네요. 하지만 이건 쉬우니까 뒤져봐서 '*** 패거리가 이겼습니다'
이런 부분에 껴 넣어 주시면 됩니다.
A. 이겼을때
변수 선언 부분에 이걸 선언해 주세요.
creature *lea_ptr; <-
승이라고 생각되는 부분에 이걸 넣어주세요.
lea_ptr = find_who(fmboss_str[(ㄱ)]); <-
if (crt_ptr) crt_ptr->war_win ++; <-
if (!crt_ptr) { <-
load_ply(fmboss_str[(ㄱ)], &crt_ptr); <-
crt_ptr->war_win ++; <-
save_ply(fmboss_str[(ㄱ)], &crt_ptr); <-
}
(ㄱ) 부분에는 찾아보면.. 이긴 패거리의 고유 번호가 있을 껍니다.
그 번호를 적어 주시면 됩니다.
B. 졌을때
변수 선언 부분에 이걸 선언해 주세요.
creature *lea_ptr; <-
승이라고 생각되는 부분에 이걸 넣어주세요.
crt_ptr = find_who(fmboss_str[(ㄴ)]); <-
if (crt_ptr) crt_ptr->war_lost ++; <-
if (!crt_ptr) { <-
load_ply(fmboss_str[(ㄴ)], &crt_ptr); <-
crt_ptr->war_lost ++; <-
save_ply(fmboss_str[(ㄴ)], &crt_ptr); <-
}
(ㄴ) 부분에는 찾아보면.. 진 패거리의 고유 번호가 있을 껍니다.
그 번호를 적어 주시면 됩니다.
3) 승패 보기 (command11.c)
승패를 볼 수 있는 루틴이 있어야 겠죠. '모든패거리' 명령어로
같이 볼 수 있도록 합시다.
int list_family(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
int fd, i;
int ftotal;
fd = ply_ptr->fd;
ftotal = load_family();
F_SET(ply_ptr, PREADI);
print(fd, "다음과 같은 패거리가 있습니다.\n");
print(fd, "%-14s %-14s \n", "패거리이름", "두목이름");
print(fd, "--------------------------------------------\n");
for(i = 1; i < ftotal; i++) {
print(fd, "%-14s %-14s \n", family_str[i], fmboss_str[i]);
}
print(fd, "\n총 %d 개의 패거리가 활동중에 있습니다.", ftotal-1);
F_CLR(ply_ptr, PREADI);
return(0);
}
이건 list_family 함수 입니다. 여기에 우리가 원하는 루틴을 넣도록
합시다.
int list_family(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
int fd, i, win, lose; <-
int ftotal;
creature *crt_ptr; <-
fd = ply_ptr->fd;
ftotal = load_family();
F_SET(ply_ptr, PREADI);
print(fd, "다음과 같은 패거리가 있습니다.\n");
print(fd, "%-14s %-14s %-3s %-3s\n", "패거리이름", "두목이름", <-
"승", "패"); <-
print(fd, "--------------------------------------------\n");
for(i = 1; i < ftotal; i++) {
win = 0; <-
lose = 0; <-
crt_ptr = find_who(fmboss_str[i]); <-
if (!crt_ptr) load_ply(fmboss_str[i], &crt_ptr); <-
if (crt_ptr) { <-
win = crt_ptr->war_win; <-
lose = crt_ptr->war_lose; <-
} <-
print(fd, "%-14s %-14s %-3d %-3d\n", family_str[i], <-
fmboss_str[i], win, lose); <-
}
print(fd, "\n총 %d 개의 패거리가 활동중에 있습니다.", ftotal-1);
F_CLR(ply_ptr, PREADI);
return(0);
}
이렇게 하면 간단히 끝날것 같군요. 물론 컴파일은 안해봤습니다. -_-+
문제가 있으면 수정해서 쓰세요. load_ply만 한게 아니라 find_who도 한
까닭은 리더가 접속해 있을때 플레이어 데이타가 바로바로 저장되지
않기 때문입니다.
홈지기 "그륨"
우선 패거리전투 승패에 관한 이야기를 먼저 하지요.
원래 Mordor 소스에는 없는 부분으로 저도 확실히 어디 들어가 있는지는
모르거든요. 소스를 받아서 대충 살펴보긴 했지만.. 아마 지연님이
대충 집어 넣을 부분은 계산 하셔야 할껍니다.
우선.. 2가지 방법이 있습니다.
첫번째로는 패거리원들 목록처럼 다른 파일에 저장하는 것. 두번째는
리더에 변수를 두어 계산하는 법. 기부 명령도 있고 하니 두번째 방법으로
하겠습니다.
1) 변수 설정 (mstruct.h)
변수를 잡아야 합니다. 이전에 설명 한번 했었는데.. 잘 모르신다면
5130 번 게시물의 1번 항목을 보세요.
char name[80];
이걸.. 이렇게 바꿉니다.
char name[72];
short war_win;
short war_lose;
long war_gold;
2) 승패 처리
이제 변수를 만들었으니, 승패 처리를 해야 합니다. 이긴 패거리에겐
war_win을 +1 해구어야 하고 진 패거리에겐 war_lose를 +1 해주어야
겠죠.
패거리 전쟁이 있는 소스는 제가 구하지 못해서 자세히 설명은 못
드리겠네요. 하지만 이건 쉬우니까 뒤져봐서 '*** 패거리가 이겼습니다'
이런 부분에 껴 넣어 주시면 됩니다.
A. 이겼을때
변수 선언 부분에 이걸 선언해 주세요.
creature *lea_ptr; <-
승이라고 생각되는 부분에 이걸 넣어주세요.
lea_ptr = find_who(fmboss_str[(ㄱ)]); <-
if (crt_ptr) crt_ptr->war_win ++; <-
if (!crt_ptr) { <-
load_ply(fmboss_str[(ㄱ)], &crt_ptr); <-
crt_ptr->war_win ++; <-
save_ply(fmboss_str[(ㄱ)], &crt_ptr); <-
}
(ㄱ) 부분에는 찾아보면.. 이긴 패거리의 고유 번호가 있을 껍니다.
그 번호를 적어 주시면 됩니다.
B. 졌을때
변수 선언 부분에 이걸 선언해 주세요.
creature *lea_ptr; <-
승이라고 생각되는 부분에 이걸 넣어주세요.
crt_ptr = find_who(fmboss_str[(ㄴ)]); <-
if (crt_ptr) crt_ptr->war_lost ++; <-
if (!crt_ptr) { <-
load_ply(fmboss_str[(ㄴ)], &crt_ptr); <-
crt_ptr->war_lost ++; <-
save_ply(fmboss_str[(ㄴ)], &crt_ptr); <-
}
(ㄴ) 부분에는 찾아보면.. 진 패거리의 고유 번호가 있을 껍니다.
그 번호를 적어 주시면 됩니다.
3) 승패 보기 (command11.c)
승패를 볼 수 있는 루틴이 있어야 겠죠. '모든패거리' 명령어로
같이 볼 수 있도록 합시다.
int list_family(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
int fd, i;
int ftotal;
fd = ply_ptr->fd;
ftotal = load_family();
F_SET(ply_ptr, PREADI);
print(fd, "다음과 같은 패거리가 있습니다.\n");
print(fd, "%-14s %-14s \n", "패거리이름", "두목이름");
print(fd, "--------------------------------------------\n");
for(i = 1; i < ftotal; i++) {
print(fd, "%-14s %-14s \n", family_str[i], fmboss_str[i]);
}
print(fd, "\n총 %d 개의 패거리가 활동중에 있습니다.", ftotal-1);
F_CLR(ply_ptr, PREADI);
return(0);
}
이건 list_family 함수 입니다. 여기에 우리가 원하는 루틴을 넣도록
합시다.
int list_family(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
int fd, i, win, lose; <-
int ftotal;
creature *crt_ptr; <-
fd = ply_ptr->fd;
ftotal = load_family();
F_SET(ply_ptr, PREADI);
print(fd, "다음과 같은 패거리가 있습니다.\n");
print(fd, "%-14s %-14s %-3s %-3s\n", "패거리이름", "두목이름", <-
"승", "패"); <-
print(fd, "--------------------------------------------\n");
for(i = 1; i < ftotal; i++) {
win = 0; <-
lose = 0; <-
crt_ptr = find_who(fmboss_str[i]); <-
if (!crt_ptr) load_ply(fmboss_str[i], &crt_ptr); <-
if (crt_ptr) { <-
win = crt_ptr->war_win; <-
lose = crt_ptr->war_lose; <-
} <-
print(fd, "%-14s %-14s %-3d %-3d\n", family_str[i], <-
fmboss_str[i], win, lose); <-
}
print(fd, "\n총 %d 개의 패거리가 활동중에 있습니다.", ftotal-1);
F_CLR(ply_ptr, PREADI);
return(0);
}
이렇게 하면 간단히 끝날것 같군요. 물론 컴파일은 안해봤습니다. -_-+
문제가 있으면 수정해서 쓰세요. load_ply만 한게 아니라 find_who도 한
까닭은 리더가 접속해 있을때 플레이어 데이타가 바로바로 저장되지
않기 때문입니다.
홈지기 "그륨"
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
37 | 개량형 우체국 | 그리움 | 2007.04.12 | 230 |
36 | 기술추가 | 그리움 | 2007.04.12 | 246 |
35 | 안시 문자열로 인한 공백 #2 | 그리움 | 2007.04.12 | 242 |
34 | 지도 기능 | 그리움 | 2007.04.12 | 219 |
33 | 안시 사용하기 | 그리움 | 2007.04.12 | 209 |
32 | 분신을 만드는 기술 | 그리움 | 2007.04.12 | 221 |
31 | 방설명 안시 넣기 | 그리움 | 2007.04.12 | 212 |
» | 패거리 전쟁 승패 기록 | 그리움 | 2007.04.12 | 210 |
29 | 접속화면을 멋있게 | 그리움 | 2007.04.12 | 197 |
28 | 패거리 직위 내리기 | 그리움 | 2007.04.12 | 200 |
27 | 이도류 | 그리움 | 2007.04.12 | 237 |
26 | 안시 문자열로 인한 공백 | 그리움 | 2007.04.12 | 230 |
25 | 자동으로 돈줍기 #2 | 그리움 | 2007.04.12 | 237 |
24 | 자동 이벤트 | 그리움 | 2007.04.12 | 242 |
23 | 낮과 밤이 되면 어둡고 환하게 | 그리움 | 2007.04.12 | 241 |
22 | 직업 추가하기 #2 | 그리움 | 2007.04.12 | 233 |
21 | 경매는 이렇게 | 그리움 | 2007.04.12 | 250 |
20 | 패거리전쟁중 "휴전" | 그리움 | 2007.04.12 | 257 |
19 | 도배방지 | 그리움 | 2007.04.12 | 266 |
18 | 직업 추가하기 | 그리움 | 2007.04.12 | 254 |