아직 스크립트를 모른다면? -https://mon0rail.tistory.com/2

 

 

명령어를 입력했을 때, 만약 플레이어가 특정 월드에 있다면 다른 곳으로 텔레포트시킨다.

 

플레이어가 접속했을 때, 만약 동시 접속자가 10명을 넘는다면 모두에게 아이템을 준다.

 

누군가가 죽었을 때, 만약 플레이어가 몬스터를 죽인 것이라면 경험치를 추가로 준다.

 

 

위 문장들의 공통점이 있다

 

특정한 사건(이벤트)이 일어났을 때, 무조건 어떤 일을 수행하는 것이 아니라 특정한 조건에 의하여 수행된다.

 

이는 스크립트에서 if(만약 ~ 이라면) 문법을 통해 구현할 수 있고, 이러한 조건을 판단하는 코드를 조건문이라고 한다.

 

좀 더 복잡한 스크립트를 제작하려면 조건문은 필수적으로 사용해야 한다.

 

 

 

command /givetest:
	trigger:
		if player is online:
			give 1 diamond to player
	

 

 

위 조건문에서는 if player is online, 즉 "플레이어가 온라인이면" 이라는 조건을 걸고 있다.

 

그리고 만약 그 조건이 충족된다면 그 밑에 들여쓰기된 코드를 실행한다.

 

플레이어가 직접 위 명령어를 실행하면 플레이어는 온라인이어야 하기 때문에 항상 다이아몬드를 지급한다.

 

 

 

command /givetest2:
	trigger:
		if player has 1 diamond:
			send "1+1 행사 상품입니다!"
			give 1 diamond to player
		send "명령어 종료"
	

 

두 번째 예제에서는 A is B 형식이 아닌, A has B 형식을 갖추고 있다.

 

player has 1 diamond는 플레이어가 1개 이상의 다이아몬드가 인벤토리에 있어야지만 조건이 충족된다.

 

즉, 이미 다이아몬드가 1개 있는 경우엔 "1+1 행사 상품입니다!" 라는 메시지와 함께 다이아몬드를 1개 더 준다.

 

그 뒤에 "명령어 종료"라는 텍스트 출력 코드는 조건문 안에 들여쓰기가 되어있지 않으므로,

 

조건을 만족시키는 것과 상관없이 항상 실행된다.

 

 

command /givetest3:
	trigger:
		set {diamonds} to 3
		if {diamonds} is 1:
			send "Yes"
		else:
			send "No"
	

 

만약 if문 아래에 else(그렇지 않으면~)문을 추가하면, if의 조건을 충족시키지 못했을 때 else문의 코드가 실행된다.

 

위 코드에서는 {diamonds}라는 변수의 값이 1이 아니기 때문에 else로 넘어가서 "No"라는 텍스트가 출력된다.

 

 

 

command /myhand:
	trigger:
		if player's tool is diamond sword:
			send "그 검이 날카로워보이네요"
		else if player's tool is diamond pickaxe:
			send "오늘도 많은 수확이 있길 바래요"
		else if player's tool is diamond axe:
			send "묘목을 다시 심어두는 것도 잊어버리지 마세요"
		else:
			send "보낼 메시지가 없습니다."

 

만약 여러 개의 조건이 있고, 그것을 하나씩 걸러내야 된다면?

 

그렇다면 else if를 사용해야 한다. 위 코드에서는 플레이어가 들고 있는 도구가 무엇인지 판단한다.

 

만약 도구가 다이아몬드 검, 다이아몬드 곡괭이, 다이아몬드 도끼라면 해당 도구에 알맞은 문구를 출력해준다.

 

물론 if를 세 번 사용하더라도 각 도구에 알맞은 메시지를 출력시킬 수는 있다.

 

하지만 세 가지 경우가 모두 아니였을 때 메시지를 출력하려면 else if를 사용해야만 한다.

 

 

 

 

 

 

 

if부터는 활용할 수 있는 방법이 여러 가지라서 프로그래밍과 알고리즘에 대한 어느 정도 지식이 필요하다.

 

스크립트는 문법이 영어와 가까워 쉽지만, 여전히 프로그래밍 언어이기 때문에 상당한 활용 능력이 필요하다.

 

이후 올라오는 글의 예제에 사용되는 조건문은 그 조건문이 어떤 의미인지 간략한 설명을 해놓을 예정이다.

 

더 자세한 내용은 주로 스크립트-심화 카테고리에서 다룰 예정이다.

 

 

+ Recent posts