ZEP Guidebook (KR)
Search…
⌃K

API Summary

ZEP-Script API 한눈에 보기

🔍
Ctrl + F를 이용해 원하는 API를 찾아보세요!

═════════════════════

🕹️ ScriptApp

═════════════════════

♻️ Lifecycle

onInit

App.onInit.Add(function(){})
App이 최초로 시작될 때 한 번 호출됩니다.
App.onJoinPlayer.Add(function(player){})
onInit이 호출된 후, 접속해 있는 모든 플레이어를 해당 이벤트를 통해 입장시키고, 이후 입장하는 플레이어가 있을 때 마다 동작합니다.

onStart

App.onStart.Add(function(){})
모든 플레이어가 onJoinPlayer를 통해 입장한 후 한 번 호출 됩니다.

onUpdate

App.onUpdate.Add(function(dt){})
약 20ms 마다 주기적으로 실행되는 함수입니다.
App.onLeavePlayer.Add(function(player){})
퇴장하는 플레이어가 있을 때 마다 동작합니다. 이후, 다른 App이 실행되거나 설치한 Game Block이 파괴될 때 모든 플레이어를 이 함수를 통해 퇴장시킵니다.

onDestroy

App.onDestroy.Add(function(){})
다른 App이 실행되거나, 설치한 Game Block이 파괴될 때 동작합니다.

🗃️ Field

App.spaceHashID: String App.mapHashID: String
앱이 설치된 스페이스의 spaceHashID와 mapHashID를 가져옵니다. (스페이스와 맵 이해하기)

creatorID

App.creatorID
App을 실행한 플레이어의 ID 값을 가져옵니다.

players

App.players: ScriptPlayer[]
맵에 있는 모든 플레이어 리스트를 배열로 가져옵니다.
App.playerCount: Number
앱이 설치된 맵에 있는 플레이어의 수를 가져옵니다.
App.cameraEffect: NONE = 0, SPOTLIGHT = 1 App.cameraEffectParam1: Number
App.cameraEffect: 카메라 이펙트의 종류를 셋팅할 변수 값
App.cameraEffectParam1: 카메라 이펙트 효과의 범위 값
App.displayRatio
화면의 줌을 컨트롤 하는 값 (기본 값: 1)

storage

App.storage: String
스페이스 내의 App 데이터의 저장공간 입니다 (스페이스 한정)
App.followPlayer: Boolean
App의 따라가기 기능 활성화 여부 값 입니다. (기본 값 : false)

🛰️ EventListeners

onSay

App.onSay.Add(function(player, text){});
플레이어가 채팅을 입력할 때 동작합니다.
App.onPlayerTouched.Add(function(sender, target, x, y){});
캐릭터들끼리 충돌할 때 동작합니다.
App.onObjectTouched.Add(function(sender, x, y){});
캐릭터가 오브젝트와 충돌할 때 동작합니다.
App.onAppObjectTouched.Add(function(key, sender, x, y){});
️ 캐릭터가 키 값을 가진 오브젝트와 충돌할 때 동작합니다.
App.onUnitAttacked.Add(function(sender, x, y, target){});
플레이어가 공격 키(Z)로 다른 캐릭터를 공격할 때 동작합니다.
App.onObjectAttacked.Add(function(sender, x, y){});
플레이어가 공격 키(Z)로 오브젝트를 공격할 때 동작합니다.
App.onSidebarTouched.Add(function(player){});
플레이어가 사이드바 앱을 클릭(터치) 할 때 동작합니다.

☎️ Callbacks

runLater

