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 ์ ‘๋‘์‚ฌ๋ณด๋‹ค๋„ ์•„๋ž˜์— ์œ„์น˜ํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ ์ผ๋ถ€๋Š” ํŽธ์˜์ƒ์„ ์ด์œ ๋กœ ์˜ˆ์™ธ ์ •๋ ฌํ•œ ๊ณณ๋„ ์žˆ์–ด, ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ์œ„์น˜๋ฅผ ์ด ๊ทœ์น™์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

์ดˆ๊ธฐ ์„ค์ •

โ“˜โ–ฝ

const ROOMNAME

ROOMNAME: String

  • ์„œ๋ฒ„ ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const DESCRIPTION

DESCRIPTION: String

  • ์„œ๋ฒ„ ์„ค๋ช…์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const MAXLIMIT

MAXLIMIT: Int

  • ์ตœ๋Œ€ ์ธ์›์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const HOSTNAME

HOSTNAME: String

  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const PUBLIC

PUBLIC: Bool

  • ์„œ๋ฒ„ ๊ณต๊ฐœ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const TOKEN

TOKEN: String

  • ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ์„œ๋ฒ„ ์ดˆ๊ธฐํ™” ์งํ›„ recaptcha ์ธ์ฆ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค
  • token์€ ์—ฌ๊ธฐ์„œ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

const NOPLAYER

NOPLAYER: Int

  • ํ˜ธ์ŠคํŠธ ๊ณต๊ฐœ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const LANG_CODE

LANG_CODE: String

  • ์–ธ์–ด ์ฝ”๋“œ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const REGION_CODE

REGION_CODE: String

  • ์ง€์—ญ ์ฝ”๋“œ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const LAT

LAT: Float

  • ์‹œ์Šคํ…œ์˜ ์œ„๋„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const LON

LON: Float

  • ์‹œ์Šคํ…œ์˜ ๊ฒฝ๋„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

let PASSWORD

PASSWORD: String

  • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const MAXPLAYERS

MAXPLAYERS: Int

  • ์ตœ๋Œ€ ์ธ์›์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const INITSERVER(str)

INITSERVER(str: String)

  • ์„œ๋ฒ„๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค

const ROOM

ROOM: RoomObject

  • INITSERVER(PASSWORD) ๋ฐ HBInit()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • RoomObject๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

const requestExternalFile(ln)

requestExternalFile(ln: String)

  • ์™ธ๋ถ€ ํŒŒ์ผ์„ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

const convertScript(ln)

convertScript(ln: String)

  • ์˜ค๋ธŒ์ ํŠธ๋ฅผ json ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • requestExternalFile()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

์ƒ์ˆ˜

โ“˜โ–ณโ–ฝ

const c_ADMIN_TYPE

c_ADMIN_TYPE: Object

  • ๊ถŒํ•œ ์œ ํ˜•์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_TEAM

c_TEAM: Object

  • ํŒ€ ์œ ํ˜•์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_GAME_STATS

c_GAME_STATS: Object

  • ๊ฒฝ๊ธฐ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_PLAYERINFO_TYPE

c_PLAYERINFO_TYPE: Object

  • ํ”Œ๋ ˆ์ด์–ด ์ •๋ณด ์œ ํ˜•์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_LIST_ICON

c_LIST_ICON: Object

  • ์ œ๋ชฉ ์•„์ด์ฝ˜ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_LIST_COLOR

c_LIST_COLOR: Object

  • ์ƒ‰์ƒ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_LIST_STYLE

c_LIST_STYLE: Object

  • ๋ฉ”์‹œ์ง€ ์„œ์‹ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_LIST_SOUND

c_LIST_SOUND: Object

  • ๋ฉ”์‹œ์ง€ ์†Œ๋ฆฌ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_LIST_EMOTION

c_LIST_EMOTION: Array<String>

  • ์ด๋ชจํ‹ฐ์ฝ˜ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_TIME_TYPE

c_TIME_TYPE: Object

  • ์‹œ๊ฐ„ ์ถœ๋ ฅ ํ˜•์‹ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_TAG_NOTFCN

c_TAG_NOTFCN: Object

  • ์•Œ๋ฆผ ํƒœ๊ทธ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_TAG_GRADE

c_TAG_GRADE: Array<String>

  • ๊ถŒํ•œ ๋ฐ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋งˆํฌ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_TAG_TEAM

c_TAG_TEAM: Object

  • ํŒ€ ๋งˆํฌ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_LOG_TYPE

c_LOG_TYPE: Object

  • ๋กœ๊ทธ ์œ ํ˜• ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const c_ERROR_TYPE

c_ERROR_TYPE: Object

  • ์˜ค๋ฅ˜ ์œ ํ˜• ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

๋งต ์ดˆ๊ธฐํ™”

โ“˜โ–ณโ–ฝ

let defaultStadiumList

defaultStadiumList: Array<String>

  • ๊ธฐ๋ณธ ๋งต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

let customStadiumList

customStadiumList: Array<String>

  • ์ปค์Šคํ…€ ๋งต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const initStadiums(links)

initStadiums(links: Array<String>)

  • ๋งต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค

Class GameManager

โ“˜โ–ณโ–ฝ

#afkLimitTime

#gameEventStats

