기술추가

2007.04.12 12:59

그리움 조회 수:199 추천:66

기술추가하기 위한 작업단계.

1. 기술을 만든다. (^^;)

  예를들어, 2연타를 하는 기술을 만든다고 가정을 해보도록
  하죠.

  2연타라면, 사용자가 지정한 몹을 공격할때마다, 무조건
  두번을 때려야 하겠죠? 움. 우선 기술 함수 이름을 두번
  때리니까 void double_attack(ply_pyr, cmnd)라고 하도록
  하죠.

  global.c의 cmdlist에다가 다음의 내용을 추가합니다.
  (-_-; 기술 이름을 멀루할지 생각이...)

  {"더블킥", 100, double_kick},

  후훗! 기껏 생각해낸게 더블킥입니다여 -_-;;;

  그다음, mextern.h에다가 저 함수의 prototype을 선언해
  줘야 하겠죠?

  double_kick을 command14.c에다 넣는다고 가정을 한다면
  mextern.h의 command14.c화일을 선언하는 부분에다가
  
  exern void double_kick(); <- 이 내용을 추가해줍니다.

  mextern.h의 아무곳에나 저 내용을 기술해도 되지만,
  통일성을 가하는게 보기가 편하거든요. ^^

  이제부터 double_kick을 만드는 부분이군요.
  이 내용은 간단하게 뼈대만 넣어 설명을 하도록 하겠습니다.

  int double_kick(ply_ptr, cmnd)
  creature ply_ptr;
  cmd *cmnd;
  {
      int fd;
      creature crt_ptr;
      rom rom_ptr;
  
      fd = ply_ptr->fd;
      rom_ptr = ply_ptr->parent_rom; ; 사용자가 있는 방 체크
      
      if(cmnd->num < 2) {
       ; 공격 대상을 기술하지 않았으므로, 메시지를
       ; 보여주고 리턴
      }

      ; 이부분에서 더블킥을 특정 직업을 수련한 사용자만
      ; 사용할 수 있게 하려면, 해당 직업을 수련했는지
      ; 또는 특정렙에 도달 했는지 체크를 합니다.
      ; 무적이상만 사용할 수 있는 기술이라고 한다면.

      if(ply_ptr->class < INVINCIBLE) {
         print(fd,"무적이상만 사용 가능한 기술입니다.");
         return(0);
      }

      이제 지정한 몹이, 플레이어가 있는 방안에 존재하는지
      찾아야 겠죠? 방안의 지정한 몹을 찾는 함수가 바로

      find_crt입니다.

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

      ; crt_ptr값이 널일경우 그러한 것이 존재하지 않는것이므로
      ; 메시지를 보여주고 리턴합니다.

      ; 리턴이 되지 않았으면, 몹이 존재하는 것이므로 몹에
      ; 대한 공격 루틴을 만들어 주면 되죠.
      ; 단 여기서 필요한 여러가지를 검사해 주어야 하는데,
      ; 지정된 몹이, 공격 가능한 몹인지 체크해야 하구요
      ; 기술의 딜레이같은것도 설정해 주어야 합니다.
      ; 딜레이 없이 무한정 나가는 기술이라면, 엄청난 초
      ; 필살기가 되겠죠?
      ; 그리고, 기술의 확률부분, 타격치 부분도 계산을 하면
      ; 되죠, 일정 확률치가 나와야만 기술이 성공하게! ^^;

      ;이제 모든 내용을 체크하고 화면에 공격되는 루틴을 뿌려
      ;주면 됩니다.

      return(0);
  }
      
      
  설명이, 조급 조잡해진듯한 느낌이 드는군요! 글을 정리해서
  올려야 하는데, 그러질 못했습니다. 죄송스럽게 생각하구요.

  부족하지만, 위의 내용을 토대로 멋진 기술을 만들어보시기 바랍니다.

홈지기 "그륨".


XE Login