UMUX Reference_11 - HonestSquare/UMUX GitHub Wiki
- 본 문서는 API 레벨 11(5.0 Evry)를 기반으로 작성된 UMUX 레퍼런스입니다.
-
Ctrl
+F
또는F3
을 통해 개별 열람이 가능합니다.
- 변수 및 함수 위치는 이름의 접두사를 우선하되 로마자(A-Z) 순대로 정렬하였습니다.
접두사 목록
- on
- init
- is(has), get(find)
- set
- add
- update, check
- clear, delete, reset
- show
- 상기 목록에서 일치하는 접두사가 없는 경우, show 접두사보다도 아래에 위치해 두었습니다.
- 다만 일부는 편의상을 이유로 예외 정렬한 곳도 있어, 소스 코드의 모든 객체가 위치를 이 규칙에 따라 정렬된 건 아닙니다.
- 초기 설정
- 경기장 초기화
- 상수
- class GameManager
- class Administration
- class BlacklistSystem
- class NotificationManager
- class NotificationSystem
- class ChatManager
- class ChatSystem
- class CommandManager
- class CommandSystem
- class PlayerManager
- class PlayerSystem
- class ScoreManager
- class StatusSystem
- class TouchedPlayer
- class TimeManager
- class DateSystem
- class TimerSystem
- class GameSystem
- class LogManager
- class LogSystem
- class LogTagSystem
- 명령어
- 이벤트
- 기타
ROOMNAME: String
- 서버 이름을 저장합니다
DESCRIPTION: String
- 서버 설명을 저장합니다
MAXLIMIT: Int
- 최대 인원을 저장합니다
HOSTNAME: String
- 호스트 이름을 결정합니다
PUBLIC: Bool
- 서버 공개 여부를 결정합니다
TOKEN: String
- 만료되지 않은 값을 지정하면 서버 초기화 직후 recaptcha 인증을 건너뜁니다
-
token
은 여기서 발급 받을 수 있습니다
NOPLAYER: Int
- 호스트 공개 여부를 결정합니다
LANG_CODE: String
- 언어 코드를 결정합니다
REGION_CODE: String
- 지역 코드를 결정합니다
LAT: Float
- 시스템의 위도를 결정합니다
LON: Float
- 시스템의 경도를 결정합니다
PASSWORD: String
- 시스템 비밀번호를 저장합니다
MAXPLAYERS: Int
- 최대 인원을 결정합니다
INITSERVER(str: String)
- 서버를 초기화 합니다
ROOM: RoomObject
-
INITSERVER(PASSWORD)
및HBInit()
를 호출합니다 -
RoomObject
를 반환합니다
requestExternalFile(ln: String)
- 외부 파일을 호출하여 반환합니다
convertScript(ln: String)
- 오브젝트를 json 형식으로 반환합니다
-
requestExternalFile()
를 호출합니다
c_ADMIN_TYPE: Object
- 권한 유형을 저장합니다
c_TEAM: Object
- 팀 유형을 저장합니다
c_GAME_STATS: Object
- 경기 진행 상태를 저장합니다
c_PLAYERINFO_TYPE: Object
- 플레이어 정보 유형을 저장합니다
c_LIST_ICON: Object
- 제목 아이콘 목록을 저장합니다
c_LIST_COLOR: Object
- 색상 목록을 저장합니다
c_LIST_STYLE: Object
- 메시지 서식 목록을 저장합니다
c_LIST_SOUND: Object
- 메시지 소리 목록을 저장합니다
c_LIST_EMOTION: Array<String>
- 이모티콘 목록을 저장합니다
c_TIME_TYPE: Object
- 시간 출력 형식 목록을 저장합니다
c_TAG_NOTFCN: Object
- 알림 태그 목록을 저장합니다
c_TAG_GRADE: Array<String>
- 권한 및 블랙리스트 마크 목록을 저장합니다
c_TAG_TEAM: Object
- 팀 마크 목록을 저장합니다
c_LOG_TYPE: Object
- 로그 유형 목록을 저장합니다
c_ERROR_TYPE: Object
- 오류 유형 목록을 저장합니다
defaultStadiumList: Array<String>
- 기본 맵 데이터베이스를 저장합니다
customStadiumList: Array<String>
- 커스텀 맵 데이터베이스를 저장합니다
initStadiums(links: Array<String>)
- 맵 데이터베이스를 초기화합니다
constructor(dynamicAdmin, isAllowJoin, isLockStadium, defaultStadium, maxAdmin, pinHost, ...blacklist)
#address: PlayerObject.conn
- 공용 주소를 저장합니다
#nickname: String
- 이름을 저장합니다
#super: Bool
- 접속 불가 유무를 저장합니다
#reason: String
- 등록 사유를 저장합니다
constructor(isSuper: Bool, name: String, conn: PlayerObject.conn, reason: String)
-
#address
의 값을 반환합니다
-
#nickname
의 값을 반환합니다
-
#super
의 값을 반환합니다
-
#reason
의 값을 반환합니다
set addr(v: String)
-
#address
의 값을 변경합니다
set rsn(v: String)
-
#reason
의 값을 변경합니다
hasMatchedAddress(conn: PlayerObject.conn)
- 공용 주소 데이터 일치 여부를 확인합니다
hasMatchedDatabase(name: String, address: PlayerObject.conn, isSuper: Bool)
- 데이터베이스 일치 여부를 확인합니다
hasMatchedName(str: String)
- 이름 데이터 일치 여부를 확인합니다
#id: String
- 알림 ID를 저장합니다
#name: String
- 알림 이름을 저장합니다
#targets: Array<Int>
- 알림 대상을 저장합니다
#tag: Int
- 알림 분류를 저장합니다
#stringTitle: String
- 제목 문자열을 저장합니다
#stringContent: String
- 내용 문자열을 저장합니다
#styleTitle: String
- 제목 서식을 저장합니다
#styleContent: String
- 내용 서식을 저장합니다
#colorTitle: Int
- 제목 색상을 저장합니다
#colorContent: Int
- 내용 색상을 저장합니다
#time: Int
- 생성 시간을 저장합니다
#findColors(t: Int, n: Int)
- 특정 색상을 반환합니다
#sendAnnouncement(string: String, color: Int, style: String, sound: String)
- 메시지를 생성합니다
constructor(name: String, tag: Int, string: String, style: String, color: Int, time: Int, targets: Array<Int>)
#id
의 값을 반환합니다
#name
의 값을 반환합니다
#targets
의 값을 반환합니다
#tag
의 값을 반환합니다
#stringTitle
의 값을 반환합니다
#stringContent
의 값을 반환합니다
#styleTitle
의 값을 반환합니다
#styleContent
의 값을 반환합니다
#colorTitle
의 값을 반환합니다
#colorContent
의 값을 반환합니다
#time
의 값을 반환합니다
hasTitle(void)
- 제목 포함 여부를 반환합니다
out(delay: Int, sound: String)
- 알림을 출력합니다
constructor(isFreeze, isLockPrivateChat, strictLevel, maxForbiddenWordCount, maxRepeatedCount, ...bannedWords)
#id: Int
- 플레이어의 공용 ID를 저장합니다
#forbiddenWordCount: Int
- 금지어 누적 감지량을 저장합니다
#logList: Array<String>
- 채팅 기록을 저장합니다
#repeatedCount: Int
- 반복 채팅 누적 감지량을 저장합니다
#time: Int
- 입력 시간을 저장합니다
#timeList: Array<Int>
- 시간 기록을 저장합니다
constructor(id: Int, time: Int)
-
#id
의 값을 반환합니다
-
#forbiddenWordCount
의 값을 반환합니다
-
#repeatedCount
의 값을 반환합니다
-
#logList
의 값을 반환합니다
-
#timeList
의 값을 반환합니다
-
#time
의 값을 반환합니다
set cntFwd(v: Int)
-
#forbiddenWordCount
의 값을 변경합니다
set cntRpt(v: Int)
-
#repeatedCount
의 값을 변경합니다
hasMutedChat(void)
- 채팅 금지 여부를 반환합니다
hasRepeatedChat(void)
- 반복 채팅 감지 여부를 반환합니다
findChatLogs(max: Int)
- 채팅 로그 목록을 반환합니다
addChatLog(msg: String, time: Int)
- 채팅 로그 데이터베이스를 추가합니다
updateChatLog(msg: String, time: Int)
- 채팅 로그 데이터베이스를 갱신합니다
deleteChatLog(void)
- 채팅 로그 데이터베이스를 삭제합니다
- 명령어 데이터베이스를 처리합니다
#linkedFunction: Object
- 연결된 함수를 저장합니다
#name: String
- 명령어 이름을 저장합니다
#readOnly: Bool
- 명령어 데이터베이스의 읽기 전용 모드 여부를 저장합니다
#values: Array<String>
- 입력 문자열을 저장합니다
-
#name
의 값을 반환합니다
-
#linkedFunction
의 값을 반환합니다
-
#readOnly
의 값을 반환합니다
-
#values
의 값을 반환합니다
set val(v: Array<String>)
-
#values
의 값을 변경합니다
- 전적 데이터베이스를 처리합니다
#id: Int
- 플레이어의 공용 ID를 저장합니다
#win: Int
- 승리한 경기 횟수를 저장합니다
#lost: Int
- 패배한 경기 횟수를 저장합니다
#goal: Int
- 득점한 골의 수를 저장합니다
#ownGoal: Int
- 실점한 골의 수를 저장합니다
#assist: Int
- 도움 횟수를 저장합니다
constructor(id: Int)
-
#assist
의 값을 반환합니다
-
#goal
의 값을 반환합니다
- 전적 순위를 계산하여 반환합니다
-
#id
의 값을 반환합니다
-
#lost
의 값을 반환합니다
-
#ownGoal
의 값을 반환합니다
- 전적 점수를 계산하여 반환합니다
- 전적 기록을 문자열로 반환합니다
- 플레이어의 상세 기록 정보를 반환합니다
- 플레이어의 순위 정보를 반환합니다
-#win
의 값을 반환합니다
- 승률 값을 반환합니다
set assist: Int
-
#assist
의 값을 변경합니다
set goal: Int
-
#goal
의 값을 변경합니다
set lost: Int
-
#lost
의 값을 변경합니다
set ownGoal: Int
-
#ownGoal
의 값을 변경합니다
set win: Int
-
#win
의 값을 변경합니다
clearPlayer(void)
- 플레이어의 전적 데이터베이스를 지웁니다
- 선두자 데이터베이스를 처리합니다
#id: Int
- 플레이어의 공용 ID를 저장합니다
#disc: Object
- 0번째 디스크의 속성을 저장합니다
#pos: Object
- 플레이어의 좌표를 저장합니다
#team: Int
- 플레이어의 팀을 저장합니다
#time: Int
- 감지 시간을 저장합니다
constructor(id: Int)
-
#id
의 값을 반환합니다
-
#disc
의 값을 반환합니다
-
#pos
의 값을 반환합니다
-
#team
의 값을 반환합니다
-
#time
의 값을 반환합니다
hasCommonRange(ball: Int, range: Int)
- 플레이어와 디스크 간의 충돌 여부를 반환합니다
- 시간 및 타이머 데이터베이스를 전반적으로 제어합니다
#timeFormats: Int
- 시간 출력 형식을 저장합니다
#timerList: Array<TimerSystem>
- 타이머 데이터베이스를 저장합니다
constructor(timeFormats: Int)
- 날짜 및 시간 데이터베이스를 반환합니다
-
initDate()
를 호출합니다
- 시간 출력 형식을 반환합니다
- 오후 및 오전을
2
또는1
의 값으로 반환합니다
- 타이머 데이터베이스를 반환합니다
set fmtTime(index: Int)
- 시간 출력 형식을 변경합니다
initDate(milliseconds: Int)
- 시간 데이터베이스를 초기화합니다
initTimer(name: String, id: String, func: Object, player: Int, delay: Int, isRepeat: Bool, preId: String, seq: Int)
- 타이머 데이터베이스를 초기화합니다
findTimer(findId: String)
- 특정 ID를 가진 타이머의 데이터베이스를 반환합니다
findTimerByName(name: String, player: Int)
- 특정 이름을 가진 타이머의 데이터베이스를 반환합니다
findTimerByPlayer(target: Int)
- 특정 플레이어의 타이머 데이터베이스를 반환합니다
findTimers(target: Int, hasTarget: Bool)
- 타이머 목록을 반환합니다
addTimer(name: String, func: Object, player: Int, delay: Int, isRepeat: Bool, runDirectly: Bool, seq: Int)
- 타이머 데이터베이스를 추가합니다
clearTimer(findId: Int, skipTrmnFn: Bool)
- 타이머 데이터베이스를 삭제합니다
clearTimerByName(name: String, player: Int)
- 특정 이름을 가진 타이머의 데이터베이스를 삭제합니다
clearTimerByPlayer(player: Int)
- 특정 플레이어의 타이머 데이터베이스를 삭제합니다
resetTimers(void)
- 타이머 데이터베이스를 모두 삭제합니다
- 시간 시스템을 처리합니다
#milliseconds: Int
- 밀리초를 저장합니다
constructor(milliseconds: Int)
- 날짜 데이터를 반환합니다
- 시간을 밀리초 단위로 반환합니다
- 연도 단위를 반환합니다
- 월 단위를 반환합니다
- 일 단위를 반환합니다
- 시간 단위를 반환합니다
- 분 단위를 반환합니다
- 초 단위를 반환합니다
- 오전 및 오후에 따라
2
또는1
의 값을 반환합니다
showCurrentTime(type: Int)
- 현재 시간을 출력합니다
showDate(void)
- 현재 날짜 및 시간을 출력합니다
showNormalTime(void)
- 현재 시간을 간단히 출력합니다
showTime(void)
- 현재 시간을 자세히 출력합니다
- 타이머 시스템을 처리합니다
#id: String
- 타이머의 ID를 저장합니다
#name: String
- 타이머의 이름을 저장합니다
#player: Int
- 플레이어의 ID를 저장합니다
#time: Int
- 등록 시간을 저장합니다
#delay: Int
- 지연 시간을 저장합니다
#exctFn: Object
- 실행 함수를 저장합니다
#trmnFn: Object
- 종료 함수를 저장합니다
#proc: Object
- 처리 함수를 저장합니다
#sequence: Int
- 진행 순서를 저장합니다
#isRepeat: Bool
- 반복 여부를 저장합니다
constructor(name: String, id: String, exct: Object, trmn: Object, delay: Int, preId: String, target: Int, seq: Int)
- 추가로 호출된 타이머를 지우고 데이터베이스를 갱신합니다
-
#id
의 값을 반환합니다
-
#name
의 값을 반환합니다
-
#player
의 값을 반환합니다
-
#time
의 값을 반환합니다
-
#delay
의 값을 반환합니다
-
#exctFn
의 값을 반환합니다
-
#trmnFn
의 값을 반환합니다
-
#proc
의 값을 반환합니다
-
#sequence
의 값을 반환합니다
-
#isRepeat
의 값을 반환합니다
findTimerByName(void)
- 특정 이름을 가진 타이머 데이터베이스를 반환합니다
findTimerByPlayer(void)
- 특정 플레이어의 타이머 데이터베이스를 반환합니다
clearTimer(bypass: Bool)
- 타이머 데이터베이스를 지웁니다
clearTimerByName(void)
- 특정 이름을 가진 타이머의 데이터베이스를 지웁니다
clearTimerByPlayer(void)
- 특정 플레이어의 타이머 데이터베이스를 지웁니다
calcCurrentSequence(mx: Int, mn: Int)
- 반복 타이머의 현재 진행 순서를 반환합니다
calcTotalSequence(seq: Int)
- 반복 타이머의 누적 진행 순서를 반환합니다
- 로그 데이터베이스를 전반적으로 제어합니다
#logTagList: Array<LogTagSystem>
- 로그 태그 데이터베이스를 저장합니다
#errorTagList: Array<Object>
- 오류 태그 데이터베이스를 저장합니다
#logList: Array<LogSystem>
- 로그 데이터베이스를 저장합니다
constructor(void)
- 오류 태그 데이터베이스를 불러옵니다
-
convertScript()
를 호출합니다
-
#logTagList
의 값을 반환합니다
-
#errorTagList
의 값을 반환합니다
-
#logList
의 값을 반환합니다
initLog(id: Int, time: Int, io: Bool, tag: Int, content: String)
- 로그 데이터베이스를 초기화합니다
-
LogSystem
클래스를 호출하고 반환합니다
initLogTag(id, textColor, backgroundColor, borderColor)
- 로그 태그 데이터베이스를 초기화합니다
-
LogTagSystem
클래스를 호출하고 반환합니다
findErrorTagById(target: Int)
- 특정 ID를 가진 오류 태그 데이터베이스를 반환합니다
findLogById(target: Int)
- 특정 ID를 가진 로그 데이터베이스를 반환합니다
findLogTagById(target: Int)
- 특정 ID를 가진 로그 태그 데이터베이스를 반환합니다
addLogList(id, time, io, tag, content)
- 로그 데이터베이스를 추가합니다
- 로그 데이터베이스 초기화를 위해
initLog()
를 호출합니다
addLogTagList(id, textColor, backgroundColor, borderColor)
- 로그 태그 데이터베이스를 추가합니다
- 로그 태그 데이터베이스 초기화를 위해
initLogTag()
를 호출합니다
sendConsole(c: Int, a: String, t: Int, m: String)
- 콘솔로 전송합니다
error(type: Int, ...replace: Array<String>)
- 로그 오류를 전달합니다
log(io: Bool, msg: String, type: Int, ...replace: Array<String>)
- 로그를 전달합니다
- 로그 시스템을 처리합니다
#id: Int
- 로그의 ID를 저장합니다
#time: Int
- 로그 기록 시간을 저장합니다
#io: Bool
- 로그의 입출력 유형을 저장합니다
#tag: Int
- 로그 태그 유형을 저장합니다
#content: String
- 로그 내용을 저장합니다
#hasFinished: Bool
- 로그 전송 여부를 저장합니다
#hasExpired: Bool
- 로그 만료 여부를 저장합니다
#expire(void)
- 로그를 만료 처리합니다
#record(str: String, time: Int, arrow: String, txc: Int, bgc: Int, brd: Int)
- 로그 기록을 처리합니다
constructor(id: Int, time: Int, io: Bool, tag: Int, content: String)
-
#id
의 값을 반환합니다
-
#time
의 값을 반환합니다
-
#io
의 값을 반환합니다
-
#tag
의 값을 반환합니다
-
#ctn
의 값을 반환합니다
-
#hasFinished
의 값을 반환합니다
-
#hasExpired
의 값을 반환합니다
set hasFinished(v: Bool)
-
#hasFinished
의 값을 변경합니다
send(void)
- 로그를 전달합니다
- 로그 태그 시스템을 처리합니다
#id: Int
- 태그의 ID를 저장합니다
#textColor: Int
- 로그 출력시 텍스트 색상을 저장합니다
#backgroundColor: Int
- 로그 출력시 배경 색상을 저장합니다
#borderColor: Int
- 로그 출력시 테두리 색상을 저장합니다
constructor(id: Int, textColor: Int, backgroundColor: Int, borderColor: Int)
-
#id
의 값을 반환합니다
-
#textColor
의 값을 반환합니다
-
#backgroundColor
의 값을 반환합니다
-
#borderColor
의 값을 반환합니다
- 명령어 입력을 통해 특정 기능을 시스템에서 수행합니다
-
ChatManager
클래스의onPlayerChat()
가 명령어 입력을 감지하기 위해 이 데이터베이스를 호출합니다 -
GameManager
클래스의runCommand()
가 이 데이터베이스로부터 기능을 수행할 수 있도록 연결합니다 -
CommandManager
클래스의initCommand()
가 명령어 데이터베이스를 초기화합니다. - 명령어 추가는 아래와 같이 작성합니다
// 게임 채팅에서 `!1234`, '!!1234', '?1234' 중에 하나를 입력하면
// AMN.logonAdmin()를 실행합니다
[AMN.logonAdmin] : ["1234"]
// 하나의 함수에 여러 개의 문자열을 대응할 수 있습니다
// 아래와 같은 경우 `1234`, `4321`, `1111`, `2222` 중에 하나를 골라서 `!` 및 `!!` 또는 `?`를 앞에 두면
// AMN.logonAdmin()를 실행합니다
[AMN.logonAdmin] : ["1234", "4321", "1111", "2222"]
- UMUX 내부 시스템을 접근하는 명령어입니다.
- 기존 명령어 삭제 및 신규 명령어 추가는 금지합니다.
- 기존 명령어 접근을 막거나 주석 처리는 권장하지 않습니다.
- 명령어 목록 초기화를 위해
CommandManager
클래스의initCommands()
를 호출합니다.
- UMUX 표준 명령어입니다.
- 기존 명령어 삭제 및 신규 명령어 추가는 권장하지 않습니다.
- 기존 명령어 접근을 막거나 주석 처리는 권장하지 않습니다.
- 명령어 목록 초기화를 위해
CommandManager
클래스의initCommands()
를 호출합니다.
- UMUX 커스텀 명령어입니다.
- 신규 명령어 추가에 적합하며, 권장합니다.
- 명령어 목록 초기화를 위해
CommandManager
클래스의initCommands()
를 호출합니다.
onGameStart(byPlayer: PlayerObject)
- 경기가 시작되면 호출합니다
-
GameManager
클래스의onGameStart()
를 호출합니다
onGameTick(void)
- 경기가 진행되는 동안 호출합니다
-
GameManager
클래스의onGameTick()
를 호출합니다
onGameStop(byPlayer: PlayerObject)
- 경기가 종료되면 호출합니다
-
GameManager
클래스의onGameStop()
를 호출합니다
onGamePause(byPlayer: PlayerObject)
- 경기가 중지되면 호출합니다
-
GameManager
클래스의onGamePause()
를 호출합니다
onGameUnpause(byPlayer: PlayerObject)
- 경기가 재개되면 호출합니다
-
GameManager
클래스의onGameUnpause()
를 호출합니다
onKickRateLimitSet(min: Int, rate: Int, burst: Int, player: PlayerObject)
- 킥 제한이 설정되면 호출합니다
-
GameManager
클래스의onKickRateLimitSet()
를 호출합니다
onPlayerActivity(player: PlayerObject)
- 플레이어의 키 입력이 감지되면 호출합니다
- 선두자 데이터베이스 갱신을 위해
PlayerManager
클래스의onPlayerActivity()
를 호출합니다
onPlayerAdminChange(givenPlayer: PlayerObject, byPlayer: PlayerObject)
- 플레이어의 권한이 변경되면 호출합니다
- 권한 데이터베이스 갱신을 위해
Administration
클래스의onPlayerAdminChange()
를 호출합니다
onPlayerBallKick(player: PlayerObject)
- 플레이어가 공을 차면 호출합니다
- 선두자 데이터베이스 추가를 위해
GameManager
클래스의onPlayerBallKick()
를 호출합니다
onPlayerChat(player: PlayerObject, msg: String)
- 플레이어가 채팅을 전송하면 호출합니다
- 채팅 내용을 확인하기 위해
ChatSystem
클래스의onPlayerChat()
를 호출합니다 - 명령어 입력 기록을 남기지 않기 위해
false
의 값을 반환합니다
onPlayerJoin(player: PlayerObject)
- 신규 플레이어가 접속하면 호출합니다
- 플레이어 데이터베이스 추가를 위해
GameManager
클래스의onPlayerJoin()
를 호출합니다
onPlayerLeave(player: PlayerObject)
- 접속자가 퇴장하면 호출합니다
- 강제 퇴장 직후 이벤트를 제어하는
gm_onPlayerLeave
타이머를 생성하기 위해TimeManager
클래스의addTimer()
를 호출합니다- 플레이어 데이터베이스 갱신을 위해
GameManager
클래스의onPlayerLeave()
를 호출합니다
- 플레이어 데이터베이스 갱신을 위해
onPlayerKicked(kickedPlayer: PlayerObject, reason: String, ban: Bool, byPlayer: PlayerObject)
- 접속자가 강제 퇴장되면 호출합니다
- 플레이어 데이터베이스 갱신을 위해
Administration
클래스의onPlayerKicked()
를 호출합니다
onPlayerTeamChange(player: PlayerObject, byPlayer: PlayerObject)
- 플레이어의 팀이 변경되면 호출합니다
- 플레이어 데이터베이스 갱신을 위해
PlayerManager
클래스의onPlayerTeamChange()
를 호출합니다 - 선두자 데이터베이스 갱신을 위해
ScoreManager
클래스의onPlayerTeamChange()
를 호출합니다
onPositionsReset(void)
- 골 판정 직후 포지션이 초기화되면 호출합니다
-
GameManager
클래스의onPositionsReset()
를 호출합니다
onStadiumChange(newMap: String, byPlayer: PlayerObject)
- 경기장이 교체되면 호출합니다
- 경기장 유효 확인을 위해
GameManager
클래스의onStadiumChange()
를 호출합니다
onRoomLink(url: String)
- 시스템에서 링크가 생성되면 호출합니다
-
GameManager
클래스의onRoomLink()
를 호출합니다
onTeamGoal(team: TeamID)
- 골이 판정되면 호출합니다
-
GameManager
클래스의onTeamGoal()
를 호출합니다
onTeamVictory(scores: ScoresObject)
- 경기 승패가 결정되면 호출합니다
-
GameManager
클래스의onTeamVictory()
를 호출합니다
...
class GameManager{ /*** 게임 매니저 클래스 ***/
...
onTeamGoal(team){ /* 골 판정 이벤트 */
...
let goalTimer = TM.addTimer("goal", {
EXECUTE : () => { // 실행 함수
let showAvatar = function(s, t, c){
...
// s: 타이머의 현재 진행 순서
// t: 플레이어의 ID
// c: 변경할 등번호의 문자(열)
}
let target = goalTimer.findTimerByName().at(-1);
if(target == undefined) return false;
let currentOrder = goalTimer.calcCurrentSequence(target.seq, 2);
let totalSequence = goalTimer.calcTotalSequence(target.seq);
showAvatar(currentOrder, goalTimer.player, '⚽');
if(PM.isValid(assist)) showAvatar(currentOrder, assist, '👍');
if(totalSequence > 5) return goalTimer.clearTimerByName();
},
TERMINATE : () => { // 종료 함수
PM.resetAvatar(goalTimer.player);
if(PM.isValid(assist)) PM.resetAvatar(assist);
}
}, player, SEC_TO_MS / 2, true, true);
...
}
...
}
...
- 이 타이머는 골 판정 직후부터 일정한 간격의 반복을 몇 초 동안, 득점자/어시스트의 등번호를 변경하는 기능을 수행합니다
-
goalTimer
의 값은 이 타이머의 데이터베이스를 저장합니다
let goalTimer = TM.addTimer("goal", {
let goalTimer = TM.addTimer("goal", {
EXECUTE : () => { // 실행 함수
...
},
TERMINATE : () => { // 종료 함수
...
}
}, player, SEC_TO_MS / 2, true, true);
/*
(SEC_TO_MS / 2)의 값은 500ms와 같습니다
*/
-
EXECUTE
기능은 타이머가 목표 시간에 도달하면 실행합니다EXECUTE : () => { // 실행 함수 let showAvatar = function(s, t, c){ ... // s: 타이머의 현재 진행 순서 // t: 플레이어의 ID // c: 변경할 등번호의 문자(열) } let target = goalTimer.findTimerByName().at(-1); if(target == undefined) return false; let currentOrder = goalTimer.calcCurrentSequence(target.seq, 2); let totalSequence = goalTimer.calcTotalSequence(target.seq); showAvatar(currentOrder, goalTimer.player, '⚽'); if(PM.isValid(assist)) showAvatar(currentOrder, assist, '👍'); if(totalSequence > 5) return goalTimer.clearTimerByName(); },
-
target
의 값에 상주 중인 최신 타이머의 데이터베이스를 저장합니다
let target = goalTimer.findTimerByName().at(-1);
-
currentOrder
의 값에 타이머의 현재 순서를 저장합니다. 여기서는 순서의 최댓값으로 2가 지정되었습니다
let currentOrder = goalTimer.calcCurrentSequence(target.seq, 2);
- 값은 0, 1 중에 하나로 결정됩니다
- 누적 진행 순서가
5
를 초과한 경우 타이머를 삭제합니다- 이때 종료 함수를 실행합니다
-
-
TERMINATE
기능은EXECUTE
실행 직후, 또는 타이머가 종료되는 순간에 실행합니다TERMINATE : () => { // 종료 함수 PM.resetAvatar(goalTimer.player); if(PM.isValid(assist)) PM.resetAvatar(assist); }
- 이 타이머의 종료 함수에서는 득점자/어시스트를 타이머 실행 직전의 등번호로 되돌리는 기능을 수행합니다
- 종료 함수는 생략할 수 있습니다
let goalTimer = TM.addTimer("goal", () => { // 실행 함수만 ... }, player, SEC_TO_MS / 2, true, true);