#gameLink

#firstTimeNotified

#isRecording

#lastTimeNotified

#repeatedLimitTime

#timeLimit

#timeLimitReached

#totalMatch

constructor(afkLimitTime, rptLimitTime, timeLimit)

get afkTime()

get gameLink()

get gameStats()

get recStats()

get rptTime()

get sumMatch()

set afkTime(v)

set gameLink(v)

set gameStats(v)

set recStats(v)

onGamePause(player)

onGameStart(player)

onGameStop(player)

onGameTick()

onGameUnpause(player)

onKickRateLimitSet(min, rate, burst, player)

onPlayerBallKick(player)

onPlayerJoin(player)

onPlayerLeave(player)

onPositionsReset()

onRoomLink(address)

onStadiumChange(newMap, byPlayer)

onTeamGoal(team)

onTeamVictory(scores)

handleGameStart()

handleGameTick(currentTime)

findStadiumNameList(target)

findTeamName(value, abr)

checkPublicId(msg, player, hasAllRange)

loadMap(target, player)

reorderPlayers(playerIdList, moveToTop)

startRecording(hideAnchor)

stopRecording()


Class Administration

โ“˜โ–ณโ–ฝ

#blacklist

#defaultStadium

#enableDynamicAdmin

#isAllowTeamSwitch

#isLockStadium

#maxAdminLimit

#pinHost

constructor(dynamicAdmin, isAllowJoin, isLockStadium, defaultStadium, maxAdmin, pinHost, ...blacklist)

onPlayerAdminChange(givenPlayer, byPlayer)

onPlayerKicked(kickedPlayer, reason, ban, byPlayer)

get allowJoin()

get bl()

get defStdm()

get dynmcAdmin()

get lockStadium()

get maxAdmin()

get password()

get pinHost()

get rstrStadium()

set allowJoin(bool)

set dynmcAdmin(bool)

set lockStadium(bool)

set password(value)

initBlacklist(isSuper, name, conn, reason)

isBlacklist(player, isSuper)

isMute(target)

hasAdmin(player, level)

hasMatchedConnection(player)

findAddress(target)

findAdminList(level)

findBlacklistByAddress(conn)

findBlacklistByName(str)

findBlacklistByPlayer(player, isSuper)

findMutedList(isPublic)

findNetwork(target)

addBlacklist(isSuper, name, conn, reason)

addBlacklistByPlayer(target, isSuper, reason)

updateAdmins()

updateDefaultStadium(st)

updatePassword(pass)

clearBans(player)

clearMutedList(player)

clearPassword(byPlayer)

deleteAdmin(player, isSub)

resetGame(player)

showAdminList(target)

showPassword(player)

cntAdmins(level)

enablePinHost(bool)

giveAdmin(player, isSub)

kickPlayer(target, msg, ban, ...replace)

limitScore(value, byPlayer)

limitTime(value, byPlayer)

logonAdmin(player, msg, type)

missPassword(player, msg, type)

mutePlayer(target, time, byPlayer)

swapGame(player)

unmutePlayer(target, byPlayer)


Class BlacklistSystem

โ“˜โ–ณโ–ฝ

#address

#address: PlayerObject.conn

  • ๊ณต์šฉ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#nickname

#nickname: String

  • ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#super

#super: Bool

  • ์ ‘์† ๋ถˆ๊ฐ€ ์œ ๋ฌด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#reason

#reason: String

  • ๋“ฑ๋ก ์‚ฌ์œ ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(isSuper, name, conn, reason)

constructor(isSuper: Bool, name: String, conn: PlayerObject.conn, reason: String)

get addr()

  • #address์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get name()

  • #nickname์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get sup()

  • #super์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get rsn()

  • #reason์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set addr(v)

set addr(v: String)

  • #address์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

set rsn(v)

set rsn(v: String)

  • #reason์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

hasMatchedAddress(conn)

hasMatchedAddress(conn: PlayerObject.conn)

  • ๊ณต์šฉ ์ฃผ์†Œ ๋ฐ์ดํ„ฐ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

hasMatchedDatabase(name, address, isSuper)

hasMatchedDatabase(name: String, address: PlayerObject.conn, isSuper: Bool)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

hasMatchedName(str)

hasMatchedName(str: String)

  • ์ด๋ฆ„ ๋ฐ์ดํ„ฐ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

Class NotificationManager

โ“˜โ–ณโ–ฝ

#c_LIST_MSG_COLOR

#notiList

#send()

constructor(common, access, caution, info, locked, notice, warning)

get MSC()

get ntl()

initNoti(name, tag, string, style, color, time, targets)

isColor(color)

findChatHistoryByPlayer(player)

findColor(color, hasRaw)

findNotiHistoryByPlayer(player)

findSound(sound)

findStyle(style)

addNotiList(name, tag, string, style, color, targets)

showNotiHistory(title, notiList, targets, maxLines)

announce(name, msg, targets, color, style, sound, delay, ...replace)

extMsg(title, content, targets, advCom, titleColor, contentColor, delay, ...replace)

uniMsg(title, content, targets, advCom, delay, ...replace)

access(targets, reason, advCom, ...replace)

alert(player)

caution()

cmndList(title, content, targets, advCom, ...replace)

