contact 머드클럽 문의하기 카카오톡
즐겨찾기 추가plus 머드클럽이 새롭게 오픈하였습니다!
sub image
[circle]신세계 방수정 명령어
member photo 성천사 1 5,652 0 2008-01-05 05:50:33
방의 플래그를 수정하는 명령어 입니다. 이 소스에 나오는 몇몇의 플래그명은 기존 신세계 머드에 없는것들이 있습니다.  그것들은 지우시고 자신의 머드에 맞게 수정해 주시면 되겠습니다.

ACMD(do_roomedit)
{
struct descriptor_data *d;        
void redit_save_to_disk(struct descriptor_data *d);
char arg1[MAX_INPUT_LENGTH];
extern char *roomedit_const[];
int i;

  struct roomedit_struct {
    char *name;
    int minlev;
    int flags;
  } fields[] = {
          {"암흑",       LVL_GOD   , ROOM_DARK       },
          {"함정",       LVL_GOD   , ROOM_DEATH      },
          {"맙금지",     LVL_GOD   , ROOM_NOMOB      },
          {"실내",       LVL_GOD   , ROOM_INDOORS    },
          {"평화",       LVL_GOD   , ROOM_PEACEFUL   },
          {"방음",       LVL_GOD   , ROOM_SOUNDPROOF },
          {"추적불가",   LVL_GOD   , ROOM_NOTRACK    },
          {"마법불가",   LVL_GOD   , ROOM_NOMAGIC    },
          {"터널",       LVL_GOD   , ROOM_TUNNEL     },
          {"신금지",     LVL_IMPL  , ROOM_GODROOM    },
          {"휴게실",     LVL_GOD   , ROOM_GROOM      },
          {"대련장",     LVL_GOD   , ROOM_PAROOM     },
          {"트렙",       LVL_GOD   , ROOM_TRAPS      },
          {"사용자금지", LVL_GOD   , ROOM_NOMORT     },
          {"텔레불가",   LVL_GOD   , ROOM_NOTELE     },
          {"가져불가",   LVL_GOD   , ROOM_NOTAKE     },
          {"소환불가",   LVL_GOD   , ROOM_NOSUMMON   },
          {"피케방",     LVL_GOD   , ROOM_PKROOM     },
          {"지도불가",   LVL_GOD   , ROOM_NOMAP      },
          {"귀환불가",   LVL_GOD   , ROOM_NORECALL   },
          {"귀가불가",   LVL_GOD   , ROOM_NOHOME     },
          {"제련소",     LVL_GOD   , ROOM_SMELT      },
          {"장비이동",   LVL_GOD   , ROOM_MOVEITEM   },
          {" ",               0   , 0               }
  };

    if(IS_NPC(ch))
      return;
  
        two_arguments(argument, arg, arg1);

    if (!*arg) {
           for (i = 0; *(fields[i].name) != ' '; i++) {
               sprintf(buf, "%s : %s ",
                                    roomedit_const[i],
                                                (IS_SET(world[ch->in_room].room_flags, fields[i].flags) ? "&c09켜짐&c07" : "&c01꺼짐&c07"));
                   send_to_char(buf, ch);
           }
           send_to_char("&c14사용법: <옵션> <인자> 방수정&c07 ", ch);
           return;
        }

    if((world[ch->in_room].number >= 4000 && world[ch->in_room].number <= 4199) ||
       (world[ch->in_room].number >= 5400 && world[ch->in_room].number <= 5699) ||
           (world[ch->in_room].number >= 7200 && world[ch->in_room].number <= 7399)) {
       send_to_char("이 지역은 방수정으로 수정할 수 없는 지역입니다. "
                            "수정불가번호:4000-4199, 5400-5699, 7200-7399 ", ch);
           return;
        }

    for (i = 0; *(fields[i].name) != ' '; i++)
      if (!strcmp(fields[i].name, arg))
        break;

        if (GET_LEVEL(ch) < fields[i].minlev) {
           send_to_char("당신의 능력으로는 불가능 합니다. ", ch);
           return;
        }
  
    if (!strcmp(arg, fields[i].name)) {
          if (!*arg1) {
                  if (IS_SET(world[ch->in_room].room_flags, fields[i].flags)) {
                      strcpy(arg1, "꺼짐");
                  } else {
                          strcpy(arg1, "켜짐");
                  }
          }
          if (!strcmp(arg1, "켜짐")) {
                  if (!IS_SET(world[ch->in_room].room_flags, fields[i].flags))
                    SET_BIT(world[ch->in_room].room_flags, fields[i].flags);
          } else if (!strcmp(arg1, "꺼짐")) {
                  if (IS_SET(world[ch->in_room].room_flags, fields[i].flags))
                    REMOVE_BIT(world[ch->in_room].room_flags, fields[i].flags);
          } else {
                  send_to_char(ERRONOFF, ch);
                  return;
          }
        } else {
          send_to_char("존재하지 않는 옵션입니다. ", ch);
          return;
        }

    d = ch->desc;
    CREATE(d->olc, struct olc_data, 1);
    redit_save_to_disk(d);
        sprintf(buf, "%s기능을 %s으로 설정했습니다. ", fields[i].name, arg1);
        send_to_char(buf, ch);
        sprintf(buf, "이제 이 방은 %s의 영향을 %s ",
                 fields[i].name,
                 (!strcmp(arg1, "꺼짐") ? "받지 않습니다." : "받습니다."));
    send_to_room(buf, ch->in_room);
        sprintf(buf, "(GC) %s, %s기능 %s으로 설정 (%d)",
                         GET_NAME(ch),
                                 fields[i].name,
                                 arg1,
                                 world[ch->in_room].number);
        mudlog(buf, NRM, LVL_GOD, TRUE);
    return;
}
0
정회원 이상만 코멘트 사용이 가능합니다.
총 게시물 32개 / 검색된 게시물: 32개
글번호   제목 작성자 조회수 싫어요 작성일
12 [circle] 신세계 공격대상 성천사 578 0 0 2022-08-19
11 [circle] 미확인장소 물건 수거 성천사 1060 0 0 2019-09-23
10 [circle] 신세계 포탈과 이동 명령어 [1] 성천사 1484 0 0 2018-09-05
9 [circle] 신세계 귀환소스 성천사 8197 0 0 2009-09-15
8 [circle] 신세계 do_display 성천사 6858 0 0 2009-09-15
7 [circle] 신세계 do_set 옵션 리스트 성천사 6943 0 0 2009-09-15
6 [circle] 신세계 수표출금, 수표입금, 수표확인 성천사 7902 0 0 2009-09-15
5 [circle] 신세계 스킬셋 명령어(운영자명령어) [1] 성천사 8627 0 0 2008-07-06
4 [circle] 신세계 방청소 명령어 성천사 5269 0 0 2008-01-07
3 [circle] 신세계 방수정 명령어 [1] 성천사 5653 0 0 2008-01-05
2 [circle] 신세계 수거 명령어 성천사 5318 0 0 2008-01-05
1 [circle] 신세계 의원소스 성천사 7242 0 0 2008-01-05
쪽지를 전송하고 있습니다. 잠시 기다려주세요.
쪽지보내기
받는이(ID/닉네임)
내용
쪽지가 도착하였습니다.
쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
--