전투라이브러리

압축된 파일을 폴더에 풀고, hBtBattle.txt 파일을 엽니다.

전투를 불러오고 싶은 스크립트를 열고 hBtBattle.txt파일의 내용을 복사해옵니다

(//초기화 세팅부터~~ loadsnr hBtBattleStart.txt까지 복사해 붙여넣습니다)

세팅을 하고 싶은 값을 //여기부터 ~//여기사이에 기본데이타값을 세팅하세요 부분에 설정해 넣습니다.)

ex) set hBtPName = 무적철가방2

set hBtPATK = 200

* 각 사용되는 변수는 3장 기본설정을 참조해 주십시오

* 변수값 확인방법

변수이름에는 대체적으로 다음과 같은 패턴이 있습니다.

hBt - 이 라이브러리에 공통으로 쓰이는 변수에 붙은 명칭

P - 플레이어 관련 변수

E - 적 관련 변수

ATK - 공격력관련변수

Name - 이름 관련 변수

이런 패턴으로 변수명이 조합되어 있습니다

ex) 적의 이름 = hBtEName

플레이어의 속도 = hBtPSPD

*체력과 마법력은 3자리를 넘게 되면 글자 배치 때문에 화면이 이상해보일수도 있습니다만

작동에는 지장이 없습니다. 3자리를 넘게 하고 싶다면

라이브러리를 수정하셔서 쓰셔야 합니다.




win.txt 와 lose.txt에 전투가 끝나고 불릴 스크립트를 넣어서 처리 하십시오

* 이 전투 라이브러리에는 순수하게 전투에 관한 것만 처리하였습니다.

경험치를 사용하고 싶으시면 전투 시작 전에 hBtEXP 변수에 값을 정해놓고

win.txt파일을 불러올 때 그 값을 더하는 방식으로 처리하시기 바랍니다.




* 전투를 다시 하고 싶을 때는 hBtReset.txt를 불러오시고 사용하십시오.

<p>[파일:1]</p><p>[파일:2]</p>
Ex가 붙은것은 예제입니다. 안붙은 것은 라이브러리 입니다.
그림파일을 바꾸고 싶으면 그림파일을 불러와 같은 크리고 다시 그리시면 됩니다
ProjectBattle.zip
ProjectBattleEx.zip

by 지나가는행인1 | 2009/03/08 10:41 | VNAP강의 | 트랙백 | 덧글(2)

타이틀cg 노가다

CharSel.zip
전에 강의 올린 아이템알고리즘을 이용해서 만드는 방법인데요

이 방법의 단점은 CG노가다가 필요하다는 점입니다.

뭐 특별한것은 아니고

캐릭터1,2,3 이 있다고 할때

1번캐릭터를 1

2번 => 2

3번 =>4로 주고

초기에 변수를 세팅해서

ifflag A가 성립하면 변수에 1더하구

B가 성립하면 2더하구

C가 성립하면 4를 더해

숫자에 맞는 CG를 출력한다는 점입니다.

ifflag를 한번씩만 체크해주면 되니 조금 노가다 정도가 줄어든다는 점입니다.

----------------------------

init setting = 0 이렇게 세팅하구

 

ifflag A 5
ifflag B 7
ifflag C 9
goto 12
set setting+=1
goto 2
set setting+=2
goto 3
set setting+=4
goto 4
writevariable setting
loadsnr title1.txt

//이런식으로 변수값조정

if (setting = 7 ) 10
if (setting = 6 ) 12
if (setting = 5 ) 14
if (setting = 4 ) 16
if (setting = 3 ) 18
if (setting = 2 ) 20
if (setting = 1 ) 22
cg 0.png
loadsnr main.txt
cg 7.png
goto 9
cg 6.png
goto 9
cg 5.png
goto 9
cg 4.png
goto 9
cg 3.png
goto 9
cg 2.png
goto 9
cg 1.png
goto 9
//이런식으로 CG출력

하는 방식입니다

------------------------------

*물론 코딩하기 쉽게 파일을 나눠서 했습니다.

*알고리즘은 아이템알고리즘 강의를 참조하세요. 저말고도 다른분이 올려놓은 것도 있으니 참조하세요.

*플레그가 다 세워져서 다시해보고 싶으 실때는 cfg파일을 지우면됩니다.

*생각하신게 이게 아니면 ...죄송할따름.

자세한것은 첨부파일을 보시면서 소스를 분석해 보세요.

 

라고 작성했었음.