fmtStr(str, rep, target)

help(msg, exCom, targets, advCom, ...replace)

info()

locked(isLock, msg, targets, advCom, ...replace)

message(string, targets, ...replace)

notice(msg, targets, advCom, ...replace)

warning(msg, targets, advCom, ...replace)


Class NotificationSystem

โ“˜โ–ณโ–ฝ

#id

#id: String

  • ์•Œ๋ฆผ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#name

#name: String

  • ์•Œ๋ฆผ ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#targets

#targets: Array<Int>

  • ์•Œ๋ฆผ ๋Œ€์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#tag

#tag: Int

  • ์•Œ๋ฆผ ๋ถ„๋ฅ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#stringTitle

#stringTitle: String

  • ์ œ๋ชฉ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#stringContent

#stringContent: String

  • ๋‚ด์šฉ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#styleTitle

#styleTitle: String

  • ์ œ๋ชฉ ์„œ์‹์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#styleContent

#styleContent: String

  • ๋‚ด์šฉ ์„œ์‹์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#colorTitle

#colorTitle: Int

  • ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#colorContent

#colorContent: Int

  • ๋‚ด์šฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#time

#time: Int

  • ์ƒ์„ฑ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#findColors(t, n)

#findColors(t: Int, n: Int)

  • ํŠน์ • ์ƒ‰์ƒ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

#sendAnnouncement(string, color, style, sound)

#sendAnnouncement(string: String, color: Int, style: String, sound: String)

  • ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค

constructor(name, tag, string, style, color, time, targets)

constructor(name: String, tag: Int, string: String, style: String, color: Int, time: Int, targets: Array<Int>)

get id()

#id์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get name()

#name์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get targets()

#targets์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get tag()

#tag์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get strTit()

#stringTitle์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get strCtn()

#stringContent์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get styTit()

#styleTitle์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get styCtn()

#styleContent์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get colTit()

#colorTitle์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get colCtn()

#colorContent์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get time()

#time์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

hasTitle()

hasTitle(void)

  • ์ œ๋ชฉ ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

out(delay, sound)

out(delay: Int, sound: String)

  • ์•Œ๋ฆผ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

Class ChatManager

โ“˜โ–ณโ–ฝ

#forbiddenWordList

#isFreezeChat

#isLockPrivateChat

#maxForbiddenWordCount

#maxRepeatedCount

#playerList

#strictLevel

constructor(isFreeze, isLockPrivateChat, strictLevel, maxForbiddenWordCount, maxRepeatedCount, ...bannedWords)

get fwl()

get isFreezeChat()

get isLockPrvChat()

get maxFwdCount()

get maxRptCount()

get pyl()

get strctLev()

set isFreezeChat(bool)

set isLockPrvChat(bool)

set maxFwdCount(limit)

set maxRptCount(limit)

set strctLev(targetLev)

onPlayerChat(player, msg)

initPlayer(player, time)

isWhiteSpace(str)

hasForbiddenWord(msg)

hasMutedChat(player)

hasRepeatedChat(player)

findChatLogsByPlayer(target)

findPlayerById(target)

addPlayerList(player, time)

updateChatLog(player, msg, time)

showHelpCommandList(title, cml, player)

freezeChat(time, player)

lockPrivateChat(bool, player)

sendAlert(msg, targets, ...replace)

sendAllChat(player, msg)

sendEmojiChat(player, msg)

sendMsg(msg, targets, ...replace)

sendPrivateChat(toPlayer, fromPlayer, msg)

sendTeamChat(teamId, msg, player)

unfreezeChat(player)


Class ChatSystem

โ“˜โ–ณโ–ฝ

#id

#id: Int

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#forbiddenWordCount

#forbiddenWordCount: Int

  • ๊ธˆ์ง€์–ด ๋ˆ„์  ๊ฐ์ง€๋Ÿ‰์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#logList

#logList: Array<String>

  • ์ฑ„ํŒ… ๊ธฐ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#repeatedCount

#repeatedCount: Int

  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ๋ˆ„์  ๊ฐ์ง€๋Ÿ‰์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#time

#time: Int

  • ์ž…๋ ฅ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#timeList

#timeList: Array<Int>

  • ์‹œ๊ฐ„ ๊ธฐ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(id, time)

constructor(id: Int, time: Int)

get id()

  • #id์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get cntFwd()

  • #forbiddenWordCount์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get cntRpt()

  • #repeatedCount์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lgs()

  • #logList์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lgt()

  • #timeList์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get time()

  • #time์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set cntFwd(v)

set cntFwd(v: Int)

  • #forbiddenWordCount์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

set cntRpt(v)

set cntRpt(v: Int)

  • #repeatedCount์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

hasMutedChat()

hasMutedChat(void)

  • ์ฑ„ํŒ… ๊ธˆ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

hasRepeatedChat()

hasRepeatedChat(void)

  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ๊ฐ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findChatLogs(max)

findChatLogs(max: Int)

  • ์ฑ„ํŒ… ๋กœ๊ทธ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

addChatLog(msg, time)

addChatLog(msg: String, time: Int)

  • ์ฑ„ํŒ… ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

updateChatLog(msg, time)

updateChatLog(msg: String, time: Int)

  • ์ฑ„ํŒ… ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค

