머드클럽
머드게임이란?
게임은 어떤 환경에서?
본격적으로 게임해 볼까?
배너교환
머드강좌
일반 머드강좌
성천사님의 머드강좌
혼님의 머드강좌
방울꽃님의 머드강좌
리트님의 머드강좌
2Soo님의 머드강좌
내머드소개하기
접속가능머드
내머드소개하기
자료실
접속 프로그램
머드소스
머드 유틸리티
기타
커뮤니티
공지사항
등업신청
머드클럽에바란다
자유 게시판
질문 AND 답변
머드클럽 갤러리
구인구직
머드게임소개
사신전(死神戰)
사신전 소개
사신전 맵
사신전 명령어 모음집
천명(天命)
천명 소개
천명 맵
천명 명령어 모음집
마이페이지
로그인
회원가입
계정찾기
로그인
회원가입
계정찾기
텍스트머드클럽
검색
신세계 지정번호의 물건 찾기및 제거하기
성천사
0
320
0
0
2023-05-07 21:29:33
<p>// <span style="color:#1abc9c;"><strong>이 코드는 자료실에 올려져 있는 2.6 소스포함 자료에 포함되어 있습니다</strong></span><span style="color:#f1c40f;">.</span></p> <p> </p> <p>/*</p> <p> </p> <p>본인의 물건일 경우에만 적용되긴 하지만 제거를 불가능하게 하는 그 어떤 플래그가 켜져도 물건이 제거되는 코드입니다. 제가 올린 2.6 소스를 사용하는 머드 가 아니라면(본인의 물건인지 여부를 체크하는 변수를 사용하지 않을경우) 보관함과 보관함 안의 물건조차도 제거되는 코드입니다. 보관함의 제거를 막을 경우에 예외하는 코드를 넣으셔야 합니다.</p> <p> </p> <p>*/</p> <p> </p> <p>// ch 소지품 체크할 대상, rmorfi 찾기 옵션(H_FIND 찾기전용, H_REMOVE 찾은후 삭제), removeqty 삭제갯수, itemnum 삭제할물건번호</p> <p>// 소지품에 있는 지정 번호의 물건을 지정 갯수만큼 제거하기 및 지정 번호의 물건 갯수를 출력하기 위한 코드</p> <p> </p> <p>structs.h 안에</p> <p> </p> <p>#define H_FIND 0</p> <p>#define H_REMOVE 1</p> <p> </p> <p>위 내용 추가하기</p> <p> </p> <p>아래 내용은 handler.c 안에 넣습니다.</p> <p><br /> int remove_find_item(struct char_data *ch, int rmorfi, int removeqty, int itemnum) //- int<br /> {<br /> struct obj_data *obj = NULL, *next_obj = NULL, *cont = NULL, *in_obj;<br /> int i, found = 0;</p> <p> </p> <p> if (IS_NPC(ch))</p> <p> return 0;</p> <p> </p> <p> if (rmorfi == H_FIND) {<br /> for (obj = ch->carrying; obj; obj = next_obj) { // 소지품에서 지정 물건 찾기 시작<br /> next_obj = obj->next_content; <br /> <br /> if (GET_OBJ_VNUM(obj) == itemnum) { // 소지품의 물건 번호와 지정 물건 번호가 같다면<br /> found++; // 물건 찾은 갯수 체크<br /> }<br /> }<br /> return found; // 찾은 물건의 갯수 출력<br /> } else if (rmorfi == H_REMOVE) { // 찾기 옵션이 제거 일 경우<br /> if (removeqty <= 0 || removeqty > gset_10_3) // 제거 물건 갯수가 물건처리 갯수보다 크거나 없을 경우 종료<br /> return 0;<br /> if (itemnum <= -1 || itemnum >= 32699) // 제거 물건의 물건번호가 정상적이지 않으면 종료<br /> return 0;</p> <p> for (obj = ch->carrying; obj; obj = next_obj) { // 소지품에서 지정 물건 찾기 시작<br /> next_obj = obj->next_content; <br /> <br /> if (GET_OBJ_VNUM(obj) == itemnum) { // 물건의 번호와 입력된 물건의 번호가 같을 경우<br /> if (GET_OBJ_SPARE6(obj) == GET_IDNUM(ch)) { // 물건의 소유권자가 본인의 것일 경우<br /> extract_obj(obj); // 해당 물건 제거<br /> found++; // 제거된 물건 갯수 체크<br /> if (found >= removeqty) { // 체크된 물건의 갯수가 입력된 제거 갯수와 같으면<br /> return found; // 제거된 갯수 출력 후 종료<br /> }<br /> }<br /> }<br /> if (!next_obj) // 다음물건이 없으면 끝내기<br /> break;<br /> } // 소지품 찾기 끝<br /> return found; // 제거 옵션 에서 제거될 물건을 찾지 못했다면 0 으로 종료<br /> }<br /> return 0;<br /> }</p> <p> </p> <p>예제:</p> <p> int fobj = remove_find_item(ch, H_FIND, 5, 3022);</p> <p> if (fobj < 5) {</p> <p> send_to_char("물건이 부족합니다.", ch);</p> <p> return;</p> <p> } else {</p> <p> fobj = remove_find_item(ch, H_REMOVE, 5, 3022);</p> <p> sprintf(buf, "물건을 %d개 제거 했습니다.", fobj);</p> <p> send_to_char(buf, ch);</p> <p> return;</p> <p> }</p> <p>P.S remove_find_item() 내에 물건의 갯수를 먼저 체크한 후 제거 여부를 설정하면 예제보다 더욱 간단하게 코드를 사용할 수도 있겠습니다.</p>
0
0
새글
답변
수정
삭제
최신목록
전체목록
신세계 캐릭터, 맙 이동 코드
신세계 이동물건
정회원 이상만 코멘트 사용이 가능합니다.
총 게시물 27개 / 검색된 게시물: 27개
접속금지, 접속허용 편의성 수정
0
57
0
0
성천사
2024-10-27
신세계 텍스트 출력
0
88
0
0
성천사
2024-08-06
신세계 시체생성
0
110
0
0
성천사
2024-06-12
삭제된 게시물입니다.
0
84
0
0
성천사
2024-06-12
신세계 C to VC6.0
0
274
0
0
성천사
2024-03-07
신세계 장비위치 구하기
0
157
0
0
성천사
2024-03-04
신세계 파일 존재여부 확인
0
226
0
0
성천사
2024-02-18
신세계 맙타입 전투
0
252
0
0
성천사
2023-12-02
신세계 addlog()
0
202
0
0
성천사
2023-10-25
신세계 캐릭터, 맙 이동 코드
0
204
0
0
성천사
2023-10-25
신세계 지정번호의 물건 찾기및 제거하기
0
321
0
0
성천사
2023-05-07
신세계 이동물건
1
551
0
0
성천사
2022-12-30
신세계 날씨변경 명령어
0
366
0
0
성천사
2022-12-25
[circle]
신세계 운영자 명령어 방청소
0
406
0
0
성천사
2022-10-08
[circle]
신세계 물건이름
0
464
0
0
성천사
2022-08-26
[circle]
신세계 공격대상
0
472
0
0
성천사
2022-08-19
[circle]
미확인장소 물건 수거
0
964
0
0
성천사
2019-09-23
[circle]
신세계 포탈과 이동 명령어
1
1395
0
0
성천사
2018-09-05
[circle]
신세계 귀환소스
0
8098
0
0
성천사
2009-09-15
[circle]
신세계 do_display
0
6779
0
0
성천사
2009-09-15
1
2
다음
검색
글쓰기
최신목록
전체목록
시작일
종료일
검색어
이름
제목
내용
검색
닫기
로그인
회원가입
계정찾기
개인정보처리방침
이용약관
PC화면
Copyright (c) 텍스트머드클럽. All rights reserved.
쪽지를 전송하고 있습니다. 잠시 기다려주세요.
쪽지보내기
받는이(ID/닉네임)
닉네임으로 입력
내용
쪽지가 도착하였습니다.
쪽지함
쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
--