패거리 전쟁 승패 기록
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
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
17 | 프롬프트 그래프화 | 그리움 | 2007.04.12 | 271 |
16 | 주민등록번호 검사 소스 | 그리움 | 2007.04.12 | 420 |
15 | 프롬프트 그래프화 #2 | 그리움 | 2007.04.12 | 280 |
14 | 귀환장소 수정판 | 그리움 | 2007.04.12 | 263 |
13 | Mordor에 있는 몹 소환 소스 | 그리움 | 2007.04.12 | 277 |
12 | 온라인 리붓 | 그리움 | 2007.04.12 | 287 |
11 | 방전체 공격루틴 #2 | 그리움 | 2007.04.12 | 287 |
10 | 낚시 | 그리움 | 2007.04.12 | 280 |
9 | 운영자명령 "보고" | 그리움 | 2007.04.12 | 280 |
8 | 감옥/퇴소 | 그리움 | 2007.04.12 | 338 |
7 | 연타기능 - 직업별 연타 | 그리움 | 2007.04.12 | 479 |
6 | 연타기능 - 연타수 자동 | 그리움 | 2007.04.12 | 447 |
5 | 게시판 버그 해결 방법. | 그리움 | 2007.04.12 | 470 |
4 | *괴물이름 방폭 버그 수정 | 그리움 | 2007.04.12 | 533 |
3 | 물건, 몹의 번호 찾아내기. | 그리움 | 2007.07.04 | 392 |
2 | 몹 소환하여 소환몹이 대신 싸우게 하기 | 그리움 | 2007.11.23 | 398 |
1 | 무한대전 방 데이터 Convert | 그리움 | 2007.11.23 | 423 |