deleteChatLog()

deleteChatLog(void)

  • ์ฑ„ํŒ… ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

Class CommandManager

โ“˜โ–ณโ–ฝ

#c_headerList

#maxStringLength

constructor(maxMsgLength)

get HDL()

get maxMsgLen()

set maxMsgLen(n)

onPlayerChat(player, msg)

initCommand(readOnly, name, func, ...val)

initCommands(readOnly, cml)

hasCommand(cl, fn)

hasMatchedCommand(cl, ct)

findCommand(cl, fn)

findCommandTypeByNumber(str, cmtx)

findMatchedCommand(cl, ct)

alertSpam(player, msg, type)

comAdminList(player, msg, type)

comMutedList(player, msg, type)

comFreezeChat(player, msg, type)

comUnfreezeChat(player, msg, type)

comMute(player, msg, type)

comUnmute(player, msg, type)

comKick(player, msg, type)

comClearBans(player, msg, type)

comLockPrivateChat(player, msg, type)

comSetPassword(player, msg, type)

comShowPassword(player, msg, type)

comClearPassword(player, msg, type)

comPinHost(player, msg, type)

comRecaptcha(player, msg, type)

comAvatar(player, msg, type)

comResetAvatar(player, msg, type)

comUpdateUniform(player, msg, type)

comClearUniform(player, msg, type)

comAllChat(player, msg, type)

comPrivateChat(player, msg, type)

comTeamChat(player, msg, type)

comChatHistory(player, msg, type)

comChatMode(player, msg, type)

comAfk(player, msg, type)

comSleepList(player, msg, type)

comAllowJoin(player, msg, type)

comJoin(player, msg, type)

comNotiHistory(player, msg, type)

comRecording(player, msg, type)

comResetGame(player, msg, type)

comSwapGame(player, msg, type)

comUpdateScore(player, msg, type)

comUpdateTime(player, msg, type)

helpBot(player, msg, type)

helpChat(player, msg, type)

helpCom(player, msg, type)

helpJoin(player, msg, type)

helpMap(player, msg, type)

helpRank(player, msg, type)

helpScore(player, msg, type)

helpMisc(player, msg, type)

infoLink(player, msg, type)

infoMaps(player, msg, type)

infoRanking(player, msg, type)

infoRoom(player, msg, type)

infoStats(player, msg, type)

joinPlayer(player, msg)

loadMap(player, msg, type)

runCommand(src, type, player)


Class CommandSystem

โ“˜โ–ณโ–ฝ

  • ๋ช…๋ น์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#linkedFunction

#linkedFunction: Object

  • ์—ฐ๊ฒฐ๋œ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#name

#name: String

  • ๋ช…๋ น์–ด ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#readOnly

#readOnly: Bool

  • ๋ช…๋ น์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#values

#values: Array<String>

  • ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(readOnly, name, func, ...val)

get name()

  • #name์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lkfn()

  • #linkedFunction์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get strct()

  • #readOnly์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get val()

  • #values์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set val(v)

set val(v: Array<String>)

  • #values์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

Class PlayerManager

โ“˜โ–ณโ–ฝ

#playerList

constructor()

get pyl()

onPlayerActivity(player)

onPlayerInactivity(player)

onPlayerTeamChange(player, byPlayer)

initPlayer(player, region, language)

isAfkPlayer(player, time)

isValid(target, includeHost)

hasCommonRange(player, ball, range)

hasJoined(player)

findDiscProp(target)

findLocalId(publicId)

findPlayerById(target)

findPlayerList(isPublic)

findPlayerListByTeam(team)

findTagGrade(player)

findTagTeam(team)

addPlayerList(player, region, language)

addSleepPlayer(player)

updateAccount(player)

updateTime(player, time)

updateUniform(team, angle, textColor, bgColor)

clearPlayerById(player)

clearUniform(team)

deleteSleepPlayer(player)

resetAvatar(player)

showMutedList(player, isPublic)

showSleepList(player, isPublic)

cntPlayers(team)

enableSleepMode(player, bool)

giveAvatar(player, msg)

moveTeam(player, team)


Class PlayerSystem

โ“˜โ–ณโ–ฝ

#id

#nickname

#team

#address

#admin

#region

#language

#chatmode

#totalWarn

#hasKicked

#isMute

#isSleep

#network

#time

#joinedTime

#leftTime

#uniqueAvatar

constructor(id, name, team, admin, conn, auth, region, language)

get id()

get name()

get team()

get addr()

get admin()

get rgn()

get lng()

get totalWarn()

get chmd()

get discProp()

get dpPosition()

get dpGraVect()

get dpSpdVect()

get hasKicked()

get isMute()

get isSleep()

get ntwk()

get time()

get jndTime()

get lftTime()

get localId()

get tagGrade()

get unqAvtr()

set admin(value)

set rgn(value)

set lng(value)

set chmd(value)

set totalWarn(value)

set discProp(value)

set hasKicked(value)

set unqAvtr(value)

isAfk(time)

hasCommonRange(ball, range)

hasJoined()

findChatHistory()

findNotiHistory()

addSleepList()

updateTeam(v)

updateTime(t)

clearPlayer()

deleteAdmin(isSub)

