API Summary
ZEP-Script API 한눈에 보기
Last updated
ZEP-Script API 한눈에 보기
Last updated
App.onInit.Add(function(){})
App이 최초로 시작될 때 한 번 호출됩니다.
App.onJoinPlayer.Add(function(player){})
onInit이 호출된 후, 접속해 있는 모든 플레이어를 해당 이벤트를 통해 입장시키고, 이후 입장하는 플레이어가 있을 때 마다 동작합니다.
App.onStart.Add(function(){})
모든 플레이어가 onJoinPlayer를 통해 입장한 후 한 번 호출 됩니다.
App.onUpdate.Add(function(dt){})
약 20ms 마다 주기적으로 실행되는 함수입니다.
App.onLeavePlayer.Add(function(player){})
퇴장하는 플레이어가 있을 때 마다 동작합니다. 이후, 다른 App이 실행되거나 설치한 Game Block이 파괴될 때 모든 플레이어를 이 함수를 통해 퇴장시킵니다.
App.onDestroy.Add(function(){})
다른 App이 실행되거나, 설치한 Game Block이 파괴될 때 동작합니다.
App.spaceHashID: String App.mapHashID: String
앱이 설치된 스페이스의 spaceHashID와 mapHashID를 가져옵니다. (스페이스와 맵 이해하기)
App.creatorID
App을 실행한 플레이어의 ID 값을 가져옵니다.
App.players: ScriptPlayer[]
맵에 있는 모든 플레이어 리스트를 배열로 가져옵니다.
App.playerCount: Number
앱이 설치된 맵에 있는 플레이어의 수를 가져옵니다.
App.cameraEffect: NONE = 0, SPOTLIGHT = 1 App.cameraEffectParam1: Number
App.cameraEffect: 카메라 이펙트의 종류를 셋팅할 변수 값
App.cameraEffectParam1: 카메라 이펙트 효과의 범위 값
App.displayRatio
화면의 줌을 컨트롤 하는 값 (기본 값: 1)
App.storage: String
스페이스 내의 App 데이터의 저장공간 입니다. (스페이스 한정) Storage 페이지를 참고해주세요.
App.followPlayer: Boolean
App의 따라가기 기능 활성화 여부 값 입니다. (기본 값 : false)
App.showName: Boolean
플레이어의닉네임 숨김여부 값 입니다. (기본 값: true)
App.appHashID: String
앱의 HashID를 가져옵니다.
App.setStorage(string) / App.getStorage(function())
App.setStorage 함수로 App storage를 저장하고, 앱을 사용중인 다른 맵의 App storage 변경사항이 있을 경우 App.getStorage 함수로 App storage를 동기화 할 수 있습니다.
App.getStorage 함수는 비동기 함수이기 때문에 App.getStorage 함수 다음 라인에 App.storage를 사용하는 코드를 작성할 경우 동기화를 보장할 수 없습니다.
App.onSay.Add(function(player, text){});
플레이어가 채팅을 입력할 때 동작합니다.
App.onPlayerTouched.Add(function(sender, target, x, y){});
캐릭터들끼리 충돌할 때 동작합니다.
App.onObjectTouched.Add(function(sender, x, y, tileID, obj){});
캐릭터가 오브젝트와 충돌할 때 동작합니다.
App.onAppObjectTouched.Add(function(sender, key, x, y ){});
️ 캐릭터가 키 값을 가진 오브젝트와 충돌할 때 동작합니다.
App.onUnitAttacked.Add(function(sender, x, y, target){});
플레이어가 공격 키(Z)로 다른 캐릭터를 공격할 때 동작합니다.
App.onObjectAttacked.Add(function(sender, x, y){});
플레이어가 공격 키(Z)로 오브젝트를 공격할 때 동작합니다.
App.onSidebarTouched.Add(function(player){});
플레이어가 사이드바 앱을 클릭(터치) 할 때 동작합니다.
App.onTriggerObject.Add(function(player, layerID, x, y){});
오브젝트와 F 상호작용 시 동작하는 함수입니다.
플레이어가 공격 키(Z)로 키 값을 가진 오브젝트를 공격할 때 동작합니다.
App.runLater(function(){}, time: number);
time(초) 후에 callback 함수를 실행합니다.
App.addOnTileTouched(x:number, y: number, function(player){})
지정한 x, y좌표에 플레이어가 도착할 경우 callback 함수를 실행합니다.
App.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이면 모바일 환경에서 펀치 버튼이 추가됩니다.
App.putMobilePunchWithIcon(icon: ScriptDynamicResource)
로드한 이미지로 펀치 버튼을 만들어 추가합니다.
App.loadSpritesheet(fileName: string, frameWidth: number, frameHeight: number, anims: array, frameRate: number): 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
태그를 넣어 텍스트를 꾸밀 수 있습니다.
App.sayToAll(text: string, color: uint = 0xFFFFFF)
채팅창에 text 내용을 출력합니다.
App.sayToStaffs(text: string, color: uint = 0xFFFFFF)
Staff이상 권한의 유저 채팅창에 text 내용을 출력합니다.
App.showWidget(fileName: string, align: string, width: number, height: number): ScriptWidget
모든 플레이어에게 지정된 align의 위치에 해당 html파일을 위젯으로 불러오는 함수입니다.
App.showYoutubeWidget(link: string, align: string, width: number, height: number): ScriptWidget
링크에 해당하는 Youtube 컨텐츠를 위젯으로 불러옵니다.
App.spawnPlayer(playeID: string, tileX: number, tileY: number)
playerID 에 해당하는 플레이어를 tileX, tileY 좌표로 이동시키는 함수입니다.
App.kickPlayer(playerID: string)
playerID 에 해당하는 플레이어를 추방하는 함수입니다.
App.forceDestroy();
미니게임 앱을 강제 종료하는 함수입니다.
App.clearChat();
모든 채팅 내용을 삭제하는 함수입니다.
App.getPlayerByID(playerID: string);
id 에 해당하는 플레이어를 반환하는 함수입니다.
App.playSound(fileName: string, loop: boolean = false, overlap: boolean = false)
모든 플레이어에게 사운드를 재생하는 함수입니다.
App.playSoundLink(link: string, loop: boolean = false)
모든 플레이어에게 사운드를 재생하는 함수입니다.
App.stopSound();
재생되고 있는 사운드를 멈추는 함수입니다.
App.httpGet(url: string, headers: object, function(res: string){})
http get 요청을 보내는 함수입니다.
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 관련 필드 값이 변경되면 변경 값을 적용하는 함수입니다.
App.changeAttackSound(fileName:string)
찌르기(Z키) 공격 효과음을 변경하는 함수입니다.
Map.width : Number Map.height : Number
맵의 너비와 높이 값을 가져옵니다.
Map.putTileEffect(x: number, y: number, tileID: TileEffectType)
지정한 좌표에 타일 효과를 적용하는 함수입니다.
Map.putObject(x: number, y: number, dynamicResource: ScriptDynamicResource, option: JsValue)
지정한 좌표에 오브젝트를 놓는 함수입니다. (기준 좌표: Left Top) → 기준 좌표란?
Map.putObjectMultiple(tileArray: array, type: PutObjectType, dynamicResource: ScriptDynamicResource);
오브젝트를 배치할 좌표들을 2차원 배열로 입력하여 한 번에 오브젝트를 설치하는 기능입니다. 이 기능을 사용하면 한 번에 많은 오브젝트를 설치할 경우 부하를 줄이는 효과를 얻을 수 있습니다.
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 스크립트로 생성된 모든 오브젝트를 제거하는 함수입니다.
Map.getTile(layer: number, x: number, y: number): number
해당하는 레이어의 x, y 좌표에 있는 타일의 타입 값을 리턴, 타일이 없으면 -1을 리턴합니다.
Map.getLocation(locationName: string)
파라미터로 전달한 로케이션이 존재하는 경우, 로케이션 설치 좌표를 리턴합니다.
Map.getLocationRandom(locationName: string)
파라미터로 전달한 로케이션이 2개이상 존재하는 경우, 무작위로 선택하여 로케이션 설치 좌표를 리턴합니다.
Map.hasLocation(locationName: String): Boolean
맵에 해당 로케이션이 있는지 체크하여 true/false 값을 리턴합니다.
Map.getObjectsByType(type: numer) : array
Type에 해당하는 오브젝트들을 리턴하는 함수입니다.
Map.getTopObjectsByType(type: numer) : array
Type에 해당하는 상단오브젝트들을 리턴하는 함수입니다.
Map.sayObjectWithKey( key: string, message: string )
key 값을 가진 오브젝트 위에 말풍선을 표시하는 함수입니다.
player.id : Number player.name : String
플레이어의 id, 닉네임 값을 가져옵니다.
player.title : String
title은 캐릭터 닉네임 위에 노란색으로 노출되는 텍스트입니다.
player.role : Number
role은 플레이어의 권한을 나타내는 숫자 값 입니다. 플레이어의 role에 따라 다음과 같은 값을 출력합니다.
player.tileX: Number player.tileY: Number
플레이어의 캐릭터가 서있는 X 좌표 값과 Y 좌표 값입니다.
player.dir : Number
플레이어의 캐릭터가 바라보고 있는 방향입니다.
캐릭터가 바라보고 있는 방향에 따라 다음과 같은 값을 출력합니다.
player.moveSpeed : Number
플레이어의 이동속도 값입니다. (기본 값: 80)
player.sprite : ScriptDynamicResource
플레이어 캐릭터의 스프라이트 이미지입니다. (null 입력 시 기본 아바타 이미지로 초기화)
player.tag: Any
tag를 사용해 플레이어에게 필요한 속성 값을 부여 할 수 있습니다.
player.hidden: Boolean
hidden 값이 true 이면, 해당 플레이어는 다른 플레이어에게 보이지 않습니다.
player.spotlight: Boolean
플레이어의 스팟 라이트 기능 활성화 여부입니다.
player.attackType : Number
플레이어의 공격(Z키) 타입입니다. (기본: 0)
player.attackParam1: Number
공격(Z키) 이미지가 날아가는 거리 속성입니다. 공격 가능 거리는 늘어나지 않습니다.
player.attackParam2: Number
공격 가능 거리 속성입니다. attackType이 원거리 공격으로 설정 된 경우에만 유효합니다.
player.attackSprite : ScriptDynamicResource
공격(Z키) 이미지 속성입니다.
player.walletAddress : String
플레이어의 전자지갑 주소입니다.
player.storage : String
스페이스 내의 Player 값 저장 공간 입니다 (스페이스 한정)
player.isMobile : Boolean
플레이어의 모바일 접속 여부를 true/false 로 출력합니다.
player.isMoving : Boolean
플레이어가 움직이고 있으면 True, 아니면 False를 반환합니다.
player.isJumping : Boolean
플레이어가 점프하고 있으면 True, 아니면 False를 반환합니다.
player.customData : String
player.displayRatio: number
플레이어화면의 줌을 컨트롤 하는 값 ( 기본 값: 1 )
player.titleColor: number
플레이어의 타이틀 색상을 읽거나 수정 할 수 있습니다.
player.emailHash
플레이어의 이메일 Hash 값을 가져옵니다.
player.isGuest
비로그인 플레이어인 경우 true 값을 가집니다.
player.away
5분 이상 비활성화된 유저인 경우 true
값을 가집니다.
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: number, height: number): ScriptWidget
해당 플레이어에게 지정된 align의 위치에 해당 html파일을 위젯으로 불러오는 함수입니다.
player.showBuyAlert(itemName: string, price: number, callback: function, payToSpaceOwner: boolean = false)
플레이어에게 구매 위젯을 표시하고, 구매 후 동작하는 콜백함수를 작성할 수 있습니다. payToSpaceOwner 옵션이 false인 경우 앱 소유자에게 수익이 전달되며, true인 경우에는 앱이 설치된 맵의 소유자에게 수익이 전달됩니다.
player.hideBuyAlert()
플레이어의 구매 위젯을 닫습니다.
player.sendMessage(text: string, color: uint = 0xFFFFFF)
유저 개인에게 채팅 메시지를 보내는 함수입니다.
player.showPrompt(text: string, function(inputText), option = {})
플레이어에게 입력창을 보여주고, 플레이어의 응답에 따라 동작하는 callback 함수를 작성할 수 있습니다.
player.showConfirm(text: string, function(result), option = {})
플레이어에게 확인창을 보여주고, 플레이어가 OK를 눌렀을 때 동작하는 callback 함수를 작성할 수 있습니다. cancel을 누를 경우에는 callback 함수가 동작하지 않습니다.
player.showAlert(text: string, function(), option = {})
플레이어에게 경고창을 보여주고, 플레이어가 OK를 눌렀을 때 동작하는 callback 함수를 작성할 수 있습니다.
위젯의 상/하/좌/우 여백을 화면 크기에 대한 %비율로 정의 하여 위젯을 표시합니다.
화면의 크기가 여백을 포함한 위젯 영역보다 작아질 경우, 위젯의 크기가 비례하여 작아집니다
player.openWebLink(url:string, popup:boolean=false)
플레이어에게 웹 URL을 새 창이나 팝업 창으로 표시합니다.
player.showWidget(url: string, align: string, width: number, height: number, hasBackdrop: boolean = true)
해당 플레이어에게 지정된 align의 위치에 url 임베드 화면을 표시하는 함수입니다.
player.showImage(url: string)
플레이어에게 입력한 이미지 주소에 해당하는 이미지를 표시합니다.
player.showNoteModal(text: string)
플레이어에게 텍스트 창을 보여주는 함수입니다.
player.isEmail(email: string): boolean
해당 플레이어의 이메일이 파라미터 값과 같다면 true, 아니면 false를 리턴합니다.
player.getLocationName : string
플레이어가 서있는 지정영역의 이름을 출력합니다.
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)
플레이어를 해당 스페이스 해당 맵으로 이동시킵니다.
[1] player.setCameraTarget( tileX: Number, tileY: Number, time: Number )
[2] player.setCameraTarget( key: String, time: Number )
[1] 플레이어의 시점을 지정된 좌표로 중심 이동시킵니다.
[2] 플레이어의 시점을 특정 오브젝트로 중심 이동시킵니다.
player.setEffectSprite(resource: ScriptDynamicResource, offsetX: Number, offsetY: Number, type: Number)
플레이어의 배경 또는 전경 이미지를 설정 할 수 있습니다.
Player.playSound(fileName: string, loop: boolean = false, overlap: boolean = false)
해당 플레이어에게 사운드를 재생하는 함수입니다.
player.playSoundLink(link: string, loop: boolean = false)
모든 플레이어에게 사운드를 재생하는 함수입니다.
player.sendUpdated()
App, Player 관련 필드 값이 변경되면 변경 값을 적용하는 함수입니다.
player.save()
App, Player storage 값이 변경되면 변경 값을 적용하는 함수입니다.
widget.id
위젯의 아이디 값을 가져옵니다.
widget.onMessage.Add(function(player, data: any){});
위젯에서 App으로 메시지를 보내면 callback 함수가 동작합니다.
widget.sendMessage(object: any)
App에서 위젯으로 데이터를 보냅니다.
widget.destroy()
위젯을 삭제하는 함수입니다.
Time.getTime()
ZEP 서버의 현재 시간을 milliseconds 단위의 값으로 리턴합니다.
Time.getUtcTime()
현재 UTC 시간을 milliseconds 단위의 값으로 리턴합니다.
Time.getTimeInterval(timeA: number, timeB: number, returnType: DateType)
timeB - timeA
를 계산하고, 그 결과를 지정한 returnType
으로 반환합니다.
URL 쿼리스트링으로 전달 받은 값을 저장하는 필드입니다. URL 쿼리스트링 활용하기
게스트
-1
스태프
2000
멤
0
관리자
3000
에디터
1000
맵소유자
3001