이윤상
대표칭호 없음
이해도 | 1.12 |
---|---|
게임버전 (JE) | 페이퍼 |
게임버전 (BE) | 월드 가드 플러그인 |
스크립트 애드온 | 2.5.3 |
on enter "treetest1": if 1 player is in the region "treetest1": cancel event message "들어갈 수 없습니다"
오류 문장: Can't compare an entity type with 'in the region "treetest1"' (실험3.sk, line 101: if 1 player is in the region "treetest1":')
어느 한 구역에 플레이어 한명만 들어가게 할 수는 없는건가요?
스크립터브혼
2021.03.22특정 구역에 몇명의 플레이어가 있는지 확인하려면 두가지 값이 필요합니다. 구역과 플레이어죠.
이 중 데이터에 접근할 키, 다시말하면 주최가 되는 데이터가 어떤것인가를 결정해야합니다.
만약 플레이어가 어떤 구역에 있는지 알고싶다면, 플레이어가 키가 되고 플레이어로 접근 할수 있는 데이터에 구역 정보를 저장해야 합니다.
질문 주신 특정 구역에 플레이어가 있는지 확인하려면, 구역이 키가 되어 구역 정보로 접근 할 수 있는 데이터에 플레이어 정보를 저장해야합니다.
On Enter 이벤트에서 [Region]익스프레션으로 구역 데이터를 받아 올 수 있습니다.
구역 데이터를 변수 이름으로하여 플레이어 데이터를 저장하세요.
플레이어가 한명이어야 한다는 것은 여러 플레이어 중 한명의 플레이어를 특정해야하기 때문에
플레이어를 구분할 수 있는 데이터가 필요합니다. 이것은 닉네임, UUID 등 여러가지가 있겠죠.
> set {region::%region%} to uuid of player
이벤트가 동작할 때, 위에서 말한 '구역 데이터로 접근 가능한 변수'에 '플레이어를 구분할 수 있는 데이터'를 저장해 두었다가
다시 동작할 때, 해당 변수의 값이 있는지를 비교하면 됩니다.
> {region::%region%} is set
> cancel event
On Enter 이벤트가 취소되면 플레이어는 접근 할 수 없게 됩니다.
반대로 플레이어가 나가게 된다면 변수를 제거해야겠죠.
> set {region::%region%}