머드클럽
머드게임이란?
게임은 어떤 환경에서?
본격적으로 게임해 볼까?
배너교환
머드강좌
일반 머드강좌
성천사님의 머드강좌
혼님의 머드강좌
방울꽃님의 머드강좌
리트님의 머드강좌
2Soo님의 머드강좌
내머드소개하기
접속가능머드
내머드소개하기
자료실
접속 프로그램
머드소스
머드 유틸리티
기타
커뮤니티
공지사항
등업신청
머드클럽에바란다
자유 게시판
질문 AND 답변
머드클럽 갤러리
구인구직
머드게임소개
사신전(死神戰)
사신전 소개
사신전 맵
사신전 명령어 모음집
천명(天命)
천명 소개
천명 맵
천명 명령어 모음집
마이페이지
로그인
회원가입
계정찾기
로그인
회원가입
계정찾기
텍스트머드클럽
검색
신세계 맙타입 전투
성천사
0
251
0
0
2023-12-02 18:47:47
<p>/*</p> <p> </p> <p> 공개한 소스에 있던 내용에서 4개의 상황이 삭제 되었습니다. (2가 1 공격 3이 2 공격등) </p> <p> 새롭게 기능을 추가하는 것 이라면 남아 있는 맙 변수중 하나를 사용해 맙 타입을 설정할 수 있게 하고 </p> <p>utils.h 에 #define GET_MOB_TYPE(ch) ((ch)->mob_specials.맙변수) 내용을 넣으면 됩니다. 변수는 파일에 저장될 수</p> <p>있는 있는 것을 사용하거나, structs.h 의 struct mob_special_data { 안에 맙변수 추가후 db.c 안의 </p> <p>void interpret_espec(char *keyword, char *value, int i, int nr) 안에 위에서 추가한 맙변수를 사용해 파일에 기록될 수</p> <p>있게 합니다. 마지막으로 medit.c 의 void medit_save_to_disk(struct descriptor_data *d) 안에서 직접적으로 맙변수 를</p> <p>파일에 기록 하도록 합니다.</p> <p> </p> <p>** 맙타입 전투 기능 외에도 다른 기능을 위해 파일로 저장되는 변수가 필요할 때 추가를 위해 사용되는 방법입니다.</p> <p>** 파일에 저장하지 않아도 되는 변수(리붓, 방폭시에 초기화)는 structs.h 의 struct mob_special_data { 안에 변수만</p> <p>추가하고 utils.h 안에서 매크로 지정후 직접 사용해도 됩니다.</p> <p> </p> <p>*/</p> <p> </p> <p> </p> <p>// #define 부분은 structs.h 안에 넣으면 됩니다.</p> <p> </p> <p>#define MTYPE_NONE 0 // 일반<br /> #define MTYPE_MONSTER 1 // 마물<br /> #define MTYPE_VSMONSTER 2 // VS.마물<br /> #define MTYPE_ONEVSTWO 3 // ONE이 TWO공격<br /> #define MTYPE_TWOVSTHR 4 // TWO가 THREE공격<br /> #define MTYPE_THRVSFOU 5 // THREE가 FOUR공격<br /> #define MTYPE_FOUVSFIV 6 // FOUR가 FIVE공격<br /> #define MTYPE_LASTFIVE 7 // FIVE, 최하위<br /> #define MTYPE_ONEVSALL 8 // ONE 외에는 다 공격<br /> #define MTYPE_TWOVSALL 9 // TWO 외에는 다 공격<br /> #define MTYPE_THRVSALL 10 // THREE 외에는 다 공격<br /> #define MTYPE_FOUVSALL 11 // FOUR 외에는 다 공격<br /> #define MTYPE_FIVVSALL 12 // FIVE 외에는 다 공격<br /> #define MTYPE_ALLATTK 13 // 모두 공격</p> <p>#define NUM_MTYPE 14 // NUM_MTYPE + 1<br /> </p> <p>// 아래 내용은 constants.c 안에 넣으면 됩니다.</p> <p>const char *mob_types[] = <br /> {<br /> "일반", // 0<br /> "마물", // 1<br /> "VS마물", // 2<br /> "일VS이", // 3<br /> "이VS삼", // 4<br /> "삼VS사", // 5<br /> "사VS오", // 6<br /> "오", // 7<br /> "일VSALL", // 8<br /> "이VSALL", // 9<br /> "삼VSALL", // 10<br /> "사VSALL", // 11<br /> "오VSALL", // 12<br /> "모두공격", // 13<br /> "n"<br /> };<br /> </p> <p>// 아래 내용은 handler.c 안에 넣으면 됩니다.</p> <p>void mtype_set(struct char_data *ch)<br /> {<br /> struct char_data *vict, *next_char;<br /> int found = 0;</p> <p><br /> if (gset_50_1) { // 맙타입간 전투 사용여부(외부삼) 2021-01-30 // 천세대전이 아닌 경우 주석처리 가능<br /> for (vict = world[ch->in_room].people; vict; vict = next_char) { // 공격할 대상을 방안에서 검색<br /> next_char = vict->next_in_room;</p> <p> if (GET_MOB_TYPE(ch) == MTYPE_NONE)<br /> return; </p> <p> if (GET_LEVEL(vict) > LVL_IMMORT && !IS_NPC(vict))<br /> return;</p> <p> if (FIGHTING(ch))<br /> return;</p> <p> if (ch == vict)<br /> continue;</p> <p><br /> if (GET_MOB_TYPE(ch) == MTYPE_MONSTER) { // 마물<br /> if (GET_MOB_TYPE(vict) == MTYPE_VSMONSTER) { // 그 외는 무조건 공격한다.<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_ONEVSTWO) { // ONE이 TWO공격<br /> if (GET_MOB_TYPE(vict) == MTYPE_TWOVSTHR) {<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_TWOVSTHR) { // TWO 가 THR 공격<br /> if (GET_MOB_TYPE(vict) == MTYPE_THRVSFOU) {<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_THRVSFOU) { // THR 이 FOU 공격<br /> if (GET_MOB_TYPE(vict) == MTYPE_FOUVSFIV) {<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_FOUVSFIV) { // FOU 가 FIV 공격<br /> if (GET_MOB_TYPE(vict) == MTYPE_LASTFIVE) {<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_ONEVSALL) { // ONE 이 모두 공격<br /> if (GET_MOB_TYPE(vict) != MTYPE_ONEVSALL && GET_LEVEL(vict) < LVL_GOD && GET_DEFENSEMOB(vict) != 1 && CAN_SEE(ch, vict)) { // 대상이 ONE VS ALL 이 아니면 공격<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_TWOVSALL) { // TWO 가 모두 공격<br /> if (GET_MOB_TYPE(vict) != MTYPE_TWOVSALL && GET_LEVEL(vict) < LVL_GOD && GET_DEFENSEMOB(vict) != 1 && CAN_SEE(ch, vict)) { <br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_THRVSALL) { // THR이 모두 공격<br /> if (GET_MOB_TYPE(vict) != MTYPE_THRVSALL && GET_LEVEL(vict) < LVL_GOD && GET_DEFENSEMOB(vict) != 1 && CAN_SEE(ch, vict)) { // 대상이 THREE VS ALL 이 아니면 공격<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_FOUVSALL) { // FOU 가 모두 공격<br /> if (GET_MOB_TYPE(vict) != MTYPE_FOUVSALL && GET_LEVEL(vict) < LVL_GOD && GET_DEFENSEMOB(vict) != 1 && CAN_SEE(ch, vict)) { // 대상이 FOUR VS ALL 이 아니면 공격<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_FIVVSALL) { // FIV 가 모두 공격<br /> if (GET_MOB_TYPE(vict) != MTYPE_FIVVSALL && GET_LEVEL(vict) < LVL_GOD && GET_DEFENSEMOB(vict) != 1 && CAN_SEE(ch, vict)) { // 대상이 FIVE VS ALL 이 아니면 공격<br /> found = 1;<br /> break;<br /> }<br /> } else if (GET_MOB_TYPE(ch) == MTYPE_ALLATTK) { // 모두 공격<br /> if ((IS_NPC(vict) || (!IS_NPC(vict) && GET_LEVEL(vict) < LVL_GOD)) && CAN_SEE(ch, vict)) {<br /> found = 1;<br /> break;<br /> }<br /> }<br /> if (!next_char)<br /> break;<br /> } // for<br /> if (found > 0)<br /> hit(ch, vict, TYPE_UNDEFINED);<br /> } // gset<br /> }</p> <p> </p> <p>// mobact.c 안의 기존 맙타입 전투 부분을 지우고 mtype_set(ch); 로 적용하면 됩니다.</p>
0
0
새글
답변
수정
삭제
최신목록
전체목록
신세계 파일 존재여부 확인
신세계 addlog()
정회원 이상만 코멘트 사용이 가능합니다.
총 게시물 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
320
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
8097
0
0
성천사
2009-09-15
[circle]
신세계 do_display
0
6779
0
0
성천사
2009-09-15
1
2
다음
검색
글쓰기
최신목록
전체목록
시작일
종료일
검색어
이름
제목
내용
검색
닫기
로그인
회원가입
계정찾기
개인정보처리방침
이용약관
PC화면
Copyright (c) 텍스트머드클럽. All rights reserved.
쪽지를 전송하고 있습니다. 잠시 기다려주세요.
쪽지보내기
받는이(ID/닉네임)
닉네임으로 입력
내용
쪽지가 도착하였습니다.
쪽지함
쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
--