contact 머드클럽 문의하기 카카오톡
즐겨찾기 추가plus 머드클럽이 새롭게 오픈하였습니다!
sub image
[mordor]갑옷제작쏘스
member photo 머드사랑 0 3,329 0 2003-12-06 03:56:48
/**********************/
/* makeitem           */
/**********************/

void make_item();
int makeitem(ply_ptr, cmnd)
creature        *ply_ptr;
cmd             *cmnd;
{
        room    *rom_ptr;
        object  *obj_ptr;
        int     fd;
        fd = ply_ptr->fd;
        rom_ptr = ply_ptr->parent_rom;

        if(!F_ISSET(rom_ptr, RFORGE)) {
                print(fd, "여기는 대장간이 아닙니다.");
                return(0);
        }


        F_SET(ply_ptr, PNOBRD);    
        make_item(fd, 1, NULL);
        F_CLR(ply_ptr, PNOBRD);
        
        return(DOPROMPT);
}

char forge1[PMAX][16];
char forge2[PMAX][16];
void make_item(fd, param, str)
int fd;
int        param;
char       *str;
{
    int     i;
    long    sum=0;
    int     num[5];
    creature *ply_ptr;
    object  *obj_ptr;
    ply_ptr=Ply[fd].ply;

    switch(param) {
    case 1:
        print(fd,"\n\n");
print(fd, "1.머리      2.얼굴      3.목        4.몸\n");
print(fd, "5.팔        6.손        7.손가락    8.다리\n");
print(fd, "9.발        @.방패      *.쥐는것\n\n");
print(fd, "어디에 입을 장비를 원하세요: " );
        F_SET(Ply[fd].ply,PREADI);  
        output_buf();
        Ply[fd].io->intrpt &= ~1;
        RETURN(fd, make_item, 2);
    case 2:
        F_CLR(Ply[fd].ply,PREADI);

           if(str[0] == '@' || str[0] == '1' || str[0] == '2'||
           str[0] == '3' || str[0] == '4' || str[0] == '5' ||
           str[0] == '6' || str[0] == '7' || str[0] == '8' ||
           str[0] == '9' || str[0]  == '*' ) {

           if(str[0] == '1') {
            if(load_obj(50, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '2') {
            if(load_obj(51, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '3') {
            if(load_obj(52, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '4') {
            if(load_obj(53, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '5') {
            if(load_obj(54, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '6') {
            if(load_obj(55, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '7') {
            if(load_obj(56, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '8') {
            if(load_obj(57, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }
           if(str[0] == '9') {
            if(load_obj(58, &obj_ptr) < 0) {
            print(ply_ptr->fd, "에러!\n");
        return;
                }
        }

          if(str[0] == '@') {
               if(load_obj(59, &obj_ptr) < 0) {
        print(fd, "에러!\n");
                return;
                }
                }
        
          if(str[0] == '*') {
               if(load_obj(60, &obj_ptr) < 0) {
        print(fd, "에러!\n");
                return;
                }
                }
        }

        else {
            print(fd, "잘못 입력 하셨습니다.\n선택: ");
            F_SET(Ply[fd].ply,PREADI);
            RETURN(fd, make_item, 2);
                       }

        /* 포인터 obj_ptr을 long형으로 바꿔 저장. */
        sprintf(forge1[fd],"%lu",(long)obj_ptr);

    print(fd, "\n\n");  
print(fd, "======================================================\n");
print(fd, "   재료      방어력   특성치     회복치  레벨     가격\n");
print(fd, " ------------------------------------------------------\n");
print(fd, " 1.강  철    방어+3   파괴+1              5     100000냥\n");
print(fd, " 2.금강석    방어+5   파괴+3             10     300000냥\n");
print(fd, " 3.귀금속    방어+7   파괴+5             15     500000냥\n");
print(fd, " 4.세라믹    방어+11  파괴+8     회복+3  40    1000000냥\n");
print(fd, " 5.티타늄    방어+20  파괴+15    회복+5 100    5000000냥\n\n");
print(fd, "선택해주세요: ");
        
        F_SET(Ply[fd].ply,PREADI);
        RETURN(fd, make_item, 3);
    case 3:
        F_CLR(Ply[fd].ply,PREADI);
        obj_ptr=(object *)atol(forge1[fd]);
        switch(low(str[0])) {
              case '1':
                    obj_ptr->armor = 3;
                    obj_ptr->odestructive = 1;
                    obj_ptr->limit = 5;
                    sum = 100000;
                    break;
              case '2':
                    obj_ptr->armor = 5;
                    obj_ptr->odestructive = 3;
                    sum = 300000;
                    obj_ptr->limit = 10;
                    break;
              case '3':
                    obj_ptr->armor = 7;
                    obj_ptr->odestructive = 5;
                    obj_ptr->limit = 15;
                    sum = 500000;
                    break;
              case '4':
                    obj_ptr->armor = 11;
                    obj_ptr->odestructive = 8;
                    obj_ptr->repower =3;
                    obj_ptr->limit = 40;
                    sum = 1000000;
                    break;
              case '5':
                    obj_ptr->armor = 20;
                    obj_ptr->odestructive = 15;
                    obj_ptr->repower = 5;
                    obj_ptr->limit = 100;
                    sum = 5000000;
                    break;
              default: print(fd, "잘못 입력 하셨습니다. 선택: ");
                   F_SET(Ply[fd].ply,PREADI);
                   RETURN(fd, make_item, 3);
        }
        sprintf(forge2[fd],"%lu",sum);
        print(fd, "\n담금질을 많이 할수록 수명이 늘어납니다.");
            print(fd, "\n몇번의 담금질을 원하십니까?\n");
        print(fd, "\n1. 100번       가격: 50000");
        print(fd, "\n2. 200번       가격: 200000");
        print(fd, "\n3. 300번       가격: 500000");
        print(fd, "\n4. 400번       가격: 1000000");
        print(fd, "\n5. 500번       가격: 2000000");
        print(fd, "\n선택: ");
        F_SET(Ply[fd].ply,PREADI);
        RETURN(fd, make_item, 4);
    case 4:
        F_CLR(Ply[fd].ply,PREADI);
        obj_ptr=(object *)atol(forge1[fd]);
        sum=atol(forge2[fd]);
        switch(low(str[0])) {
              case '1':
                   obj_ptr->shotsmax = 100;
                   obj_ptr->shotscur = 100;
                   sum += 50000;
                   break;
              case '2':
                   obj_ptr->shotsmax = 200;
                   obj_ptr->shotscur = 200;
                   sum += 200000;
                   break;
              case '3':
                   obj_ptr->shotsmax = 300;
                   obj_ptr->shotscur = 300;
                   sum += 500000;
                   break;
              case '4':
                   obj_ptr->shotsmax = 400;
                   obj_ptr->shotscur = 400;
                   sum += 1000000;
                   break;
              case '5':
                   obj_ptr->shotsmax = 500;
                   obj_ptr->shotscur = 500;
                   sum += 2000000;
                   break;
              default: print(fd, "선택: ");
                   F_SET(Ply[fd].ply,PREADI);  
                   RETURN(fd, make_item, 4);
        }
        sprintf(forge2[fd],"%lu",sum);
        print(fd, "\n물건의 이름을 결정해 주세요.");
        print(fd, "\n다시 바꿀수 없으니 신중히 결정 하십시요.\n");
        print(fd, ": ");
        F_SET(Ply[fd].ply,PREADI);  
        RETURN(fd, make_item, 5);
    case 5:
        F_CLR(Ply[fd].ply,PREADI);  
        obj_ptr=(object *)atol(forge1[fd]);
        if(strchr(str,'(') || strchr(str,')')) {
            print(fd,"이름에는 괄호가 들어갈수 없습니다.\n이름을 다시 넣으십시요:");
            RETURN(fd, make_item, 5);
        }
        if(strlen(str) > 20) {
                        print(fd, "입력된 이름이 너무  깁니다.\n이름을 다시 넣으십시요(3자이상 20자이하): ");
                        RETURN(fd, make_item, 5);
        }
        if(strlen(str) < 3) {
                        print(fd, "입력된 이름이 너무  짧습니다.\n이름을 다시 넣으십시요(3자이상 20자이하): ");
                        F_SET(Ply[fd].ply,PREADI);          
                        RETURN(fd, make_item, 5);
        }
        strncpy(obj_ptr->name, str, 20);
        print(fd, "\n모든것에 만족하십니까? (예/아니오)\n");
        print(fd, ": ");
        F_SET(Ply[fd].ply,PREADI);    
        RETURN(fd, make_item, 6);
    case 6:
        F_CLR(Ply[fd].ply,PREADI);        
        obj_ptr=(object *)atol(forge1[fd]);
        sum=atol(forge2[fd]);
        if(!strncmp(str,"예",2)) {
                   if (ply_ptr->gold < sum) {
                        print(fd, "\n주인이 인상을 찡그립니다. '돈도 없으면서! 쳇~!'");
                        free(obj_ptr);
                        break;
                   }
                   add_obj_crt(obj_ptr,ply_ptr);
                   print(fd, "\n주인이 당신에게 방금 제작한 장비를 넘겨줍니다.");
                   broadcast_rom(fd, ply_ptr->rom_num,
                   "\n%M이 주인에게 새로제작된 장비를 넘겨받습니다.",ply_ptr);
                   ply_ptr->gold -= sum;
        }
        else {
            print(fd,"취소 하였습니다.");
            free(obj_ptr);
        }
        break;
    }
    RETURN(fd, command, 1);
}
0
0Comments
-표시할 내용이 없습니다.-
코멘트를 삭제할 비밀번호를 입력하세요.
비밀번호:
정회원 이상만 코멘트 쓰기가 가능합니다.
총 게시물 109개 / 검색된 게시물: 109개
글번호   제목 작성자 조회수 싫어요 작성일
  [기타]누구든지 머드 강의를 올리수 있는 곳입니다...^^ 머드클럽 4552 0 0 2003-12-31
9 [mordor] 패거리등급조절 머드사랑 2780 0 0 2003-12-22
8 [mordor] 순위쏘스 머드사랑 2777 0 0 2003-12-18
7 [mordor] 탈주문 머드사랑 2821 0 0 2003-12-15
6 [mordor] 직업추가쏘스 머드사랑 2755 0 0 2003-12-11
5 [mordor] 폭탄 머드사랑 2658 0 0 2003-12-10
4 [mordor] 갑옷제작쏘스 머드사랑 3330 0 0 2003-12-06
3 [mordor] 경매쏘스 머드사랑 3142 0 0 2003-12-03
2 [mordor] 자기 아파트 자기가 꾸미기 쏘스 [1] 머드사랑 3434 0 0 2003-12-01
1 [mordor] 체력,도력 프롬프트 움직임 방지 머드사랑 4317 0 0 2003-11-30
쪽지를 전송하고 있습니다. 잠시 기다려주세요.
쪽지보내기
받는이(ID/닉네임)
내용
쪽지가 도착하였습니다.
쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
--