2013년 6월 4일 화요일

ARMA 커맨드 그룹 : Interaction

화면상에 출력되는 메세지, 다이얼로그, 메뉴등을 다루는 부분이다. GUI 컨트롤과 겹치는 부분이 있다.

미션을 시작할때/ 중간의 전환시의 문구표시라던지 미션을 마친 뒤에 표시되는 효과등에 사용하게 될 것 같다.


actionKeys

해당 액션에 배정되어있는 키를 리턴한다.
Array = actionKeys userAction
actionkeys "reloadMagazine"




actionKeysImages

해당 액션에 대한 버튼 이미지나 설정된 이름등의 리스트를 리턴한다. 
Structured Text = actionKeysImages userAction

hint str (actionkeysImages "reloadMagazine")




actionKeysNames

해당 액션에 설정된 버튼명의 리스트를 리턴한다.
String = actionKeysNames userAction





마우스 휠 스크롤, 키보드의 [,]키로 좌측 상단에 표시시켜서 보통 인벤토리 열람, 무기의 전환, 자리별 차량 탑승등으로 사용해왔던 액션메뉴에 새로운 행동을 추가시키는 스크립트이다.
Number = unitName addAction [title, filename, arguments, priority, showWindow, hideOnUse, shortcut, condition]
  • action : 표시될 이름
  • filename : 실행시킬 파일명 (간단한 명령도 가능)
  • arguments : 함수로 전달시킬것들
  • priority : 액션메뉴에 표시될 순서로 0~6까지 지정가능하며 숫자가 높을 수록 상단에 위치
  • showWindow : 조준점 하단에 해당명령 표시여부
  • hideOnUse : 사용 후 액션 메뉴를 사라지게 할꺼면 true, 계속해서 띄울꺼면 false
  • shortcut : 키매핑을 입력하면 해당 키 입력이 이루어질때 기존의 동작 대신에 추가한 액션을 실행한다.
  • condition : 해당 액션이 활성화되는 조건의 설정.

  • removeAction
    addAction으로 행동 생성시 0번부터 순차적으로 적용되는 번호를 사용해서 특정 행동을 액션메뉴에서 삭제시키는 스크립트.
    unitName removeAction index 
    nul = this addAction ["test", {hint '???'}];
    nul = this addAction ["Remove test", {player removeAction 0}];


createDisplay

해당 디스플레이에 속하는 디스플레이를 생성한다.
parent createDisplay resourceName
  • resourceName : 이 링크의 Rsc로 시작되는 굵은 글씨의 것들이다.

  • closeDisplay
    해당 디스플레이를 닫는다.

    display closeDisplay exitcode
_display createDisplay "RscDisplayMainMap"



createDialog

다이얼로그를 생성한다.
Boolean = createDialog dialogName
createDialog "gui1"
  • closeDialog
    해당 다이얼로그를 닫는다.

    closeDialog idc




  • dialog
    해당 다이얼로그의 현재상태를 리턴한다.

    Boolean = dialog
    • true = open
    • false = closed


createMissionDisplay

해당 디스플레이 하단에 싱글 미션 디스플레이를 하위 디스플레이로 생성한다.이 미션 다이얼로그는 해당루트의 하단에 지정된 문구의 디렉토리를 설정하게 된다.
Display = display createMissionDisplay string

findDisplay 46 createMissionDisplay "Test"




cutFadeOut

해당 레이어의 효과를 제거하고, 페이드아웃할 시간을 지정한다.
layer cutFadeOut delay



  • titleFadeOut
    타이틀 이펙트를 제거하고 정해진 시간동안 페이드 아웃시킨다.
    titleFadeOut duration




cutObj

미션의 description.ext, 캠페인의 description.ext, 글로벌 resource.cpp를 통해서 정의된 객체를 출력한다.
(layer) cutObj [name, type, (speed)]
  • layer : Number = 이 파라미터는 옵션이다. 효과가 보여지게 될 레이어를 선택한다. 0은 가장 뒤에 있는 레이어다. 
  • [name, type, speed]
cutObj ["sphere","PLAIN",3];
0 cutFadeOut 5;





  • titleObj
    description.ext를 통해서 지정된 Object를 출력
    titleObj [text, type, speed]
    • TYPE
      • "PLAIN"
      • "PLAIN DOWN"
      • "BLACK"
      • "BLACK FADED"
      • "BLACK OUT"
      • "BLACK IN"
      • "WHITE OUT"
      • "WHITE IN"
     
 


