머드클럽
머드게임이란?
게임은 어떤 환경에서?
본격적으로 게임해 볼까?
배너교환
머드강좌
일반 머드강좌
성천사님의 머드강좌
혼님의 머드강좌
방울꽃님의 머드강좌
리트님의 머드강좌
2Soo님의 머드강좌
내머드소개하기
접속가능머드
내머드소개하기
자료실
접속 프로그램
머드소스
머드 유틸리티
기타
커뮤니티
공지사항
등업신청
머드클럽에바란다
자유 게시판
질문 AND 답변
머드클럽 갤러리
구인구직
머드게임소개
사신전(死神戰)
사신전 소개
사신전 맵
사신전 명령어 모음집
천명(天命)
천명 소개
천명 맵
천명 명령어 모음집
마이페이지
로그인
회원가입
계정찾기
로그인
회원가입
계정찾기
텍스트머드클럽
검색
[mordor]내장 에디터 입니다..
보라메
0
2,847
0
0
2003-12-25 01:13:30
/* EDITOR.C */ <br />extern int dm_editor(); <br />extern void editor_main(); <br />extern void edit_object(); <br />extern void edit_monster(); <br />extern void edit_obj_1(); <br />extern void edit_obj_2(); <br />extern void edit_obj_3(); <br />extern void edit_obj_4(); <br />extern void edit_obj_5(); <br />extern void edit_obj_6(); <br />extern void edit_mon_1(); <br />extern void edit_mon_2(); <br />extern void edit_mon_3(); <br />extern void edit_mon_4(); <br />extern void edit_mon_5(); <br />extern void edit_mon_6(); <br />extern void edit_mon_7(); <br />extern void edit_mon_8(); <br />extern void edit_mon_9(); <br />extern void obj_screen(); <br />extern void mon_screen(); <br />extern int find_dm_index(); <br />extern void edit_room(); <br />extern void rom_screen(); <br />extern void edit_rom_1(); <br />extern void edit_rom_2(); <br />extern void edit_rom_3(); <br />extern void edit_rom_4(); <br />extern void edit_rom_5(); <br />extern void edit_rom_6(); <br />extern void edit_rom_7(); <br />extern void edit_rom_8(); <br />extern void edit_rom_9(); <br /> <br />extern void clearscreen(); <br />extern void gotoxy(); <br />extern int load_obj_from_file(); <br /> <br />extern int save_obj_to_file(); <br />extern int load_crt_from_file(); <br />extern int save_crt_to_file(); <br />extern int save_rom_to_file(); <br />extern int load_rom_from_file(); <br /> <br />일단 위에꺼를 mextern.h에 추가해 주시고 <br /> <br /> <br /> <br /> <br />#include "mstruct.h" <br />#include "mextern.h" <br /> <br /> <br />void clearscreen(int fd ) <br />{ <br />if(fd > -1) <br />if(F_ISSET(Ply[fd].ply, PANSIC)) <br />print(fd, "\033[2J"); <br />} <br />void gotoxy(int fd, int x, int y ) <br />{ <br />if(fd > -1) <br />if(F_ISSET(Ply[fd].ply, PANSIC)) <br />print(fd, "%c[%d;%df", 27, x, y); <br />} <br /> <br />struct editor_stat { <br /> <br />int index; <br />int cnt; <br />struct object *edt_obj_ptr; <br />struct creature *edt_crt_ptr; <br />struct room *edt_rom_ptr; <br /> <br />} EDITOR_STAT[7]; <br /> <br />void editor_main(int fd, int param, char *str); <br />void edit_object(int fd, int param, char *str); <br />void edit_monster(int fd, int param, char *str); <br /> <br />void edit_obj_1(int fd, int param, char *str); <br />void edit_obj_2(int fd, int param, char *str); <br />void edit_obj_3(int fd, int param, char *str); <br />void edit_obj_4(int fd, int param, char *str); <br />void edit_obj_5(int fd, int param, char *str); <br />void edit_obj_6(int fd, int param, char *str); <br /> <br />void edit_mon_1(int fd, int param, char *str); <br />void edit_mon_2(int fd, int param, char *str); <br />void edit_mon_3(int fd, int param, char *str); <br />void edit_mon_4(int fd, int param, char *str); <br />void edit_mon_5(int fd, int param, char *str); <br />void edit_mon_6(int fd, int param, char *str); <br />void edit_mon_7(int fd, int param, char *str); <br />void edit_mon_8(int fd, int param, char *str); <br />void edit_mon_9(int fd, int param, char *str); <br /> <br />void obj_screen(int fd, int param); <br />void mon_screen(int fd, int param); <br />void rom_screen(int fd, int param); <br />int find_dm_index(creature *ply_ptr); <br /> <br />int find_dm_index(creature *ply_ptr) <br />{ <br />if(!strcmp(ply_ptr->name, dmname[0])) return 0; <br />else if (!strcmp(ply_ptr->name, dmname[1])) return 1; <br />else if (!strcmp(ply_ptr->name, dmname[2])) return 2; <br />else if (!strcmp(ply_ptr->name, dmname[3])) return 3; <br />else if (!strcmp(ply_ptr->name, dmname[4])) return 4; <br />else if (!strcmp(ply_ptr->name, dmname[5])) return 5; <br />else if (!strcmp(ply_ptr->name, dmname[6])) return 6; <br />else return(-1); <br />} <br /> <br />int dm_ed2(creature *ply_ptr, cmd *cmnd) <br />{ <br />int fd, dm_index; <br /> <br />fd = ply_ptr->fd; <br /> <br />if(ply_ptr->class < SUB_DM) <br />return(PROMPT); <br /> <br />dm_index = find_dm_index(ply_ptr); <br />/* <br />if(dm_index < 0) <br />return(PROMPT); <br />*/ <br />F_SET(ply_ptr,PANSIC); <br /> <br />print(fd, "안시모드를 설정합니다.\n"); <br /> <br />zero(&EDITOR_STAT[find_dm_index(ply_ptr)],sizeof(struct editor_stat)); <br /> <br />editor_main(fd,0,""); <br />return(DOPROMPT); <br />} <br /> <br />void editor_main(int fd, int param, char *str) <br />{ <br /> <br />switch(param) { <br />case 0: <br />clearscreen(fd); ANSI(fd, WHITE); <br /> gotoxy(fd,7,30); print(fd, "[0;35m■■■■■■■■■■■■■"); <br /> gotoxy(fd,8,30); print(fd, "[0;30;43m 사신 전기 내장 에디터 [0;37;40m"); <br /> gotoxy(fd,9,30); print(fd, "[0;35m■■■■■■■■■■■■■"); <br /> gotoxy(fd,10,30); print(fd,"[0;32m1[0;37m. [1;36m아이템 [0;37m에디트"); <br /> gotoxy(fd,11,30); print(fd,"[0;32m2[0;37m. [1;31m몹 [0;37m에디트"); <br /> gotoxy(fd,12,30); print(fd,"[0;32m3[0;37m. [1;33m방 [0;37m에디트"); <br /> gotoxy(fd,15,30); print(fd,"[0;32m9[0;37m. 종료"); <br /> gotoxy(fd,16,30); print(fd, "[0;35m■■■■■■■■■■■■■[0;37m"); <br /> gotoxy(fd,18,30); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"[0;36m>> [0;37m선택하세요 : "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,editor_main,1); <br /> <br />case 1: <br />switch(low(str[0])) { <br />case '1': <br />clearscreen(fd); <br />gotoxy(fd,3,14); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"에디트 하실 아이템의 번호를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,1); <br /> <br />case '2': <br />clearscreen(fd); <br />gotoxy(fd,3,10); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"에디트 하실 몹의 번호를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_monster,1); <br /> <br /> case '3': <br /> clearscreen(fd); <br /> gotoxy(fd,3,10); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"에디트 하실 방의 번호를 입력하세요: "); <br /> output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_room,1); <br /> <br /> <br />// check_player(); <br /> <br />case '9': <br />gotoxy(fd,17,30); <br />F_CLR(Ply[fd].ply, PREADI); <br />print(fd,"종료합니다.\n"); <br />RETURN(fd,command,1); <br />default: <br />gotoxy(fd,17,30); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"잘못 선택하셨습니다 [엔터] "); <br />RETURN(fd,editor_main,0); <br />} <br />} <br /> <br />RETURN(fd,editor_main,0); <br />} <br /> <br /> <br />void edit_object(int fd, int param, char *str) <br />{ <br />int num, j; <br />object *obj_ptr; <br />char flgstr[256]; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />switch(param) { <br /> <br />case 0: <br />obj_screen(fd,0); <br /> <br />gotoxy(fd,15,25); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"선택하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,2); <br /> <br />case 1: <br />num = atol(str); <br />if(num < 1) { <br />gotoxy(fd,3,14); <br />print(fd,"숫자를 정확히 입력하세요.\n"); <br />RETURN(fd, editor_main, 0); <br />} <br /> <br />EDITOR_STAT[find_dm_index(Ply[fd].ply)].index = num; <br />load_obj_from_file(num, <br />&EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr); <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />obj_screen(fd,0); <br /> <br />gotoxy(fd,15,25); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"선택하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,2); <br /> <br />case 2: <br />switch(low(str[0])) { <br />case '1': <br />obj_screen(fd,1); <br /> <br />gotoxy(fd,3,1); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_1,1); <br /> <br />case '2': <br />obj_screen(fd,2); <br /> <br />gotoxy(fd,3,3); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_2,1); <br /> <br />case '3': <br />obj_screen(fd,3); <br /> <br />gotoxy(fd,3,1); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_3,1); <br /> <br />case '4': <br />obj_screen(fd,4); <br /> <br />gotoxy(fd,2,8); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_4,1); <br /> <br />case '5': <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,2,11); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,1); <br /> <br />case '6': <br />obj_screen(fd,6); <br />for(j=0;j<128;j++) <br />flgstr[j] = <br />(obj_ptr->flags[j/8] & 1<<(j%8)) ? '*':'.'; <br />flgstr[128] = 0; j = flgstr[70]; <br />flgstr[70] = 0; <br />gotoxy(fd,4,1); print(fd,"%s",flgstr); <br />flgstr[70] = j; <br />gotoxy(fd,9,1); print(fd,"%s",&flgstr[70]); <br />gotoxy(fd,11,10); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_6,1); <br /> <br />case '7': <br />zero(obj_ptr, sizeof(object)); <br /> <br />gotoxy(fd,15,25); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"초기화 되었습니다. [엔터]를 입력하세요: "); <br />RETURN(fd,edit_object,0); <br /> <br />case '8': <br /> <br />free(obj_ptr); <br />EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr = 0; <br />EDITOR_STAT[find_dm_index(Ply[fd].ply)].index = 0; <br />gotoxy(fd,15,25); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"저장하지 않았습니다. [엔터]를 입력하세요: "); <br />RETURN(fd,editor_main,0); <br /> <br />case '9': <br />num = EDITOR_STAT[find_dm_index(Ply[fd].ply)].index; <br />save_obj_to_file(num, obj_ptr); <br />free(obj_ptr); <br /> <br />EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr = 0; <br /> <br />EDITOR_STAT[find_dm_index(Ply[fd].ply)].index = 0; <br />flush_obj(); <br />gotoxy(fd,15,25); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"저장하였습니다. [엔터]를 입력하세요: "); <br />RETURN(fd,editor_main,0); <br /> <br />default: <br />gotoxy(fd,15,25); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd,"잘못 선택하셨습니다 [엔터] "); <br />RETURN(fd,edit_object,0); <br />} <br />} <br />} <br /> <br />void edit_obj_1(int fd, int param, char *str) <br />{ <br />object *obj_ptr; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />switch(param) { <br />case 1: <br />if(str[0]) <br />strcpy(obj_ptr->name, str); <br />obj_screen(fd,1); <br /> <br />gotoxy(fd,6,1); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_1,2); <br />/* description */ <br />case 2: <br />if(str[0]) <br />strcpy(obj_ptr->description, str); <br />obj_screen(fd,1); <br /> <br />gotoxy(fd,15,1); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd, "[엔터]를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd, edit_object, 0); <br />} <br />} <br /> <br /> <br />void edit_obj_2(int fd, int param, char *str) <br />{ <br />object *obj_ptr; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />switch(param) { <br />/* obj_ptr->key[1] */ <br />case 1: <br />if(str[0]) <br />strcpy(obj_ptr->key[0], str); <br />obj_screen(fd,2); <br /> <br />gotoxy(fd,3,29); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_2,2); <br /> <br />/* obj_ptr->key[2] */ <br />case 2: <br />if(str[0]) <br />strcpy(obj_ptr->key[1], str); <br />obj_screen(fd,2); <br /> <br />gotoxy(fd,3,56); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_2,3); <br /> <br />case 3: <br />if(str[0]) <br />strcpy(obj_ptr->key[2], str); <br />obj_screen(fd,2); <br /> <br />gotoxy(fd,15,1); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd, "[엔터]를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,0); <br />} <br />} <br /> <br /> <br />void edit_obj_3(int fd, int param, char *str) <br />{ <br />object *obj_ptr; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />switch(param) { <br /> <br />case 1: <br />if(str[0]) <br />strcpy(obj_ptr->use_output, str); <br />obj_screen(fd,3); <br /> <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"사용시 출력되는 글:"); <br />gotoxy(fd,3,1); print(fd,"%-s", obj_ptr->use_output); <br /> <br />gotoxy(fd,15,1); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd, "[엔터]를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,0); <br />} <br />} <br /> <br />void edit_obj_4(int fd, int param, char *str) <br />{ <br />object *obj_ptr; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />/* 가격/무게/빙의수치/임무 */ <br />switch(param) { <br />/* 무게 */ <br />case 1: <br />if(str[0]) <br />obj_ptr->value = atol(str); <br />obj_screen(fd,4); <br /> <br />gotoxy(fd,2,40); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_4,2); <br /> <br />/* 종류 */ <br />case 2: <br />if(str[0]) <br />obj_ptr->weight = atol(str); <br />obj_screen(fd,4); <br /> <br />gotoxy(fd,3,8); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_4,3); <br /> <br />/* 빙의수치 */ <br />case 3: <br />if(str[0]) <br />obj_ptr->type = atol(str); <br />obj_screen(fd,4); <br /> <br />gotoxy(fd,3,40); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_4,4); <br /> <br />/* 임무 */ <br />case 4: <br />if(str[0]) <br />obj_ptr->adjustment = atol(str); <br />obj_screen(fd,4); <br /> <br />gotoxy(fd,3,60); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_4,5); <br /> <br />case 5: <br />if(str[0]) <br />obj_ptr->questnum = atol(str); <br />obj_screen(fd,4); <br /> <br />gotoxy(fd,15,1); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd, "[엔터]를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,0); <br />} <br />} <br /> <br />void edit_obj_5(int fd, int param, char *str) <br />{ <br />object *obj_ptr; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />/* 사용횟수/데미지/방어력/입는 곳/매직/스폐셜 */ <br />switch(param) { <br />case 1: <br />if(str[0]) <br />obj_ptr->shotscur = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,2,17); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,2); <br /> <br />case 2: <br />if(str[0]) <br />obj_ptr->shotsmax = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,3,9); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,3); <br /> <br />case 3: <br />if(str[0]) <br />obj_ptr->ndice = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,3,39); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,4); <br /> <br />case 4: <br />if(str[0]) <br />obj_ptr->sdice = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,3,68); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,5); <br /> <br />case 5: <br />if(str[0]) <br />obj_ptr->pdice = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,4,9); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,6); <br /> <br />case 6: <br />if(str[0]) <br />obj_ptr->armor = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,4,39); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,7); <br /> <br />case 7: <br />if(str[0]) <br />obj_ptr->wearflag = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,4,68); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,8); <br /> <br />case 8: <br />if(str[0]) <br />obj_ptr->magicpower = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,5,39); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,9); <br /> <br />case 9: <br />if(str[0]) <br />obj_ptr->magicrealm = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,5,68); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_5,10); <br /> <br />case 10: <br />if(str[0]) <br />obj_ptr->special = atol(str); <br />obj_screen(fd,5); <br /> <br />gotoxy(fd,15,1); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd, "[엔터]를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,0); <br />} <br />} <br /> <br />void edit_obj_6(int fd, int param, char *str) <br />{ <br />int j, num = 0; <br />char flgstr[256]; <br />object *obj_ptr; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />/* 플래그 설정 */ <br />switch(param) { <br /> <br />case 0: <br />obj_screen(fd,6); <br />for(j=0;j<128;j++) <br />flgstr[j] = <br />(obj_ptr->flags[j/8] & 1<<(j%8)) ? '*':'.'; <br />flgstr[128] = 0; j = flgstr[70]; <br />flgstr[70] = 0; <br />gotoxy(fd,4,1); print(fd,"%s",flgstr); <br />flgstr[70] = j; <br />gotoxy(fd,9,1); print(fd,"%s",&flgstr[70]); <br />gotoxy(fd,11,10); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_6,1); <br /> <br /> <br />case 1: <br />if(str[0] && (num = atol(str))) { <br />if(obj_ptr->flags[(num-1)/8] & 1<<((num-1)%8)) <br />obj_ptr->flags[(num-1)/8] &= ~(1<<((num-1)%8)); <br />else <br />obj_ptr->flags[(num-1)/8] |= 1<<((num-1)%8); <br />} <br />obj_screen(fd,6); <br />for(j=0;j<128;j++) <br />flgstr[j] = <br />(obj_ptr->flags[j/8] & 1<<(j%8)) ? '*':'.'; <br />flgstr[128] = 0; j = flgstr[70]; <br />flgstr[70] = 0; <br />gotoxy(fd,4,1); print(fd,"%s",flgstr); <br />flgstr[70] = j; <br />gotoxy(fd,9,1); print(fd,"%s",&flgstr[70]); <br />gotoxy(fd,11,10); <br /> <br />if(str[0] && !num) { <br />gotoxy(fd,12,1); <br />F_SET(Ply[fd].ply, PREADI); <br />print(fd, "종료합니다. [엔터]를 입력하세요: "); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_object,0); <br />} <br /> <br />gotoxy(fd,7,9); <br />F_SET(Ply[fd].ply, PREADI); <br />output_buf(); <br />Ply[fd].io->intrpt &= ~1; <br />RETURN(fd,edit_obj_6,1); <br />} <br />} <br /> <br /> <br />void obj_screen(int fd, int param) <br />{ <br />object *obj_ptr; <br /> <br />obj_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_obj_ptr; <br /> <br />switch(param) { <br /> <br />case 0: <br />clearscreen(fd); <br />gotoxy(fd,2,20); print(fd,"아이템: %s", obj_ptr->name); <br />gotoxy(fd,4,25); print(fd," 1. 이름/설명"); <br />gotoxy(fd,5,25); print(fd," 2. 사용되는 단어"); <br />gotoxy(fd,6,25); print(fd," 3. 사용시 출력되는 글"); <br />gotoxy(fd,7,25);print(fd," 4. 가격/무게/종류/빙의수치/임무"); <br />gotoxy(fd,8,25); <br />print(fd," 5. 사용횟수/데미지/방어력/입는 곳/매직/스폐셜"); <br />gotoxy(fd,9,25); print(fd," 6. 플래그 설정"); <br />gotoxy(fd,10,25); print(fd," 7. 초기화"); <br />gotoxy(fd,11,25); print(fd," 8. 저장하지 않고 이전 메뉴로"); <br />gotoxy(fd,12,25); print(fd," 9. 저장하고 이전 메뉴로"); <br /> <br />return; <br /> <br />case 1: <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"아이템의 이름:"); <br />gotoxy(fd,3,1); print(fd,"%-s", obj_ptr->name); <br />gotoxy(fd,5,1); print(fd,"설명:"); <br />gotoxy(fd,6,1); print(fd,"%-s",obj_ptr->description); <br /> <br />return; <br /> <br />case 2: <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"단어:"); <br />gotoxy(fd,3,1); print(fd,"1:%-s", obj_ptr->key[0]); <br />gotoxy(fd,3,27); print(fd,"2:%-s", obj_ptr->key[1]); <br />gotoxy(fd,3,54); print(fd,"3:%-s", obj_ptr->key[2]); <br /> <br />return; <br /> <br />case 3: <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"사용시 출력되는 글:"); <br />gotoxy(fd,3,1); print(fd,"%-s", obj_ptr->use_output); <br /> <br />return; <br /> <br />case 4: <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd," 가격: %-8d", obj_ptr->value); <br />gotoxy(fd,2,30); print(fd,"무게 : %-5d",obj_ptr->weight); <br />gotoxy(fd,3,1); print(fd," 종류: %-3d", obj_ptr->type); <br />gotoxy(fd,3,30); print(fd,"빙의수치: %-3d", <br />obj_ptr->adjustment); <br />gotoxy(fd,3,54); print(fd,"임무: %-3d", obj_ptr->questnum); <br /> <br />return; <br /> <br />case 5: <br />clearscreen(fd); <br />gotoxy(fd,2,1); <br />print(fd,"사용횟수: %-5d/%-5d", obj_ptr->shotscur, obj_ptr->shotsmax); <br />gotoxy(fd,3,1); print(fd,"# 굴림: %-5d", obj_ptr->ndice); <br />gotoxy(fd,3,30); print(fd,"면체 : %-5d", obj_ptr->sdice); <br />gotoxy(fd,3,60); print(fd,"추가치: %-5d", obj_ptr->pdice); <br />gotoxy(fd,4,1); print(fd,"방어력: %-3d", obj_ptr->armor); <br />gotoxy(fd,4,30); print(fd,"입는 곳: %-3d", obj_ptr->wearflag); <br />gotoxy(fd,4,60); print(fd,"매직 : %-3d", obj_ptr->magicpower); <br />gotoxy(fd,5,30); print(fd,"속성 : %-1d", obj_ptr->magicrealm); <br />gotoxy(fd,5,60); print(fd,"스폐셜: %-3d", obj_ptr->special); <br /> <br />return; <br /> <br />case 6: <br />clearscreen(fd); <br />gotoxy(fd,2,10); print(fd,"1"); <br />gotoxy(fd,2,20); print(fd,"2"); <br />gotoxy(fd,2,30); print(fd,"3"); <br />gotoxy(fd,2,40); print(fd,"4"); <br />gotoxy(fd,2,50); print(fd,"5"); <br />gotoxy(fd,2,60); print(fd,"6"); <br />gotoxy(fd,2,70); print(fd,"7"); <br />gotoxy(fd,7,10); print(fd,"8"); <br />gotoxy(fd,7,20); print(fd,"9"); <br />gotoxy(fd,7,30); print(fd,"0"); <br />gotoxy(fd,7,40); print(fd,"1"); <br />gotoxy(fd,7,50); print(fd,"2"); <br />gotoxy(fd,6,30); print(fd,"1"); <br />gotoxy(fd,6,40); print(fd,"1"); <br />gotoxy(fd,6,50); print(fd,"1"); <br />gotoxy(fd,3,1); print(fd, <br />"1234567890123456789012345678901234567890123456789012345678901234567890"); <br />gotoxy(fd,8,1); <br />print(fd,"1234567890123456789012345678901234567890123456789012345678"); <br />gotoxy(fd,11,1); print(fd,"플랙 #: "); <br />gotoxy(fd,12,1); print(fd,"(0 to exit)"); <br />return; <br />} <br />} <br /> <br /> <br />void mon_screen(int fd, int param) <br />{ <br />creature *crt_ptr; <br /> <br />crt_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_crt_ptr; <br /> <br />clearscreen(fd); <br /> <br />switch(param) { <br />case 0: <br />clearscreen(fd); <br />gotoxy(fd,2,25); print(fd,"몹 이름: %s",crt_ptr->name); <br />gotoxy(fd,4,30); print(fd," 1. 몹 이름/행동/대화"); <br />gotoxy(fd,5,30); print(fd," 2. 몹의 이름 또는 단어"); <br />gotoxy(fd,6,30); print(fd," 3. 레벨/직업/성향/스테이터스"); <br />gotoxy(fd,7,30); print(fd," 4. HP/MP/방어력/thaco/num"); <br />gotoxy(fd,8,30); print(fd," 5. 경험치/돈/타격치/임무/스폐셜"); <br />gotoxy(fd,9,30); print(fd," 6. 쓸수 있는 주술 설정"); <br />gotoxy(fd,10,30); print(fd," 7. 플래그 설정"); <br />gotoxy(fd,11,30); print(fd," 8. 숙달된 정도(?) - 사용하지 않음"); <br />gotoxy(fd,12,30); print(fd," 9. 소지하고 있는 아이템"); <br />gotoxy(fd,13,30); print(fd,"10. 초기화"); <br />gotoxy(fd,14,30); print(fd,"11. 저장하지 않음"); <br />gotoxy(fd,15,30); print(fd,"12. 저장하고 이전 메뉴로"); <br /> <br />return; <br /> <br />case 1: <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"몹 이름:"); <br />gotoxy(fd,3,1); print(fd,"%s",crt_ptr->name); <br />gotoxy(fd,5,1); print(fd,"행동:"); <br />gotoxy(fd,6,1); print(fd,"%s",crt_ptr->description); <br />gotoxy(fd,8,1); print(fd,"%s", "대화:"); <br />gotoxy(fd,9,1); print(fd,"%s",crt_ptr->talk); <br /> <br />return; <br /> <br />case 2: /* keys */ <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"몹의 이름 또는 단어:"); <br />gotoxy(fd,3,1); print(fd,"1:%s", crt_ptr->key[0]); <br />gotoxy(fd,3,27); print(fd,"2:%s", crt_ptr->key[1]); <br />gotoxy(fd,3,54); print(fd,"3:%s", crt_ptr->key[2]); <br /> <br />return; <br /> <br />case 3: /* level/class/align/stats */ <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"레벨: %-3d", crt_ptr->level); <br />gotoxy(fd,2,20); print(fd,"직업: %-3d", crt_ptr->class); <br />gotoxy(fd,2,40); print(fd,"성향: %-5d", crt_ptr->alignment); <br />gotoxy(fd,3,1); print(fd," 힘 : %-2d", crt_ptr->strength); <br />gotoxy(fd,3,20); print(fd,"민첩: %-2d", crt_ptr->dexterity); <br />gotoxy(fd,3,40); print(fd,"맷집: %-2d", <br />crt_ptr->constitution); <br />gotoxy(fd,4,1); print(fd,"지능: %-2d", crt_ptr->intelligence); <br />gotoxy(fd,4,20); print(fd,"신앙심: %-2d", crt_ptr->piety); <br /> <br />return; <br /> <br />case 4: /* HP/MP/Armor/Thaco */ <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd," HP: %-5d/%-5d", <br />crt_ptr->hpcur, crt_ptr->hpmax); <br />gotoxy(fd,2,30); print(fd," MP: %-5d/%-5d", <br />crt_ptr->mpcur, crt_ptr->mpmax); <br />gotoxy(fd,3,1); print(fd,"방어력: %-3d", crt_ptr->armor); <br />gotoxy(fd,3,30); print(fd,"Thac0: %-3d", crt_ptr->thaco); <br />gotoxy(fd,4,1); print(fd," Num: %-3d", crt_ptr->numwander); <br /> <br />return; <br /> <br />case 5: /* exp/gold/dmg/quest */ <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd," 경험치: %ld", <br />crt_ptr->experience); <br />gotoxy(fd,2,29); print(fd,"돈 : %ld", crt_ptr->gold); <br />gotoxy(fd,3,1); print(fd," # 굴림: %-5d", crt_ptr->ndice); <br />gotoxy(fd,3,29); print(fd,"면체 : %-5d", crt_ptr->sdice); <br />gotoxy(fd,3,55); print(fd,"추가치: %-5d", crt_ptr->pdice); <br />gotoxy(fd,4,1); print(fd," 임무: %-3d", <br />crt_ptr->questnum); <br />gotoxy(fd,4,29); print(fd,"스폐셜: %-3d", crt_ptr->special); <br /> <br />return; <br /> <br />case 6: /* spells */ <br />clearscreen(fd); <br />gotoxy(fd,2,10); print(fd,"1"); <br />gotoxy(fd,2,20); print(fd,"2"); <br />gotoxy(fd,2,30); print(fd,"3"); <br />gotoxy(fd,2,40); print(fd,"4"); <br />gotoxy(fd,2,50); print(fd,"5"); <br />gotoxy(fd,2,60); print(fd,"6"); <br />gotoxy(fd,2,70); print(fd,"7"); <br />gotoxy(fd,7,10); print(fd,"8"); <br />gotoxy(fd,7,20); print(fd,"9"); <br />gotoxy(fd,7,30); print(fd,"0"); <br />gotoxy(fd,7,40); print(fd,"1"); <br />gotoxy(fd,7,50); print(fd,"2"); <br />gotoxy(fd,6,30); print(fd,"1"); <br />gotoxy(fd,6,40); print(fd,"1"); <br />gotoxy(fd,6,50); print(fd,"1"); <br />gotoxy(fd,3,1); print(fd, <br />"1234567890123456789012345678901234567890123456789012345678901234567890"); <br />gotoxy(fd,8,1); <br />print(fd,"1234567890123456789012345678901234567890123456789012345678"); <br />gotoxy(fd,11,1); print(fd,"마법 #: "); <br />gotoxy(fd,12,1); print(fd,"(0 to exit)"); <br /> <br />return; <br /> <br />case 7: /* flags */ <br />clearscreen(fd); <br />gotoxy(fd,2,10); print(fd,"1"); <br />gotoxy(fd,2,20); print(fd,"2"); <br />gotoxy(fd,2,30); print(fd,"3"); <br />gotoxy(fd,2,40); print(fd,"4"); <br />gotoxy(fd,2,50); print(fd,"5"); <br />gotoxy(fd,2,60); print(fd,"6"); <br />gotoxy(fd,2,70); print(fd,"7"); <br />gotoxy(fd,7,10); print(fd,"8"); <br />gotoxy(fd,7,20); print(fd,"9"); <br />gotoxy(fd,7,30); print(fd,"0"); <br />gotoxy(fd,7,40); print(fd,"1"); <br />gotoxy(fd,7,50); print(fd,"2"); <br />gotoxy(fd,6,30); print(fd,"1"); <br />gotoxy(fd,6,40); print(fd,"1"); <br />gotoxy(fd,6,50); print(fd,"1"); <br />gotoxy(fd,3,1); print(fd, <br />"1234567890123456789012345678901234567890123456789012345678901234567890"); <br />gotoxy(fd,8,1); <br />print(fd,"1234567890123456789012345678901234567890123456789012345678"); <br />gotoxy(fd,11,1); print(fd,"플랙 #: "); <br />gotoxy(fd,12,1); print(fd,"(0 to exit)"); <br />return; <br /> <br />case 8: <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"숙달정도(?)- 사용하지 않음:"); <br />gotoxy(fd,3,1); print(fd,"1:%ld", crt_ptr->proficiency[0]); <br />gotoxy(fd,3,27); print(fd,"2:%ld", crt_ptr->proficiency[1]); <br />gotoxy(fd,3,54); print(fd,"3:%ld", crt_ptr->proficiency[2]); <br />gotoxy(fd,4,1); print(fd,"4:%ld", crt_ptr->proficiency[3]); <br />gotoxy(fd,4,27); print(fd,"5:%ld", crt_ptr->proficiency[4]); <br /> <br />return; <br /> <br />case 9: /* carryables */ <br />clearscreen(fd); <br />gotoxy(fd,2,1); print(fd,"소지하고 있는 아이템:"); <br />gotoxy(fd,3,1); print(fd,"1:%-5d",crt_ptr->carry[0]); <br />gotoxy(fd,3,17); print(fd,"2:%-5d",crt_ptr->carry[1]); <br />gotoxy(fd,3,33); print(fd,"3:%-5d",crt_ptr->carry[2]); <br />gotoxy(fd,3,49); print(fd,"4:%-5d",crt_ptr->carry[3]); <br />gotoxy(fd,3,65); print(fd,"5:%-5d",crt_ptr->carry[4]); <br />gotoxy(fd,4,1); print(fd,"6:%-5d",crt_ptr->carry[5]); <br />gotoxy(fd,4,17); print(fd,"7:%-5d",crt_ptr->carry[6]); <br />gotoxy(fd,4,33); print(fd,"8:%-5d",crt_ptr->carry[7]); <br />gotoxy(fd,4,49); print(fd,"9:%-5d",crt_ptr->carry[8]); <br />gotoxy(fd,4,64); print(fd,"10:%-5d",crt_ptr->carry[9]); <br /> <br />return; <br />} <br />} <br /> <br />void rom_screen(int fd, int param) <br />{ <br /> long j, x, num; <br /> char flgstr[256]; <br /> room *rom_ptr; <br /> <br /> rom_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr; <br /> num = EDITOR_STAT[find_dm_index(Ply[fd].ply)].index; <br /> <br /> clearscreen(fd); <br /> switch(param) { <br /> case 0: <br /> gotoxy(fd,2,20); print(fd," 방 번호와 이름: (%d) %s",num,rom_ptr->name); <br /> gotoxy(fd,3,25); print(fd," 1. 방이름"); <br /> gotoxy(fd,4,25); print(fd," 2. 짧은 설명 - 사용하지 않음"); <br /> gotoxy(fd,5,25); print(fd," 3. 방설명"); <br /> gotoxy(fd,6,25); print(fd," 4. 통과레벨/함정/통로/스폐셜"); <br /> gotoxy(fd,7,25); print(fd," 5. 플래그 설정"); <br /> gotoxy(fd,8,25); print(fd," 6. 랜덤 출현 몹 지정"); <br /> gotoxy(fd,9,25); print(fd," 7. 계속 출현하는 몹 - 시간설정(초)"); <br /> gotoxy(fd,10,25); print(fd," 8. 계속 생성되는 아이템"); <br /> gotoxy(fd,11,25); print(fd," 9. 방의 통계 - 사용하지 않음"); <br /> gotoxy(fd,12,25); print(fd,"10. 출구 에디트 (게임상이 편리)"); <br /> gotoxy(fd,13,25); print(fd,"11. 초기화"); <br /> gotoxy(fd,14,25); print(fd,"12. 저장하지 않음"); <br /> gotoxy(fd,15,25); print(fd,"13. 저장하고 이전 메뉴로"); <br /> return; <br /> case 1: <br /> gotoxy(fd,2,1); print(fd,"방이름:"); <br /> gotoxy(fd,3,1); print(fd,"%s",rom_ptr->name); <br /> return; <br /> case 2: <br /> gotoxy(fd,1,1); print(fd,"짧은 방 설명:"); <br /> gotoxy(fd,2,1); print(fd," 1 2 3 4 5 6 7 8"); <br /> gotoxy(fd,3,1); print(fd,"12345678901234567890123456789012345678901234567890123456789012345678901234567890"); <br /> gotoxy(fd,4,1); print(fd,"---------+---------+---------+---------+---------+---------+---------+---------+"); <br /> gotoxy(fd,5,1); print(fd,"%s",rom_ptr->short_desc); <br /> return; <br /> case 3: <br /> gotoxy(fd,1,1); print(fd,"방 설명:"); <br /> gotoxy(fd,2,1); print(fd," 1 2 3 4 5 6 7 8"); <br /> gotoxy(fd,3,1); print(fd,"12345678901234567890123456789012345678901234567890123456789012345678901234567890"); <br /> gotoxy(fd,4,1); print(fd,"---------+---------+---------+---------+---------+---------+---------+---------+"); <br /> gotoxy(fd,5,1); print(fd,"%s",rom_ptr->long_desc); <br /> return; <br /> case 4: <br /> gotoxy(fd,2,1); print(fd,"함정: %-3d", rom_ptr->trap); <br /> gotoxy(fd,2,30); print(fd," 함정출구: %-5d", rom_ptr->trapexit); <br /> gotoxy(fd,2,59); print(fd,"스폐셜: %-3d", rom_ptr->special); <br /> gotoxy(fd,4,1); print(fd,"출력되는 통로:"); <br /> gotoxy(fd,5,1); print(fd,"%s",rom_ptr->track); <br /> gotoxy(fd,7,1); print(fd,"최저레벨: %-2d", rom_ptr->lolevel); <br /> gotoxy(fd,8,1); print(fd,"최고레벨: %-2d", rom_ptr->hilevel); <br /> return; <br /> case 5: <br /> clearscreen(fd); <br /> gotoxy(fd,2,10); print(fd,"1"); <br /> gotoxy(fd,2,20); print(fd,"2"); <br /> gotoxy(fd,2,30); print(fd,"3"); <br /> gotoxy(fd,2,40); print(fd,"4"); <br /> gotoxy(fd,2,50); print(fd,"5"); <br /> gotoxy(fd,2,60); print(fd,"6"); <br /> gotoxy(fd,3,1); print(fd,"1234567890123456789012345678901234567890123456789012345678901234"); <br /> gotoxy(fd,7,1); print(fd,"플래그 #: "); <br /> gotoxy(fd,8,1); print(fd,"(0 은 종료)"); <br /> for(j=0;j<64;j++) <br /> flgstr[j] = (rom_ptr->flags[j/8] & 1<<(j%8)) ? '*':'.'; <br /> flgstr[64] = 0; <br /> gotoxy(fd,4,1); print(fd,"%s",flgstr); <br /> return; <br /> case 6: <br /> gotoxy(fd,2,1); print(fd,"랜덤 출현 몹:"); <br /> for(x=0; x<10; x++) { <br /> gotoxy(fd,x+3,x==9 ? 2:3); <br /> print(fd,"%d:%-5d",x+1,rom_ptr->random[x]); <br /> } <br /> gotoxy(fd,14,2); print(fd,"Traffic: %-3d", rom_ptr->traffic); <br /> return; <br /> case 7: <br /> gotoxy(fd,2,1); print(fd,"계속 출현하는 몹:"); <br /> gotoxy(fd,4,10); print(fd,"출현시간"); <br /> gotoxy(fd,4,20); print(fd,"사용안함"); <br /> gotoxy(fd,4,30); print(fd,"몹 번호"); <br /> for(x=0; x<10; x++) { <br /> gotoxy(fd,x+5, 2); print(fd,"%2d:",x+1); <br /> gotoxy(fd,x+5, 10); print(fd,"%lu",rom_ptr->perm_mon[x].interval); <br /> gotoxy(fd,x+5, 20); print(fd,"%lu",rom_ptr->perm_mon[x].ltime); <br /> gotoxy(fd,x+5, 30); print(fd,"%-5d",rom_ptr->perm_mon[x].misc); <br /> } <br /> return; <br /> case 8: <br /> gotoxy(fd,2,1); print(fd,"계속 생성되는 아이템:"); <br /> gotoxy(fd,4,10); print(fd,"생성시간"); <br /> gotoxy(fd,4,20); print(fd,"사용안함"); <br /> gotoxy(fd,4,30); print(fd,"아이템 번호"); <br /> for(x=0; x<10; x++) { <br /> gotoxy(fd,x+5, 2); print(fd,"%2d:",x+1); <br /> gotoxy(fd,x+5, 10); print(fd,"%lu",rom_ptr->perm_obj[x].interval); <br /> gotoxy(fd,x+5, 20); print(fd,"%lu",rom_ptr->perm_obj[x].ltime); <br /> gotoxy(fd,x+5, 30); print(fd,"%-5d",rom_ptr->perm_obj[x].misc); <br /> } <br /> return; <br /> case 9: <br /> gotoxy(fd,2,1); print(fd," 방문객: %lu", (unsigned long)rom_ptr->beenhere); <br /> gotoxy(fd,3,1); print(fd,"Established: %lu", (unsigned long)rom_ptr->established); <br /> return; <br /> } <br />} <br /> <br /> <br />void edit_room(int fd, int param, char *str) <br />{ <br /> int j, num, x, sw; <br /> long t; <br /> char flgstr[256], timestr[50]; <br /> room *rom_ptr; <br /> <br /> rom_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr; <br /> <br /> switch(param) { <br /> case 0: <br /> rom_screen(fd,0); <br /> gotoxy(fd,18,25); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"선택하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_room,2); <br /> case 1: <br /> num = atol(str); <br /> if(num < 1) { <br /> gotoxy(fd,3,10); <br /> print(fd,"숫자를 정확히 입력하세요.\n"); <br /> RETURN(fd, editor_main, 0); <br /> } <br /> EDITOR_STAT[find_dm_index(Ply[fd].ply)].index = num; <br /> load_rom_from_file(num, &EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr); <br /> rom_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr; <br /> rom_screen(fd,0); <br /> gotoxy(fd,18,25); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"선택하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_room,2); <br /> case 2: <br /> sw = atoi(str); <br /> switch(sw) { <br /> case 1: <br /> rom_screen(fd,1); <br /> gotoxy(fd,3,1); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_rom_1,1); <br /> case 2: <br /> rom_screen(fd,2); <br /> gotoxy(fd,15,1); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd, "이 기능은 지원하지 않습니다. 게임 내에서 입력하세요."); <br /> gotoxy(fd,16,1); <br /> print(fd, "[엔터]를 입력하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_room, 0); <br /> case 3: <br /> rom_screen(fd,3); <br /> gotoxy(fd,15,1); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd, "이 기능은 지원하지 않습니다. 게임 내에서 입력하세요."); <br /> gotoxy(fd,16,1); <br /> print(fd, "[엔터]를 입력하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_room, 0); <br /> case 4: <br /> rom_screen(fd,4); <br /> gotoxy(fd,2,7); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_rom_4, 1); <br /> case 5: <br /> rom_screen(fd,5); <br /> gotoxy(fd,7,11); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_rom_5,1); <br /> case 6: <br /> rom_screen(fd,6); <br /> gotoxy(fd,3,5); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_rom_6,1); <br /> case 7: <br /> rom_screen(fd,7); <br /> gotoxy(fd,17,1); print(fd,"Monster #:"); <br /> gotoxy(fd,17,12); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_rom_7,1); <br /> case 8: <br /> rom_screen(fd,8); <br /> gotoxy(fd,17,1); print(fd,"선택하세요 #:"); <br /> gotoxy(fd,17,15); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_rom_8,1); <br /> case 9: <br /> rom_screen(fd,9); <br /> gotoxy(fd,2,14); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd,edit_rom_9,1); <br /> case 10: <br /> /* Exits */ <br /> gotoxy(fd,18,25); <br /> print(fd, "아직 이 기능은 지원하지 않습니다."); <br /> gotoxy(fd,19,25); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd, "[엔터]를 입력하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_room, 0); <br /> case 11: <br /> rom_screen(fd,0); <br /> free_rom(rom_ptr); <br /> rom_ptr = (room *)malloc(sizeof(room)); <br /> zero(rom_ptr, sizeof(room)); <br /> EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr = rom_ptr; <br /> gotoxy(fd,18,25); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"초기화 되었습니다. [엔터]를 입력하세요: "); <br /> RETURN(fd,edit_room,0); <br /> case 12: /* abort */ <br /> free_rom(rom_ptr); <br /> EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr = 0; <br /> EDITOR_STAT[find_dm_index(Ply[fd].ply)].index = 0; <br /> gotoxy(fd,18,25); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"저장하지 않았습니다. [엔터]를 입력하세요: "); <br /> RETURN(fd,editor_main,0); <br /> case 13: /* save */ <br /> num = EDITOR_STAT[find_dm_index(Ply[fd].ply)].index; <br /> save_rom_to_file(num, rom_ptr); <br /> free_rom(rom_ptr); <br /> t = time(0); <br /> strcpy(timestr, (char *)ctime(&t)); <br /> timestr[strlen(timestr)-1] = 0; <br /> logn("DM_Editor", "%s: Room : %s : #%-d\n", timestr,rom_ptr,num); <br /> EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr = 0; <br /> EDITOR_STAT[find_dm_index(Ply[fd].ply)].index = 0; <br /> gotoxy(fd,18,25); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"저장하였습니다. [엔터]를 입력하세요: "); <br /> RETURN(fd,editor_main,0); <br /> default: <br /> gotoxy(fd,18,25); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd,"잘못 선택하셨습니다. [엔터]를 입력하세요: "); <br /> RETURN(fd,edit_room,0); <br /> } <br /> } <br />} <br /> <br />void edit_rom_1(int fd, int param, char *str) <br />{ <br /> room *rom_ptr; <br /> rom_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr; <br /> <br /> switch(param) { <br /> case 1: <br /> if(str[0]) strcpy(rom_ptr->name, str); <br /> rom_screen(fd,1); <br /> gotoxy(fd,15,1); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd, "[엔터]를 입력하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_room, 0); <br /> } <br />} <br /> <br />void edit_rom_2(int fd, int param, char *str) <br />{ <br /> room *rom_ptr; <br /> rom_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr; <br /> switch(param) { <br /> case 1: <br /> rom_screen(fd,2); <br /> gotoxy(fd,15,1); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd, "이 기능은 지원하지 않습니다. 게임 내에서 입력하세요."); <br /> gotoxy(fd,16,1); <br /> print(fd, "[엔터]를 입력하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_room, 0); <br /> } <br />} <br /> <br /> <br />void edit_rom_3(int fd, int param, char *str) <br />{ <br /> room *rom_ptr; <br /> rom_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr; <br /> switch(param) { <br /> case 0: <br /> clearscreen(fd); <br /> gotoxy(fd,1,1); print(fd,"방 설명:"); <br /> gotoxy(fd,2,1); print(fd,"%s",rom_ptr->long_desc); <br /> gotoxy(fd,14,1); print(fd,"새 설명을 입력하세요:"); <br /> gotoxy(fd,15,1); print(fd,"]"); <br /> gotoxy(fd,15,2); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd, "[엔터]를 입력하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_rom_3, 1); <br /> case 1: <br /> rom_screen(fd,2); <br /> gotoxy(fd,15,1); <br /> F_SET(Ply[fd].ply, PREADI); <br /> print(fd, "이 기능은 지원하지 않습니다. 게임 내에서 입력하세요."); <br /> gotoxy(fd,16,1); <br /> print(fd, "[엔터]를 입력하세요: "); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_room, 0); <br /> } <br />} <br /> <br /> <br />void edit_rom_4(int fd, int param, char *str) <br />{ <br /> room *rom_ptr; <br /> rom_ptr = EDITOR_STAT[find_dm_index(Ply[fd].ply)].edt_rom_ptr; <br /> switch(param) { <br /> case 0: <br /> case 1: <br /> if(str[0]) rom_ptr->trap = atol(str); <br /> rom_screen(fd,4); <br /> gotoxy(fd,2,41); <br /> F_SET(Ply[fd].ply, PREADI); <br /> output_buf(); <br /> Ply[fd].io->intrpt &= ~1; <br /> RETURN(fd, edit_rom_4, 2); <br />&nbs <br />
0
0
새글
답변
수정
삭제
최신목록
전체목록
Mordor 내장 에디터 1.0 (아이템, 몹)
도배방지 소스
0
Comments
-표시할 내용이 없습니다.-
코멘트를 삭제할 비밀번호를 입력하세요.
비밀번호:
댓글에 답하기
입력
닫기
정회원 이상만 코멘트 쓰기가 가능합니다.
총 게시물 107개 / 검색된 게시물: 107개
누구든지 머드 강의를 올리수 있는 곳입니다...^^
[circle]
자동출구 화살표로 출력하기 소스
0
2880
0
0
CutyStar☆
2004-01-29
[hanlp]
쿼리에 대한 아주 초보적인 내용!!;;
4
3274
0
0
탈퇴
2004-01-22
[mordor]
Vtmode 를 통해서만 접속 가능하게 하기...
1
2857
0
0
방울꽃
2004-01-16
[circle]
써클머드로 머드 게임 만들기:세번째 이야기
3
4407
0
0
새천사
2004-01-16
[circle]
써클계열 머드 VTMODE BBS를 통해서만 접속 가능하도록 하는 소스
3
2903
0
0
주석
2004-01-16
[circle]
써클머드 README 파일 : 허접번역(?)
1
3837
0
0
새천사
2004-01-11
[circle]
써클 머드로 머드 게임 만들기:두번째이야기
6
4863
0
0
새천사
2004-01-08
[hanlp]
HanLP 도움말
0
5193
0
0
임종호
2004-01-07
[hanlp]
HanLP 에서의 한글 관련 함수 가이드
0
4350
0
0
Xerxes
2004-01-06
[circle]
써클 머드로 머드 게임 만들기:첫번째이야기
8
7975
0
0
새천사
2004-01-03
[mordor]
개척소스
0
2902
0
0
보라메
2003-12-27
[mordor]
그룹경치소스
0
2941
0
0
보라메
2003-12-27
[mordor]
기증소스
0
2768
0
0
보라메
2003-12-27
[mordor]
낚시소스
0
3030
0
0
보라메
2003-12-26
[mordor]
Mordor 내장 에디터 1.0 (아이템, 몹)
2
3190
0
0
보라메
2003-12-25
[mordor]
내장 에디터 입니다..
0
2848
0
0
보라메
2003-12-25
[mordor]
도배방지 소스
0
2924
0
0
보라메
2003-12-25
[mordor]
몹심기 소스
0
3004
0
0
머드사랑
2003-12-25
[mordor]
패거리등급조절
0
2738
0
0
머드사랑
2003-12-22
[mordor]
순위쏘스
0
2728
0
0
머드사랑
2003-12-18
이전
1
2
3
4
5
6
다음
검색
글쓰기
최신목록
전체목록
시작일
종료일
분류별 검색
전체보기
기타
circle
hanlp
mordor
소스분석
흑염
천무혼
검색어
이름
제목
내용
검색
닫기
로그인
회원가입
계정찾기
개인정보처리방침
이용약관
PC화면
Copyright (c) 텍스트머드클럽. All rights reserved.
쪽지를 전송하고 있습니다. 잠시 기다려주세요.
쪽지보내기
받는이(ID/닉네임)
닉네임으로 입력
내용
쪽지가 도착하였습니다.
쪽지함
쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
--