App.runLater(function(){}, time: number);
time(초) 후에 callback 함수를 실행합니다.
App.addOnTileTouched(x: integer, y: integer, function(player){})
지정한 x, y좌표에 플레이어가 도착할 경우 callback 함수를 실행합니다.
addOnLocationTouched(name: string, function(player){})
플레이어가 맵에디터에서 지정한 ‘지정영역’에 도착했을 때 callback 함수를 실행합니다.
App.addOnKeyDown(keycode : number, function(player){});
플레이어가 지정된 키를 눌렀을 때 callback 함수를 실행합니다.
setTimeout(function(){}, time: number);
time(ms) 후에 callback 함수를 실행합니다.
setInterval(function(){}, time: number);
time(ms) 간격으로 callback 함수를 실행합니다.
App.addMobileButton( anchor: number, posX: number, posY: number, function(player){} )
모바일 환경에서 커스텀 모바일 버튼을 추가하고, 버튼을 눌렀을 때 동작하는 함수를 지정합니다.
App.putMobilePunch(enable: boolean = true)
enable이 true이면 모바일 환경에서 펀치 버튼이 추가됩니다.

💠 Methods

App.loadSpritesheet(fileName: string, frameWidth: integer, frameHeight: integer, anims: array, frameRate: integer): ScriptDynamicResource
스프라이트 시트 그림 파일을 읽어 객체화하는 함수입니다.
App.showCenterLabel(text: string, color: uint = 0xFFFFFF, bgColor: uint = 0x000000, offset: number = 0, time: number = 3000)
모든 플레이어에게 지정된 위치에 text를 3초간 표시하는 함수입니다.
App.showCustomLabel(text: string, color: number = 0xFFFFFF, bgColor: number = 0x000000, offset: number = 0, width = 100, opacity = 0.6, time: number = 3000);
모든 플레이어에게 지정된 위치에 text를 3초간 표시하는 함수입니다.
text 부분에 span 태그를 넣어 텍스트를 꾸밀 수 있습니다.

sayToAll

App.sayToAll(text: string, color: uint = 0xFFFFFF)
채팅창에 text 내용을 출력합니다.
App.showWidget(fileName: string, align: string, width: integer, height: integer): ScriptWidget
모든 플레이어에게 지정된 align의 위치에 해당 html파일을 위젯으로 불러오는 함수입니다.
App.showYoutubeWidget(link: string, align: string, width: integer, height: integer): ScriptWidget
링크에 해당하는 Youtube 컨텐츠를 위젯으로 불러옵니다.
App.spawnPlayer(playeID: string, tileX: integer, tileY: integer)
playerID 에 해당하는 플레이어를 tileX, tileY 좌표로 이동시키는 함수입니다.
App.kickPlayer(playerID: string)
playerID 에 해당하는 플레이어를 추방하는 함수입니다.
App.forceDestroy();
미니게임 앱을 강제 종료하는 함수입니다.

clearChat

App.clearChat();
모든 채팅 내용을 삭제하는 함수입니다.

playSound

App.playSound(fileName: string, loop: boolean = false, overlap: boolean = false)
모든 플레이어에게 사운드를 재생하는 함수입니다.
App.playSoundLink(link: string, loop: boolean = false)
모든 플레이어에게 사운드를 재생하는 함수입니다.

stopSound

App.stopSound();
재생되고 있는 사운드를 멈추는 함수입니다.

httpGet

App.httpGet(url: string, headers: object, function(res: string){})
http get 요청을 보내는 함수입니다.

httpPost

App.httpPost(url: string, headers: object, body: object, function(res: string))
Form-Data 형태의 http post 요청을 보내는 함수 입니다.
App.httpPostJson(url: string, headers: object, body: object, function(res: string))
Json 형태의 http post 요청을 보내는 함수 입니다.
App.sendUpdated()
App 관련 필드 값이 변경되면 변경 값을 적용하는 함수입니다.

save

App.save()
App storage 값이 변경되면 변경 값을 적용하는 함수입니다.

═════════════════════

🗺️ ScriptMap

═════════════════════

🗃️ Field

Map.width : Number Map.height : Number
맵의 너비와 높이 값을 가져옵니다.

💠 Methods

Map.putTileEffect(x: number, y: number, tileID: TileEffectType)
지정한 좌표에 타일 효과를 적용하는 함수입니다.

putObject