curRsc

미션의 description.ext, 캠페인의 description.ext, 글로벌 resource.cpp를 통해서 정의된 객체를 출력한다.
cutRsc [name, type, speed]
layer cutRsc [name, type, speed]
  • layer : Number = 이 파라미터는 옵션이다. 효과가 보여지게 될 레이어를 선택한다. 0은 가장 뒤에 있는 레이어다. 
  • [name, type, speed]

cutRsc ["RscMissionEnd","PLAIN",3];
0 cutFadeOut 5;

  • titleRsc
    Description.ext를 통해서 지정된 resource를 출력한다.
    titleRsc [text, type, speed]
    • text : 해당 resource의 클래스명. "Default"는 현재 resource를 제거한다.
    • type
      • "PLAIN"
      • "PLAIN DOWN"
      • "BLACK"
      • "BLACK FADED"
      • "BLACK OUT"
      • "BLACK IN"
      • "WHITE OUT"
      • "WHITE IN"
    • number = 옵션. default 1




cutText

텍스트 메세지를 화면 가운데에 출력한다.
cutText [text,type,speed]
layer cutText [text,type,speed]

  • titleCut
    더이상 사용하지 않는 명령. cutText를 대신 사용하길 권장하고 있다.
    titleCut [text, type, speed]


  • titleText
    화면에 해당 텍스트를 출력한다. cutText를 함께 사용하면 두가지 내용을 같이 출력할 수 있다.
    titleText [text, type, speed]
    • text = String
    • type
      • "PLAIN"
      • "PLAIN DOWN"
      • "BLACK"
      • "BLACK FADED"
      • "BLACK OUT"
      • "BLACK IN"
      • "WHITE OUT"
      • "WHITE IN"
    •  speed : 옵션. default 1

cutText ["cutText","PLAIN",3];
titleText["titleText","Plain down"];



setTitleEffect

타이틀의 효과를 설정한다.
trigger setTitleEffect [type, effect, text]
waypoint setTitleEffect [type, effect, text]
  • type
    • "NONE"
    • "OBJECT"
      • CfgTitles의 하위 클래스 중 text부분에 설정해놓은 형태로 출력한다.
    • "RES"
      • RscTitles의 하위 클래스 중 text부분에 설정해놓은 형태로 출력한다.
    • "TEXT"
      • 해당 문자열을 문자열 그대로 출력하도록한다.
  • Effect
    • "PLAIN"
    • "PLAIN DOWN"
    • "BLACK"
    • "BLACK FADED"
    • "BLACK OUT"
    • "BLACK IN"
    • "WHITE OUT"
    • "WHITE IN"

trigger1 setTitleEffect ["RES","Plain","RscMissionEnd"];


disableUserInput

키보드와 마우스 입력 차단 여부를 설정한다. 일반적으로 화면전환시에 사용한다. 잘못 사용하면 프로그램을 종료해야한다.
disableUserInput state
  • true : 차단
  • false : 차단해제




displayCtrl

지정한 idc를 가지는 컨트롤을 리턴한다.
Control = display displayCtrl idc

displayAddEventHandler

해당 디스플레이에 이벤트 핸들러를 추가한다. 해당 이벤트에 설정된 기본 코드가 제대로 실행되었는지 여부를 리턴한다.
display displaySetEventHandler [handlerName, function]
  • handlerName
    이 스크립트에서 사용할때는 위 링크에 명시되어있는 이벤트명 앞의 on을 떼고 사용해야한다. (예: onMouseMoving → MouseMoving) on을 붙이는건 config에서 사용할때이다.
    Scope부분을 보고 사용할 수 있는 것을 사용하면 된다.
  • function : 해당 핸들러에서 리턴해주는 내용을 _this를 사용해서 활용할 수 있다.


displaySetEventHandler

해당 디스플레이의 이벤트 핸들러를 설정(수정)한다. 해당 이벤트에 설정된 기본 코드가 제대로 실행되었는지 여부를 리턴한다. 자세한 활용은 커맨드 그룹 GUI Control의 ctrlSetEventHandler와 비슷하므로 참조하면 된다.
display displaySetEventHandler [handlerName, function]
  • handlerName
    이 스크립트에서 사용할때는 위 링크에 명시되어있는 이벤트명 앞의 on을 떼고 사용해야한다. (예: onMouseMoving → MouseMoving) on을 붙이는건 config에서 사용할때이다.
    Scope부분을 보고 사용할 수 있는 것을 사용하면 된다.
  • function : 해당 핸들러에서 리턴해주는 내용을 _this를 사용해서 활용할 수 있다.