deleteSleepList()

resetAvatar()

showPlayerInfo(type)

adjustGraVect(x, y)

adjustSpdVect(x, y)

giveAdmin(isSub)

giveAvatar(str)

movePosition(dx, dy)

moveTeam(t)

mute(bool)

teleportPosition(tx, ty)


Class ScoreManager

โ“˜โ–ณโ–ฝ

#totalGoals

#rankList

#touchedList

#collisionRange

#win

#goal

#lost

#ownGoal

#assist

constructor(collisionSensitivity, win, lost, goal, ownGoal, assist)

get collRange()

get gameTime()

get lastTouchedPlayer()

get limitScore()

get limitTime()

get scores()

get totalRedGoals()

get totalBlueGoals()

get wn()

get lst()

get gl()

get og()

get ast()

get tchdLst()

get rnkLst()

set collRange(v)

set totalRedGoals(v)

set totalBlueGoals(v)

onPlayerTeamChange(player, byPlayer)

onPositionsReset()

initRankList(player)

initTouchedList(player)

hasCommonRange(da, db, range)

findAssist(target)

findDiscColor(target)

findDiscProp(target)

findRankListByGrade(grade)

findRankListByPlayer(target)

findTouchedListByPlayer(target)

findWinner(scores)

addTouchedList(player)

updateAccount(op, np)

updateGoals(team)

updateTouchedList(target)

clearRankListByPlayer(player)

clearTouchedList()

clearTouchedListByPlayer(player)

sendRanking(target, player)

calcDistance(a, b)

calcGoalsByTeam(team)

calcGravityVector(target)

calcPosition(target)

calcSpeedVector(target)

calcTotalGoalsByTeam(team)


Class StatusSystem

โ“˜โ–ณโ–ฝ

  • ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#id

#id: Int

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#win

#win: Int

  • ์Šน๋ฆฌํ•œ ๊ฒฝ๊ธฐ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#lost

#lost: Int

  • ํŒจ๋ฐฐํ•œ ๊ฒฝ๊ธฐ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#goal

#goal: Int

  • ๋“์ ํ•œ ๊ณจ์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#ownGoal

#ownGoal: Int

  • ์‹ค์ ํ•œ ๊ณจ์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#assist

#assist: Int

  • ๋„์›€ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(id)

constructor(id: Int)

get asst()

  • #assist์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get goal()

  • #goal์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get grade()

  • ์ „์  ์ˆœ์œ„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get id()

  • #id์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lost()

  • #lost์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get owgl()

  • #ownGoal์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get scores()

  • ์ „์  ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get status()

  • ์ „์  ๊ธฐ๋ก์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get about()

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ƒ์„ธ ๊ธฐ๋ก ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get records()

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆœ์œ„ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get win()

-#win์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get winPct()

  • ์Šน๋ฅ  ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set asst(v)

set assist: Int

  • #assist์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

set goal(v)

set goal: Int

  • #goal์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

set lost(v)

set lost: Int

  • #lost์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

set owgl(v)

set ownGoal: Int

  • #ownGoal์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

set win(v)

set win: Int

  • #win์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

clearPlayer()

clearPlayer(void)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค

Class TouchedPlayer

โ“˜โ–ณโ–ฝ

  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#id

#id: Int

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#disc

#disc: Object

  • 0๋ฒˆ์งธ ๋””์Šคํฌ์˜ ์†์„ฑ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#pos

#pos: Object

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ขŒํ‘œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#team

#team: Int

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#time

#time: Int

  • ๊ฐ์ง€ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(id)

constructor(id: Int)

get id()

  • #id์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get disc()

  • #disc์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get pos()

  • #pos์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get team()

  • #team์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get time()

  • #time์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

hasCommonRange(ball, range)

hasCommonRange(ball: Int, range: Int)

  • ํ”Œ๋ ˆ์ด์–ด์™€ ๋””์Šคํฌ ๊ฐ„์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

Class TimeManager

โ“˜โ–ณโ–ฝ

  • ์‹œ๊ฐ„ ๋ฐ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

#timeFormats

#timeFormats: Int

  • ์‹œ๊ฐ„ ์ถœ๋ ฅ ํ˜•์‹์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#timerList

#timerList: Array<TimerSystem>

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(timeFormats)

constructor(timeFormats: Int)

get date()

  • ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • initDate()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

get fmtTime()

  • ์‹œ๊ฐ„ ์ถœ๋ ฅ ํ˜•์‹์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get meridiem()

  • ์˜คํ›„ ๋ฐ ์˜ค์ „์„ 2 ๋˜๋Š” 1์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get tml()

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set fmtTime(index)

set fmtTime(index: Int)

  • ์‹œ๊ฐ„ ์ถœ๋ ฅ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

initDate(milliseconds)

initDate(milliseconds: Int)

  • ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค

initTimer(name, id, func, player, delay, isRepeat, preId, seq)

initTimer(name: String, id: String, func: Object, player: Int, delay: Int, isRepeat: Bool, preId: String, seq: Int)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค

findTimer(findId)

findTimer(findId: String)

  • ํŠน์ • ID๋ฅผ ๊ฐ€์ง„ ํƒ€์ด๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimerByName(name, player)

