2016-05-29 5 views
0

私はドラゴンクエストヒーローズロケットスライムのタンクバトルシステムについて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を再び攻撃することはできません。それはすべてのプレイヤーのために別の弾薬を発射するからです。

答えて

0

弾薬がどのような状態にあるかを追跡するサービスがあります。その後、すべてのクライアントは、参加するときにまず現在の弾薬状態のサーバーに問い合わせてから、さらに変更をサブスクライブします。

関連する問題