Map.putObject(x: number, y: number, dynamicResource: ScriptDynamicResource, option: JsValue)
지정한 좌표에 오브젝트를 놓는 함수입니다. (기준 좌표: Left Top) → 기준 좌표란?
Map.putObjectWithKey(x: number, y: number, dynamicResource: ScriptDynamicResource, option: JsValue)
지정한 좌표에 키 값을 가진 오브젝트를 놓는 함수입니다. (기준 좌표: Left Top)
Map.getObjectWithKey(key: String)
해당 키 값을 가지고 있는 오브젝트의 정보를 가져옵니다.
Map.playObjectAnimation(x: number, y: number, name: string)
해당 좌표에 있는 오브젝트의 스프라이트 애니메이션을 실행시키는 함수입니다.
해당 좌표 지점에 Map.putObject 함수가 선행되어야합니다.
Map.playObjectAnimation(key: string, animName: string, repeatCount: number)
key 값이 일치하는 오브젝트의 스프라이트 애니메이션을 실행시키는 함수입니다.

Map.moveObject(x: number, y: number, targetX: number, targetY: number, time: number)
x, y 좌표에 위치한 오브젝트를 targetX, targetY로 time 초 동안 움직이는 함수입니다.
해당 좌표 지점에 Map.putObject 함수가 선행되어야합니다.
Map.moveObjectWithKey(key: string, targetX: number, targetY: number, path:boolean = true)
key 값을 가진 오브젝트를 targetX, targetY로 움직이는 함수입니다.
Map.clearAllObjects()
ZEP 스크립트로 생성된 모든 오브젝트를 제거하는 함수입니다.

getTile

Map.getTile(layer: number, x: number, y: number): number
해당하는 레이어의 x, y 좌표에 있는 타일의 타입 값을 리턴, 타일이 없으면 -1을 리턴합니다.
Map.hasLocation(locationName: String): Boolean
맵에 해당 로케이션이 있는지 체크하여 true/false 값을 리턴합니다.
Map.getObjectsByType(type: numer) : array
Type에 해당하는 오브젝트들을 리턴하는 함수입니다.
Map.getTopObjectsByType(type: numer) : array
Type에 해당하는 상단오브젝트들을 리턴하는 함수입니다.

═════════════════════

👥 ScriptPlayer

═════════════════════

🗃️ Field

id , name

player.id : Number player.name : String
플레이어의 id, 닉네임 값을 가져옵니다.

title

player.title : String
title은 캐릭터 닉네임 위에 노란색으로 노출되는 텍스트입니다.

role

player.role : Number
role은 플레이어의 권한을 나타내는 숫자 값 입니다. 플레이어의 role에 따라 다음과 같은 값을 출력합니다.
게스트
-1
스태프
2000
0
관리자
3000
에디터
1000
맵소유자
3001

player.tileX: Number player.tileY: Number
플레이어의 캐릭터가 서있는 X 좌표 값과 Y 좌표 값입니다.

dir

player.dir : Number
플레이어의 캐릭터가 바라보고 있는 방향입니다.
캐릭터가 바라보고 있는 방향에 따라 다음과 같은 값을 출력합니다.
캐릭터가 바라보는 방향에 따른 dir 값

moveSpeed

player.moveSpeed : Number
플레이어의 이동속도 값입니다. (기본 값: 80)

sprite

player.sprite : ScriptDynamicResource
플레이어 캐릭터의 스프라이트 이미지입니다. (null 입력 시 기본 아바타 이미지로 초기화)

tag

player.tag: Any
tag를 사용해 플레이어에게 필요한 속성 값을 부여 할 수 있습니다.

hidden

player.hidden: Boolean
hidden 값이 true 이면, 해당 플레이어는 다른 플레이어에게 보이지 않습니다.

spotlight

player.spotlight: Boolean
플레이어의 스팟 라이트 기능 활성화 여부입니다.
player.disableVideo : Boolean player.disableAudio : Boolean
플레이어의 비디오/오디오 가능 여부입니다.
player.attackType : Number
플레이어의 공격(Z키) 타입입니다. (기본: 0)
player.attackParam1: Number
공격(Z키) 이미지가 날아가는 거리 속성입니다. 공격 가능 거리는 늘어나지 않습니다.
player.attackParam2: Number
공격 가능 거리 속성입니다. attackType이 원거리 공격으로 설정 된 경우에만 유효합니다.
player.attackSprite : ScriptDynamicResource
공격(Z키) 이미지 속성입니다.
player.walletAddress : String
플레이어의 전자지갑 주소입니다.