findTimerByName(name: String, player: Int)

  • ํŠน์ • ์ด๋ฆ„์„ ๊ฐ€์ง„ ํƒ€์ด๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimerByPlayer(target)

findTimerByPlayer(target: Int)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimers(target, hasTarget)

findTimers(target: Int, hasTarget: Bool)

  • ํƒ€์ด๋จธ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

addTimer(name, func, player, delay, isRepeat, runDirectly, seq)

addTimer(name: String, func: Object, player: Int, delay: Int, isRepeat: Bool, runDirectly: Bool, seq: Int)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

clearTimer(findId, skipTrmnFn)

clearTimer(findId: Int, skipTrmnFn: Bool)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

clearTimerByName(name, player)

clearTimerByName(name: String, player: Int)

  • ํŠน์ • ์ด๋ฆ„์„ ๊ฐ€์ง„ ํƒ€์ด๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

clearTimerByPlayer(player)

clearTimerByPlayer(player: Int)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

resetTimers()

resetTimers(void)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋‘ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

Class DateSystem

โ“˜โ–ณโ–ฝ

  • ์‹œ๊ฐ„ ์‹œ์Šคํ…œ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#milliseconds

#milliseconds: Int

  • ๋ฐ€๋ฆฌ์ดˆ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(milliseconds)

constructor(milliseconds: Int)

get date()

  • ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get time()

  • ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get year()

  • ์—ฐ๋„ ๋‹จ์œ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get month()

  • ์›” ๋‹จ์œ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get day()

  • ์ผ ๋‹จ์œ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get hours()

  • ์‹œ๊ฐ„ ๋‹จ์œ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get minutes()

  • ๋ถ„ ๋‹จ์œ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get secs()

  • ์ดˆ ๋‹จ์œ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get meridiem()

  • ์˜ค์ „ ๋ฐ ์˜คํ›„์— ๋”ฐ๋ผ 2 ๋˜๋Š” 1์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

showCurrentTime(type)

showCurrentTime(type: Int)

  • ํ˜„์žฌ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

showDate()

showDate(void)

  • ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

showNormalTime()

showNormalTime(void)

  • ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ฐ„๋‹จํžˆ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

showTime()

showTime(void)

  • ํ˜„์žฌ ์‹œ๊ฐ„์„ ์ž์„ธํžˆ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

Class TimerSystem

โ“˜โ–ณโ–ฝ

  • ํƒ€์ด๋จธ ์‹œ์Šคํ…œ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#id

#id: String

  • ํƒ€์ด๋จธ์˜ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#name

#name: String

  • ํƒ€์ด๋จธ์˜ ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#player

#player: Int

  • ํ”Œ๋ ˆ์ด์–ด์˜ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#time

#time: Int

  • ๋“ฑ๋ก ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#delay

#delay: Int

  • ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#exctFn

#exctFn: Object

  • ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#trmnFn

#trmnFn: Object

  • ์ข…๋ฃŒ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#proc

#proc: Object

  • ์ฒ˜๋ฆฌ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#sequence

#sequence: Int

  • ์ง„ํ–‰ ์ˆœ์„œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#isRepeat

#isRepeat: Bool

  • ๋ฐ˜๋ณต ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(name, id, exct, trmn, delay, preId, target, seq)

constructor(name: String, id: String, exct: Object, trmn: Object, delay: Int, preId: String, target: Int, seq: Int)

  • ์ถ”๊ฐ€๋กœ ํ˜ธ์ถœ๋œ ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค

get id()

  • #id์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get name()

  • #name์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get player()

  • #player์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get time()

  • #time์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get delay()

  • #delay์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get exctFn()

  • #exctFn์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get trmnFn()

  • #trmnFn์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get proc()

  • #proc์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get seq()

  • #sequence์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get isRepeat()

  • #isRepeat์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimerByName()

findTimerByName(void)

  • ํŠน์ • ์ด๋ฆ„์„ ๊ฐ€์ง„ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimerByPlayer()

findTimerByPlayer(void)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

clearTimer(bypass)

clearTimer(bypass: Bool)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค

clearTimerByName()

clearTimerByName(void)

  • ํŠน์ • ์ด๋ฆ„์„ ๊ฐ€์ง„ ํƒ€์ด๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค

clearTimerByPlayer()

clearTimerByPlayer(void)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค

calcCurrentSequence(mx, mn)

calcCurrentSequence(mx: Int, mn: Int)

  • ๋ฐ˜๋ณต ํƒ€์ด๋จธ์˜ ํ˜„์žฌ ์ง„ํ–‰ ์ˆœ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

calcTotalSequence(seq)

calcTotalSequence(seq: Int)

  • ๋ฐ˜๋ณต ํƒ€์ด๋จธ์˜ ๋ˆ„์  ์ง„ํ–‰ ์ˆœ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

Class GameSystem

โ“˜โ–ณโ–ฝ

#defaultFontFamily

#securityPatchLevel

#versionUMUX

#maxNotiIcons

#cssStyleList

#isDeveloperMode

#hasInitServer

#hasInitDashboard

#lockedPassword

#releaseDate

#startupTime

#versionRoom

constructor(versionRoom, releaseDate, isDev, lockedPassword)

get csl()

get verRoom()