by 지나가는행인1 | 2009/02/12 20:23 | VNAP강의 | 트랙백

라이브러리화

일단 라이브러리화의 예제는 libraryEx.zip 파일을 다운받아 주세요.

이 파일은

scenario.txt function.txt addy.txt initvalue.txt reset.txt

파일로 구성되 있습니다.

function.txt addy.txt initvalue.txt reset.txt

이 4개의 파일은 한 묶음 이므로 같이 다녀야하고

4개의 파일은 손대 필요없이 파일자체를 폴더에 복사해 넣으셔서 사용하시면 됩니다.

 

이 라이브러리 기능은 화면에 특정 위치에 문장을 찍어주는 것입니다.

제작자의 의견(?)을 따라 '라이브러리화예제 ' 줄여서 '예제' 라고 부르겠습니다.

 

scenario.txt 에 있는 내용을 사용자가 필요한 곳에 복사해서 사용하시면 됩니다.

사용법은 다음과 같습니다.

-------------------------------------------------

funcsnr initvalue.txt

window off
set string = 출력을 원하는 문장 넣기

funcsnr function.txt

window on 

-----------------------------------------------

이 부분을 넣고 문장을 넣으면 화면에 출력이 됩니다.

공백은 'ㄱ' 한자 1의 유니코드 공백( )을 사용해야 합니다.

linesize 란 변수값을 변경해 줄간격을 조정할 수 있습니다.

posx,posy 값을 조정해 출력 위치를 조정할 수 있습니다.

폰트값은 변수값을 인식못하므로 사용자가 따로 지정해야 합니다.

funcsnr initvalue.txt 이부분은 '한번'만 실행해야 합니다.

초기화하고자 하면 

funcsnr reset.txt 을 실행하면 초기화시켜줍니다.

 
libraryEx.zip


ㅋㅋㅋㅋㅋㅋㅋㅋ
완전히 프로그래밍 하는 기분.
학교에서 배운것 잘써먹는 구나!ㅋㅋㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋ

by 지나가는행인1 | 2008/06/13 17:16 | VNAP강의 | 트랙백

회상씬.-노가다심함

회상씬 설명입니다.

물론 노가다성이 짙습니다.

예제는 2종류로 준비했습니다.

1. 변수 사용

2. funcsnr 사용입니다.

원리는 똑같습니다.

--------------------------------------------------------

회상신메뉴 -> 회상 시나리오 로드

-> 회상신메뉴에서 온녀석이면 회상신메뉴로 아니면 그냥진행

-------------------------------------------------------

체크방식이 2가지 입니다. 변수로 체크하는것과

funcsnr로 체크하는 방법입니다.

1 변수로 체크를 할시

장점:변수값을 이용하여 스위치 케이스문 비스무리하게 작성가능. 불러오는곳 조정이 쉽다.

      변수값으로 미묘한( ?) 조정이 가능하다

단점:시나리오 시작전에 모든 변수를 초기화하고 관리해야한다. 빼먹으면 오류남.

2.funcsnr

장점:간략하게 작성가능(스크립트 수는 비슷하지만 변수노가다를 안해도 됨)

단점:정밀한 제어 불가능과 잘못된사용으로 엉뚱한곳으로 튈염려가 있음.

 

예제를 다운받아보시면 더 쉬울것입니다

varfunc가 변수

funcsnr이 funcnsr을 이용한 회상씬입니다.

 

ps 메뉴스크립트에서는 변수를 가지고 노는것이 안되기 때문에 부득이하게 세팅용 스크립트가 필요합니다. 물론 funcsnr도 동일한 이유로 세팅용 스크립트가 필요합니다.

그래서 노가다성이 짙음.

 varfunc.zip
funcsnr.zip

by 지나가는행인1 | 2007/12/04 13:58 | VNAP강의 | 트랙백

플래그 메뉴 나누기

플래그 메뉴 분기 입니다.

회상씬은 조금 복잡함으로 나중에 따로 만들어, 강의를 올리도록 하겠습니다.

일단 플래그를 사용하여 메뉴를 분기하는 방법입니다.

전에 설명에서는 누구를 공략해야만 누구를 볼수있다~

란 설명으로 플래그를 사용해라 라고 말했습니다만.

이렇게도 사용할 수있다는 점을 보여줄려구.

예제를 작성했습니다. 메뉴를 분기하는 것이지요.

대부분 잘 아시겠지만. 질문이 들어왔으니 여기서 설명을 잠시하면

