武器・アイテムの作り方

もっけBaseへようこそ!Youtubeで紹介した武器・アイテムの作り方を教えるよ。詳細は動画で見てね!

武器・アイテムってなに?

ここで言う武器・アイテムは、プレイヤーの持ち物のことだよ。
持ち物を拾うことによって、プレイヤーが持つことができるんだ。

もっけ
もっけ

武器・アイテムの作り方をここでは紹介していくよ!

ツールを使う

WorkspaceにToolを追加します。

もっけ
もっけ

Toolはアイテムとして使えるよ

剣を作る

ToolにPartとScriptを追加しよう。
Partは、Handleに名前を変えています。Scriptは、swordScriptに名前を変えています。

もっけ
もっけ

Partは、アイテムの形状(剣とか棒)になるよ

Scriptは、プレイヤーがアイテムに触れた時にダメージを与えるようにしてるよ

local tool = script.Parent

local function onTouch(partOther)
	-- 武器に触れたのが人かどうかを確認する
	local humanOther = partOther.Parent:FindFirstChild("Humanoid")
	-- 人でない場合(NPCとか)は、returnで処理を終える
	if not humanOther then return end
	-- 武器を持った人にダメージを与えないため、returnで処理を終える
	if humanOther.Parent == tool.Parent then return end
	-- ダメージを与える
	humanOther:TakeDamage(5)
end

-- 攻撃
local function slash()
	local str = Instance.new("StringValue")
	str.Name = "toolanim"
	str.Value = "Slash"
	str.Parent = tool
end

-- 武器を持っている状態で左クリックした場合は、slash関数を呼び出す
tool.Activated:Connect(slash)

-- 武器に当たった場合は、onTouch関数を呼び出す
tool.Handle.Touched:Connect(onTouch)

爆発系の武器を作る

ToolにPartとLocalScriptを追加しよう。
Partは、Handleに名前を変えています。Scriptは、explotionLocalScriptに名前を変えています。

もっけ
もっけ

Partは、アイテムの形状になるよ

Scriptは、マウスでクリックした場所を爆発するようにしてるよ

local tool = script.Parent

-- プレイヤーの情報を取得する
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer

-- マウスの情報を取得する
local mouse = localPlayer:GetMouse()

local function explode(point)
	-- 爆発の効果
	local e = Instance.new("Explosion")
	-- 爆発で破壊しないようにする
	e.DestroyJointRadiusPercent = 0
	-- 引数で渡された位置を指定する
	e.Position = point
	e.Parent = workspace
end

local function onActivated()
	-- マウスでクリックした位置を渡す
	explode(mouse.Hit.p)
	-- tool:Destroy()
end

-- 武器を持っている状態で左クリックした場合は、onActivated関数を呼び出す
tool.Activated:Connect(onActivated)
サラ
サラ

ここまで!おつー

コメント

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