사용법: where(임의의 변수) = find_object_pos(ch, obj);
주로 장비 착용(equip_char(ch, obj, where);)을 사용할 때 사용함.
지정한 물건이 신체 어느부위에 착용이 가능한지 구하는 코드
// equip_char에서 중복장비는 착용이 불가능 하게 체크되어 있으므로
// 목걸이나, 손가락, 특수장비 같이 두개이상 착용 부위에서 마지막 장비의 착용가능 여부를 따로 코드로 작성하지 않음
int find_object_pos(struct char_data *ch, struct obj_data *obj)
{
int where = -1;
if (GET_OBJ_TYPE(obj) == ITEM_LIGHT) {
where = WEAR_LIGHT;
} else if (CAN_WEAR(obj, ITEM_WEAR_FINGER)) {
if (GET_EQ(ch, WEAR_FINGER_R) == NULL) { // 오른손가락이 비어 있으면
where = WEAR_FINGER_R; // 오른손가락에 착용가능
} else { // 오른손가락에 장착중인장비가 있다면
where = WEAR_FINGER_L; // 왼손가락에 착용가능
}
} else if (CAN_WEAR(obj, ITEM_WEAR_NECK)) {
if (GET_EQ(ch, WEAR_NECK_1) == NULL) {
where = WEAR_NECK_1;
} else {
where = WEAR_NECK_2;
}
} else if (CAN_WEAR(obj, ITEM_WEAR_BODY)) {
where = WEAR_BODY;
} else if (CAN_WEAR(obj, ITEM_WEAR_HEAD)) {
where = WEAR_HEAD;
} else if (CAN_WEAR(obj, ITEM_WEAR_LEGS)) {
where = WEAR_LEGS;
} else if (CAN_WEAR(obj, ITEM_WEAR_FEET)) {
where = WEAR_FEET;
} else if (CAN_WEAR(obj, ITEM_WEAR_HANDS)) {
where = WEAR_HANDS;
} else if (CAN_WEAR(obj, ITEM_WEAR_ARMS)) {
where = WEAR_ARMS;
} else if (CAN_WEAR(obj, ITEM_WEAR_SHIELD)) {
where = WEAR_SHIELD;
} else if (CAN_WEAR(obj, ITEM_WEAR_ABOUT)) {
where = WEAR_ABOUT;
} else if (CAN_WEAR(obj, ITEM_WEAR_WAIST)) {
where = WEAR_WAIST;
} else if (CAN_WEAR(obj, ITEM_WEAR_WRIST)) {
if (GET_EQ(ch, WEAR_WRIST_R) == NULL) {
where = WEAR_WRIST_R;
} else {
where = WEAR_WRIST_L;
}
} else if (CAN_WEAR(obj, ITEM_WEAR_WIELD)) {
where = WEAR_WIELD;
} else if (CAN_WEAR(obj, ITEM_WEAR_HOLD)) {
where = WEAR_HOLD;
} else if (CAN_WEAR(obj, ITEM_WEAR_TRANS)) {
where = WEAR_TRANS;
} else if (CAN_WEAR(obj, ITEM_WEAR_AFF)) {
if (GET_EQ(ch, WEAR_AFF1) == NULL) {
where = WEAR_AFF1;
} else if (GET_EQ(ch, WEAR_AFF2) == NULL) {
where = WEAR_AFF2;
} else if (GET_EQ(ch, WEAR_AFF3) == NULL) {
where = WEAR_AFF3;
} else if (GET_EQ(ch, WEAR_AFF4) == NULL) {
where = WEAR_AFF4;
} else if (GET_EQ(ch, WEAR_AFF5) == NULL) {
where = WEAR_AFF5;
}
} else if (CAN_WEAR(obj, ITEM_WEAR_CONT)) {
where = WEAR_CONT;
}
return where;
}
글번호 | 제목 | 작성자 | 조회수 | 좋아요 | 싫어요 | 작성일 | |
---|---|---|---|---|---|---|---|
29 | TBAMUD 한글 아이디 저장 함수 | 성천사 | 88 | 0 | 0 | 2025-03-29 | |
28 | 신세계 64비트 난수 처리 | 성천사 | 151 | 0 | 0 | 2025-01-01 | |
27 | 접속금지, 접속허용 편의성 수정 | 성천사 | 179 | 0 | 0 | 2024-10-27 | |
26 | 신세계 텍스트 출력 [1] | 성천사 | 208 | 0 | 0 | 2024-08-06 | |
25 | 신세계 시체생성 | 성천사 | 179 | 0 | 0 | 2024-06-12 | |
24 | 삭제된 게시물입니다. | 성천사 | 124 | 0 | 0 | 2024-06-12 | |
23 | 신세계 C to VC6.0 | 성천사 | 348 | 0 | 0 | 2024-03-07 | |
22 | 신세계 장비위치 구하기 | 성천사 | 203 | 0 | 0 | 2024-03-04 | |
21 | 신세계 파일 존재여부 확인 | 성천사 | 264 | 0 | 0 | 2024-02-18 | |
20 | 신세계 맙타입 전투 | 성천사 | 295 | 0 | 0 | 2023-12-02 | |
19 | 신세계 addlog() | 성천사 | 247 | 0 | 0 | 2023-10-25 | |
18 | 신세계 캐릭터, 맙 이동 코드 | 성천사 | 254 | 0 | 0 | 2023-10-25 | |
17 | 신세계 지정번호의 물건 찾기및 제거하기 | 성천사 | 358 | 0 | 0 | 2023-05-07 | |
16 | 신세계 이동물건 [1] | 성천사 | 621 | 0 | 0 | 2022-12-30 | |
15 | 신세계 날씨변경 명령어 | 성천사 | 421 | 0 | 0 | 2022-12-25 | |
14 | [circle] 신세계 운영자 명령어 방청소 | 성천사 | 476 | 0 | 0 | 2022-10-08 | |
13 | [circle] 신세계 물건이름 | 성천사 | 513 | 0 | 0 | 2022-08-26 | |
12 | [circle] 신세계 공격대상 | 성천사 | 535 | 0 | 0 | 2022-08-19 | |
11 | [circle] 미확인장소 물건 수거 | 성천사 | 1015 | 0 | 0 | 2019-09-23 | |
10 | [circle] 신세계 포탈과 이동 명령어 [1] | 성천사 | 1452 | 0 | 0 | 2018-09-05 |