개인 자료란 (JE)

  서버 커뮤니티

Profile 랄라라룽 대표칭호 없음
Profile

질문하기 커맨드

스코어보드 값만큼 데미지 주기..

2023.08.20 조회 수 134 추천 수 0
이해도 중급자 
게임버전 (JE) 1.19.4, 1.20, 1.20.1 
게임버전 (BE) 관련없음 

안녕하세요 취미로 커맨드 하고 있는 그냥 사람입니다.

단도직입적으로 말씀드리면 damage 명령어 이용하는 것 말고 스코어보드 자체 값을 피해화 해서 데미지를 줄 수 있다고 들었던 것 같은데 이게 커맨드작인지 데이터 팩인지 기억이 안나네요.. 

가능하시다면 예시문 하나만 들어주면 감사하겠습니다

감사합니다.


5개의 댓글

김형원
2023.08.20

데이터팩이라면 재귀함수를 이용하시면 됩니다

만약 스냅샷이라면 매크로를 쓰시면 되고요

IRONBLOCK
2023.08.20
@김형원

재귀함수로 어떤식으로 하는지 자세하게 설명해주실 수 있나요?

김형원
2023.08.21
@IRONBLOCK

프로그래밍에서 기본적인 반복문의 구조는 다음과 같습니다

 

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

 

for(int i = 0; i < 10; i++){

 

개쩌는 코드

 

}

 

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

 

이를 풀어쓰면 다음과 같습니다

 

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

 

int i = 0;

 

while(i < 10){

 

개쩌는 코드

 

i++;

 

}

 

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

 

마인크래프트에서 조건문은 execute if로 쓸 수 있고 다시 실행하는건 재귀함수로 할 수 있습니다.

 

 

여기서 재귀함수가 뭔지 잘 모르는 사람을 위해 설명하자면 재귀함수는 "자기 자신을 실행하는 함수"입니다

 

아래와 같은 내용의 asdf.mcfunction이라는 함수가 있다고 생각해봅시다

 

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

 

#asdf.mcfunction

 

function pack:asdf

 

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

 

이때 asdf를 실행시키면 어떻게 될까요?

 

첫번째 실행된 asdf는 다시 asdf를 실행시킬 것입니다. 이때 실행된 asdf 역시 마찬가지로 asdf를 실행시킬 것입니다.

 

이런 식으로 무한하게 asdf가 호출되면서 결국 끝나지 않는 함수가 될 것입니다

 

다행히도 마크엔 1틱 안의 실행 횟수 제한이 있기에 영원히 안 끝나진 않습니다

 

 

다시 주제로 돌아와 반복문 이야기를 해봅시다

 

위에서 언급한 while문을 데이터팩으로 구현하면 아래와 같습니다

 

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

 

#run.mcfunction

 

scoreboard players set i num 0

 

function pack:while

 

 

#while.mcfunction

 

개쩌는 코드

 

scoreboard players add i num 1

 

execute if score i num matches ..9 run function pack:while

 

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

 

이제 한줄씩 설명해보자 run을 실행시키면 i를 0으로 만듭니다. while문 이전에 있는 int i = 0;과 같은 역할입니다.

 

이후 while함수를 살펴보면 개쩌는 코드 뒤에 i에 1을 더하고 i가 9 이하라면 다시 while을 호출합니다.

 

while(i < 10)에서 i < 10이 execute if인거죠. 스코어보드는 정수만 넣을 수 있기 때문에 i <= 9와 i < 10은 같은 조건이라고 봐도 무방합니다.

IRONBLOCK
2023.08.22
@김형원

아니아니 재귀함수는 대충 이해했는데 스코어보드 값으로 피해를 어케주는지 궁금해서요

김형원
2023.08.22
@IRONBLOCK

damage 명령어를 사용하시면 됩니다

"개쩌는 코드" 부분에 실행자에게 데미지를 주는 명령어를 넣으면 될거에요

뉴스 및 창작물
/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1

/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240428135129

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0

/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

1

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0