storage

player.storage : String
스페이스 내의 Player 값 저장 공간 입니다 (스페이스 한정)

isMobile

player.isMobile : Boolean
플레이어의 모바일 접속 여부를 true/false 로 출력합니다.

isMoving

player.isMoving : Boolean
플레이어가 움직이고 있으면 True, 아니면 False를 반환합니다.

isJumping

player.isJumping : Boolean
플레이어가 점프하고 있으면 True, 아니면 False를 반환합니다.
player.customData : String
URL 쿼리스트링으로 전달 받은 값을 저장하는 필드입니다.
🔥
URL 쿼리스트링 활용하기
player.displayRatio: number
플레이어화면의 줌을 컨트롤 하는 값 ( 기본 값: 1 )
player.titleColor: number
플레이어의 타이틀 색상을 읽거나 수정 할 수 있습니다.

💠 Methods

player.showCenterLabel(text: string, color: uint = 0xFFFFFF, bgColor: uint = 0x000000, offset: number = 0, time: number = 3000)
해당 플레이어에게 지정된 위치에 text를 3초간 표시하는 함수입니다.
player.showCustomLabel(text: string, color: number = 0xFFFFFF, bgColor: number = 0x000000, offset: number = 0, width = 100, opacity = 0.6, time: number = 3000);
모든 플레이어에게 지정된 위치에 text를 3초간 표시하는 함수입니다.
text 부분에 span 태그를 넣어 텍스트를 꾸밀 수 있습니다.
player.showWidget(fileName: string, align: string, width: integer, height: integer): ScriptWidget
해당 플레이어에게 지정된 align의 위치에 해당 html파일을 위젯으로 불러오는 함수입니다.
player.showBuyAlert(itemName: string, price: number, callback: function)
플레이어에게 구매 위젯을 표시하고, 구매 후 동작하는 콜백함수를 작성할 수 있습니다.

isEmail

player.isEmail(email: string): boolean
해당 플레이어의 이메일이 파라미터 값과 같다면 true, 아니면 false를 리턴합니다.
player.getLocationName : string
플레이어가 서있는 지정영역의 이름을 출력합니다.

spawnAt

player.spawnAt(tileX: int ,tileY: int, dir: int = 0)
플레이어의 캐릭터를 tileX, tileY 좌표로 지정한 방향을 바라보게 이동시킵니다.
player.spawnAtLocation(name: string, dir:int = 0)
플레이어의 캐릭터를 name에 해당하는 지정 영역으로 지정한 방향을 바라보게 이동시킵니다.
player.spawnAtMap(spaceHashID string, mapHashID:string = null)
플레이어를 해당 스페이스 해당 맵으로 이동시킵니다.

playSound

Player.playSound(fileName: string, loop: boolean = false, overlap: boolean = false)
해당 플레이어에게 사운드를 재생하는 함수입니다.
player.playSoundLink(link: string, loop: boolean = false)
모든 플레이어에게 사운드를 재생하는 함수입니다.
player.sendUpdated()
App, Player 관련 필드 값이 변경되면 변경 값을 적용하는 함수입니다.

save

player.save()
App, Player storage 값이 변경되면 변경 값을 적용하는 함수입니다.

═════════════════════

🧙‍♂️ ScriptWidget

═════════════════════

🗃️ Field

id

widget.id
위젯의 아이디 값을 가져옵니다.

🛰️ EventListeners

onMessage

widget.onMessage.Add(function(player, data: any){});
위젯에서 App으로 메시지를 보내면 callback 함수가 동작합니다.

💠 Methods

widget.sendMessage(object: any)
App에서 위젯으로 데이터를 보냅니다.

destroy

widget.destroy()
위젯을 삭제하는 함수입니다.