머드클럽
머드게임이란?
게임은 어떤 환경에서?
본격적으로 게임해 볼까?
배너교환
머드강좌
일반 머드강좌
성천사님의 머드강좌
혼님의 머드강좌
방울꽃님의 머드강좌
리트님의 머드강좌
2Soo님의 머드강좌
내머드소개하기
접속가능머드
내머드소개하기
자료실
접속 프로그램
머드소스
머드 유틸리티
기타
커뮤니티
공지사항
등업신청
머드클럽에바란다
자유 게시판
질문 AND 답변
머드클럽 갤러리
구인구직
머드게임소개
사신전(死神戰)
사신전 소개
사신전 맵
사신전 명령어 모음집
천명(天命)
천명 소개
천명 맵
천명 명령어 모음집
마이페이지
로그인
회원가입
계정찾기
로그인
회원가입
계정찾기
텍스트머드클럽
검색
[hanlp]MaGun님... save_weapon.c를 이렇게..
Xerxes
6
2,000
0
0
2004-01-27 17:13:44
#include <move.h> <br />#include <mudlib.h> <br /> <br />inherit OBJECT ; <br /> <br />string *vb, *vb2 ; <br /> <br />int init_arg(mixed *arg) <br />{ <br /> set ("수명", arg[0]); <br /> set ("아이디", arg[1]); <br /> set ("짧은설명", arg[2]); <br /> set ("긴설명", arg[3]); <br /> set ("등급", arg[4]); <br /> set ("이름", arg[5]); <br /> if( sizeof(arg) == 6 ) { <br /> set ("수정", 0); <br /> set ("소유자",""); <br /> } <br /> else { <br /> set ("수정", arg[6]); <br /> set ("소유자", arg[7]); <br /> } <br />} <br /> <br />mixed *query_auto_load() <br />{ <br /> string item; <br /> int li, w, e; <br /> string *i, s, lo, n, o; <br /> <br /> sscanf(file_name(this_object()), "%s#%*d", item); <br /> li = query ("수명"); <br /> i = query ("아이디"); <br /> s = query ("짧은설명"); <br /> lo = query ("긴설명"); <br /> w = query ("등급"); <br /> n = query ("이름"); <br /> e = query ("수정"); <br /> o = query ("소유자"); <br /> return ({ item, ({ li, i, s, lo, w, n, e, o }) }); <br />} <br /> <br />void attack_strength(object fellow) { <br /> <br /> object wep1, wep2; <br /> int w_power=0, level; <br /> <br /> if(!fellow) return; <br /> <br /> level = fellow->query("명성") ; <br /> wep1 = fellow->query("무기1") ; <br /> wep2 = fellow->query("무기2") ; <br /> <br /> if( wep1 ) { <br /> w_power += wep1->query("등급") * 10 + 10; <br /> } <br /> if( wep2 ) { <br /> w_power += wep2->query("등급") * 5 + 10; <br /> } <br /> w_power = (w_power/6)+(level/15); <br /> fellow->set("무기위력",w_power); <br /> fellow->update_max_point(); <br /> return; <br />} <br /> <br />void unwield(int silent) { <br /> <br /> object wep1, wep2, obj, fellow, room; <br /> string name; <br /> <br /> fellow = environment(this_object()) ; <br /> if (fellow) <br /> { <br /> wep1 = fellow->query("무기1") ; <br /> wep2 = fellow->query("무기2") ; <br /> obj = this_object() ; <br /> name = obj->query("이름"); <br /> room = environment(fellow); <br /> <br /> obj->set("무장상태",0) ; <br /> if(!silent) <br /> tell_object(fellow,"당신은 "+han_obj(name)+" 무장해제합니다.\n"); <br /> <br /> if(fellow && room && !silent) <br /> tell_room(room,han_iga(fellow->query("이름"))+" "+han_obj(name)+" 무장해제합니다.\n",fellow); <br /> if (obj==wep1) { <br /> if (wep2) { <br /> fellow->set("무기1",wep2) ; <br /> fellow->set("무기2",0) ; <br /> } <br /> else { <br /> fellow->set("무기1",0) ; <br /> } <br /> } else { <br /> fellow->set("무기2",0) ; <br /> } <br /> attack_strength(fellow); <br /> } <br />} <br /> <br />void wield(int silent) { <br /> object wep1, wep2, obj, fellow, room; <br /> string name; <br /> int Class; <br /> <br /> fellow = environment(this_object()) ; <br /> if (fellow) <br /> { <br /> wep1 = fellow->query("무기1") ; <br /> wep2 = fellow->query("무기2") ; <br /> obj = this_object() ; <br /> name = obj->query("이름"); <br /> room = environment(fellow); <br /> Class = obj->query("무기"); <br /> <br /> if( Class <= 1 ) { <br /> if( obj == wep1 ) { <br /> tell_object(fellow,"같은 무기를 무장하고 있습니다.\n"); <br /> return 0 ; <br /> } <br /> if( wep1 ) wep1->unwield(); <br /> if( wep2 ) wep2->unwield(); <br /> fellow->set("무기1",obj); <br /> tell_object(fellow,"당신은 "+han_obj(name)+" 무장합니다.\n"); <br /> } <br /> else if( Class >= 2 ) { <br /> if( !wep1 && !wep2 ) { <br /> fellow->set("무기1",obj); <br /> tell_object(fellow,"당신은 "+han_obj(name)+" 오른손에 들었습니다.\n"); <br /> } <br /> else if( wep1 && wep2 ) { <br /> if( wep2 ) wep2->unwield(); <br /> fellow->set("무기2",obj); <br /> tell_object(fellow,"당신은 "+han_obj(name)+" 왼손에 들었습니다.\n"); <br /> } <br /> else if( wep1 ) { <br /> if( wep1->query("무기") == 1 ) { <br /> wep1->unwield(); <br /> fellow->set("무기1",obj); <br /> tell_object(fellow,"당신은 "+han_obj(name)+" 오른손에 들었습니다.\n"); <br /> } <br /> else { <br /> fellow->set("무기2",obj); <br /> tell_object(fellow,"당신은 "+han_obj(name)+" 왼손에 들었습니다.\n"); <br /> } <br /> } <br /> else if( wep2 ) { <br /> fellow->set("무기1",obj); <br /> tell_object(fellow,"당신은 "+han_obj(name)+" 오른손에 들었습니다.\n"); <br /> } <br /> else { <br /> tell_object(fellow,"* 무장 에러\n"); <br /> return; <br /> } <br /> } <br /> else { <br /> tell_object(fellow,"* 무기 에러\n"); <br /> return; <br /> } <br /> obj->set("무장상태",1); <br /> attack_strength(fellow); <br /> if(fellow && room && !silent) <br /> tell_room(room,han_iga(fellow->query("이름"))+" "+han_obj(name)+" 무장합니다.\n",fellow); <br /> return; <br /> } <br /> return; <br />} <br /> <br />int move (mixed dest) { <br /> <br /> object fellow ; <br /> <br /> fellow = environment(this_object()) ; <br /> if (fellow) { <br /> if (query("무장상태")) { <br /> unwield(0); <br /> } <br /> } <br /> if(!query("수명")) <br /> set("수명", 80000); <br /> return ::move(dest) ; <br />} <br /> <br />int remove() { <br /> <br /> object fellow ; <br /> <br /> fellow = environment(this_object()) ; <br /> if (fellow) { <br /> if ((object)fellow->query("무기1")==this_object() || <br /> (object)fellow->query("무기2")==this_object()) { <br /> unwield(0); <br /> } <br /> } <br /> return ::remove() ; <br />} <br /> <br /> <br />void set_verbs(string *verbs) { <br /> <br /> int i ; <br /> string w1, w2 ; <br /> <br /> vb = verbs ; <br /> vb2 = allocate(sizeof(vb)) ; <br /> for (i=0;i<sizeof(verbs);i++) { <br /> if (sscanf(verbs[i],"%s %s",w1,w2)==2) { <br /> vb2[i]=w1+"s "+w2 ; <br /> } else { <br /> vb2[i]=verbs[i]+"s" ; <br /> } <br /> } <br />} <br /> <br />void set_verbs2 (string *verbs) { <br /> vb2 = verbs ; <br />} <br /> <br />string *get_verb() { <br /> <br /> int i ; <br /> <br /> i = random(sizeof(vb)) ; <br /> return ({ vb[i], vb2[i] }) ; <br />} <br />string *vb, *vb2 ; <br /> <br />void init() <br />{ <br /> add_action("upgrade","강화"); <br />} <br /> <br />int upgrade(string str) { <br /> object player, wep, clip; <br /> string ch; <br /> <br /> player = environment(this_object()); <br /> if( !player || !player->query("사용자") ) return 0; <br /> if( str ) <br /> { <br /> wep = player->query("무기1"); <br /> if( !wep ) return notify_fail("\n무장한 상태에서만 강화가 가능합니다.\n"); <br /> if( query("이름") == str ) return notify_fail("\n무장한 상태에서만 강화가 가능합니다.\n");; <br /> if( wep != this_object() ) return notify_fail("\n무장한 상태에서만 강화가 가능합니다.\n"); <br /> if( wep->query("강화") > 0 ) { <br /> return notify_fail(han_desc(wep->query("이름"))+" 이미 강화가 되어 있습니다.\n"); <br /> } <br /> } <br /> wep = player->query("무기1"); <br /> if( !wep ) { <br /> return notify_fail("\n무장한 상태에서만 강화가 가능합니다.\n\n"); <br /> } <br /> if( wep != this_object() ) { <br /> return notify_fail("\n무장한 상태에서만 장전이 가능합니다.\n\n"); <br /> } <br /> if( wep->query("강화") && wep->query("강화") > 0 ) { <br /> return notify_fail("\n이미 강화되 어 있습니다.\n\n"); <br /> } <br /> ch = wep->query("강화주문서"); <br /> if( !ch ) { <br /> return notify_fail("\n어떤 주문서를 사용해야 하는지 정의되어 있지 않습니다.\n\n"); <br /> } <br /> clip = present(ch,player); <br /> if( !clip ) { <br /> return notify_fail("\n"+han_obj(ch)+" 가지고 있지 않습니다.\n\n"); <br /> } <br /> if( !clip->query("강화") || clip->query("강화") < 1 ) { <br /> return notify_fail("\n"+(ch)+"의 설정이 잘못되어 있습니다.\n\n"); <br /> } <br /> wep->set("강화",clip->query("강화")); <br /> clip->remove(); <br /> write("\n새롭게 "+han_tool(ch)+" 강화되었습니다.\n\n"); <br /> say(han_iga(player->query("이름"))+" "+han_obj(ch)+" 강화합니다.\n"); <br /> return 1; <br />} <br /> <br />int init_arg(mixed *arg) <br />{ <br /> set ("강화", arg[0]); <br />} <br /> <br />mixed *query_auto_load() <br />{ <br /> string item; <br /> int v, t, m; <br /> string n; <br /> <br /> sscanf(file_name(this_object()), "%s#%*d", item); <br /> v = query ("강화"); <br /> <br /> return ({ item, ({ v }) }); <br />} <br /> <br /> <br />이렇게 해 보았습니다... <br /> <br />그냥 감 잡히는 대로 했는데...
0
0
새글
답변
수정
삭제
최신목록
전체목록
초보님하고 모든분.. [hanlp]
무한대전을 윈도 xp에서....(중복질문인가??)
6
Comments
MaGuN
2004.01.27(화) 오후 06:42:37
답변
init_arg() 함수와 query_auto_load()함수가 중복되어있네요..
MaGuN
2004.01.27(화) 오후 06:47:23
답변
중복된 앞부분의 함수 두개는 지우면 될것 같습니다.
MaGuN
2004.01.27(화) 오후 06:48:24
답변
그리고 루틴상으로만 보면 아무 무기나 무장을 하고...
음하하하 강화 라고 치거나 그냥 강화라고 치거나 이상한 단어를 넣고 치거나..
결과는 동일하겠네요 -_-;;;
Xerxes
2004.01.27(화) 오후 09:23:54
답변
그럼 어떻게 해야하나요?
Xerxes
2004.01.27(화) 오후 09:25:25
답변
그리고 앞부분의 int init_arg(mixed *arg) 와 mixed *query_auto_load()
를 지우면 되나요?
Xerxes
2004.01.27(화) 오후 09:26:36
답변
또 업그레이드를 시키는 아이템, 강화주문서를 어떻게 만들어야 할지 가르쳐 주시기 바랍니다.
코멘트를 삭제할 비밀번호를 입력하세요.
비밀번호:
댓글에 답하기
입력
닫기
정회원 이상만 코멘트 쓰기가 가능합니다.
총 게시물 954개 / 검색된 게시물: 954개
질문 답변 외 글은 자유 게시판에 올려 주세요...
[hanlp]
*call_other() couldn't find object에러...
3
2127
0
0
Tabris
2004-01-28
[hanlp]
-_-이번에도 명령제한 질문-_-;;
2
1815
0
0
탈퇴
2004-01-28
[hanlp]
질문하신 성별 입력받을때 숫자로 받을수 있는 부분..
0
1891
0
0
MaGuN
2004-01-28
[hanlp]
죽으면 바로 팅기는 현상이 있던데 ..어떻게 해결하죠
1
1722
0
0
&미카엘&
2004-01-28
[hanlp]
마군님 엘피 강좌좀 해주세요..
2
1814
0
0
&미카엘&
2004-01-28
[hanlp]
지도에 관한 질문 드립니다.
2
1784
0
0
&미카엘&
2004-01-28
[hanlp]
향상 부분이 젤로 궁금 합니다.
1
1791
0
0
&미카엘&
2004-01-28
[hanlp]
[참고3] HanLP용 맵메이커... ㅠㅠ
4
2054
0
0
MaGuN
2004-01-28
[hanlp]
일정 시간마다 랜덤한(?;;) 공지를 띄우는 소스 부탁-_-;;
4
1952
0
0
탈퇴
2004-01-28
[hanlp]
초보님하고 모든분.. [hanlp]
0
1822
0
0
&미카엘&
2004-01-28
[hanlp]
MaGun님... save_weapon.c를 이렇게..
6
2001
0
0
Xerxes
2004-01-27
[mordor]
무한대전을 윈도 xp에서....(중복질문인가??)
4
1916
0
0
만이
2004-01-27
[hanlp]
자동 메세지를 출력할 때..
3
1829
0
0
탈퇴
2004-01-27
[circle]
윈도우 xp는 서클 안돌아가나요?
2
1997
0
0
이강혁
2004-01-27
[hanlp]
여러 명령 실행하면 끊기는 이유가??
1
1906
0
0
탈퇴
2004-01-27
[hanlp]
[참고2] HanLP용 맵메이커가...
3
2004
0
0
MaGuN
2004-01-27
[hanlp]
역시 조합에서...
3
1731
0
0
Xerxes
2004-01-26
[기타]
[제3의눈]아탬을 만들었는데요 아탬에 색갈 어케넣요?
0
1767
0
0
데모닉
2004-01-26
[hanlp]
가상 ip라는게 머져?..어떻게 쓰는거져?..
3
2007
0
0
김영선
2004-01-26
[hanlp]
HanLP에서 조합부분에서...
1
1724
0
0
Xerxes
2004-01-26
건너뜀
이전
41
42
43
44
45
46
47
48
다음
검색
글쓰기
최신목록
전체목록
시작일
종료일
검색어
이름
제목
내용
검색
닫기
로그인
회원가입
계정찾기
개인정보처리방침
이용약관
PC화면
Copyright (c) 텍스트머드클럽. All rights reserved.
쪽지를 전송하고 있습니다. 잠시 기다려주세요.
쪽지보내기
받는이(ID/닉네임)
닉네임으로 입력
내용
쪽지가 도착하였습니다.
쪽지함
쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
--