[hanlp]조합공식을 읽어내는 조합.c를 만들어봣는데요
천무혼
2,045
0
0
2004-03-22 16:54:39
5Comments
박대성
2004.03.23(화) 오전 02:01:18
lines = explode(rdfile,"\n");
이 부분을 고쳐보세요
어두운별
2004.03.23(화) 오후 03:12:34
if (sscanf(lines,"%s+%s=%s",o1, o2, o3) == 3)
이게 아니라..
if(sscanf(lines[i],"%s+%s=%s",o1,o2,o3)== 3)
이 아닐찌...
포문으로 루프를 돌리셨는데 위에꺼처럼 하면 루프를 돌릴 이유가 없어지겠죠?
그리고 i값을 1부터 시작하셨는데 0부터 시작해야하지 않을까요?
배열에서 1부터 시작하는게 아니라 0부터 시작하는거거든요 ^^
어두운별
2004.03.23(화) 오후 03:14:07
그리고 루프를 돌리고 난뒤에 o3 값은 null상태를 유지해주시는게 좋겠죠?
만약에 %s+%s=%s 형식이 아니라 그냥 이프문을 넘어 가게 되버리면
그 전에 o3값을 받아서 중복체크가 될수도 잇겠네요..
어두운별
2004.03.23(화) 오후 03:21:20
|| 이거는 OR 이구요.. && 는 and 입니다..
위에 보시면 아마도 하나 틀리신듯~
write("조합에 실패하였습니다");
return 1;
이부분 말인데요..별 상관은 없겠지만..;;return 0; 으로 처리하시구요;;
그리고 두줄로 쓰면 귀찬차나요 그럴때는;;
return notify_fail("조합에 실패하였습니다");
라고 하시면 한줄로 만사 오케이 -_-;
(걍 저는 이렇게 해서 -_-a)
어두운별
2004.03.23(화) 오후 03:46:26
음..제가 볼때 파일에다가 조합공식을 적어놓구 그걸 sscanf함수로 불러와서 적용 시키실려고 하시는거 같은데..음...그것보다..파일에
set("아이템이름",({"조합에필요한아이템1","조합에필요한아이템2"."조합에피요한아이템3"}));
이런식으로 추가해놓으시고..당연 c파일로 파일을 설정 하시구요..
받을 파일에서..
#include <mudlib.h>
int cmd(string str) {
string data="파일위치.c", obj;
mixed dataline, not_item = ({ }), ok_item = ({ });
object target;
dataline = data->query(str);
if (!dataline) {
return notify_fail("그런 아이템은 조합 할수 없습니다.\n");
}
foreach (obj in dataline) {
target = present(obj, this_player());
if (!target) {
not_item += ({ obj });
continue;
}
ok_item += ({obj });
}
if (sizeof(not_item) != 0) {
return notify_fail("당신은 "+str+"의 조합을 위해 조합아이템이 부족합니다.\n");
}
for (int i=0;i<sizeof(ok_item);i++) {
target = present(ok_item[i], this_player());
target->remove();
}
item = clone_object(file_name);
item->move(environment(th));
item->move(th,1);
write("\n당신은 "+item->query("이름")+"을 만드는데 성공했습니다.\n");
say("\n"+this_player()->query("이름")+"님이 "+item->query("이름")+"을 만드는데 성공 했습니다.\n");
return 1;
}
이렇게 하는게 더 편하지 않을지;;
당연히 테스트를 안해보고 코멘트 창에 그대로 적은거라 오류가 있을지 없을지 잘못된게 있을지 없을지는 몰겠지만 -_-a
대충 갈쳐드릴려고 했는데 ㅠㅠ 하다보니 욕심생겨서 기본틀을 완전 만들어버렸네요 ㅠ
총 게시물 954개 / 검색된 게시물: 954개