-----------------------------------------------

플래그가 있으면 -> 새로운 버튼이 있는 메뉴 호출

플래그가 없으면 -> 그냥 메뉴 호출

----------------------------------------------

이 되겠습니다.

ifflag MENU1 menuroad.txt
menu menu.txt

대략 이렇게 되겠지요.

MENU1이 세워져있으면 다른 메뉴를 호출하기위한 스크립트 로드

아니면 그냥 메뉴호출

이 되겠습니다.

예제를 다운 받으시고

실행해보시면 알기쉬울겁니다.

플래그를 지우실려면 cfg 파일을 지우시면 플래그가 사라집니다.
flag.zip

라고 여기에다가도 올리기. ㅋ

by 지나가는행인1 | 2007/12/04 13:15 | VNAP강의 | 트랙백

브이냅강좌 - 아이템 합성

*아이템 합성에 대한 내용입니다.

이것은 앞쪽에 나왔던 아이템알고리즘을 기반으로 하고있습니다.

 

네 안녕하세요. 아이템합성에 관한 것입니다.

물론 앞에 아이템 알고리즘을 기반으로 구현한겁니다.

 

소스라기보다는 개념 비슷한 문제이기때문에

간단한 설명과 짧은 예시로 설명을 할테니 양해를 바랍니다.

 

강의의 포인트

1.아이템마다 번호를준다.(합성될 아이템번호를 잘생각해서 배정한다.)

2. 합성된 아이템은 번호에 맞춰서 계산한다.

 

위의 2가지가 포인트입니다.

 

자 그럼 예와 함께 설명을 해볼까요

 

우선 자신이 임의로 아이템 번호를 정합니다.

정하는방법은 2^N번째 순으로 정합니다.(N은 0,1,2,3..)

  수학아님.즉 1,2,4,8,16,32,64.128,.....

예를 들면

1 = 사과  2 = 우유 4 = 바나나 8 = 딸기 16=레몬 32=사이다.......

그리고 합성된 아이템은  각 숫자의 합으로 줍니다.

예를 들면 사과 + 우유의 경우

사과(1)+우유(2) =사과우유(3)

이런식으로 줍니다.

 그렇게 주어지면 전체 아이템 리스트가 작성되겠죠.

1 = 사과  2 = 우유 3=사과우유 4 = 바나나 6=바나나 우유 8 = 딸기 10 =딸기우유

16=레몬 32=사이다  ..... 48 = 레몬사이다............

(소스가 아니라 종이나 기타 메모장같은곳에 작성하면서 만드시는 겁니다.

이 부분은 스크립트가 아닙니다. 주의!!)

 

이 아이템 리스트를 기반으로

아이템리스트 스크립트와 합성 소스를 작성하는 겁니다.

합성 소스는 다음과 같은 형식으로 진행됩니다.

 

1.합성할아이템을 선택받습니다.

  작성자의 편의에 따라 변수로 받던지 선택문으로 받던지 재량에 맡깁니다.

2.합성할 아이템의 숫자를 더해 그 숫자가 아이템리스트에 있으면 합성성공

  없으면 실패한것입니다.

 

예) 딸기(8)+우유(2)=딸기우유(10) 10번이 존재함으로 합성성공

레본(16)+사과(1)=???(17) 17번이 존재하지않으므로 합성실패

 

위의 사항으로 진행을 하면 됩니다.

이를 중복을 최대한 없애기 위해 funcsnr 과 return 명령어를 사용합니다.

(아이템 리스트 검사할때 아이템 리스트 스크립트를 불러들어 체크

 리스트에 있으면 그 아이템을 출력 해주고 바로 리턴,

없으면 실패하는 스크립트를 호출하거나 실패를 출력해주고 리턴)

 

물론 숫자를 주는것을 조절해서 3개이상도 가능합니다만

제일처음 숫자배정할때 신경을 써야겠죠.

 

ps 설마 예제가 그렇다고 음식만 합성되는것 아니냐? 라는 딴지거는분은 없겠죠.

ps2 이해가 안되시면 아이템알고리즘 정독을 해주세요.

ps3 제가 후반부(?)에 강의했던 내용은 전부다

 브이냅 게시판에 있는 모든 앞부분 강의를 이용한 것일뿐입니다.

 앞강의를 잘 살펴보시면 좋은 내용이 많습니다. 질문하시기전 앞부분의 강의를 검색해 주세요.

