위 두 함수를 설명하면 event_user(번호)는 오브젝트의 유저 이벤트 (번호)를 실행하는 내장 함수이고, event_perform(이벤트 대분류, 이벤트 소분류)는 인자에 정의된 이벤트를 실행하는 함수이다. 각각 인자에 대한 설명은 링크 참조.

이와 별도의 인자를 담은 변수를 조합하면 다음과 같은 행위도 가능하다.

 

// 대상 오브젝트 이벤트:
// 생성 이벤트
#macro EVENT_MAX_ARGUMENTS 16 // 예시
event_arguments = array_create(EVENT_MAX_ARGUMENTS, undefined); // 인자 배열
event_return = undefined; // 반환값

// 유저 이벤트 (번호)
event_return = undefined; // 반환값 초기화
switch (event_arguments[0])
{
	case 0:
		(이벤트 코드);
		event_return = (반환값);
		break;
	...
}

// 실행 스크립트:
var _arr = (인자값을 담은 배열);
var _ret = undefined; // 반환값
with (대상 오브젝트/인스턴스)
{
	event_arguments = _arr;
	event_user(번호);
	_ret = event_return;
}
return _ret;

// event_perform(대분류, 소분류) 도 같은 방법으로 사용 가능하다.

위 코드는 특정 값을 담은 배열을 대상 오브젝트에서 인자로 받고 이벤트 코드를 실행한 다음, 반환값 변수에 반환값을 저장한다. 그리고 실행 스크립트에서는 그 반환값을 반환한다. 배열 대신 구조체를 써도 된다. 물론 상속도 가능하다.

by SHOOTING_STAR 2026. 5. 12. 20:30
| 1 |