지난번과 마찬가지로 본문의 간혈적인 번역과 내 별거없는 저차원적인 예제들이 담겨있는 필기정리정도의 글이다.
기본적인 형태의 Task
미션에디터를 사용해서 task를 지정할 경우, 크게 3가지 요소를 활용하게 되는데 첫번째는 Unit(F1)이고, 두번째는 Modules(F7), 세번째는 Trigger(F3)이다.
유닛의 배치가 끝나면 모듈의 Create Task를 통해서임무의 기본적인 사항인 Task ID를 지정해주고 표시될 제목을 설정, 유저가 판단할 수 있는 간단한 설명과 마커를 설정한다.
그 뒤에 Set Task State로 각 상황, 그러니까 임무 성공, 실패 등을 생성해서 그 상황과 트리거등을 연결한뒤 그 다음 상황으로 연결될 수 있도록 링크(F5)해준다.
(유닛과 트리거는 그룹으로 연결하면 트리거에서 그 유닛에 특정된 Activation 메뉴를 사용할 수 있어서 편하다)기본적으로 한 Task당 최소한의 모듈은 createTask, set Task State : Assigned, set Task State : Succeeded로 보인다.
http://community.bistudio.com/wiki/Category:Command_Group:_Briefing
createDiaryRecord
unitName createDiaryRecord parameters
- unitName: Object
- parameters: Array.
can be [subject, text(, task(, state))]
or [subject, [title, text](, task(, state))]
nul = this createDiaryRecord ["Diary", ["Text1", "Text2"]]; |
createDiarySubject
person createDiarySubject [subject,display name] or [subject,display name,picture]
nul = this createDiarySubject ["Text1", "text2"]; |
nul = this createDiarySubject ["Text1", "text2"]; nul = this createDiaryRecord ["Text1", ["Title", "Description"]]; |
createSimpleTask
- Array : ["임무"], ["임무", 상위임무 변수명]
task1 = this createSimpleTask ["Task1"]; task2 = this createSimpleTask ["Task2"]; task11 = this createSimpleTask ["Task1-1",task1]; |
자동으로 Task라는 항목이 생성되면서 지정한 이름으로 하위 항목이 생기고, 그 변수명을 사용해서 또 다시 하위 항목을 생성할 수 있다.
- removeSimpleTask : 이 스크립트를 통해서 제거할 수 있다.
person removeSimpleTask task
- taskParent : 상위 임무를 리턴한다.
taskParent task
- taskChildren : 하위 임무의 목록을 리턴한다
taskChildren task
- simpleTasks : 대상의 모든 임무를 배열로 리턴한다.
simpleTasks person
Return Value : Array
setCurrentTask
Object setCurrentTask Task
Object의 임무중 하나를 현재 활성화된 임무로 만든다.
- currentTask : 현재 활성화된 임무를 리턴한다.
currentTask person
task1 = this createSimpleTask ["TASK1"]; this setCurrentTask task1; hint format["%1",currentTask this]; |
setSimpleTaskDestination
task setSimpleTaskDestination position
임무의 목적지를 설정한다.
task1 = this createSimpleTask ["TASK1"]; task1 setSimpleTaskDestination getPos s1; this setCurrentTask task1; s1은 앞에 있는 병사의 변수명이다. getPos는 물체의 위치값을 리턴받는다. |
- taskDestination task : 좌표값을 리턴 받는다.
task1 = player createSimpleTask ["TASK"];
task1 setSimpleTaskDestination getPos destination;
getPos destination;
taskDestination task1;
setSimpleTaskDescription
task setSimpleTaskDescription array
- Array : [세부 설명,제목, 화면과 지도상에 간략히 표시되는 내용]
task1 = this createSimpleTask ["TASK1"]; task1 setSimpleTaskDestination getPos s1; this setCurrentTask task1; task1 setSimpleTaskDescription ["Description","Task Title","HUD"]; |
- taskDescription : 위와 같은 Array로 해당 임무의 내용을 리턴받는다
taskDescription task
setSimpleTaskTarget
task setSimpleTaskTarget [target, precisePosition]
- precisePosition
- true : 온전히 타겟의 위치가 나타남
- false : 대상에 대한 파악정도에 따라 다름
task1 = this createSimpleTask ["TASK1"]; this setCurrentTask task1; task1 setSimpleTaskDescription ["Description","Task Title","HUD"]; task1 setSimpleTaskTarget [s1, true]; |
setTaskState
task setTaskState state
- state
- "Succeeded"
- "Failed"
- "Canceled"
- "Created"
- "Assigned"
임무의 상태를 지정해주는 스크립트
task1 = this createSimpleTask ["TASK1"];
task1 setTaskState "Assigned";
- taskState : 위 내용을 리턴합니다.
taskState Task
setTaskResult
- task setTaskResult [state,result]
- result : 스크립트등을 수행한다.
task1 = player createSimpleTask ["TASK"]; task1 setTaskResult ["Succeeded", hint "Clear"]; |
- sendTaskResult : AI에게 명령을 하달한 뒤 그 결과를 반송한다
task sendTaskResult [state,result,sentence]
currentTasks
Array = currentTasks member
완료되지 않은 임무들의 목록이 리턴된다.
priority
- priority task
registerTask
새로운 임무 형태를 등록합니다. 세부사항들은 CfgTasks의 하위값으로 정의됩니다.
teamMember registerTask entry name
registeredTasks
해당유닛에게 등록된 모든 임무 타입들의 목록을 리턴합니다.
registeredTasks teamMember
createTask
- 새로운 AI용 임무를 만듭니다. Type은 등록된 임무 타입명이어야합니다.
- teamMember createTask [[type] or [type, parentTask], priority, name1, value1, name2, value2, ...]
taskCompleted
임무 성공여부를 확인합니다.
taskCompleted task
- Return Value : Boolean
taskHint
임무에 대한 기존방식의 알림이지만 ARMA 3형식을 유지하기 위해선 BIS_fnc_showNotification을 사용하길 권고하고 있다.
taskHint [hintText, [r,g,b,a], icon]
- [r,g,b,a] : 색상
- icon : taskNew, TaskDone, taskFailed, taskCurrent
taskhint ["Succeeded",[0,0,0,0],"taskDone"] |
BIS_fnc_showNotification
ARMA 3의taskHint형태
- [template,(arguments)] spawn BIS_fnc_showNotification;
- template : CfgNotification (Ctrl + G)
- arguments : Array
["ScoreAdded",["Added",5]] call BIS_fnc_showNotification; |
unregisterTask
임무 형태를 등록해제시킵니다.
teamMember unregisterTask name
댓글 없음:
댓글 쓰기