by 지나가는행인1 | 2007/11/13 23:43 | VNAP강의 | 트랙백 | 덧글(3)

브이냅강좌 - 말풍선(비추천)

그렇게 필요하지는 않을지도 모르는 것을 생각해낸 모군....
저번 강의때 써먹은 글씨를 띄우는 명령어를 이용해서 다른 짓(?)을 해봅시다!!
라고 생각이 났습니다. 만화에서 보이듯이 말 풍선을 써보자!!! 라는 생각입니다.
뭐 스크립트고 뭐고 상관없습니다만 그래도 설명을

--------------------------------
cg 호텔로비.png
char OL사복2.png
char OL.bmp 1 1 280
char 말풍선.png 100 -10 -20 //말풍선 그림을 띄우는 겁니다.
settextcolor (250,148,147) //색깔바꾸기
drawtext 70 90 노가다성이
drawtext 70 130 심한 일이다
text [OL여사원] ........어쩌라구..
wait
--------------------------------

뭐 내용은 간단합니다.
포인트는 말풍선 그림파일을 사용하는 겁니다.
char 명령어에서 파일이름 다음의 좌표가 X,Y좌표 라는것을 이용해
적당히 배치해준후 drawtext로 대사를 써넣는 겁니다.
'그냥 그림에 말풍선을 넣으면 될텐데'라고 생각하실 수도 있는데
그런경우 말풍선을 일일히 넣어줘야한다는 단점이...

이것을 응용할경우 캐릭터 그림을 띄우고 대사창과 대사를 천천히 띄움으로써
만화를 보는것과 같은 느낌을 줄 수도 있다는 겁니다.

 

Tip
 drawtext 와 폰트 크기를 조절하는 것을 이용하면 멋있는 화면 및 타이틀을
쉽게 써먹을 수 있습니다.
검은 바탕에 흰글씨로 '에피소드 1' 이런식으로 쉽게 표현할수가 있죠.

물론 다른색 글씨라던지 그림에 글씨가 가득차는 표현이라든지도 만들수 있습니다.

(창세기전3파트1에서 살라딘이 동생때문에 혼돈됬을때 나온것처럼)


노가다 심함

by 지나가는행인1 | 2007/11/13 23:43 | VNAP강의 | 트랙백

브이냅 강좌 - 맵이동

예 두번째 강의입니다.
자꾸 가리君님 강좌를 베끼는 것 같아서 미안할 따름입니다....
뭘 해야 할지 잘 몰라서.. 이해해 주시기 바랍니다.
오늘은 VNAP으로 아래 가리君님의 강좌처럼 나타내는 방법입니다.
이번에는 준비물이 많습니다. 장소CG가 기본으로 있어야 하고. 버튼크기의 장소줄임CG가 선택과 선택하지 않았을때 2장이 필요합니다.즉 장소하나당 CG3장입니다.
선택할때 쓸 CG는 크기를 통일해서 줄여주세요.
자 그럼 스크립트를 보면서 말하죠.
*여전히 태그등은 못쓰므로 텍스트만...
-------------------------------------------------------------------------
{secnario.txt}
cg 거리.png {기본적으로 깔 거리CG입니다.}
text 자 이제 이동해봅시다!
menu 거리.txt {메뉴를 불러오는 것입니다. 이부부은 어렵기때문에 뒤에 따로 설명을 하겠습니다. 지금은 '아 메뉴를 불러오는 거구나' 라고만 아셔도 상관없습니다.}

{거리.txt}
button loadsnr s놀이터.txt (10,10,130,90) g놀이터.png 놀이터.png 놀이터.png
{버튼을 만드는 것입니다. g놀이터 파일은 흑백으로 선택않했을 때 보여질 CG 놀이터는 선택했을 때 보여질 CG입니다. 선택을 하면 s놀이터.txt 파일을 불러옵니다, ( )안의 숫자는 (왼쪽. 위. 오른쪽.아래) 좌표입니다.}
button loadsnr s동물원.txt (200,10,320,90) g동물원.png 동물원.png 동물원.png
button loadsnr s공원.txt (310,210,430,290) g공원.png 공원.png 공원.png
button loadsnr s신사.txt (410,410,530,490) g신사.png 신사.png 신사.png
button loadsnr s영화관.txt (150,110,270,190) g영화관.png 영화관.png 영화관.png
button loadsnr s묘지.txt (150,210,270,290) g묘지.png 묘지.png 묘지.png

