개인 자료란 (JE)

  서버 커뮤니티

Profile Custom 대표칭호 없음
Profile

질문하기 스크립트

질문 있습니다!

2021.03.11 조회 수 159 추천 수 0
이해도 1.16 
게임버전 (JE) 페이퍼 
스크립트 애드온 2.5.3 

지정한 구역에 플레이어가 5명 까지만 들어 갈 수 있고 그 뒤로는  못 들어가게 막고 싶습니다!

구역을 지정하는 것 까지는 아는데

플레이어 인원 수 제한 하는 법을 모르겠습니다 ㅠㅠ

10개의 댓글

스크립터브혼
2021.03.11

구역을 어떻게 지정했나요?

플러그인으로? 스크립트로?

Custom
2021.03.11
@스크립터브혼

그 만X민님 스크립트 강좌 유튜브에 나온대로 했습니다.

스크립터브혼
2021.03.11
@Custom

만드신 코드 덧글로 올려보세요.

[본문에 스크립트 코드 넣는 법] 참고하셔서 업로드해주세요.

Custom
2021.03.11
@스크립터브혼
on enter "A1":
    if player
스크립터브혼
2021.03.11
@Custom

구역에 입장한 인원을 알려면 [On Region Enter/Leave]이벤트가 동작할 때 해당 지역 정보를 이름으로하는 중첩변수를 증감하면 됩니다. 해당 이벤트의 지역값은 [Region]익스프레션으로 받을 수 있습니다.

on enter of region "A1":
    add 1 to {region_max_player::%region%}

on leave of region "A1":
    remove 1 from {region_max_player::%region%}

이 변수를 토대로 변수가 5인 경우 이벤트를 캔슬하면 됩니다.


변수, 조건문, 스크립트 문서 읽는 법 등등의 기초 사용법을 공부하시려면 [입문자, 초보자를 위한 스크립트 강좌] 참고하세요.

Custom
2021.03.11
@스크립터브혼

감사합니다!

 

Custom
2021.03.11
@스크립터브혼
on enter of region "A1":
    add 1 to {region_max_player::%region%}
    if {region_max_player::A1} >= 2:
        Cancel Event
        send "입장 불가"
        
on leave of region "A1":
    remove 1 from {region_max_player::%region%}
    Cancel Event
    send "필드에서 나감"

말씀 하신대로 해봤는데 오류는 없다고 뜨는데 1명이 들어갈때도 입장이 불가하다 나옵니다..
번거롭게 해드려서 죄송합니다!

스크립터브혼
2021.03.11
@Custom

중첩변수의 익스프레션 (%region%)이 "A1"인지 확인해 보세요.

다르다면 {region_max_player::A1} 변수가 아니게 됩니다.


메세지로 출력해보면 됩니다.

> send "%region%"

Custom
2021.03.12
@스크립터브혼
on enter "a2":
    add 1 to {region_max_player::%region%}
    if {region_max_player::%region%} >= 2:
        Cancel Event
        send "입장 불가"
        send "%{region_max_player::%region%}%"

feac0231f28899879edcde99be66efa7.png

알려주신 send "%region% 하면
a2 in world world 라고 출력 되네요!

스크립터브혼
2021.03.12
@Custom

그럼 조건문을 바르게 수정하세요.

> if {region_max_player::A1} >= 2:

확인된 글자로 인덱스를 사용해야합니다.


> if {region_max_player::a2 in world world} >= 2:

> if {region_max_player::%region%} >= 2:


익스프레션, 변수에 대해 잘 모르시겠다면 [예제분석 3 : 변수의 종류와 쓰임]을 참고하세요.