Player
Player
๊ฒ์์ ์ฐธ์ฌํ ํ๋ ์ด์ด ๊ฐ์ฒด์์. ์ด ๊ธฐ๋ฅ๋ค์ ์๋ฒ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํด์.
ํจ์
Character GetCharacter()
ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๋ฅผ ์ป์ ์ ์์ด์.
-- ์ํ --
local character = player:GetCharacter() --ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๋ฅผ ๋ฐํํด์.
number GetPlayerID()
ํ๋ ์ด์ด์ ์์ด๋๋ฅผ ์ป์ ์ ์์ด์.
-- ์ํ --
print(player:GetPlayerID()) --ํ๋ ์ด์ด์ ํ๋ ์ด์ด ์์ด๋๋ฅผ ์ซ์๋ก ๋ฐํํด์.
string GetPlayerNickName()
ํ๋ ์ด์ด์ ๋๋ค์์ ์ป์ ์ ์์ด์.
-- ์ํ --
print(player:GetPlayerNickName()) --ํ๋ ์ด์ด์ ํ๋ ์ด์ด ๋๋ค์์ ๋ฌธ์๋ก ๋ฐํํด์.
string GetTeamName()
ํ๋ ์ด์ด๊ฐ ์ํด์๋ ํ ์ด๋ฆ์ ์ป์ ์ ์์ด์.
-- ์ํ --
print(player.Name .. " Team : " .. player:GetTeamName()) --ํ ์ด๋ฆ์ ๋ฐํํด์.
void KillCharacter()
ํ๋ ์ด์ด ์บ๋ฆญํฐ๋ฅผ ์ฃฝ๊ฒ ํ๋ ํจ์์์.
-- ์ํ --
player:KillCharacter() --ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๋ฅผ ์ฃฝ์ฌ์.
void RespawnCharacter()
ํ๋ ์ด์ด ์บ๋ฆญํฐ๋ฅผ ๋ฆฌ์คํฐ ์ํค๋ ํจ์์์.
-- ์ํ --
player:RespawnCharacter() --ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๋ฅผ ๋ฆฌ์คํฐํด์.
void SetCheckPoint(SpawnPoint SpawnPointObject)
ํ๋ ์ด์ด์ ์ฒดํฌ ํฌ์ธํธ๋ฅผ ์ค์ ํ ์ ์์ด์ (์ค์ ํ ์คํฐ ํฌ์ธํธ ์ค๋ธ์ ํธ)
void SetCheckPoint(Object TargetObject)
ํ๋ ์ด์ด์ ์ฒดํฌ ํฌ์ธํธ๋ฅผ ์ค์ ํ ์ ์์ด์ (์ค์ ํ ์๋ ์ค๋ธ์ ํธ)
-- ์ํ --
local NewCheckPoint = Workspace.Cube
player:SetCheckPoint(NewCheckPoint)
SpawnPoint GetCheckPoint()
ํ๋ ์ด์ด์ ์ฒดํฌ ํฌ์ธํธ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ด์.
-- ์ํ --
local playerCheckPoint = player:GetCheckPoint()
print(playerCheckPoint)
void RemoveCheckPoint()
์ค์ ํด๋์ ์ฒดํฌ ํฌ์ธํธ๋ฅผ ์ง์์.
-- ์ํ --
player:RemoveCheckPoint()
void SetFreeCamMode(bool bFreeCam)
ํ๋ ์ด์ด์ ํ๋ฆฌ์บ ๋ชจ๋ ์ฌ์ฉ์ฌ๋ถ๋ฅผ ์ค์ ํ ์ ์์ด์. (ํ๋ฆฌ์บ ์ฌ์ฉ ์ฌ๋ถ)
-- ์ํ --
player:SetFreeCamMode(true)
bool GetFreeCamMode()
ํด๋น ํ๋ ์ด์ด๊ฐ ํ๋ฆฌ์บ ๋ชจ๋ ์ํ์ธ์ง ๊ฐ์ ธ์ฌ ์ ์์ด์.
-- ์ํ --
player:SetFreeCamMode(true)
local freeCamMode = player:GetFreeCamMode()
print(freeCamMode) -- true
void RequestFreeCam(number WaitTime)
์ง์ ๋ ์๊ฐ์ด ์ง๋ ํ์ ํ๋ ์ด์ด์ ํ๋ฆฌ์บ ๋ชจ๋๋ฅผ ์์ฒญํด์. (๋๊ธฐ ์๊ฐ)
-- ์ํ --
player:RequestFreeCam(3) --3์ดํ ํ๋ฆฌ์บ ์ด ์์๋ผ์.
bool GiveItem(Item ObjectItem)
ํ๋ ์ด์ด์๊ฒ ์์ดํ ์ ์ค ์ ์์ด์. (์ค ์์ดํ ) return ์ฑ๊ณต, ์คํจ
-- ์ํ --
local item = Script.Parent
wait(2)
player:GiveItem(item) --ํ๋ ์ด์ด์๊ฒ ์์ดํ
์ ์ง๊ธํด์.
bool GiveItem(Item ObjectItem, number Count)
ํ๋ ์ด์ด์๊ฒ ์์ดํ ์ ์ค ์ ์์ด์. (์ค ์์ดํ , ๊ฐ์) return ์ฑ๊ณต, ์คํจ
-- ์ํ --
local item = Script.Parent
local count = 3
wait(2)
bool isSuccess = player:GiveItem(item, count) --ํ๋ ์ด์ด์๊ฒ ์์ดํ
์ 3๊ฐ ์ง๊ธํด์.
number GetInventorySize()
ํ๋ ์ด์ด์ ์ธ๋ฒคํ ๋ฆฌ ์ฌ์ด์ฆ๋ฅผ ์ป์ ์ ์์ด์.
-- ์ํ --
print(player:GetInventorySize()) --ํ๋ ์ด์ด์ ์ธ๋ฒคํ ๋ฆฌ ์ฌ์ด์ฆ๋ฅผ ์ซ์๋ก ๋ฐํํด์.
void DeleteItem(number index)
ํด๋น ํ๋ ์ด์ด์ ์ธ๋ฒคํ ๋ฆฌ ์นธ์ ํด๋น ์์ดํ ์ ์ญ์ ํด์. (์ญ์ ํ๋ ค๋ ์นธ)
-- ์ํ --
player:DeleteItem(1)
void DeleteItem(number index, number count)
ํด๋น ํ๋ ์ด์ด์ ์ธ๋ฒคํ ๋ฆฌ ์นธ์ ํด๋น ์์ดํ ์ ๊ฐฏ์๋งํผ ์ญ์ ํด์. (์ญ์ ํ๋ ค๋ ์นธ, ์ญ์ ๊ฐฏ์)
-- ์ํ --
player:DeleteItem(1, 3)
void DeleteItem(Item TargetItem)
ํด๋น ํ๋ ์ด์ด์ ์ธ๋ฒคํ ๋ฆฌ์์ ํด๋นํ๋ ์์ดํ ์ ์ญ์ ํด์. (์ญ์ ํ๋ ค๋ ์์ดํ )
-- ์ํ --
player:DeleteItem(item)
void DeleteItem(Item TargetItem, number count)
ํด๋น ํ๋ ์ด์ด์ ์ธ๋ฒคํ ๋ฆฌ์์ ํด๋นํ๋ ์์ดํ ์ ๊ฐฏ์๋งํผ ์ญ์ ํด์. (์ญ์ ํ๋ ค๋ ์์ดํ , ์ญ์ ๊ฐฏ์)
-- ์ํ --
player:DeleteItem(item, 3)
void ClearItem()
ํ๋ ์ด์ด์ ์์ดํ ์ ๋ชจ๋ ์ ๊ฑฐํด์.
-- ์ํ --
player:ClearItem()
bool EquipInventoryItem(number InventoryIndex)
ํ๋ ์ด์ด ์บ๋ฆญํฐ์ ์์ดํ ์ ์ฅ์ฐฉ์ํฌ ์ ์์ด์. (์ฅ์ฐฉ ํ ์ธ๋ฒคํ ๋ฆฌ ์นธ)
-- ์ํ --
local item = Script.Parent
local collider = Item.BoxCollider
local function GetItem(self, character)
if not character:IsCharacter() then
return
end
local player = character:GetPlayer()
bool isSuccess = player:GiveItem(item) --ํ๋ ์ด์ด์๊ฒ ์์ดํ
์ ์ง๊ธํด์.
if isSuccess then
local InvenItemList = Player:GetInventoryItemList()
--ํ๋ ์ด์ด ์ธ๋ฒคํ ๋ฆฌ์์ ์ด๋ฆ์ผ๋ก ์์ดํ
์ ์ฐพ์์.
for slotIndex, slotItem in pairs(InvenItemList) do
if slotItem.Name == item.Name then
--ํ๋ ์ด์ด ์บ๋ฆญํฐ์ ์์ดํ
์ ์ฅ์ฐฉ์์ผ์.
player:EquipInventoryItem(slotIndex)
return
end
end
end
end
collider.Collision.OnBeginOverlapEvent:Connect(GetItem)
void SwapInventoryItem(number InventoryIndex, number InventoryIndex_Other)
์ธ๋ฒคํ ๋ฆฌ ์์ ๋ ์์ดํ ์์น๋ฅผ ์๋ก ๋ฐ๊ฟ์.
void SetItemQuickSlot(number QuickSlotId, number InventoryIndex)
์์ดํ ์ ํต์ฌ๋กฏ์ ๋ฑ๋กํด์.
void ReleaseItemQuickSlot(number QuickSlotId)
์์ดํ ์ ํต์ฌ๋กฏ์์ ํด์ ํด์.
void ClearQuickSlot()
ํต์ฌ๋กฏ์ ๋ฑ๋ก๋ ๋ชจ๋ ์์ดํ ํด์ ํด์.
void SwapItemQuickSlot(number QuickSlotId_A, number QuickSlotId_B)
ํต์ฌ๋กฏ์ ๋ฑ๋ก๋ ๋ ์์ดํ ์ ์๋ก ๋ฐ๊ฟ์.
void UseItemQuickSlot(number QuickSlotId)
ํต์ฌ๋กฏ์ ๋ฑ๋ก๋ ์์ดํ ์ ์ฌ์ฉํด์.
Item GetItemQuickSlot(number QuickSlotId)
ํต์ฌ๋กฏ์ ๋ฑ๋ก๋ ์์ดํ ์ ์ป์ด์.
void SetEnableCollisionBetweenCharacters(bool Enable)
ํ๋ ์ด์ด๊ฐ์ ์ถฉ๋ ์ฌ๋ถ๋ฅผ ์ค์ ํ ์ ์์ด์. (์ถฉ๋ ์ฌ๋ถ)
-- ์ํ --
player:SetEnableCollisionBetweenCharacters(false) --ํน์ ํ๋ ์ด์ด๊ฐ ๋ค๋ฅธ ์บ๋ฆญํฐ์ ์ถฉ๋๋์ง ์๊ฒ ์ค์ ํด์.
void SetUserCollisionTypeResponse(string UserCollisionType, CollisionResponse Response)
์ ์ ๊ฐ ์ถฉ๋ ์ ๋ฐ์ ํ์ ์ ์ค์ ํ ์ ์์ด์. (์ถฉ๋ ํ์ ์ด๋ฆ ์ค์ , Enum.CollisionResponse.ํ์ )
-- ์ํ --
Game:AddUserCollisionType("CollisionTag1") --๊ฒ์์ ์ ์ ์ถฉ๋ ํ์
(CollisionTag1)์ ์ถ๊ฐํด์.
local cube1 = Workspace.Cube1
local cube2 = Workspace.Cube2
cube1.Collision:SetCollisionType("CollisionTag1") --๊ฐ์ฒดA์ ์ถฉ๋ ํ์
(CollisionTag1)์ ์ค์ ํด์.
cube2.Collision:SetUserCollisionTypeResponse("CollisionTag1", Enum.CollisionResponse.Overlap) --๋ ๋ค๋ฅธ ๊ฐ์ฒดB์ ์ถฉ๋ ํ์
(CollisionTag1)๋ณ ์ถฉ๋ ๋ฐ์์ ์ค์ ํด์.
bool HaveInventorySaveData()
์ ์ฅ์์ ์ธ๋ฒํ ๋ฆฌ์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋์ง ํ์ธํ ์ ์์ด์.
-- ์ํ --
print(player:HaveInventorySaveData()) --์ ์ฅ์์ ์ธ๋ฒํ ๋ฆฌ์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์์ผ๋ฉด true๋ฅผ ๋ฐํํด์.
HitResult LineTrace(Vector Start, Vector Dir, number Distance)
(deprecated) ์ค์ ๋ ์์ ์ง์ ์์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์ง์ ๋ ๊ฑฐ๋ฆฌ ๋งํผ ์ถฉ๋์ด ์๋์ง ์ฒดํฌํ ์ ์์ด์. (์์ ์ง์ Vector, ๋ฐฉํฅ Vector, ๊ฑฐ๋ฆฌ ๊ฐ) ์ฌ์ฉํ๋ player๋ ์ฒดํฌ์์ ์ ์ธ๋ฉ๋๋ค.
HitResult LineTrace(Vector Start, Vector Dir, number Distance, string UserCollisionTypeName)
(deprecated) ์ค์ ๋ ์์ ์ง์ ์์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์ง์ ๋ ๊ฑฐ๋ฆฌ ๋งํผ ์ ์ ๊ฐ ์ถ๊ฐํ ์ถฉ๋ ํ์ ๊ณผ์ ์ถฉ๋์ด ์๋์ง ์ฒดํฌํ ์ ์์ด์. (์์ ์ง์ Vector, ๋ฐฉํฅ Vector, ๊ฑฐ๋ฆฌ ๊ฐ, ์ํ๋ ์ ์ ์ถฉ๋ ํ์ ์ด๋ฆ) ์ฌ์ฉํ๋ player๋ ์ฒดํฌ์์ ์ ์ธ๋ฉ๋๋ค.
HitResult LineTraceList(Vector Dir, number Distance)
์ค์ ๋ ์์ ์ง์ ์์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์ง์ ๋ ๊ฑฐ๋ฆฌ ๋งํผ ์ถฉ๋์ด ์๋์ง ์ฒดํฌํ ์ ์์ด์. (์์ ์ง์ Vector, ๋ฐฉํฅ Vector, ๊ฑฐ๋ฆฌ ๊ฐ) ์ฌ์ฉํ๋ player๋ ์ฒดํฌ์์ ์ ์ธ๋ฉ๋๋ค.
HitResult LineTraceList(Vector Dir, number Distance, string UserCollisionTypeName)
์ค์ ๋ ์์ ์ง์ ์์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์ง์ ๋ ๊ฑฐ๋ฆฌ ๋งํผ ์ ์ ๊ฐ ์ถ๊ฐํ ์ถฉ๋ ํ์ ๊ณผ์ ์ถฉ๋์ด ์๋์ง ์ฒดํฌํ ์ ์์ด์. (์์ ์ง์ Vector, ๋ฐฉํฅ Vector, ๊ฑฐ๋ฆฌ ๊ฐ, ์ํ๋ ์ ์ ์ถฉ๋ ํ์ ์ด๋ฆ) ์ฌ์ฉํ๋ player๋ ์ฒดํฌ์์ ์ ์ธ๋ฉ๋๋ค.
-- ์ํ --
local startPos = Workspace.Cube.Transform.Location
local dir = Vector.new(1, 0, 0)
local distance = 1000
local target = player:LineTrace(startPos, dir, distance) --์์ ์์น์์ ์ง์ ๋ฐฉํฅ์ ๊ฑฐ๋ฆฌ์ ์ถฉ๋์ฒด๊ฐ ์์ผ๋ฉด ์ถฉ๋ ์ ๋ณด๋ฅผ ๋ฐํํด์.
print(target.HitObject.Name) --์ถฉ๋ํ ์ค๋ธ์ ํธ์์.
print(target.HitLocation) --์ถฉ๋ํ ์ค๋ธ์ ํธ์ ์์น์์.
ItemObject GetInventoryItem(number InventoryIndex)
์ง์ ๋ ์นธ์ ์ธ๋ฒคํ ๋ฆฌ ์์ดํ ์ ์ป์ ์ ์์ด์. (์ธ๋ฒคํ ๋ฆฌ ์นธ)
-- ์ํ --
if player:GetInventoryItem(1) ~= nil then
print(player:GetInventoryItem(1).Name) --์ง์ ๋ ์นธ์ ์ธ๋ฒคํ ๋ฆฌ ์์ดํ
์ ๋ฐํํด์.
end
Table GetInventoryItemList()
์ธ๋ฒคํ ๋ฆฌ ์์ ๋ชจ๋ ์์ดํ ์ ์ป์ด์. ๊ฒฐ๊ณผ๊ฐ์ ์ฌ๋กฏ ์ธ๋ฑ์ค์ ํด๋น ์ฌ๋กฏ์ ์์ดํ ์ ์์ผ๋ก ํ๋ ํ ์ด๋ธ์ด์์.
-- ์ํ --
local InvenItemList = Player:GetInventoryItemList()
for slotIndex, slotItem in pairs(InvenItemList) do
print(slotIndex .. " " .. slotItem.Name)
end
Item GetEquipItem(string EquipSlot)
ํ๋ ์ด์ด ์บ๋ฆญํฐ๊ฐ ์ฐฉ์ฉ์ค์ธ ์์ดํ ์ ์ป์ ์ ์์ด์. (์ฅ์ฐฉ ์ค์ธ ์์ดํ ์ฌ๋กฏ)
-- ์ํ --
if player:GetEquipItem("EquipSlot_1") ~= nil then
print(player:GetEquipItem("EquipSlot_1").Name) --ํ๋ ์ด์ด ์บ๋ฆญํฐ๊ฐ ์ฐฉ์ฉ์ค์ธ ์์ดํ
์ ๋ฐํํด์.
end
void AddSaveValue(string ValueName, Vector Data, ReplicateType Type, number Time)
ํด๋น ์ ์ ์ ์ ์ฅ๋๋ ๋ฒกํฐ๋ฅผ ์ถ๊ฐํด์. (Value ์ด๋ฆ, Vector ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
void AddSaveValue(string ValueName, number Data, ReplicateType Type, number Time)
ํด๋น ์ ์ ์ ์ ์ฅ๋๋ ์ค์๋ฅผ ์ถ๊ฐํด์. (Value ์ด๋ฆ, number ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
void AddSaveValue(string ValueName, bool Data, ReplicateType Type, number Time)
ํด๋น ์ ์ ์ ์ ์ฅ๋๋ bool์ ์ถ๊ฐํด์. (Value ์ด๋ฆ, bool ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
void AddSaveValue(string ValueName, string Data, ReplicateType Type, number Time)
ํด๋น ์ ์ ์ ์ ์ฅ๋๋ ๋ฌธ์์ด์ ์ถ๊ฐํด์. (Value ์ด๋ฆ, string ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
void AddSaveValue(string ValueName, Color Data, ReplicateType Type, number Time)
ํด๋น ์ ์ ์ ์ ์ฅ๋๋ ์ปฌ๋ฌ๋ฅผ ์ถ๊ฐํด์. (Value ์ด๋ฆ, Color ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
void AddLandTransferData(string ValueName, Vector Value)
void AddLandTransferData(string ValueName, Double Value)
void AddLandTransferData(string ValueName, Bool Value)
void AddLandTransferData(string ValueName, string Value)
void AddLandTransferData(string ValueName, Color Value)
๋๋ ์ด๋์ ๋ค๋ฅธ ๋๋๋ก ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ด์. ๋ณดํต AddTeleportStartEvent์ ๊ฐ์ด ์ฌ์ฉํด์
-- ์ํ --
local LandOrder1 = 1
local function StartTeleport_Land1(player)
--ํ
๋ ํฌํธํ ๋๋์์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์.
player:AddLandTransferData("LevelData1", 124)
player:AddLandTransferData("PartyName", "DeathParty")
end
Game:AddTeleportStartEvent(LandOrder1, StartTeleport_Land1) --ํ๋ ์ด์ด๊ฐ ํน์ ๋๋๋ก ํ
๋ ํฌํธ ์ด๋์ ์์ํ ๋ ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
local LandOrder2 = 3
local function StartTeleport_Land2(player)
--ํ
๋ ํฌํธํ ๋๋์์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์.
player:AddLandTransferData("LevelData2", 555)
player:AddLandTransferData("PartyName", "FriendParty")
end
Game:AddTeleportStartEvent(LandOrder2, StartTeleport_Land2) --ํ๋ ์ด์ด๊ฐ ํน์ ๋๋๋ก ํ
๋ ํฌํธ ์ด๋์ ์์ํ ๋ ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
Vector GetLandTransferData(Vector ValueName)
Double GetLandTransferData(Double ValueName)
Bool GetLandTransferData(Bool ValueName)
string GetLandTransferData(string ValueName)
Color GetLandTransferData(Color ValueName)
์ด์ ๋๋์์ ์ค์ ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ด์.
-- ์ํ --
player:GetLandTransferData("LevelData") --์ด์ ๋๋์์ ์ค์ ํ ๊ฐ์ ๊ฐ์ ธ์์.
player:GetLandTransferData("PartyName") --์ด์ ๋๋์์ ์ค์ ํ ๊ฐ์ ๊ฐ์ ธ์์.
void SetUsingCharacterSetting(CharacterSetting CharacterSettingObject)
(deprecated) ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ ์ธํ ์ ์ค์ ํด์. (์ค์ ํ ์บ๋ฆญํฐ ์ธํ )
void SetUsingCharacterSetting(CharacterSetting CharacterSettingObject, bool bUseMyBody)
(deprecated) ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ ์ธํ ์ ์ค์ ํด์. (์ค์ ํ ์บ๋ฆญํฐ ์ธํ , ์บ๋ฆญํฐ ์ฒดํ์ ์์ ์ ์บ๋ฆญํฐ ์ฒดํ์ผ๋ก ์ฌ์ฉํ ์ง ์ฌ๋ถ)
void ChangeCharacterSetting(CharacterSetting CharacterSettingObject)
ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ ์ธํ ์ ์ค์ ํด์. (์ค์ ํ ์บ๋ฆญํฐ ์ธํ ) Game:SetUsingCharacterSetting ๊ณผ ๋ฌ๋ฆฌ ์ฆ์ ๋ฐ์๋ผ์.
-- ์ํ --
local NewCharacterSetting = Workspace.NewCharacterSetting
player:ChangeCharacterSetting(NewCharacterSetting) --ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๊ฐ ๋ฐ๋ก ๋ณ๊ฒฝ๋ผ์
void ChangeCharacterSetting(CharacterSetting CharacterSettingObject, bool bUseMyBody)
ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ ์ธํ ์ ์ค์ ํด์. (์ค์ ํ ์บ๋ฆญํฐ ์ธํ , ์บ๋ฆญํฐ ์ฒดํ์ ์์ ์ ์บ๋ฆญํฐ ์ฒดํ์ผ๋ก ์ฌ์ฉํ ์ง ์ฌ๋ถ) Game:SetUsingCharacterSetting ๊ณผ ๋ฌ๋ฆฌ ์ฆ์ ๋ฐ์๋ผ์.
-- ์ํ --
local NewCharacterSetting = Workspace.NewCharacterSetting
player:ChangeCharacterSetting(NewCharacterSetting, false) --ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๊ฐ ๋ฐ๋ก ๋ณ๊ฒฝ๋ผ์
CharacterSetting GetUsingCharacterSetting()
(deprecated) ํด๋น ํ๋ ์ด์ด์ ์ฌ์ฉ์ค์ธ ์บ๋ฆญํฐ ์ธํ ์ ๊ฐ์ ธ์ฌ ์ ์์ด์.
void ChangeCharacterBaseSetting(CharacterBaseSetting BaseSettingObject)
ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ ์ธํ ์ ์ค์ ํด์. (์ค์ ํ ์บ๋ฆญํฐ ์ธํ )
-- ์ํ --
local BaseSettingObject = Toybox.FPSCharacterSetting.BaseSettingObject
player:ChangeCharacterBaseSetting(BaseSettingObject) --ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๊ฐ ๋ฐ๋ก ๋ณ๊ฒฝ๋ผ์
void ChangeCharacterAppearanceSetting(CharacterAppearanceSetting AppearanceSettingObject)
ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ ์ธํ ์ ์ค์ ํด์. (์ค์ ํ ์บ๋ฆญํฐ ์ธํ )
-- ์ํ --
local AppearanceSetting = Toybox.FPSCharacterSetting.AppearanceSetting
player:ChangeCharacterAppearanceSetting(AppearanceSetting) --ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๊ฐ ๋ฐ๋ก ๋ณ๊ฒฝ๋ผ์
void ChangeCharacterAnimationSetting(CharacterAnimationSetting AnimationSettingObject)
ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ ์ธํ ์ ์ค์ ํด์. (์ค์ ํ ์บ๋ฆญํฐ ์ธํ )
-- ์ํ --
local AnimationSetting = Toybox.FPSCharacterSetting.AnimationSetting
player:ChangeCharacterAnimationSetting(AnimationSetting) --ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๊ฐ ๋ฐ๋ก ๋ณ๊ฒฝ๋ผ์
void StoreCurrentCharacterSetting()
ํด๋น ํ๋ ์ด์ด์ ํ์ฌ ์บ๋ฆญํฐ ์ธํ ์ ์ ์ฅํด์.
void RestorePreviousCharacterSetting()
StoreCurrentCharacterSetting ํจ์๋ก ์ ์ฅํ๋ ์ธํ ์ผ๋ก ๋๋์ ๊ฐ๋๋ค.
void StoreCurrentCharacterBaseSetting()
ํด๋น ํ๋ ์ด์ด์ ํ์ฌ ์บ๋ฆญํฐ Base ์ธํ ์ ์ ์ฅํด์.
void RestorePreviousCharacterBaseSetting()
StoreCurrentCharacterBaseSetting ํจ์๋ก ์ ์ฅํ๋ ์ธํ ์ผ๋ก ๋๋์ ๊ฐ๋๋ค.
void StoreCurrentCharacterAppearanceSetting()
ํด๋น ํ๋ ์ด์ด์ ํ์ฌ ์บ๋ฆญํฐ Appearance ์ธํ ์ ์ ์ฅํด์.
void RestorePreviousCharacterAppearanceSetting()
StoreCurrentCharacterAppearanceSetting ํจ์๋ก ์ ์ฅํ๋ ์ธํ ์ผ๋ก ๋๋์ ๊ฐ๋๋ค.
void StoreCurrentCharacterAnimationSetting()
ํด๋น ํ๋ ์ด์ด์ ํ์ฌ ์บ๋ฆญํฐAnimation ์ธํ ์ ์ ์ฅํด์.
void RestorePreviousCharacterAnimationSetting()
StoreCurrentCharacterAnimationSetting ํจ์๋ก ์ ์ฅํ๋ ์ธํ ์ผ๋ก ๋๋์ ๊ฐ๋๋ค.
EventKeyReturnData AddEventKey(string EventName, function Function)
ํด๋น ํ๋ ์ด์ด๋ฅผ ํด๋นํ๋ ์ด๋ฆ์ ์ด๋ฒคํธ์ ๋ฑ๋ก์์ผ์. (์ด๋ฒคํธ ์ด๋ฆ, ์ด๋ฒคํธ ๋ฑ๋ก ํ ๋ฐํ๊ฐ์ ๋ฐ์ ํจ์)
-- ์ํ --
local function DoEventKey(player, eventKeyReturnData)
wait(1)
local state = eventKeyReturnData.State --์ด๋ฒคํธํค์ ์ํ
local maxCount = eventKeyReturnData.MaxCount --์ด๋ฒคํธํค์ ์ต๋ ์ธ์
local useCount = eventKeyReturnData.UseCount --์ด๋ฒคํธํค์ ์ฐธ์ฌ์ ์
local result = eventKeyReturnData.Result --์ด๋ฒคํธํค ๋ฑ๋ก ๊ฒฐ๊ณผ
--์ด๋ฒคํธํค ์ํ ๋ฐ ๋ฑ๋ก ์
if state == Enum.EventKeyState.Wait then
print("์ด๋ฒคํธํค ์ํ : ๋๊ธฐ")
elseif state == Enum.EventKeyState.Doing then
print("์ด๋ฒคํธํค ์ํ : ์งํ")
elseif state == Enum.EventKeyState.Stop then
print("์ด๋ฒคํธํค ์ํ : ์ค์ง")
elseif state == Enum.EventKeyState.End then
print("์ด๋ฒคํธํค ์ํ : ์ข
๋ฃ")
end
print("์ด๋ฒคํธํค ๋ฑ๋ก ์ : ", useCount, " / ", maxCount)
--์ด๋ฒคํธํค ๋ฑ๋ก ๊ฒฐ๊ณผ๊ฐ Success์ด๋ฉด
if result == Enum.EventKeyResult.Success then
print("์ด๋ฒคํธํค๋ฅผ ๋ฑ๋กํ์ต๋๋ค!")
--์ด๋ฒคํธํค ์ฌ์ฉ ๊ฒฐ๊ณผ๊ฐ Exist์ด๋ฉด
elseif result == Enum.EventKeyResult.Exist then
print("์ด๋ฏธ ๋ฑ๋กํ ์ด๋ฒคํธํค์
๋๋ค!")
--์ด์ธ์๋
else
print("์ ํจํ์ง ์์ ์ด๋ฒคํธํค์
๋๋ค!")
end
end
--์ด๋ฒคํธํค์ ํ๋ ์ด์ด๋ฅผ ๋ฑ๋ก ์ฒ๋ฆฌํด์.
--(์ด๋ฒคํธํค ์ด๋ฆ, ์ด๋ฒคํธํค ๋ฑ๋ก ์ฒ๋ฆฌ ํจ์)
player:AddEventKey("EventKeyName", DoEventKey)
CouponReturnData UseCoupon(string CouponType, function Function)
ํด๋น ํ๋ ์ด์ด์๊ฒ ํด๋นํ๋ ์ฟ ํฐ์ ์ฌ์ฉํด์. (์ฟ ํฐ ํ์ ์ด๋ฆ, ์ด๋ฒคํธ ๋ฑ๋ก ํ ๋ฐํ๊ฐ์ ๋ฐ์ ํจ์)
-- ์ํ --
local function DoUseCoupon(player, couponReturnData)
local state = couponReturnData.State --์ฟ ํฐ์ ์ํ
local couponType = couponReturnData.CouponType --์ฟ ํฐ์ ๋ณด์ ์ข
๋ฅ
local result = couponReturnData.Result --์ฟ ํฐ ์ฌ์ฉ ๊ฒฐ๊ณผ
--์ฟ ํฐ ์ํ ๋ฐ ๋ณด์
if state == Enum.CouponState.Wait then
print("์ฟ ํฐ ์ํ : ๋๊ธฐ")
elseif state == Enum.CouponState.Doing then
print("์ฟ ํฐ ์ํ : ์งํ")
elseif state == Enum.CouponState.Stop then
print("์ฟ ํฐ ์ํ : ์ค์ง")
elseif state == Enum.CouponState.End then
print("์ฟ ํฐ ์ํ : ์ข
๋ฃ")
end
print("์ฟ ํฐ ๋ณด์ ํ์
: ", couponType)
--์ฟ ํฐ ์ฌ์ฉ ๊ฒฐ๊ณผ๊ฐ Success์ด๋ฉด
if result == Enum.CouponResult.Success then
print("์ฟ ํฐ์ ์ฌ์ฉํ์ต๋๋ค!")
if couponType == "Gold" then
player.Gold = player.Gold + 1000
end
--์ฟ ํฐ ์ฌ์ฉ ๊ฒฐ๊ณผ๊ฐ Exist์ด๋ฉด
elseif result == Enum.CouponResult.Exist then
print("์ด๋ฏธ ์ฌ์ฉํ ์ฟ ํฐ์
๋๋ค!")
--์ด์ธ์๋
else
print("์ ํจํ์ง ์์ ์ฟ ํฐ์
๋๋ค!")
end
end
--ํ๋ ์ด์ด์๊ฒ ํด๋น ์ฟ ํฐ์ ์ฌ์ฉ ์ฒ๋ฆฌํด์.
--(์ฟ ํฐ ๋ฒํธ, ์ฟ ํฐ ์ฌ์ฉ ์ฒ๋ฆฌ ํจ์)
player:UseCoupon("CouponNumber", DoUseCoupon)
void UseRemainCoupon(string CouponType, function Function)
ํด๋น ํ๋ ์ด์ด์๊ฒ ๋ฏธ์ฌ์ฉ ์ฟ ํฐ์ ์ฌ์ฉํด์. (์ฟ ํฐ ํ์ ์ด๋ฆ, ์ด๋ฒคํธ ๋ฑ๋ก ํ ๋ฐํ๊ฐ์ ๋ฐ์ ํจ์) ์ฐ๊ฒฐ๋ ํจ์๋ก player, CouponData ๊ฐ ์ ๋ฌ๋์.
-- ์ํ --
local function DoUseRemainCoupon(player, couponReturnData)
local state = couponReturnData.State --์ฟ ํฐ์ ์ํ
local couponType = couponReturnData.CouponType --์ฟ ํฐ์ ๋ณด์ ์ข
๋ฅ
local result = couponReturnData.Result --์ฟ ํฐ ์ฌ์ฉ ๊ฒฐ๊ณผ
--์ฟ ํฐ ์ํ ๋ฐ ๋ณด์
if state == Enum.CouponState.Wait then
print("์ฟ ํฐ ์ํ : ๋๊ธฐ")
elseif state == Enum.CouponState.Doing then
print("์ฟ ํฐ ์ํ : ์งํ")
elseif state == Enum.CouponState.Stop then
print("์ฟ ํฐ ์ํ : ์ค์ง")
elseif state == Enum.CouponState.End then
print("์ฟ ํฐ ์ํ : ์ข
๋ฃ")
end
print("์ฟ ํฐ ๋ณด์ ํ์
: ", couponType)
--์ฟ ํฐ ์ฌ์ฉ ๊ฒฐ๊ณผ๊ฐ Success์ด๋ฉด
if result == Enum.CouponResult.Success then
print("์ฟ ํฐ์ ์ฌ์ฉํ์ต๋๋ค!")
if couponType == "Gold" then
player.Gold = player.Gold + 1000
end
--์ฟ ํฐ ์ฌ์ฉ ๊ฒฐ๊ณผ๊ฐ Exist์ด๋ฉด
elseif result == Enum.CouponResult.Exist then
print("์ด๋ฏธ ์ฌ์ฉํ ์ฟ ํฐ์
๋๋ค!")
--์ด์ธ์๋
else
print("์ ํจํ์ง ์์ ์ฟ ํฐ์
๋๋ค!")
end
end
-- ๋จ์ ์ฟ ํฐ ์ฌ์ฉ
player:UseRemainCoupon(couponName, DoUseRemainCoupon)
void DoGetRemainCouponCount(string CouponType, function Function)
ํด๋น ํ๋ ์ด์ด์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฟ ํฐ ์๋์ ์ป์ด์ฌ ์ ์์ด์. ์ฐ๊ฒฐ๋ ํจ์๋ก player, number count ๊ฐ ์ ๋ฌ๋์
-- ์ํ --
local function DoGetRemainCouponCount(player, count)
print("Remain Coupon Count : ", count)
end
-- ์ฟ ํฐ ๋จ์ ์๋ ํ์ธ
player:GetRemainCouponCount(couponName, DoGetRemainCouponCount)
์ฌ์ฉ ๊ฐ๋ฅํ ๋ถ๋ชจ ์ค๋ธ์ ํธ ๊ธฐ๋ฅ๋ค
์์ฑ
์ด๋ฒคํธ
์ด๋ฆ
์ค๋ช
ํจ์
์ด๋ฆ
์ค๋ช
์ถ๊ฐ๋ ๊ฐ์ด ๋ณ๊ฒฝ ๋ ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ์์. (Value ์ด๋ฆ, ์ฐ๊ฒฐ ํจ์)
์ด๋ฆ์ผ๋ก ์์ ๊ฐ์ฒด๋ฅผ ์ป์ ์ ์์ด์. (์ฐพ๊ณ ์ถ์ ์์ ๊ฐ์ฒด ์ด๋ฆ)
์์ ๊ฐ์ฒด์ ๋ฆฌ์คํธ๋ฅผ ์ป์ ์ ์์ด์.
์บ๋ฆญํฐ์ธ์ง ํ์ธํ ์ ์์ด์.
์คํ ํฑ ๋ฉ์์ธ์ง ํ์ธํ ์ ์์ด์.
FX์ธ์ง ํ์ธํ ์ ์์ด์.
Sound์ธ์ง ํ์ธํ ์ ์์ด์.
ํฌ์ธํธ ๋ผ์ดํธ์ธ์ง ํ์ธํ ์ ์์ด์.
์คํฌํธ ๋ผ์ดํธ์ธ์ง ํ์ธํ ์ ์์ด์.
์ํผ์ค UI์ธ์ง ํ์ธํ ์ ์์ด์.
์คํฌ๋ฆฐ UI์ธ์ง ํ์ธํ ์ ์์ด์.
ํฐ์น UI์ธ์ง ํ์ธํ ์ ์์ด์.
์์ดํ ์ธ์ง ํ์ธํ ์ ์์ด์.
NPC์ธ์ง ํ์ธํ ์ ์์ด์.
์คํธ๋ฆฝํธ์ธ์ง ํ์ธํ ์ ์์ด์.
Collider์ธ์ง ํ์ธํ ์ ์์ด์.
Widget์ธ์ง ํ์ธํ ์ ์์ด์.
Camera์ธ์ง ํ์ธํ ์ ์์ด์.
ํด๋น ์ค๋ธ์ ํธ๊ฐ ์ ํจํ์ง ํ์ธ ํ ์์์ด์.
ํด๋น ์ค๋ธ์ ํธ์ ๊ฐ์ด ์ ํจํ์ง ํ์ธํ ์ ์์ด์.
ํด๋น ๊ฐ์ฒด์ ์๋ฒ, ํด๋ผ์ด์ธํธ ๊ฐ ๋๊ธฐํ๊ฐ ๊ฐ๋ฅํ ๋ฒกํฐ๋ฅผ ์ถ๊ฐํด์. (์ถ๊ฐํ Value ์ด๋ฆ, Vector ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
ํด๋น ๊ฐ์ฒด์ ์๋ฒ, ํด๋ผ์ด์ธํธ ๊ฐ ๋๊ธฐํ๊ฐ ๊ฐ๋ฅํ ์ค์๋ฅผ ์ถ๊ฐํด์. (์ถ๊ฐํ Value ์ด๋ฆ, number ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
ํด๋น ๊ฐ์ฒด์ ์๋ฒ, ํด๋ผ์ด์ธํธ ๊ฐ ๋๊ธฐํ๊ฐ ๊ฐ๋ฅํ bool๋ฅผ ์ถ๊ฐํด์. (์ถ๊ฐํ Value ์ด๋ฆ, bool ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
ํด๋น ๊ฐ์ฒด์ ์๋ฒ, ํด๋ผ์ด์ธํธ ๊ฐ ๋๊ธฐํ๊ฐ ๊ฐ๋ฅํ ๋ฌธ์์ด์ ์ถ๊ฐํด์. (์ถ๊ฐํ Value ์ด๋ฆ, string ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
ํด๋น ๊ฐ์ฒด์ ์๋ฒ, ํด๋ผ์ด์ธํธ ๊ฐ ๋๊ธฐํ๊ฐ ๊ฐ๋ฅํ ์ปฌ๋ฌ๋ฅผ ์ถ๊ฐํด์. (์ถ๊ฐํ Value ์ด๋ฆ, Color ๋ฐ์ดํฐ, Enum.ReplicateType.ํ์ , ๋๊ธฐํ ์๊ฐ)
์ผ์ ์๊ฐ๋ค์ ์ฐ๊ฒฐ ํจ์๊ฐ ํธ์ถ๋๋ ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํด์. (์ถ๊ฐํ ์ด๋ฒคํธ ์ด๋ฆ, ์๊ฐ, ์ฐ๊ฒฐ ํจ์)
๋ฑ๋ก๋ ์๊ฐ ์ด๋ฒคํธ๋ฅผ ์ญ์ ํด์. (์ญ์ ํ ์ด๋ฒคํธ ์ด๋ฆ)
Last updated
Was this helpful?