자기 아파트 방설명은 자기가 #2

2007.04.12 13:04

그리움 조회 수:182 추천:59

/*==================================================================*/
/* 디스크립션 */
/*==================================================================*/
int discrip(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
   int len, len2, i =0;
   int fd;
   room *rom_ptr;
   char *buf, *desc, nnl = 0, ds = 0;
   int index, num;
   rom_ptr = ply_ptr->parent_rom;
   fd = ply_ptr->fd;
   num = ply_ptr->daily[DL_MARRI].max;
   if(num == 0 ) {
          print(fd, "당신은 그런 권한이 없습니다.");
          return(0);
   }
   if(!F_ISSET(ply_ptr-> parent_rom, RONMAR)) {
          print(fd, "당신의 집에서만 가능합니다.");
          return(0);
   }
  i=0;
  len=index=cut_command(cmnd->fullstr);
  if (i >= len){
       print(fd,"syntax: *append [-sn] \n"); return(0);
   }
   if (cmnd->fullstr[i] == '-'){
       if (strlen(&cmnd->fullstr[i]) < 4){
           print(fd,"syntax: *append [-sn] \n"); return(0);
       }
   i++;
       if (cmnd->fullstr[i] == 's'){
           ds =1;
           if (cmnd->fullstr[i+1] == 'n')
               nnl = 1;
       }
       else if (cmnd->fullstr[i] == 'n'){
           nnl = 1;
           if (cmnd->fullstr[i+1] == 's')
              ds =1;
       }
      while(i < len){
          if (nnl && cmnd->fullstr[i] == ' ')
               break;
          if (cmnd->fullstr[i] == ' ' && cmnd->fullstr[i+1] != ' ')
break;
          i++;
      }
      i++;
      if (i >= len){
          print(fd,"syntax: *append [-sn] \n"); return(0);
      }
   }
   if (ds){
       desc = rom_ptr->short_desc;
       if (!rom_ptr->short_desc)
           nnl = 1;
   }
   else{
       desc = rom_ptr->long_desc;
       if (!rom_ptr->long_desc)
           nnl = 1;
   }
len = (&cmnd->fullstr[i]) ? strlen(&cmnd->fullstr[i]) : 0;
     len2 =(desc) ? strlen(desc) : 0;
   if (nnl) {
       buf = (char *)malloc(len2 + len+1);
       memcpy(buf,desc,len2);
       memcpy(&buf[len2],&cmnd->fullstr[i],len);
       buf[len+len2] = 0;
   }
   else {
       buf = (char *)malloc(len2 + len+2);
       memcpy(buf,desc,len2);
       buf[len2] = '\n';
       memcpy(&buf[len2+1],&cmnd->fullstr[i],len); buf[len+len2+1] = 0;
   }
   free(desc);
   if (ds)
       rom_ptr->short_desc = buf;
   else
       rom_ptr->long_desc = buf;
   cmnd->fullstr[index]=' ';
   return(0);
}

홈지기 "그륨"


XE Login