[circle]신세계 수거 명령어
member photo 성천사 0 5,273 0 2008-01-05 05:47:20
ACMD(xxx)로 만들어진 명령어들은  interpreter.c 안에 추가적으로 명령어 추가를 해 주셔야 합니다.  이 명령어는 운영자가 사용자의 장비를 운영자의 소지품으로 옮기는 명령어 입니다. 신세계는 사용자에게서 장비를 가져올 수 있는 방법은 훔치기와 시켜 명령밖에는 없습니다. 이것 또한 저주등이 걸리면 해제 하기 전까지는 장비를 가져올 방법이 없습니다. 그래서 훔치기를 참조해 만들어 봤습니다.

ACMD(do_getback)
{
        struct char_data *vict;
        struct obj_data *obj;
    int eq_pos;
        char arg1[MAX_INPUT_LENGTH];

    if(IS_NPC(ch))
                return;

        two_arguments(argument, arg, arg1);

    if (!*arg || !*arg1) {
           send_to_char("사용법: <상대> <아이템> 수거 "
                    " "
                    "  수거 명령어는 사용자가 소지하고 있거나 장비 하고 있는것을 운영자에게 이동 "
                    "시킬수 있는 명령어 이다. ", ch);
           return;
        }
  
        if (!(vict = get_char_room_vis(ch, arg))) {
                send_to_char("누구의 물건을 수거 할까요? ", ch);
                return;
        } else if (vict == ch) {
                send_to_char("당신에게 무엇을 하시려고요? ", ch);
                return;
        } else if (IS_NPC(vict)) {
                send_to_char("맙에게는 불가능 합니다. ", ch);
                return;
        } else if (GET_LEVEL(vict) >= GET_LEVEL(ch)) {
                send_to_char("자신과 같거나 높은 레벨의 신에게서는 불가능 합니다. ", ch);
                return;
        }

    if (!(obj = get_obj_in_list_vis(vict, arg1, vict->carrying))) {
      for (eq_pos = 0; eq_pos < NUM_WEARS; eq_pos++)
         if (GET_EQ(vict, eq_pos) && (isname(arg1, GET_EQ(vict, eq_pos)->name)) && CAN_SEE_OBJ(ch, GET_EQ(vict, eq_pos))) {
            obj = GET_EQ(vict, eq_pos);
            break;
                 }
       if (!obj) {
           act("$E 그런 아이템은 가지고 있지 않습니다.", FALSE, ch, 0, vict, TO_CHAR);
           return;
           } else {               /* 장비에서 찾을경우 */
           act("당신은 물건을 수거 합니다.($p)", FALSE, ch, obj, 0, TO_CHAR);
           act("$n님이 $N님으로 부터 물건을 수거합니다.($p)", FALSE, ch, obj, vict, TO_NOTVICT);
           obj_to_char(unequip_char(vict, eq_pos), ch, 6);
           sprintf(buf, "(GC) %s, %s님에게서 물건을 수거.(%s)", GET_NAME(ch), GET_NAME(vict), obj->short_description);
           mudlog(buf, BRF, LVL_GOD, TRUE);
           }
        } else {               /* 소지품에서 찾을경우 */
            obj_from_char(obj);
            obj_to_char(obj, ch, 6);
            sprintf(buf, "%s님이 당신의 물건을 수거했습니다. (%s) ", GET_NAME(ch), obj->short_description);
                    send_to_char(buf, vict);
                        sprintf(buf, "%s님의 물건을 수거했습니다. (%s) ", GET_NAME(vict), obj->short_description);
                        send_to_char(buf, ch);
            sprintf(buf, "(GC) %s, %s님에게서 물건을 수거.(%s)", GET_NAME(ch), GET_NAME(vict), obj->short_description);
            mudlog(buf, BRF, LVL_GOD, TRUE);
        }
    return;
}
0
정회원 이상만 코멘트 사용이 가능합니다.
총 게시물 29개 / 검색된 게시물: 29개
    쪽지를 전송하고 있습니다. 잠시 기다려주세요.
    쪽지보내기
    받는이(ID/닉네임)
    내용
    쪽지가 도착하였습니다.
    쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
    --