개인 자료란 (JE)

  서버 커뮤니티

Profile sdfdsr 대표칭호 없음

bl9ckSapphire 86355e6bbe4b483482de818ff64e62da

Profile

질문하기 스크립트

스크립트 질문

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

혹시

if argument at 2 contains "테스트":

 여기서  "테스트" 대신에 정수(숫자) 를 인식하게 할 수 있나요?

" if argument at 2 contains integer:  " 로는 안되더라그요 .....





5개의 댓글

무너_
2020.11.08

어떤 변수에 parse해보신 후에, parse error가 존재하는지 보면 될거 같아요.

parse error : https://skriptlang.github.io/Skript/expressions.html#ExprParseError


아래 구문에서 @는 텝을 의미합니다.


set {_var} to arg 2 parsed as integer

if {_var} is not set:

@if parse error is set:

@@#정수가 아닐때의 구문

@else:

@@#argument 2에 입력하지 않았을때의 구문

 

하지만, command /명령어 으로 명령어를 만드셔서 argument at 2를 설정하시려고 하시는 거면

command /명령어이름 [<arg 1의 타입>] [<integer>]를 입력하는 방법도 있습니다.

에초에 명령어를 생성할 때부터 정수값만 받게 할 수 있어요.

 

<integer>로 쓰면, 필수 입력 취급이 되고 [<integer>]로 하시면 선택 입력 취급이 됩니다.

sdfdsr
2020.11.08
@무너_

좋은 정보 감사합니다

스크립터브혼
2020.11.08

[컨디션]과 [타입] 개념을 이해하셔야합니다.

컨디션은 데이터를 비교하는 기능입니다.
[Contains]는 복수의 데이터에 같은 데이터가 있는지 비교하는 컨디션 입니다.


타입은데이터의 형태를 말합니다.
글자는 [Text]타입이고, 숫자는 [Number]타입입니다.

> argument at 2 contains "테스트"
contains는 기본적으로 복수의 데이터에 같은 데이터가 있는지 비교하는 것이지만,
스크립트는 패턴을 통해 여러가지 확장된 기능을 포함합니다.
contains에는 문장 속에 특정 글자가 포함되었는가도 비교 할 수 있습니다.
즉, 위 코드는 두번째 인수에 "테스트"라는 글자가 있는지 비교하는 코드입니다.

> argument at 2 contains integer
이 코드는 두번째 인수에 'integer 타입'이 포함되었는지 비교합니다.
contains는 데이터와 데이터를 비교하기때문에 이 코드는 틀린 코드입니다.
argument at 2는 복수의 데이터도 아닐 뿐더러, integer는 타입이지 데이터가 아닙니다.

argument at 2의 타입을 확인하려면 [Type of] 익스프레션을 사용합니다.
> type of argument at 2 is integer
타입은 타입과 비교해야합니다. 타입은 단/복수가 없기때문에 단수 비교만 합니다.


sdfdsr
2020.11.08
@스크립터브혼

b8cb26b460fe7142218a8a0362b1ebb4.jpg감사합니다. 그런데 혹시 저번에 알려주셨던 탭자동완성 기능에 적용에해보고 싶은데

"type of argument at 2 is integer:" 부분을 어떻게 고쳐야 하는지 알 수 있을까요?


스크립터브혼
2020.11.08
@sdfdsr

tab complete에서 인수는 Text 타입입니다.

글자가 숫자로만 이루어졌는지 확인하려면 무너님 말처럼 [Parser]. [Parser Error]를 사용하세요.