get verUMUX()

get maxNtcn()

get frmbd()

get scrPtcLvl()

get isDevMode()

get hasInitSrv()

get hasInitDsb()

get lockedPswd()

get rsDate()

get stpTime()

set stpTime(v)

set isDevMode(v)

onClickBtnSendLog()

onKeyDownLogInput(e)

initAttributeColors(obj, colBg, colText, colShd, str, isGradient, brd)

initAttributeId(obj, cssName, id)

initCssClass(elm, str)

initElement(tag, id, cssName)

initDashboard()

initSystem(url)

hasInRange(num, min, max, excludeMin)

findInfo()

addEventInput(obj, ev)

addDashboardEle(pe, ce)

addPlayerById(player)

updateDashboard()

updatePlayerById(player)

clearPlayerById(player)

showPlayerInfo(player, type)

enableDevMode(bool)

enableRecaptcha(isActive, player)

fillLine(num, line)

generateNumberArray(max, min, multiple)

lockPassword(bool)

pickRandomNumber(num, min, multiple)

printMsg(msg, targets, ...replace)


Class LogManager

โ“˜โ–ณโ–ฝ

  • ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

#logTagList

#logTagList: Array<LogTagSystem>

  • ๋กœ๊ทธ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#errorTagList

#errorTagList: Array<Object>

  • ์˜ค๋ฅ˜ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#logList

#logList: Array<LogSystem>

  • ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor()

constructor(void)

  • ์˜ค๋ฅ˜ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค
  • convertScript()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

get lts()

  • #logTagList์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get ets()

  • #errorTagList์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lgs()

  • #logList์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

initLog(id, time, io, tag, content)

initLog(id: Int, time: Int, io: Bool, tag: Int, content: String)

  • ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค
  • LogSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

initLogTag(id, textColor, backgroundColor, borderColor)

initLogTag(id, textColor, backgroundColor, borderColor)

  • ๋กœ๊ทธ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค
  • LogTagSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findErrorTagById(target)

findErrorTagById(target: Int)

  • ํŠน์ • ID๋ฅผ ๊ฐ€์ง„ ์˜ค๋ฅ˜ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findLogById(target)

findLogById(target: Int)

  • ํŠน์ • ID๋ฅผ ๊ฐ€์ง„ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findLogTagById(target)

findLogTagById(target: Int)

  • ํŠน์ • ID๋ฅผ ๊ฐ€์ง„ ๋กœ๊ทธ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

addLogList(id, time, io, tag, content)

addLogList(id, time, io, tag, content)

  • ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด initLog()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

addLogTagList(id, textColor, backgroundColor, borderColor)

addLogTagList(id, textColor, backgroundColor, borderColor)

  • ๋กœ๊ทธ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • ๋กœ๊ทธ ํƒœ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด initLogTag()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendConsole(c, a, t, m)

sendConsole(c: Int, a: String, t: Int, m: String)

  • ์ฝ˜์†”๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

error(type, ...replace)

error(type: Int, ...replace: Array<String>)

  • ๋กœ๊ทธ ์˜ค๋ฅ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค

log(io, msg, type, ...replace)

log(io: Bool, msg: String, type: Int, ...replace: Array<String>)

  • ๋กœ๊ทธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค

Class LogSystem

โ“˜โ–ณโ–ฝ

  • ๋กœ๊ทธ ์‹œ์Šคํ…œ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#id

#id: Int

  • ๋กœ๊ทธ์˜ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#time

#time: Int

  • ๋กœ๊ทธ ๊ธฐ๋ก ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#io

#io: Bool

  • ๋กœ๊ทธ์˜ ์ž…์ถœ๋ ฅ ์œ ํ˜•์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#tag

#tag: Int

  • ๋กœ๊ทธ ํƒœ๊ทธ ์œ ํ˜•์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#content

#content: String

  • ๋กœ๊ทธ ๋‚ด์šฉ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#hasFinished

#hasFinished: Bool

  • ๋กœ๊ทธ ์ „์†ก ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#hasExpired

#hasExpired: Bool

  • ๋กœ๊ทธ ๋งŒ๋ฃŒ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#expire()

#expire(void)

  • ๋กœ๊ทธ๋ฅผ ๋งŒ๋ฃŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#record(str, time, arrow, txc, bgc, brd)

#record(str: String, time: Int, arrow: String, txc: Int, bgc: Int, brd: Int)

  • ๋กœ๊ทธ ๊ธฐ๋ก์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor(id, time, io, tag, content)

constructor(id: Int, time: Int, io: Bool, tag: Int, content: String)

get id()

  • #id์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get time()

  • #time์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get io()

  • #io์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get tag()

  • #tag์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get ctn()

  • #ctn์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get hasFinished()

  • #hasFinished์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get hasExpired()

  • #hasExpired์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set hasFinished(v)

set hasFinished(v: Bool)

  • #hasFinished์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

send()

send(void)

  • ๋กœ๊ทธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค

Class LogTagSystem

โ“˜โ–ณโ–ฝ

  • ๋กœ๊ทธ ํƒœ๊ทธ ์‹œ์Šคํ…œ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

#id

#id: Int

  • ํƒœ๊ทธ์˜ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#textColor

