간만에 올리는 군요. 기본적인 문법이라든지 화면에 CG띄우는 것은 앞 강의를 참조해 주세요. 이번에는 RPG같은 곳에서 쓰이는 아이템 알고리즘에 대해 알아보도록 하겠습니다....만.. 제가 만든거라 노가다 성이 짙어서.. 자 그럼 시작하죠. 가장 중요한 사항은 1.아이템마다 숫자를 준다. 2.슬롯(칸)에 해당하는 것도 변수로 준다. 입니다 scenario.txt------------------ //아이템 설정 연습 프로그램 init ItemNumber //아이템번호 설정 0=아무것도 없다 1=핫브라이크 2=벅카스 3=눈깔사탕 init slot1=0 init slot2=0 init slot3=0 init slot4=0 //아이템 슬롯 변수<-가방이라고나 할까? 아무것도 없는것으로 우선 설정 init InputItem loadsnr itemselect.txt --------------------------------------------- itemselect.txt----------------------------- cg cg.png text 무엇을 하시겠습니까? select input.txt 아이템을 가방에 넣는다. + output.txt 아이템을 가방에서 버린다. + see.txt 아이템을 본다. --------------------------------------- input.txt-------------------------------- if (slot1 = 0 ) inslot1.txt //첫번째 슬롯에 아이템 넣기 위해 불러온다. if (slot2 = 0 ) inslot2.txt if (slot3 = 0 ) inslot3.txt if (slot4 = 0 ) inslot4.txt text 가방이 꽉찼네요.. loadsnr itemselect.txt ---------------------------------------- inslot1.txt---------------------------- text 무엇을 넣을래? + 1.핫브라이크 2.벅카스 3.눈깔사탕 setstring InputItem 아이템선택(1-3) //선택지로 만들어도 됀다 if (InputItem<1) itemerror.txt //오류체크(1,2,3 의외의 입력시 오류!!) if (InputItem>3) itemerror.txt // 상동 set slot1=InputItem //입력받은 값을 슬롯에 넣어주는 구문 text 성공적으로 넣었다!! loadsnr itemselect.txt ------------------------------- inslot2.txt 와 inslot3.txt , inslot4.txt 는 중간에 변수명만(set 부분)다름 itemerror.txt------------------- text 어이.어이..제대로 좀 입력해 //오류처리 loadsnr itemselect.txt ----------------------------- output.txt--------------------------- text 그럼 아이템을 버립시다. select 6 첫번째 아이템을 버림 + 12 두번째 아이템을 버림 + 18 세번째 아이템을 버림 + 24 네번째 아이템을 버림 if (slot1 = 0 ) 10 //아이템이 비었을 경우 오류처리 구문 set slot1=0 text 아이템을 버렸습니다! loadsnr itemselect.txt text 아이템이 없는뎁쇼... //이곳에 10행이다 밑에도 같은 형식으로 슬롯4까지.. loadsnr itemselect.txt if (slot2 = 0 ) 16 set slot2=0 text 아이템을 버렸습니다! loadsnr itemselect.txt text 아이템이 없는뎁쇼... loadsnr itemselect.txt if (slot3 = 0 ) 22 set slot3=0 text 아이템을 버렸습니다! loadsnr itemselect.txt text 아이템이 없는뎁쇼... loadsnr itemselect.txt if (slot4 = 0 ) 28 set slot4=0 text 아이템을 버렸습니다! loadsnr itemselect.txt text 아이템이 없는뎁쇼... loadsnr itemselect.txt ---------------------------------- see.txt------------------------ drawtext 10 10 첫번째 소지 아이템 : // 화면에 출력하는 구문 if (slot1 = 0 ) 6 // 아이템에 맞는 행으로 가게 하는 판단문 if (slot1 = 1 ) 8 if (slot1 = 2 ) 10 if (slot1 = 3 ) 12 drawtext 250 10 없다.. goto 14 drawtext 250 10 핫브레이크 goto 14 drawtext 250 10 벅카스 goto 14 drawtext 250 10 눈깔사탕 goto 14 drawtext 10 40 두번째 소지 아이템 : if (slot2 = 0 ) 19 if (slot2 = 1 ) 21 if (slot2 = 2 ) 23 if (slot2 = 3 ) 25 drawtext 250 40 없다.. goto 27 drawtext 250 40 핫브레이크 goto 27 drawtext 250 40 벅카스 goto 27 drawtext 250 40 눈깔사탕 goto 27 drawtext 10 70 세번째 소지 아이템 : if (slot3 = 0 ) 32 if (slot3 = 1 ) 34 if (slot3 = 2 ) 36 if (slot3 = 3 ) 38 drawtext 250 70 없다.. goto 40 drawtext 250 70 핫브레이크 goto 40 drawtext 250 70 벅카스 goto 40 drawtext 250 70 눈깔사탕 goto 40 drawtext 10 100 네번째 소지 아이템 : if (slot4 = 0 ) 45 if (slot4 = 1 ) 47 if (slot4 = 2 ) 49 if (slot4 = 3 ) 51 drawtext 250 100 없다.. goto 52 drawtext 250 100 핫브레이크 goto 52 drawtext 250 100 벅카스 goto 52 drawtext 250 100 눈깔사탕 text 봤어? 엔터 누르면 원래화면으로 간다. 잘봐둬~ loadsnr itemselect.txt ---------------------------- 이해가 되셨는지... 소스가 반복성이 짙어서 설명하기도 난감하구... 쉽게 말하면 아이템이 들어갈 장소가 칸이 쳐져 있다고 하면 그 칸마다 변수를 지정해 주는 겁니다. 그래서아이템이 있으면 아이템 번호를 넣어주고 아이템이 없으면 0으로 설정하는 겁니다. 나머지는 노가다성... 소스는 위에것 갖다 붙여넣으면 됩니다. 만약 아이템을 늘이고 싶다면 아이템 변수갯수를 늘이면 되죠. 그 대신 판단문의 분량이 늘어나겠죠. 이런식으로 하지 않고 무기같이 한곳에다 장착만 가능한 경우는 더 간단합니다. 무기 칸에 변수를 줘서 각 무기에 맞춰 변수를 설정하면 되죠 간단히 예를 들면 1 단검 2장검 3대검 4엑스칼리버 5스탐블링거 6체리의 요술봉..ㅡ.ㅡ 이라고 하면 weapon이라는 변수를 설정했다면 단검을 장비했을시에는 weapon변수에 1의 값을 주고 장검을 선택했다면 2... 이런식으로 주면 되고요. 전투시에는 여러가지 공식에 대입해서 그 값을 주면 되겠죠. 예를 들자면 데미지량=(기본공격력+(무기변수*3)-적방어력) *50% 확률 이런식으로 주면 위의 변수값을 바로 써먹을 수 있겠죠.. 다만 이럴경우 무기마다 변수값을 적당히 조절해야 겠죠. 단검이 1이라면 장검은 5 엑스칼리버는 34 체리의 요술봉은 99 정도로...(-.-) 이것들은 예일뿐 꼭 이대로 하실 필요는 없습니다. 수정을 잘 하시면 더욱 간편하게 만드실 수 있습니다. (이번에도 길구나...) ps 소스필요하신분은 메일보내주세요. ps2 출저를 밝히지 않는 무단도용은 사양하겠습니다. |