디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Msw 개발자님에게 질문모바일에서 작성

프갤러(175.213) 2024.11.25 23:39:14
조회 51 추천 0 댓글 0


https://maplestoryworlds-creators.nexon.com/ko/docs?postId=743

 

월드 워프하기: MapleStory Worlds Creator Center

# 학습 과정 소개TeleportService의 함수를 활용해 월드에서 다른 월드로 이동할 수 있습니다.# 다른 월드로 이동하기TeleportService는 월드의 유저를 특정 장소로 이동시킬 때 사용할 수 있을 뿐 아니라, 접속 중인 월드에서 다른 월드로 이동시킬 수 있습니다. 접속 중인 월드와 이동할 월드가 공개 출시된 상태여야 이동이 가능합니다. 이 특성으로 인해 제작 중에는 워프를 테스트할 수 없습니다. | 현재 월드 | 이동할 월드 | 워프 여부 || --- | --- | --- || 공개 | 공개 | **◯** || 비공개 | 공개 | **◯** || 공개 | 비공개 | X || 비공개 | 비공개 | X |유저를 다른 월드로 이동시킬 때는 `WarpUserToWorldAndWait()` 및 `WarpUserToWorldAsync()` 함수를 활용하며 **이동시킬 유저 ID, 이동할 월드 ID** 두 가지가 필요합니다. 다른 월드로 워프할 때 현재 머물던 월드에서 유저가 쌓은 데이터를 이동할 월드에서도 사용하고 싶다면 `WarpUserToWorldAndWait()`를 활용해 유저가 이동할 때 데이터를 함께 전달하고, GetWarpRecord()로 데이터에 접근하고 얻어올 수 있습니다.자세한 내용은 [TeleportService](/apiReference?postId=315{"target":"_self"})를 참고하세요.>**Tip.**> 크리에이터가 만든 월드가 아니더라도, 출시된 모든 월드로 워프할 수 있습니다.# World ID 확인하기WorldID는 메이플스토리 월드 공식 홈페이지에서 월드 정보 페이지의 URL로 확인할 수 있습니다. URL 끝의 번호가 월드 ID로써 활용할 수 있습니다.* https://maplestoryworlds.nexon.com/play/**번호** ![WorldID](https://mod-file.dn.nexoncdn.co.kr/bbs/16751471942527842b0f88f594139ad4488f2bce289e0.png "WorldID")# 활용 예제#### 워프시키기유저가 포탈을 타고 다른 월드로 이동할 수 있게 만들어 봅시다.![worldwarp](https://mod-file.dn.nexoncdn.co.kr/bbs/1657775410700475de8c715464f52919606dd284b6f7e.gif "worldwarp")1. 새로운 ![component](https://mod-file.dn.nexoncdn.co.kr/storage/icons/component/Ect.png "component") Warp 컴포넌트를 생성하고, 포탈에 추가합니다.2. 프로퍼티에 WorldId를 추가하고, 월드 ID를 프로퍼티 에디터 창에서 입력합니다.![warp](https://mod-file.dn.nexoncdn.co.kr/bbs/16577946836778dbd808244d6421e99a67c482d4aa1b8.png "warp")3. 아래와 같이 포탈 이벤트가 발생할 때 지정한 월드로 이동할 수 있게 작성합니다.    ```lua    Property:    [Sync]    string WorldId = ""         Method:    [server]    void Warp(string userId)    {        local warpDataTable = {}        warpDataTable.userId = userId                         local serializedData = _UtilLogic:TableToString(warpDataTable)                         _TeleportService:WarpUserToWorldAndWait(userId, self.WorldId, serializedData)    }         Event Handler:    [self]    HandlePortalUseEvent(PortalUseEvent event)    {        --------------- Native Event Sender Info ----------------        -- Sender: PortalComponent        -- Space: Client        ---------------------------------------------------------                -- Parameters        -- local PortalUser = event.PortalUser        ---------------------------------------------------------             self:Warp(PortalUser.Name)    }    ```#### 워프로 월드에 입장했는지 확인하기이동한 월드에서 입장한 유저가 워프로 입장한 것인지 `GetWarpRecord()`를 활용해 확인할 수 있습니다. 1. 새로운 스크립트 컴포넌트를 생성하고, ![common](https://mod-file.dn.nexoncdn.co.kr/storage/icons/workspace/icon_asset_no.png "common") Common에 추가합니다.2. 월드에 입장한 유저가 워프로 입장했는지 확인할 수 있도록 아래와 같이 작성합니다.    ```lua    Event Handler:    [server only] [service: UserService]    HandleUserEnterEvent(UserEnterEvent event)    {        --------------- Native Event Sender Info ----------------        -- Sender: UserService        -- Space: Server        ---------------------------------------------------------                -- Parameters        -- local ProfileCode = event.ProfileCode        -- local UserId = event.UserId        ---------------------------------------------------------             local warpRecord = _TeleportService:GetWarpRecord(UserId)                -- 일반적인 월드 입장이라면, GetWarpRecord() 함수는 nil을 반환합니다.        if warpRecord == nil then             return        end    }    ```#### 워프해 온 월드 확인하기`GetWarpRecord()`를 활용해 워프로 이동한 유저가 어떤 월드에서 온 것인지 확인할 수 있습니다.1. 새로운 스크립트 컴포넌트를 생성하고, ![common](https://mod-file.dn.nexoncdn.co.kr/storage/icons/workspace/icon_asset_no.png "common") Common에 추가합니다.2. 워프로 이동한 유저가 어떤 월드로부터 왔는지 확인할 수 있도록 아래와 같이 작성합니다.    ```lua         Event Handler:    [server only] [service: UserService]    HandleUserEnterEvent(UserEnterEvent event)    {        --------------- Native Event Sender Info ----------------        -- Sender: UserService        -- Space: Server        ---------------------------------------------------------                -- Parameters        -- local ProfileCode = event.ProfileCode        -- local UserId = event.UserId        ---------------------------------------------------------             local warpRecord = _TeleportService:GetWarpRecord(UserId)        if warpRecord == nil then            return        end                 local currentWorldId = warpRecord.CurrentWorldId        local prevWorldId = warpRecord.PreviousWorldId -- 이전 월드를 확인할 수 있습니다.    }    ```#### 다른 월드에 데이터 전달하기유저의 데이터를 이동할 월드로 전달할 수 있습니다.1. 새로운 스크립트 컴포넌트를 생성합니다.2. 맵에 포탈을 추가한 뒤, 만든 스크립트 컴포넌트를 포탈에 추가합니다.3. 아래와 같이 `WarpUserToWorldAndWait()`와 `UtilLogic`을 활용해 다른 월드에 데이터를 전달할 수 있게 작성합니다.     ```lua    Property:    [Sync]    string WorldId = ""         Method:    [server]    void Warp(string userId)    {        local warpDataTable = {}        warpDataTable.testData = "test"                         local warpData= _UtilLogic:TableToString(warpDataTable)                         _TeleportService:WarpUserToWorldAndWait(userId, self.WorldId, warpData)    }         Event Handler:    [self]    HandlePortalUseEvent(PortalUseEvent event)    {        --------------- Native Event Sender Info ----------------        -- Sender: PortalComponent        -- Space: Client        ---------------------------------------------------------                -- Parameters        -- local PortalUser = event.PortalUser        ---------------------------------------------------------                self:Warp(PortalUser.Name)    }    ```#### 이전 월드에서 전달한 데이터 얻어오기이전 월드에서 전달한 값을 받을 수 있습니다.1. 새로운 스크립트 컴포넌트를 생성하고,  ![common](https://mod-file.dn.nexoncdn.co.kr/storage/icons/workspace/icon_asset_no.png "common") Common에 추가합니다2. 아래와 같이 `WarpUserToWorldAndWait()`와 `UtilLogic`을 활용해 작성합니다.     ```lua           Event Handler:    [server only] [service: UserService]    HandleUserEnterEvent(UserEnterEvent event)    {        --------------- Native Event Sender Info ----------------        -- Sender: UserService        -- Space: Server        ---------------------------------------------------------                -- Parameters        -- local ProfileCode = event.ProfileCode        -- local UserId = event.UserId        ---------------------------------------------------------                 local warpRecord = _TeleportService:GetWarpRecord(UserId)        if warpRecord == nil then            return        end                 local warpDataTable = _UtilLogic:StringToTable(warpRecord.Data)        log(warpDataTable.testData)    }    ```##### 참고 가이드* [텔레포트](/docs/?postId=59{"target":"_self"})