#textColor: Int

  • ๋กœ๊ทธ ์ถœ๋ ฅ์‹œ ํ…์ŠคํŠธ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#backgroundColor

#backgroundColor: Int

  • ๋กœ๊ทธ ์ถœ๋ ฅ์‹œ ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

#borderColor

#borderColor: Int

  • ๋กœ๊ทธ ์ถœ๋ ฅ์‹œ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

constructor(id, textColor, backgroundColor, borderColor)

constructor(id: Int, textColor: Int, backgroundColor: Int, borderColor: Int)

get id()

  • #id์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get txc()

  • #textColor์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get bgc()

  • #backgroundColor์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get brc()

  • #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"]

const internalCommands

  • UMUX ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์„ ์ ‘๊ทผํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์‚ญ์ œ ๋ฐ ์‹ ๊ทœ ๋ช…๋ น์–ด ์ถ”๊ฐ€๋Š” ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์ ‘๊ทผ์„ ๋ง‰๊ฑฐ๋‚˜ ์ฃผ์„ ์ฒ˜๋ฆฌ๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ช…๋ น์–ด ๋ชฉ๋ก ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด CommandManager ํด๋ž˜์Šค์˜ initCommands()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

const standardCommands

  • UMUX ํ‘œ์ค€ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์‚ญ์ œ ๋ฐ ์‹ ๊ทœ ๋ช…๋ น์–ด ์ถ”๊ฐ€๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์ ‘๊ทผ์„ ๋ง‰๊ฑฐ๋‚˜ ์ฃผ์„ ์ฒ˜๋ฆฌ๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ช…๋ น์–ด ๋ชฉ๋ก ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด CommandManager ํด๋ž˜์Šค์˜ initCommands()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

let customCommands

  • UMUX ์ปค์Šคํ…€ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • ์‹ ๊ทœ ๋ช…๋ น์–ด ์ถ”๊ฐ€์— ์ ํ•ฉํ•˜๋ฉฐ, ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…๋ น์–ด ๋ชฉ๋ก ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด CommandManager ํด๋ž˜์Šค์˜ initCommands()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ

โ“˜โ–ณโ–ฝ

room.onGameStart

onGameStart(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameStart()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGameTick

onGameTick(void)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameTick()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGameStop

onGameStop(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameStop()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGamePause

onGamePause(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ค‘์ง€๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGamePause()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGameUnpause

onGameUnpause(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์žฌ๊ฐœ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameUnpause()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onKickRateLimitSet

onKickRateLimitSet(min: Int, rate: Int, burst: Int, player: PlayerObject)

  • ํ‚ฅ ์ œํ•œ์ด ์„ค์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onKickRateLimitSet()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerActivity

onPlayerActivity(player: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํ‚ค ์ž…๋ ฅ์ด ๊ฐ์ง€๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ onPlayerActivity()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerAdminChange

onPlayerAdminChange(givenPlayer: PlayerObject, byPlayer: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ onPlayerAdminChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerBallKick

onPlayerBallKick(player: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณต์„ ์ฐจ๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onPlayerBallKick()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerChat

onPlayerChat(player: PlayerObject, msg: String)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ฑ„ํŒ…์„ ์ „์†กํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ChatSystem ํด๋ž˜์Šค์˜ onPlayerChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ช…๋ น์–ด ์ž…๋ ฅ ๊ธฐ๋ก์„ ๋‚จ๊ธฐ์ง€ ์•Š๊ธฐ ์œ„ํ•ด false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

room.onPlayerJoin

onPlayerJoin(player: PlayerObject)

  • ์‹ ๊ทœ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ ‘์†ํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onPlayerJoin()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerLeave

onPlayerLeave(player: PlayerObject)

  • ์ ‘์†์ž๊ฐ€ ํ‡ด์žฅํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฐ•์ œ ํ‡ด์žฅ ์งํ›„ ์ด๋ฒคํŠธ๋ฅผ ์ œ์–ดํ•˜๋Š” gm_onPlayerLeave ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onPlayerLeave()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerKicked

onPlayerKicked(kickedPlayer: PlayerObject, reason: String, ban: Bool, byPlayer: PlayerObject)

  • ์ ‘์†์ž๊ฐ€ ๊ฐ•์ œ ํ‡ด์žฅ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ onPlayerKicked()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerTeamChange

onPlayerTeamChange(player: PlayerObject, byPlayer: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ onPlayerTeamChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ onPlayerTeamChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPositionsReset

onPositionsReset(void)

  • ๊ณจ ํŒ์ • ์งํ›„ ํฌ์ง€์…˜์ด ์ดˆ๊ธฐํ™”๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onPositionsReset()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onStadiumChange

onStadiumChange(newMap: String, byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ์žฅ์ด ๊ต์ฒด๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ์žฅ ์œ ํšจ ํ™•์ธ์„ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onStadiumChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onRoomLink

onRoomLink(url: String)

  • ์‹œ์Šคํ…œ์—์„œ ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onRoomLink()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onTeamGoal

onTeamGoal(team: TeamID)

  • ๊ณจ์ด ํŒ์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onTeamGoal()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onTeamVictory

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);
โš ๏ธ **GitHub.com Fallback** โš ๏ธ