私はドラゴンクエストヒーローズロケットスライムのタンクバトルシステムについてROBLOXを使用してゲームを作ってるんだ(GUIの100%を使用していないが)リモートイベントの問題
私は弾薬が上にロックになるようにする方法を知らなかったので、通常ROBLOXのパスは、私が
はこれを行うために、私は弾薬がロードされたときにGUIシステムのメインスクリプト内で機能を起動、リモートイベントを持っている「発射」弾薬を表示するには、GUIを使用することを決めた
cannon.Touched:connect(function(v)
if fireable[v.Name] and v.Parent == workspace then
event:FireAllClients("Left",v.Name)
v:Destroy()
end
end)
次に、GUIは、ロードされた弾薬の正しいスプライトを取得します。
これは弾薬を発射するための2つのifステートメントの1つです(もう1つは右サイドタンク用以外は全く同じです)
local tank = tankFiring == "Left" and tank1 or tankFiring == "Right" and tank2
if tank == tank1 then
print("yo!")
script.Fire:Play()
local ammoFrame = sp.Ammo:Clone()
ammoFrame.Parent = tank
ammoFrame.Visible = true
ammoFrame.Position = UDim2.new(0,120,0,68)
playAnimation("Cannon Fire",UDim2.new(0,120,0,68-25),tank.Frame)
ammoFrame.Image = ammoTypes[type]["img"]
ammoFrame.Size = ammoTypes[type]["Size"]
repeat
wait(.1)
ammoFrame.Rotation = ammoTypes[type]["Rotatable"] == true and ammoFrame.Rotation + 15 or 0
ammoFrame.Position = ammoFrame.Position + UDim2.new(0,1,0,0)
until
tank2:FindFirstChild("Ammo") and isTouching(ammoFrame,tank2:GetChildren()[3]) or isTouching(ammoFrame,tank2) or ammoFrame == nil
if tank2:FindFirstChild("Ammo") and isTouching(ammoFrame,tank2:GetChildren()[3]) then
script.Collision:Play()
local lastAmmoPos = ammoFrame.Position
playAnimation("Explosion",lastAmmoPos-UDim2.new(0,15,0,25),tank.Frame)
ammoFrame:Destroy()
tank2:GetChildren()[3]:Destroy()
end
if isTouching(ammoFrame,tank2) then
script.Collision:Play()
ammoFrame:Destroy()
workspace["Tank2"].Health.Value = workspace["Tank2"].Health.Value - ammoTypes[type]["dmg"]
end
end
これに伴う問題は、この問題を解決するためにとにかくがあるの弾薬が撮影された後のプレイヤーが参加した場合、彼らはGUI
に弾薬を見ていないということですか?私はただFireAllClientsを再び攻撃することはできません。それはすべてのプレイヤーのために別の弾薬を発射するからです。