디시인사이드 갤러리

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

갤러리 본문 영역

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

프갤러(175.213) 2024.11.25 23:39:14
조회 50 추천 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 - -
2778166 오랜만에 갱뱅 큐가 잡혔는데 [2] 아스카영원히사랑해갤로그로 이동합니다. 11.27 89 0
2778165 일단 오늘은 퇴근해야겠다- [1] 프갤러(121.172) 11.27 49 1
2778164 내일은 디비 쪽하고 서버 쪽 다룰 듯? 프갤러(121.172) 11.27 52 1
2778163 어디보자- 통합관리 시스템- 프갤러(121.172) 11.27 44 1
2778162 AntiX 리눅스 23 최신판에 한글 입력기가 안 깔린다 [1] 발명도둑잡기갤로그로 이동합니다. 11.27 27 0
2778161 롯데는 기업경영을 어떻게하면 노예들이 일해줘도 망하는거임?? [1] 뒷통수한방(1.213) 11.27 58 0
2778160 초보자인데 이거 해결 방법이 뭐임? [3] 프갤러(124.51) 11.27 81 0
2778159 애니프사 올리고 싶어지는 디자인- 프갤러(121.172) 11.27 62 1
2778158 교육으로나 써야할 파이썬 [4] 프갤러(59.16) 11.27 88 0
2778156 요새는 고급도 채용뜨면 [1] 프갤러(211.234) 11.27 76 0
2778155 가지튀김 만들기..jpg 글 보니 드는 생각 발명도둑잡기갤로그로 이동합니다. 11.27 27 0
2778154 애니프사 최종 버전- 프갤러(121.172) 11.27 43 1
2778152 여친이 동물의 숲만 몇년째 합니다 [2] 프로외노자갤로그로 이동합니다. 11.27 85 0
2778151 요즘 애들은 코딩하다 막히면 gpt에게 물어보지만 프갤러(223.39) 11.27 92 2
2778148 형들 인터넷 주소 바꾸는건 어떻게 하는거야? [7] ㅇㅇ(209.38) 11.27 66 0
2778147 4시간 남음 [2] 주아갤로그로 이동합니다. 11.27 60 0
2778146 2030 절반 이상이 비연애 상태, 뇌과학자가 말하는 연애하지 않는 이유 [1] 발명도둑잡기갤로그로 이동합니다. 11.27 58 0
2778145 당연히 나 디자인 감각 떨어지지- [1] 프갤러(121.172) 11.27 51 1
2778144 다리 이미 끊겼는데…지도만 따르던 차량 속 셋 전부 추락사 발명도둑잡기갤로그로 이동합니다. 11.27 23 0
2778143 프로그래머스 기업코테 봤는데 효율성 테스트? [1] 구저한(106.101) 11.27 84 0
2778142 나도 야근하고싶다 ㅇㅇ(39.7) 11.27 28 0
2778141 모모링 검은팬티 실루엣 보인당.. ♥불시검문냥덩♥갤로그로 이동합니다. 11.27 65 2
2778139 어쨌든 애니프사도 배치했겠다- 잠시 쉬자- [1] 프갤러(121.172) 11.27 60 1
2778138 내가 지금 전세나 월세를 산다면 얼마 들까 [4] 발명도둑잡기갤로그로 이동합니다. 11.27 43 0
2778137 야 사기꾼 판 친다- 조심해라- 이력서 보이스 피싱- 프갤러(121.172) 11.27 54 0
2778135 OOP에서 패턴은 룰이 아님. 패턴은 선배 프로그래머의 경험적 산물이지 [1] ㅆㅇㅆ(124.216) 11.27 105 4
2778134 주식 사기 당했다- 프갤러(121.172) 11.27 36 1
2778133 나님 건조기에 빨래 돌리는즁❤+ ♥불시검문냥덩♥갤로그로 이동합니다. 11.27 31 0
2778132 디자인 패턴중에 객체는 한개만 만든다는 왜 있는 병신같은 룰임? [5] illilj갤로그로 이동합니다. 11.27 84 0
2778131 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥불시검문냥덩♥갤로그로 이동합니다. 11.27 36 0
2778130 아니? 애니프사 이 배치가 별로라고? 프갤러(121.172) 11.27 62 1
2778129 나 오늘 너무 힘들었다(장문) [2] 조팔탁갤로그로 이동합니다. 11.27 62 0
2778128 벌써 크리스마스구나 [3] 헬마스터갤로그로 이동합니다. 11.27 40 0
2778127 나도 돈좀 아껴야 하는데.. [3] 프갤러(121.129) 11.27 58 0
2778126 애니 프사 쪽 디자인 나왔따- 프갤러(121.172) 11.27 53 1
2778124 일본에서 중국여자를 사겼던 이야기 [2] 프로외노자갤로그로 이동합니다. 11.27 65 0
2778123 규모 20~30명 이런곳 다니면서 결혼한 사람이 있을까..? [5] 프갤러(211.33) 11.27 72 0
2778121 야근 예전에 어떻게했지 [6] 멍청한유라ㅋ갤로그로 이동합니다. 11.27 74 0
2778117 서울쥐포 [1] 프갤러(212.102) 11.27 61 0
2778116 야근싫어 ㅇㅅㅇ... [6] 춘절갤로그로 이동합니다. 11.27 62 0
2778115 다들 돈 아끼고 열심히 살지?? 나만 그런거 아니지?? [1] ㅇㅇ(123.213) 11.27 56 0
2778114 번아웃 2일차 [5] 주아갤로그로 이동합니다. 11.27 68 0
2778113 사람인 잡코리아 원티드 [2] 마우스구오갤로그로 이동합니다. 11.27 60 0
2778112 아무것도 안 하고 7시간 보내기 [3] 주아갤로그로 이동합니다. 11.27 37 0
2778111 단순 자바 학습용이면 이클립스 경량 버전 써도 됨? [3] 프갤러(172.226) 11.27 57 0
2778110 오늘 잘 한 일 발명도둑잡기갤로그로 이동합니다. 11.27 37 0
2778109 그리드 잡았따 - 애니 프사 공간- [1] 프갤러(121.172) 11.27 51 0
2778107 빈페이지를 마이페이지로 바꿀 생각하니까- 프갤러(121.172) 11.27 56 0
2778106 아무래도 커피양을 줄여야 할거같다. [2] 40대프린이(118.235) 11.27 70 0
2778105 야 내가 호주에서 워킹홀리데이 갔던 내용 알려줄까? [1] 프갤러(121.172) 11.27 56 1
뉴스 김세정, ‘취하는 로맨스’ OST 직접 부른다…성시경 ‘두사람’ 재해석 디시트렌드 12.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2