플레이어가 다른 랜드로 이동 완료 후에 설정한 데이터를 받 을 수 있어요.
연결함수 형식은 function(player, TransferData), player 는 텔레포트 완료한 Player 객체, TransferData 는 이전 맵에서 가져온 데이터 입니다.
-- 샘플 --
localfunctionTeleportFinish(player,TransferData)if player ==nilthenreturnendprint("Teleport Data Count : ", TransferData:DataCount()) --AddLandTransferData 로 설정한 데이터의 개수에요.for i, key, value inpairs(TransferData:DataArray()) doprint(key) --AddLandTransferData 로 설정한 데이터의 Key 값이에요.print(value) --AddLandTransferData 로 설정한 데이터의 Value 값이에요.endendGame.OnTeleportFinishEvent:Connect(TeleportFinish) --텔레포트가 끝났을 때 이전 랜드에서 설정한 데이터를 받을 함수를 연결해요.
OnTeleportFailedEvent
텔레포트가 실패 했을때 호출돼요
실패한 유저와 텔레포트하려고 했던 LandOrder를 반환해줘요.
연결함수 형식은 function(TeleportErrorType, player, LandOrder)
TeleportErrorType 은 error 타입, player는 텔레포트 시도한 Player , LandOrder 는 랜드번호 입니다.
-- 샘플 --
localfunctionTeleportFailed(TeleportErrorType,player,LandOrder)if player ==nilthenreturnendprint("Teleport Failed!")print("LandOrder : ", LandOrder)print("Player Name : ", player.Name)endGame.OnTeleportFailedEvent:Connect(TeleportFailed) --텔레포트에 실패한 플레이어의 이름과 LandOrder를 받을 함수를 연결해요.
OnLuckyDrawResult
럭키드로우 결과 이벤트에요
연결함수 형식은 function(number playerid, string OrderNo, table cards)
OnLuckyDrawNotifyAddOrder
럭키드로우 결재 정보 추가 이벤트에요.
연결함수 형식은 function(number playerid, string eventid, RLuckyDrawOrder)
유저 충돌 타입 설정을 추가할 수 있어요. (충돌 타입 이름 설정)
특정 오브젝트의 충돌 처리를 다른 오브젝트와 다르게 할 때 사용
예) 특정 오브젝트만 통과하고, 캐릭터는 못 통과하는 오브젝트.
-- 샘플 --
Game:AddUserCollisionType("CollisionTag1") --게임에 유저 충돌 타입(CollisionTag1)을 추가해요.local cube1 = Workspace.Cube1local cube2 = Workspace.Cube2cube1.Collision:SetCollisionType("CollisionTag1") --객체A에 충돌 타입(CollisionTag1)을 설정해요.cube2.Collision:SetUserCollisionTypeResponse("CollisionTag1", Enum.CollisionResponse.Overlap) --또 다른 객체B에 충돌 타입(CollisionTag1)별 충돌 반응을 설정해요.
게임에 적용 할 스폰 그룹을 설정할 수 있어요. (게임에 적용 할 스폰포인트 그룹 오브젝트)
-- 샘플 --
local spawnList = Workspace.SpawnerList:GetChildList()local spawnGroup = Game:AddSpawnPointGroup("SpawnGroup1") --이름으로 스폰 그룹을 등록해요.for i =1, #spawnList dolocal spawner = Game:AddSpawnPointAtGroup("SpawnGroup1", spawnList[i]) --스폰 그룹에서 사용할 스폰포인트를 등록해요. spawner:SetSpawnType(Enum.PointSpawnType.Area, 0) --스폰포인트의 작동방식을 설정해요.endGame:SetUsingSpawnPointGroup(spawnGroup) --게임에 적용할 스폰 그룹을 설정해요.Game:SetSpawnType(Enum.SpawnType.UseSpawnGroup) --게임의 스폰타입을 설정해요.
void SetUsingSpawnPoint(SpawnPoint SpawnPoint)
게임에 적용 할 스폰 포인트를 설정할 수 있어요. (게임에 적용 할 스폰포인트 오브젝트)
-- 샘플 --
local SpawnPoint = Workspace.SpawnPointlocal WaitSpawnPoint = Game:AddSpawnPoint(SpawnPoint)local SpawnRadius =0WaitSpawnPoint:SetSpawnType(Enum.PointSpawnType.Area, SpawnRadius)Game:SetUsingSpawnPoint(WaitSpawnPoint) -- 처음 실행 시 사용할 SpawnPoint 지정
SpawnPoint GetUsingSpawnPoint()
게임에 적용되어있는 스폰 포인트를 가져올 수 있어요.
-- 샘플 --
local usingSpawnPoint = Game:GetUsingSpawnPoint()print(usingSpawnPoint)
void SetDefaultSpawnPos(Vector Pos)
설정된 스폰 포인트가 없을 경우 지정한 위치에 스폰되도록 해요. (스폰할 위치 Vector)
-- 샘플 --
local DefaultSpawnPos = Vector.new(0, 0, 200) --설정된 스폰포인트가 없을때 사용할 기본 스폰 위치에요.Game:SetDefaultSpawnPos(DefaultSpawnPos)
local teamName ="Blue Team"local team = Game:AddTeam(teamName) --이름으로 팀을 추가한뒤, 추가한 팀을 반환해요.local spawnGroup = Game:AddSpawnPointGroup(teamName) --이름으로 스폰 그룹을 등록해요.local spawnRadius =50--팀별 캐릭터 스폰 반경을 설정해요.team:AddUsingCharacter(Workspace.CharacterSetting) --팀별로 사용하는 캐릭터를 따로 지정할 수도 있어요.team:SetUsingSpawnPointGroup(teamName) --팀에서 사용할 스폰 그룹을 설정해요.local spawner = Game:AddSpawnPointAtGroup(teamName, Workspace.SpawnPoint) --스폰 그룹에서 사용할 스폰포인트를 등록해요.spawner:SetSpawnType(Enum.PointSpawnType.Area, spawnRadius) --팀의 스폰타입을 설정해요.Game:SetTeamSetting(Enum.TeamType.Team, Enum.DivideTeamType.Equal) --팀에 플레이어를 분배하는 방식을 설정해요.Game:SetSpawnType(Enum.SpawnType.UseTeamSpawn) --게임의 캐릭터 스폰 방식을 설정해요.Game:ApplyTeamSetting() --팀 설정을 적용해요. (모든 플레이어가 리스폰돼요.)localfunctionSpawnCharacter(character)print(character.Name .."'s' Team : " .. character:GetPlayer():GetTeamName()) --팀 이름을 반환해요.endGame.OnSpawnCharacter:Connect(SpawnCharacter)
Player GetPlayer(number PlayerID)
플레이어 아이디로 플레이어를 얻을 수 있어요. (얻고 싶은 플레이어 아이디)
-- 샘플 --
local player = Game:GetPlayer(PlayerID) --플레이어 아이디에 해당하는 플레이어를 반환해요.
Character GetPlayerCharacter(number PlayerID)
플레이어 아이디로 플레이어 캐릭터를 얻을 수 있어요. (얻고 싶은 플레이어 아이디)
-- 샘플 --
local playerID = player:GetPlayerID()local character = Game:GetPlayerCharacter(PlayerID)print(character.Name)
--서버 스크립트에서local cube = Workspace.Cubewait(1)cube:BroadcastEvent("SomeFunc", 1) --모든 플레이어에게 SomeFunc() 함수를 호출해요.-------------------------------------클라 스크립트에서local cube = Workspace.cube--필요하다면 함수의 인자도 넣을 수 있어요. 단, 숫자나 문자열 인자만 넣을 수 있어요.localfunctionSomeFunc(id)print("Call SomeFunc (" .. id ..")")endcube:ConnectEventFunction("SomeFunc", SomeFunc) --오브젝트에 "SomeFunc"라는 이벤트 이름으로 SomeFunc 함수를 연결해요.--오브젝트가 아닌 Game에도 연결할 수 있어요.--같은 대상에 등록된 이벤트만 호출할 수 있어요.
해당 클라이언트에게만 이벤트를 보내는 함수에요. (이벤트 보낼 플레이어 아이디, 이벤트 이름, 전달할 변수들 ...)
-- 샘플 --
--서버 스크립트에서local cube = Workspace.Cubewait(1)cube:SendEventToClient(player:GetPlayerID(), "SomeFunc", 1) --특정 플레이어에게 SomeFunc() 함수를 호출해요. (첫번째 인자로 플레이어 아이디가 반드시 들어가야해요.)-------------------------------------클라 스크립트에서local cube = Workspace.cube--필요하다면 함수의 인자도 넣을 수 있어요. 단, 숫자나 문자열 인자만 넣을 수 있어요.localfunctionSomeFunc(id)print("Call SomeFunc (" .. id ..")")endcube:ConnectEventFunction("SomeFunc", SomeFunc) --오브젝트에 "SomeFunc"라는 이벤트 이름으로 SomeFunc 함수를 연결해요.--오브젝트가 아닌 Game에도 연결할 수 있어요.--같은 대상에 등록된 이벤트만 호출할 수 있어요.
void InitInventorySize(number XSize, number YSize)
인벤토리의 초기 생성 사이즈를 설정할 수 있어요. (가로 사이즈, 세로 사이즈)
-- 샘플 --
Game:InitInventorySize(9, 2) --인벤토리 크기가 가로 9, 세로 2로 설정돼요.
지정한 위치에 클라이언트와 동기화되는 오브젝트를 생성할 수 있어요. (생성 할 오브젝트, 생성할 월드 위치 Vector)
-- 샘플 --
local cube = Workspace.Cubelocal createPos = Vector.new(0, 0, 0)local temp = Game:CreateSyncObject(cube, createPos) --오브젝트를 지정된 위치에 생성해요. (모든 플레이어에게 보여요.)print(temp.Name) --CreateSyncObject로 생성한 오브젝트를 변수에 담은 뒤 후처리할 수 있어요.
지정한 위치에 클라이언트와 동기화되는 오브젝트를 생성할 수 있어요. (생성 할 오브젝트, 생성할 월드 위치 Vector, 설정할 이름, 부모가 될 오브젝트)
-- 샘플 --
local cube = Workspace.Cubelocal createPos = Vector.new(0, 0, 0)local temp = Game:CreateSyncObject(cube, createPos, obj.Name, Workspace) --오브젝트를 Workspace의 자식으로 지정된 위치에 특정 이름으로 생성해요. (모든 플레이어에게 보여요.)print(temp.Name) --CreateSyncObject로 생성한 오브젝트를 변수에 담은 뒤 후처리할 수 있어요.
func void SendToClient_GameStatisticsData(number PlayerID, GameStatisticsData Data, number Offset, number Count)
** 게임 통계 데이터를 클라이언트로 보내줄 수 있어요 (보내줄 플레이어 아이디, GameStatisticsData(키, 정렬, 덮어쓰기), Offset 값, Count 값)
** 해당 함수는 10초 이상의 간격을 두고 사용해야 해요.
샘플
```lua
</br>
| **void Broadcast_GameStatisticsData(GameStatisticsData Data, number Offset, number Count)** |
| :--- |
게임 통계 데이터를 모든 클라이언트로 보내요 (GameStatisticsData(키, 정렬, 덮어쓰기), Offset 값, Count 값)</br>해당 함수는 10초 이상의 간격을 두고 사용해야 해요.
-- 샘플 --
```lua
local LeaderBoardData = Game:GetStatisticsData(LeaderBoardName)
Game:Broadcast_GameStatisticsData(LeaderBoardData, 0, 10)
PlayerList GetAllPlayer()
모든 플레이어 얻을 수 있어요.
-- 샘플 --
local allPlayerList = Game:GetAllPlayer() --모든 플레이어를 리스트로 반환해요.for i =1, #allPlayerList doprint(allPlayerList[i].Name)end
void TeleportToPublicServer(number LandOrder, List PlayerIDList)
공개서버로 접속하는 텔레포트에요
텔레포트 한 랜드에 다른사람이 있을 수 있어요
-- 샘플 --
local LandOrder =1--텔레포트시킬 랜드의 번호에요. (랜드 번호는 내 게임 관리 - 게임 설정에서 확인할 수 있어요.)local Collider = Script.ParentlocalfunctionTeleportFunc(self,character)if character ==nilornot character:IsCharacter() thenreturnendlocal movePlayerIDList = {} --텔레포트시킬 플레이어의 아이디들을 저장하기 위한 변수에요.table.insert(movePlayerIDList, character:GetPlayerID()) --텔레포트 시킬 플레이어의 아이디를 변수에 추가해요. Game:TeleportToPublicServer(LandOrder, movePlayerIDList) --공개 설정된 랜드로 텔레포트를 시작해요.endCollider.Collision.OnBeginOverlapEvent:Connect(TeleportFunc) --오브젝트와 충돌을 시작할때 호출되는 함수를 연결해요.
void TeleportToPrivateServer(number LandOrder, List PlayerIDList)
비공개서버로 접속하는 함수에요
나만 혹은 지정한 인원으로만 새로 서버를 만들어서 하고 싶을때 사용해요
-- 샘플 --
local LandOrder =1234--텔레포트시킬 랜드의 번호에요. (랜드 번호는 내 게임 관리 - 게임 설정에서 확인할 수 있어요.)local Collider = Script.ParentlocalfunctionTeleportFunc(self,character)if character ==nilornot character:IsCharacter() thenreturnendlocal movePlayerIDList = {} --텔레포트시킬 플레이어의 아이디를 저장하기 위한 변수에요.table.insert(movePlayerIDList, character:GetPlayerID()) --텔레포트 시킬 플레이어의 아이디를 변수에 추가해요. Game:TeleportToPrivateServer(LandOrder, movePlayerIDList) --비공개 설정된 랜드로 텔레포트를 시작해요.endCollider.Collision.OnBeginOverlapEvent:Connect(TeleportFunc) --오브젝트와 충돌을 시작할때 호출되는 함수를 연결해요.
void TeleportToServerUsingIP(string ServerIP, number SlotID, number PlayerID)
서버 주소를 이용하여 서버에 접속하는 함수에요
접속해야 하는 서버 주소를 알고, 슬롯 아이디를 알고 있을 때 사용해요
string GetServerIP()
서버 주소를 이용하여 서버에 접속하는 함수에요
현재 서버의 주소를 얻을 때 써요
number GetSlotID()
서버 주소를 이용하여 서버에 접속에 필요한 파라미터
현재 서버의 슬롯 아이디를 얻을 때 써요
void AddTeleportStartEvent(number LandOrder, function TeleportStartFunction)
플레이어가 텔레포트 이동을 시작할때 호출되는 이벤트 함수를 추가할 수 있어요.
랜드별로 이벤트를 설정 할 수 있어요.
-- 샘플 --
local LandOrder =1localfunctionPortalA_TeleportStart(player)--해당 랜드에 이동해서 사용할 데이터를 저장해요. player:AddLandTransferData("TestValue1", 1000) player:AddLandTransferData("TestValue2", "StringValueTest")print("Teleport Start!")endGame:AddTeleportStartEvent(LandOrder, PortalA_TeleportStart) --플레이어가 특정 랜드로 텔레포트 이동을 시작할때 호출되는 함수를 연결해요.