Difference between revisions of "Bethesda Tutorial Papyrus Variables and Conditionals/ko"
imported>Weakbeginner (Created page with "{{Tutorial Index |series=Scripting |chapter=2 |Prev=Bethesda_Tutorial_Papyrus_Hello_World/ko |Next=Bethesda_Tutorial_Papyrus_Introduction_to_Properties_and_Functions/ko }} =...") |
imported>Weakbeginner |
||
(2 intermediate revisions by the same user not shown) | |||
Line 20: | Line 20: | ||
변수는 어떠한 정보나 대상의 저장공간으로 볼 수 있다. 당신은 변수값들을 설정할 수 있으며, 수치적으로 값을 증가 혹은 감소 시킬 수 있고, 후에 그 내용들을 다시 불러올 수 있다. | 변수는 어떠한 정보나 대상의 저장공간으로 볼 수 있다. 당신은 변수값들을 설정할 수 있으며, 수치적으로 값을 증가 혹은 감소 시킬 수 있고, 후에 그 내용들을 다시 불러올 수 있다. | ||
이번에는 플레이어가 활성화 횟수를 카운트 하여 그 변수를 [[Bethesda_Tutorial_Papyrus_Hello_World/ko|Hello World 튜토리얼]]에서 우리가 썼던 스크립트에 추가할 것이다. 그리고 매번 다른 값이 나오게 할 것이다. | |||
기둥의 Reference창을 다시 열고, HelloWorldScript를 우클릭한다. "Edit Source"를 선택하여 스크립트 편집 창을 띄운다. | |||
당신의 스크립트는 다음과 같이 나올 것이다. : | |||
<source lang="papyrus"> | |||
Scriptname HelloWorldScript extends ObjectReference | |||
{This is my very first script!} | |||
Event OnActivate(ObjectReference akActionRef) | |||
Debug.MessageBox("Hello, World!") | |||
endEvent | |||
</source> | |||
이제 변수를 추가해보자. 아래 문장을 "Event OnActivate" 문장의 '''상단'''에 추가한다. | |||
<source lang="papyrus"> | |||
int count ;stores the number of times this object has been activated | |||
</source> | |||
* '''int''' count ;stores the number... - '''int''' 는 변수의 타입을 정의한다. 여기서 "'''Int'''eger"는 소수점이 없는 양,음수의 정수이다. | |||
* int '''count''' ;stores the number... - '''count'''는 우리가 변수에 부여한 이름이다. 나중에 다시 쓰게 될 것이다. | |||
* int count ''';stores the number...''' - 세미콜론(''';''') 뒤에 있는 문장들은 ''코멘트''의 역할을 한다. 즉, 스크립트 자체가 영향을 받는 것은 아니지만, 누군가가 당신의 스크립트를 보았을 때 이해를 돕는다. | |||
숫자를 세는 문장을 추가해보자. "Event OnActivate..." 문장과 "Debug.MessageBox..." 문장 사이에 다음을 추가한다. | |||
<source lang="papyrus"> | |||
count = count + 1 | |||
</source> | |||
이것이 위에서 말한 내용이다. "count"라는 변수에 1을 더한 값을 받아서 다시 "count" 변수에 저장하는 방식이다. 다시 말해, 조건을 만족할 때마다 동등 표시(=)의 좌측 변수가 우측 식의 결과값으로 다시 저장된다는 것이다. | |||
=run time에서 스크립트의 변수 보기= | |||
현재 게임이 실행되지 않고 있어야 한다. 스크립트를 저장한 후 reference 창에서 "OK"버튼을 누르고 닫는다. 도구 막대에서 저장 버튼을 눌러 당신의 플러그인을 저장한다. | |||
다시 게임을 실행시키고 전에 만들어 둔 기둥으로 이동한다. (참고: 콘솔창을 열고 물결키(~)를 누르고 다음을 입력한다:) | |||
COC MolagBalVoiceCell | |||
우선 우리는 "count" 변수의 값을 확인해야 한다. 따로 설정하기 전 기본값은 0이다. | |||
콘솔창을 다시 열고(~) 콘솔창이 열려 있는 상태에서 마우스로 기둥을 선택한다. 기둥을 마우스로 선택하면 콘솔창 상단에 "'WETempActivator'"와 괄호 속 숫자를 볼 수 있을 것이다. ("WETempActivator"는 뜨지 않을 수 있다.) | |||
이제 콘솔창에 다음을 입력한다. : | |||
ShowVars | |||
그러면 콘솔창에서 다음과 같이 표시되는 것을 볼 수 있다. : | |||
--- Papyrus --------------------- | |||
HelloWorldScript: | |||
Script state = "" | |||
count = 0 | |||
"Count" 변수값이 0인 것을 볼 수 있다. | |||
{{WarningBox|"count"값이 0이 아닌 경우 : 플러그인을 저장하고 게임을 로드한 후 콘솔창으로 위의 과정을 하기 전 기둥을 활성화 시켰다면, 그 횟수도 카운트 되어 count값이 0이 아니게 된다. 이럴 경우 기둥을 활성화 시키기 전 파일을 로드하여 활성화 값을 초기화하고 다시 선택 → showvars를 입력한다.}} | |||
콘솔창을 닫고(~) 기둥을 3번 활성화시킨다. ("Hello World!" 메세지 박스를 3번 뜨게 한다.) | |||
좋다. 이제 어떻게 해야할까? 우리는 이제 위 정보를 이용하여 당신이 기둥을 클릭한 수만큼 다른 메세지를 출력할 수 있다. 게임을 종료하고 다시 스크립트를 편집한다. | |||
=상황별 명령어 (if-then-else)= | |||
이제 우리는 "[[Statement_Reference#If_Statement|상황별 명령어]]"를 추가할 것이다. 이는 스크립트 내에서 발생하는 것들을 논리적으로 제어할 수 있게 한다. "Debug.MessageBox("Hello, World!")" 문장을 아래 내용으로 바꾼다. | |||
<source lang="papyrus"> | |||
if count == 1 | |||
Debug.MessageBox("Hello, World!") | |||
elseif count == 2 | |||
Debug.MessageBox("Hello, World. Again!") | |||
else | |||
Debug.MessageBox("Hello, World. Enough already!") | |||
endif | |||
</source> | |||
카운트한 값에 따라 스크립트의 행동이 달라지게 되었다. 여기서는 다른 메세지를 출력한다. 여기서 짚고 넘어가야 할 중요한 것은 이중 동등 기호이다.(==) 이는 좌변과 우변의 값이 같은지 아닌지를 판별한다. 단일 동등 기호(=)는 당신이 변수를 저장한다는 것이다. 처음에는 다소 헷갈릴 수 있고, 숙달된 스크립터들도 이 두가지 기호가 갑자기 헷갈려서 그들의 스크립트가 작동하지 않으면 머리를 쥐어뜯기도 한다. | |||
복습 : | |||
*단일 동등 기호 (=) : 우변의 결과를 좌변값에 다시 입력함 | |||
*이중 동등 기호 (==) : 좌변의 값과 우변의 값이 같은지 확인 | |||
당신의 스크립트는 이제 아래와 같을 것이다. : | |||
<source lang="papyrus"> | |||
Scriptname HelloWorldScript extends ObjectReference | |||
{This is my very first script!} | |||
int count ;stores the number of times this object has been activated | |||
Event OnActivate(ObjectReference akActionRef) | |||
count = count + 1 | |||
if count == 1 | |||
Debug.MessageBox("Hello, World!") | |||
elseif count == 2 | |||
Debug.MessageBox("Hello, World. Again!") | |||
else | |||
Debug.MessageBox("Hello, World. Enough already!") | |||
endif | |||
endEvent | |||
</source> | |||
다시 게임을 켜고 cell로 이동하여 기둥을 작동시킨다. 작동시킬 때마다 3가지의 다른 메세지가 뜨는 것을 확인한다. | |||
=추가 정보= | |||
*사용할 수 있는 단순 변수값들의 종류에 대한 정보가 필요하면, [[Literals Reference]]를 참고하라. | |||
*연산자(=, +=, 그 외)에 대한 정보가 필요하면, [[Operator Reference]]를 참고하라. | |||
*if-then-else같은 명령어에 대한 정보가 필요하면, [[Statement Reference]]를 참고하라. | |||
Edited by AG초보(2016.05.05) | |||
{{Languages|Bethesda_Tutorial_Papyrus_Variables_and_Conditionals}} | {{Languages|Bethesda_Tutorial_Papyrus_Variables_and_Conditionals}} | ||
{{Template:Tutorial_Bottom_Bar | |||
|Prev=Bethesda_Tutorial_Papyrus_Hello_World/ko | |||
|Next=Bethesda_Tutorial_Papyrus_Introduction_to_Properties/ko | |||
}} |
Latest revision as of 02:03, 5 May 2016
Bethesda Tutorial Papyrus Variables and Conditionals/ko | |
---|---|
Scripting Series, Chapter 2 | |
Return to Tutorial Hub | |
Previous Tutorial | Next Tutorial |
개요[edit | edit source]
이 튜토리얼은 당신이 Hello World 튜토리얼을 완수했다고 가정한다.
이번 튜토리얼에서는 :
- 변수를 만들고 사용하는 방법
- 나중 작업을 위해 스크립트에 메모를 남기는 방법
- 게임 내에서 스크립트를 변수 값에 대해 작동시키는 방법
- 상황에 따른 if-then-else 명령어를 스크립트에 추가하고 사용하는 방법
을 배울 것이다.
변수(Variables)[edit | edit source]
변수는 어떠한 정보나 대상의 저장공간으로 볼 수 있다. 당신은 변수값들을 설정할 수 있으며, 수치적으로 값을 증가 혹은 감소 시킬 수 있고, 후에 그 내용들을 다시 불러올 수 있다.
이번에는 플레이어가 활성화 횟수를 카운트 하여 그 변수를 Hello World 튜토리얼에서 우리가 썼던 스크립트에 추가할 것이다. 그리고 매번 다른 값이 나오게 할 것이다.
기둥의 Reference창을 다시 열고, HelloWorldScript를 우클릭한다. "Edit Source"를 선택하여 스크립트 편집 창을 띄운다.
당신의 스크립트는 다음과 같이 나올 것이다. :
Scriptname HelloWorldScript extends ObjectReference
{This is my very first script!}
Event OnActivate(ObjectReference akActionRef)
Debug.MessageBox("Hello, World!")
endEvent
이제 변수를 추가해보자. 아래 문장을 "Event OnActivate" 문장의 상단에 추가한다.
int count ;stores the number of times this object has been activated
- int count ;stores the number... - int 는 변수의 타입을 정의한다. 여기서 "Integer"는 소수점이 없는 양,음수의 정수이다.
- int count ;stores the number... - count는 우리가 변수에 부여한 이름이다. 나중에 다시 쓰게 될 것이다.
- int count ;stores the number... - 세미콜론(;) 뒤에 있는 문장들은 코멘트의 역할을 한다. 즉, 스크립트 자체가 영향을 받는 것은 아니지만, 누군가가 당신의 스크립트를 보았을 때 이해를 돕는다.
숫자를 세는 문장을 추가해보자. "Event OnActivate..." 문장과 "Debug.MessageBox..." 문장 사이에 다음을 추가한다.
count = count + 1
이것이 위에서 말한 내용이다. "count"라는 변수에 1을 더한 값을 받아서 다시 "count" 변수에 저장하는 방식이다. 다시 말해, 조건을 만족할 때마다 동등 표시(=)의 좌측 변수가 우측 식의 결과값으로 다시 저장된다는 것이다.
run time에서 스크립트의 변수 보기[edit | edit source]
현재 게임이 실행되지 않고 있어야 한다. 스크립트를 저장한 후 reference 창에서 "OK"버튼을 누르고 닫는다. 도구 막대에서 저장 버튼을 눌러 당신의 플러그인을 저장한다.
다시 게임을 실행시키고 전에 만들어 둔 기둥으로 이동한다. (참고: 콘솔창을 열고 물결키(~)를 누르고 다음을 입력한다:)
COC MolagBalVoiceCell
우선 우리는 "count" 변수의 값을 확인해야 한다. 따로 설정하기 전 기본값은 0이다.
콘솔창을 다시 열고(~) 콘솔창이 열려 있는 상태에서 마우스로 기둥을 선택한다. 기둥을 마우스로 선택하면 콘솔창 상단에 "'WETempActivator'"와 괄호 속 숫자를 볼 수 있을 것이다. ("WETempActivator"는 뜨지 않을 수 있다.)
이제 콘솔창에 다음을 입력한다. :
ShowVars
그러면 콘솔창에서 다음과 같이 표시되는 것을 볼 수 있다. :
--- Papyrus --------------------- HelloWorldScript: Script state = "" count = 0
"Count" 변수값이 0인 것을 볼 수 있다.
콘솔창을 닫고(~) 기둥을 3번 활성화시킨다. ("Hello World!" 메세지 박스를 3번 뜨게 한다.)
좋다. 이제 어떻게 해야할까? 우리는 이제 위 정보를 이용하여 당신이 기둥을 클릭한 수만큼 다른 메세지를 출력할 수 있다. 게임을 종료하고 다시 스크립트를 편집한다.
상황별 명령어 (if-then-else)[edit | edit source]
이제 우리는 "상황별 명령어"를 추가할 것이다. 이는 스크립트 내에서 발생하는 것들을 논리적으로 제어할 수 있게 한다. "Debug.MessageBox("Hello, World!")" 문장을 아래 내용으로 바꾼다.
if count == 1
Debug.MessageBox("Hello, World!")
elseif count == 2
Debug.MessageBox("Hello, World. Again!")
else
Debug.MessageBox("Hello, World. Enough already!")
endif
카운트한 값에 따라 스크립트의 행동이 달라지게 되었다. 여기서는 다른 메세지를 출력한다. 여기서 짚고 넘어가야 할 중요한 것은 이중 동등 기호이다.(==) 이는 좌변과 우변의 값이 같은지 아닌지를 판별한다. 단일 동등 기호(=)는 당신이 변수를 저장한다는 것이다. 처음에는 다소 헷갈릴 수 있고, 숙달된 스크립터들도 이 두가지 기호가 갑자기 헷갈려서 그들의 스크립트가 작동하지 않으면 머리를 쥐어뜯기도 한다.
복습 :
- 단일 동등 기호 (=) : 우변의 결과를 좌변값에 다시 입력함
- 이중 동등 기호 (==) : 좌변의 값과 우변의 값이 같은지 확인
당신의 스크립트는 이제 아래와 같을 것이다. :
Scriptname HelloWorldScript extends ObjectReference
{This is my very first script!}
int count ;stores the number of times this object has been activated
Event OnActivate(ObjectReference akActionRef)
count = count + 1
if count == 1
Debug.MessageBox("Hello, World!")
elseif count == 2
Debug.MessageBox("Hello, World. Again!")
else
Debug.MessageBox("Hello, World. Enough already!")
endif
endEvent
다시 게임을 켜고 cell로 이동하여 기둥을 작동시킨다. 작동시킬 때마다 3가지의 다른 메세지가 뜨는 것을 확인한다.
추가 정보[edit | edit source]
- 사용할 수 있는 단순 변수값들의 종류에 대한 정보가 필요하면, Literals Reference를 참고하라.
- 연산자(=, +=, 그 외)에 대한 정보가 필요하면, Operator Reference를 참고하라.
- if-then-else같은 명령어에 대한 정보가 필요하면, Statement Reference를 참고하라.
Edited by AG초보(2016.05.05)
Language: | English • français • 日本語 • 한국어 • polski • русский |
---|
Previous Tutorial | Return to Tutorial Hub | Next Tutorial |