감옥/퇴소

2007.04.12 13:10

그리움 조회 수:338 추천:57

자료출처 : GAME BBS (Telnet gamebbs.co.kr)

ADMIN13 Mordor Mud Study (2894 / 26) 1/9
───────────────────────────────────────
제 목 : [소스] 작대기님 감옥/퇴소명령 계량판 찬성 : 0 반대 : 0
올린이 : ohhye (염관호 ) 읽음 : 42 날짜 : 2000/07/13 10:47
------------------------------------------------------------------------------
작대기님이 올리신 소스는..
아이디 체크가 안되더군요..
즉, 히네시스와 히네라는 사용자가 접속해 있을때
[히네 감옥] 하면 둘 다 감옥에 가게 되는겁니다..
그래서 아이디 체크부분을 추가로 넣고 조금 다듬어 봤습니다.
다른 소스에서 응용해서 한거라 별로 시간도 안들었습니다.
이 소스는 [히네 감옥] 하면 [히네]만 감옥에 가도록 되어있습니다..
그리고 명령어마다 플레그 설정해 주는건 아래 어떤분이 올리신 글
참고하시면 되겠네요.

int gamok(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
      /****** 추가된 부분 ******/
       char addr[80];
      /*************************/
       creature *crt_ptr;
       room *rom_ptr, *new_rom;
       int fd;
       fd = ply_ptr->fd;
       rom_ptr = ply_ptr->parent_rom;

       if(ply_ptr->class < DM)
               return(PROMPT);

crt_ptr = find_crt(ply_ptr, rom_ptr->first_ply, cmnd->str[1], cmnd->val[1]);

/* 여기서부터 추가된 부분 */

     if(cmnd->str[1][0] == '@')
             strcpy(addr, &cmnd->str[1][1]);
else {
        cmnd->str[1][0] = up(cmnd->str[1][0]);
     crt_ptr = find_who(cmnd->str[1]);
     if(!crt_ptr) {
        print(ply_ptr->fd, "이름을 정확하게 모두 입력하세요.\n");
        return(0);
     }
         strcpy(addr, Ply[crt_ptr->fd].io->address);
         }

/* 여기까지. */

broadcast("\n%s님이 감옥으로 끌려갑니다.\n", crt_ptr->name);
       F_SET(crt_ptr,PGAM);
       del_ply_rom(crt_ptr, rom_ptr);
       load_rom(3, &new_rom);
       add_ply_rom(crt_ptr, new_rom);
return(0);
}

int regamok(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
      /****** 추가된 부분 ******/
       char addr[80];
      /*************************/
       creature *crt_ptr;
       room *rom_ptr, *new_rom;
       int fd;
       fd = ply_ptr->fd;
       rom_ptr = ply_ptr->parent_rom;

       if(ply_ptr->class < DM)
               return(PROMPT);

crt_ptr = find_crt(ply_ptr, rom_ptr->first_ply, cmnd->str[1], cmnd->val[1]);

/* 추가된 부분 */

       if(cmnd->str[1][0] == '@')
       strcpy(addr, &cmnd->str[1][1]);
     else {
       cmnd->str[1][0] = up(cmnd->str[1][0]);
       crt_ptr = find_who(cmnd->str[1]);
       if(!crt_ptr) {
   print(ply_ptr->fd, "이름을 정확하게 모두 입력하세요. 좀 --;; \n");
           return(0);
           }
       strcpy(addr, Ply[crt_ptr->fd].io->address);
       }
/* 여기까지 */

     broadcast("\n%s님이 감옥에서 퇴소하였습니다.\n", crt_ptr->name);
       F_CLR(crt_ptr,PGAM);
       del_ply_rom(crt_ptr, rom_ptr);
       load_rom(1001, &new_rom);
       add_ply_rom(crt_ptr, new_rom);
       return(0);
}

몇줄은 뒤에가 약간 누락된거 같은데..
저런건 다 아시겠죠?
); <- 이거 -_-;;
그럼 이만..
- 히네시스 -
맨날 계량만 하는 히네 -_- 계량품 인스에도 올릴까 -,.-

홈지기 "그륨"


XE Login