{놀이터.txt}
cg cg놀이터.png
text 성공했다아~~~~~~
wait
____________________________________________________________________________
나머지도 놀이터와 같이 만드면 되니 패스!!

자 그럼 위에서 언급한 메뉴란 개념을 잡고 가죠.
개념이라고 할것도 없는데. 이 메뉴란 기능은 원래는 시작하기,종료,오마케,BGM,불러오기 등에 쓰라고 만든것 같은데 다른 용도로도 쓸 수있죠.
그냥 이 메뉴를 사용하면 화면에 버튼식으로 나타낼수 있다고 생각하시면 되요.
다만 '메뉴'란 명령어를 불러들인 스크립트는 메뉴 명령어밖에 사용못하니 염두에 두시고요. 저번 강의와 연개해서 한다면, 돈을 코인 모양의 CG로 나타내 선택한다거나 손위에 동전이 있는 그림으로 홀짝을 선택하게 할 수도 있겠죠. 뿐만아니라. 화면을 2분할로 나누게해서 시나리오 절반을 분기로 나누게 한다거나 쓸 방법이 여러가지죠.
다만 지정 좌표 (왼,위,오른,아래)에서 왼,위에 고정된다는 점을 염두해 주세요.
-----------------------------------------
이것 아타락시아 캐릭터 본떠서 하면
SD캐릭터 움짤이동 하는것 가능

by 지나가는행인1 | 2007/11/13 23:42 | VNAP강의 | 트랙백

브이냅강좌 - 대사창에 캐릭터 얼굴세우기 (비추천)

질문&답변에 대사창에 캐릭터를 세울수는 없나요?란 내용의 질문이 있어서

올립니다만.... 솔직히 개인적으로 비추천입니다...

다른 획기적인 방법이 나오지 않는 이상 노가다 성이 짙고...

결정적으로 대사창의 크기를 변경하니 상황설명이나 묘사등 캐릭터가 필요없는

부분에서 부자연스러움이 너무나 눈에 띕니다.

개인적으로는 비추천입니다만. 원하시는 분들이 있어서 올립니다.

굳이 쓰시고 싶으시다면 대사창을 만들어서 인물이 들어가는 란은 특정 그림으로 채우는 방법이 낳을듯 싶네요. 

 

여기부터 강의

 

우선 대사창의 크기부터 조절해야합니다.

크기는 vnap.ini 파일을 열어봅시다. 거기서 쭉 내려가다보면

TEXT_WINDOW_RECT=(150,350,625,450) 란 항목이 있습니다.

(오른쪽 수치는 제가 임의로 입력한것이니 신경쓰시지 마시고요)

오른쪽 수치가 창의 위치입니다. (X좌표시작점.Y좌표시작점.X좌표끝점.Y좌표끝점)

입니다. x좌표의 시작점을 크게만들수록 대사창이 오른쪽으로 가겠죠. y좌표를 크게만들수록

대사창의 높이가 낮아지겠죠. 대충 개념만 잡으시면 됩니다.

제일 좋은 방법은 직접 수치를 넣어가면서 대사창의 크기를 조절하는 것입니다.

 

이제 스크립트입니다.

제가 예제로 하나 만들었으니 살펴봐주세요 //이후는 설명

---------------------------------

cg 호텔로비.png // 배경 깔기
char OL사복2.png // 캐릭터CG
char OL.bmp 1 1 280

  //대사창 옆의 CG입니다. 앞의 1은 출력될 시간. 두번째는 X좌표, 세번째꺼는 y좌표입니다.
text [OL레이디] 노가다성이 심한 일이다 //대사
wait //대기

----------------------------------

여기서 주의할 점은 대사창 옆의 CG 크기의 통일과 좌표의 설정입니다.

이같은 경우는 직접 넣어가면서 맞춰보는 수밖에 없습니다.

노가다성이 심하죠...

대사창출력CG를 맞춰야하는 이유는 안 맞출경우 하나하나다 좌표를 새로 잡아야하므로

반드시 크기를 일정하게 만드세요.

by 지나가는행인1 | 2007/11/13 23:40 | VNAP강의 | 트랙백

브이냅강좌 - 아이템알고리즘

간만에 올리는 군요.

기본적인 문법이라든지 화면에 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 출저를 밝히지 않는 무단도용은 사양하겠습니다.

by 지나가는행인1 | 2007/11/13 23:39 | VNAP강의 | 트랙백

◀ 이전 페이지          다음 페이지 ▶