maplestoryworlds-creators.nexon.com




이거보고 다른 월드 가는거 따라했는데 안되네

혹시 구현한사람 있음?

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 오픈 마인드로 이성을 만날 것 같은 스타는? 운영자 24/12/02 - -
2777816 프갤망햇냐? [4] 헬마스터갤로그로 이동합니다. 11.26 76 0
2777815 무지가 괴롭다 ㅇㅇ갤로그로 이동합니다. 11.26 26 0
2777814 10년전 일본에 처음 왔을 때 감상 프로외노자갤로그로 이동합니다. 11.26 56 0
2777813 개발 노트북으로 맥 추천하는 새끼 << 사회악 [1] ㅇㅇ(106.255) 11.26 68 0
2777812 국비 프젝도와줄사람있음? [6] 프갤러(211.178) 11.26 122 0
2777811 겜 만들다보면 에셋 기워넣고 레퍼런스 기워넣고 [2] ㅆㅇㅆ찡갤로그로 이동합니다. 11.26 68 0
2777810 22-23년 스타트업씬이 레전드였는데 ㅇㅇ(210.178) 11.26 92 0
2777808 하루에 한줄 감사의 코딩 공기역학갤로그로 이동합니다. 11.26 40 0
2777807 아침으로 먹을거라곤 라면밖에 없지만... 그래도 다들 맛있게 드십쇼 ㅇㅇ(123.213) 11.26 51 0
2777806 핸드폰 민팃에 처분할 생각에 기쁘다. 넥도리아(112.170) 11.26 42 0
2777805 하루 한 번 헤르미온느 찬양 [1] 헤르 미온느갤로그로 이동합니다. 11.26 71 0
2777804 신형 맥북 질렀다 ㅇㅅㅇ [6] AppHiki갤로그로 이동합니다. 11.26 104 0
2777803 코딩으로 밥벌이 하려면 프갤러(183.101) 11.26 55 0
2777799 민팃에 핸드폰 처음으로 팔려고요. 추천인은 고민중. 없이 할까요.... 넥도리아(119.195) 11.26 44 0
2777798 여긴 뭐 개발관련글이 없냐 [6] ㅇㅇ(211.246) 11.26 115 0
2777786 새로 나오는 자스 프레임웍들 대부분은 ㅇㅇ갤로그로 이동합니다. 11.26 65 1
2777783 솔직히 해외 재벌들 좇센에서 태어났으면 뒷통수한방(1.213) 11.26 34 0
2777781 좇센처럼 기술이 발전할수록 나라는 좇망하는나라 뒷통수한방(1.213) 11.26 62 0
2777777 777777럭키세븐 이야 ㅇㅅㅇ2 나트륨찡갤로그로 이동합니다. 11.26 53 0
2777776 ㅇㅅㅇ [2] 나트륨찡갤로그로 이동합니다. 11.26 58 0
2777771 메일수신하면 문자오는데 [4] 멍청한유라ㅋ갤로그로 이동합니다. 11.26 81 0
2777770 알고리즘들 실제 개발할때 많이 쓰게되나요? [7] 프갤러(58.233) 11.26 114 0
2777766 Firestore 원래 컬렉션 깊게파면 이럼? [2] ㅇㅇ(118.235) 11.26 61 0
2777764 무뼈 닭발에 신라면 하나 끓여 먹고 싶다 [1] 주아갤로그로 이동합니다. 11.25 40 0
2777762 프로그래밍 공부 순서 궁금한거요 [6] qu(221.154) 11.25 106 0
Msw 개발자님에게 질문 프갤러(175.213) 11.25 51 0
2777760 뭐부터 공부해야되나 웹땔깜인데 [2] 프갤러(59.187) 11.25 98 0
2777759 안녕하세요 눈뜬 장님 왔습니다. [5] cvs.갤로그로 이동합니다. 11.25 78 0
2777758 태어나자마자 재벌자식인데다가 뒷통수한방(1.213) 11.25 26 0
2777756 케이던스 180으로 뛰니까 ㄹㅇ 후유증 1도 없네양⭐+ ♥알지말아야할것을알아버린냥덩♥갤로그로 이동합니다. 11.25 86 0
2777749 일본 취업 유학 워홀 여행 오픈톡 ㅇㅇ(106.133) 11.25 38 0
2777747 정우성씨는 콘돔없이 즐길건같더라 [3] 헬마스터갤로그로 이동합니다. 11.25 102 0
2777746 우왁굳씨도 마누라에 잡혀사시는것 같더라 [3] 헬마스터갤로그로 이동합니다. 11.25 77 0
2777745 예전 몇 년 동안 진라면 맜있다가 어느순간 맛 없어짐 [1] ♥알지말아야할것을알아버린냥덩♥갤로그로 이동합니다. 11.25 43 0
2777743 저도 유명인 되고 싶습니다. 이재명 만큼 힘을 기르고 싶어요. [2] 넥도리아(119.195) 11.25 23 0
2777742 자 다들 날 응원하고 옹호해줘 그럼 2만 [4] ㅆㅇㅆ(124.216) 11.25 56 1
2777741 남이 끓인 라면을 먹고싶구나 [4] 주아갤로그로 이동합니다. 11.25 63 0
2777740 옛날 다녔던 회사는 [4] 주아갤로그로 이동합니다. 11.25 77 0
2777736 AWS-SAA 자격증 나만어렵나 [3] 컴덕후갤로그로 이동합니다. 11.25 62 0
2777735 안드로이드 스튜디오 가상에뮬 ㅅㅂ ㅈㄴ 민감하노 [5] ㅇㅇ(121.164) 11.25 78 0
2777734 나도 이재용 인생으로 1시간만이라도 살아보고싶다 [3] 뒷통수한방(1.213) 11.25 84 0
2777733 일마치고 방금왔는데 노가다 하고 집오니까 코딩 할 기력이 없음 ㅆㅇㅆ(124.216) 11.25 33 0
2777732 개인적으로 다중이 파악할때, 주로 쓰는 단어 빈도랑 온점으로 파악함 [2] ㅆㅇㅆ(124.216) 11.25 47 3
2777729 이번 주말동안 작업한거 그냥 날려야겠다. ㅆㅇㅆ(124.216) 11.25 38 0
2777728 보니까 123.213이 2명이네 갤에 [5] ㅆㅇㅆ(124.216) 11.25 49 0
2777727 의미없이 유튜브, 디씨하는 시간만 없어도 좋겠다... ㅇㅇ(123.213) 11.25 40 0
2777724 눈을 감아버렸다. [7] 멍청한유라ㅋ갤로그로 이동합니다. 11.25 72 0
2777723 형님들,,, 혼자 공부하고 있는데 도움좀.. [2] 프갤러(175.115) 11.25 56 0
2777722 코드 빨리짜달라고 한마디만 더해봐라 [3] 프갤러(223.38) 11.25 75 0
2777721 안경이 압축이 3번에 고도난시에 고도근시인데, 어떻게 해야될까요 [2] 넥도리아(119.195) 11.25 46 0
뉴스 지드래곤, 계엄령 사태 비판?... ‘알아서 꺼져라’ 글에 좋아요 디시트렌드 12.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2