echo

해당 내용을 디버그 콘솔이나 로그파일로 전송한다. 내부용 버전에서만 가능하고, 판매용에선 사용할 수 없다.
echo text



enableRadio

화면 좌측 하단에 출력되는 라디오 메세지의 출력여부를 설정한다. 
enableRadio state



format

여러 종류의 변수를 활용해서 하나의 문자열을 만든다. 해당 문자열을 다시 숫자로 바꾸고 싶을때는 parseNumber를 사용하면 된다.
String = format [formatString, var1, var2 ...]
  • formatString : %1, %2등을 사용해서 사용할 변수가 들어갈 곳을 지정해서 원하는 문자열을 만든다.
  • val1 : %1에 들어갈 아무 변수
  • val2 : %2에 들어갈 아무 변수

hint format["%1\n %2",player,position player];



formatText

여러가지 변수를 활용해서 structured Text를 만든다. 방식은 format과 같다.
Structured Text = formatText [format, arg1, arg2, ...]




globalChat

해당 유닛이 글로벌 라디오 채널을 통해서 해당 메세지를 보내도록 한다.
unit globalChat chatText

  • groupChat
    그룹 라디오 채널로 해당 유닛이 지정된 문자열을 전송하도록 한다.
    unit groupChat chatText

  • sideChat
  • vehicleChat

player globalChat "Global";
player groupChat "Group";
player sidechat "Side";






globalRadio

description.ext를 통해서 지정해놓은 메세지(텍스트 + 음성)를 글로벌 라디오를 통해서 해당 유닛이 전송하도록 만든다.

unit globalRadio radioName
  • radioName : description.ext에서 지정해놓은 메세지 클래스의 이름. 기본적인 것들은 configFile (Ctrl + G)의 RadioProtocolDefault를 참조하면 된다.

  • groupRadio
    description.ext를통해서 지정해놓은 메세지(텍스트+음성)를 그룹 라디오를 통해서 해당 유닛이 전송하도록 한다.
    unit groupRadio radioName
    • radioName : description.ext에서 지정해놓은 메세지 클래스의 이름
  • sideRadio
    description.ext를통해서 지정해놓은 메세지를 특정 진영 라디오를 통해서 해당 유닛이 전송하도록 한다.
    unitName sideRadio chat
  • vehicleRadio
    description.ext를통해서 지정해놓은 메세지를 차량 라디오를 통해서 해당 유닛이 전송하도록 한다.
    vehicleName vehicleRadio name



hint

지정된 화면 위치에 일정시간이 지나면 사라지는 문자열을 출력한다.
hint text




hintC

hint와 같지만 문자열이 화면가운데에 출력되고 Continue를 누를때까지 게임이 정지된다.
hintC text

player addAction["hintC","hintC 'HintC'"];



hintC array

해당 제목과 내용을 포함한 힌트 다이얼로그를 출력한다. 제대로 작동되지 않는다고 한다.
title hintC [text1, text2, ...]




hintC structuredText

해당 제목과structured Text로 된내용을 포함한 힌트 다이얼로그를 출력한다. 제대로 작동되지 않는다고 한다.
title hintC structuredText




title hintC text

해당 제목과 내용을 포함한 힌트 다이얼로그를 출력한다. 디버그 콘솔이나 init에서 작동하지 않고, execVM처럼 외부에서 호출했을때 정상작동한다.
title hintC text

"Title" hintC "Text"




hintCadet

cadet모드를 사용하는 동안에 해당 문자열로 된 힌트를 출력한다. 문자열에 \n을 포함하면 줄을 나눌 수 있다.
hintCadet text

  • cadetMode
    플레이어의 난이도가 "Recruit"과 "Regular"일경우 true를, "Veteran"과 "Expert"를 플레이하고 있으면 false를 출력한다.
    Boolean = cadetMode



hintSilent

사운드 없이 힌트만 출력한다.
hintSilent text




image

해당 이미지를 포함한 structured Text를 만든다.
Structured Text = image filename




localize

Stringtable.csv를 통해서 정해진 대로 특정 문자열을 다른 문자열로 사용할 수 있게 한다.특정 단어나 문장에 맞춰서 설정해놓은 각각의 언어에 맞게 출력되도록 한다.
localize stringName

댓글 없음:

댓글 쓰기