【Roblox Studio 】ゲーム内通貨(コイン)を集める実験

実験室

リーダーボードの設置

集めたゲーム内通貨の数値を確認できるリーダーボードの設置

ゲーム内通貨の名前は適当に「Gold」

game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder", player)
    leaderstats.Name = "leaderstats"
	
	local gold = Instance.new("IntValue", leaderstats)
	gold.Name = "Gold"
	gold.Value = 0
end)

コインの作成

RobloxでModelsから探すか、Blenderで自作してコインのPartを準備

RobloxのAudioからコインの効果音を探してコインのPartに追加(coins_get)

PartにScriptを追加

local gold = script.Parent

wait(1)--コインを出現させてから1秒後に触れるように調整
gold.CanTouch = true

gold.Touched:Connect(function(hit)
	if hit.Parent:FindFirstChild("Humanoid") then
		gold.coins_get:Play()
		
		local player = game.Players:GetPlayerFromCharacter(hit.Parent)
		--player.leaderstats.Gold.Value = player.leaderstats.Gold.Value + gold.Gold.Value
		--gold:Remove()
		
		while wait(0.2) do
			if player then
				player.leaderstats.Gold.Value = player.leaderstats.Gold.Value + 1
				gold:Remove()
				break
			end
		end
	end
end)

モンスタードロップアイテムの演出

モンスターNPCのScriptにDiedイベントを追記

local npc = script.Parent
local hrpOfNPC = npc:WaitForChild("HumanoidRootPart")
local walkAnim = npc.Humanoid:LoadAnimation(npc.walk)

npc.Humanoid.Died:Connect(function()
	--モンスターNPCが倒されたときの処理を記述
	walkAnim:Stop()--移動アニメーションの停止
	
	for i=1, 5 do --5枚のコイン生成するループ処理
		local gold = game.ReplicatedStorage.Gold:Clone()
		gold.CanTouch = false
		gold.Parent = game.Workspace
        --Headパーツの少し上にコインを出現させy軸方向に打ち上げ。xz軸はランダムにばらけさせる
		gold.Position = npc.Head.Position + Vector3.new(0, 3, 0)
		gold.Velocity = Vector3.new(math.random(-10, 10), 50, math.random(-10, 10))
		gold.coins_get:Play()--サウンドを再生
		wait(0.05)
	end
	
	wait(3)--3秒後にNPC消滅
	npc:Destroy()
end)

テスト

コメント

タイトルとURLをコピーしました