개인 자료란 (JE)

  서버 커뮤니티

Profile 한포동 대표칭호 없음
Profile

질문하기 스크립트

특정 플레이어가 설치한 블럭 제거 스크립트 질문

2021.07.27 조회 수 600 추천 수 0
이해도 1.16 
게임버전 (JE) 페이퍼 
스크립트 버전 초보자(스크립트 구성요소, 기본문법은 알아요) 
스크립트 애드온 2.5.3 

만약 플레이어가 {game::players::1}일때 그 플레이어가 설치한 블럭을 삭제하는 코드가 있을까요? 

4개의 댓글

A_bins
2021.07.27

설치한 블록을 리스트에 넣으세욘 INDEX를 LOCATION으로 VALUE를 BLOCK으로 그 리스트를 이제 원하실때 다시 루프하셔서 INDEX 위치에 VALUE로 설정해주시면 대겟죤?

한포동
2021.07.27
@A_bins

음 제가 무슨 말인지 이해를 못했는데 혹시 간단하게 코드로 보여주실수 있나요...?

스크립터브혼
2021.07.27
@한포동
# 설치
on place:
    loop {game::players::*}:
        {game::players::%loop-index%} is player
        set {player::%loop-index%::%event-location%} to event-block

# 게임이 끝나면~
loop indexes of {player::*}:
    loop {player::%loop-value-1%::*}:
        clear block at loop-value-2
remove {player::*}

플레이어가 블록 설치 시, 게임 참가자 리스트 {game::players::*}를 루프해서 설치한 플레이어가 있다면 게임 참여자 입니다.

게임 참여자라면 설치한 블록을 리스트에 저장합니다.


여기서 loop-index가 사용된 이유는 게임 참가자 리스트 {game::players::*}에서 플레이어의 Key로 사용되는 것이 인덱스이기 때문입니다. 같은 값을 가지고 블록 리스트를 관리하는게 편리해서요.



게임이 끝나면 생성했던 {player::*} 변수의 인덱스를 받아옵니다. 플레이어가 1, 2 인덱스에 각 한명씩이니

인덱스도 1과 2만 있을겁니다. 해당 인덱스를 이름으로하는 블록 리스트들을 모두 제거한 후에

게임이 끝낫으니 생성된 블록 리스트 변수를 모두 제거하면 됩니다.

A_bins
2021.07.27
@한포동

zzz 제가 설명을 잘못하긴 했네요 설치한 블록을 다시 air로 바꿔줘야 하는데 딴소리 했네욘