프로그래밍/RiveScript

[Tutorial] MORE DEFINITIONS

프리월드 2017. 3. 9. 19:04

begin.rive로 다시 돌아가서 유용한 2가지 타입이 있습니다.


Global Variables


전역 변수(Global Variables)는 봇 변수(bot variables)와 비슷하지만 봇과 관련은 없습니다. 

전역 변수는 RiveScript 인터프리터에 의해 정의 될 수 있습니다. 이번에는  RiveScript 인터프리터에 직접 영향을주는 두 가지 특수한 전역 변수에 대해서 배워 보겠습니다.


Debug Mode

! global debug = true
! global debug = false

이 전역 변수는 RiveScript 인터프리터에서 디버그 모드를 켜거나 끌 수 있습니다. 디버그 모드는 https://play.rivescript.com/에서 Debug Mode를 클릭하면 실제 어떻게 출력 되는지 볼 수 있습니다.


Recursion Depth

! global depth = 50

이 전역 변수는 RiveScript 응답은 서로 리다이렉트 할 수 있기 때문에 무한 재귀를 피할 수있는 보호 기능이 있습니다 (예를 들어, 다른 트리거로 리다이렉트되고 그 트리거가 처음 트리거로 리다이렉트하는 등).

기본적으로 제한 값으로 50으로 설정이 됩니다. 즉, 50개의 리디렉션 후에 응답을 찾을 수 없으면 "ERR: Deep Recursion Detected"라고 응답합니다.  또한 이 값은 0보다 큰수여야 합니다.


Person Substitutions


1인칭 대명사와 2인칭 대명사를 교환하기 위한 기능입니다. brain에서 정의해기 때문에 begin.rive에서 작성 되어야 합니다. 대체를 정의하기 위한 방법은 다음과 같습니다. 

! person i am    = you are
! person you are = i am
! person i'm     = you're
! person you're  = I'm
! person my      = your
! person your    = my
! person you     = I
! person i       = you

대체를 호출 하려면 <person>태그(<star>대치 가능)를 사용하거나 {person}...{/person}로 사용할 수 있습니다. 실제 예를 통해서 테스트를 해보겠습니다.

+ say *
- Umm... "<person>"

실제로 구동 상태에서 "say I am the greatest"라고 메시지를 보내면 봇은 "Umm... "you are the greatest"라고 응답할 것입니다. 만약 대치 하지 않았다고 한다면 봇은 "i am the greatest"라고 말했을 것입니다.

'프로그래밍 > RiveScript' 카테고리의 다른 글

[Tutorial] CONCLUSION  (0) 2017.03.09
[Tutorial] TAGS  (0) 2017.03.09
[Tutorial] The Begin Block  (0) 2017.03.09
[Tutorial] Topics  (0) 2017.03.09
[Tutorial] Conditionals  (0) 2017.03.09