From 2344adef9ec91f509dced5f799c5af93d5d98e83 Mon Sep 17 00:00:00 2001 From: Bitl Date: Fri, 18 Aug 2017 19:42:01 -0700 Subject: [PATCH] gear type functionality (untested) --- CSMPFunctions.lua | 278 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 272 insertions(+), 6 deletions(-) diff --git a/CSMPFunctions.lua b/CSMPFunctions.lua index 878093d..318ad72 100644 --- a/CSMPFunctions.lua +++ b/CSMPFunctions.lua @@ -261,12 +261,12 @@ function LoadCharacterNew(playerApp,newChar,newBackpack) elseif (customtype.Value == 9) then if (rbxlegacyversion > 7) then pcall(function() - local newPart = game.Workspace:InsertContent("rbxasset://../../../avatar/gears/"..newVal.Value) - if newPart[1] then - if newPart[1].className == "Tool" then - newPart[1].Parent = Player.Backpack + local newGear = game.Workspace:InsertContent("rbxasset://../../../avatar/gears/"..newVal.Value) + if newGear[1] then + if newGear[1].className == "Tool" then + ReadGearInfo(newGear[1], playerApp) else - newPart[1]:remove() + newGear[1]:remove() end end end) @@ -276,6 +276,272 @@ function LoadCharacterNew(playerApp,newChar,newBackpack) end end +function ReadGearInfo(newTool,player) + if newTool.className == "Tool" then + for _,GearVal in pairs(newTool:GetChildren()) do + newWaitForChild(GearVal,"GearType") + local GearType = newTool:FindFirstChild("GearType") + --GearType must be an IntBool. This must also be placed in the root of the tool. + newWaitForChild(game.Lighting,"AllowedGearTypes") + if (GearType == 1) then + if (game.Lighting.AllowedGearTypes.Melee == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 2) then + if (game.Lighting.AllowedGearTypes.PowerUp == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 3) then + if (game.Lighting.AllowedGearTypes.Ranged == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 4) then + if (game.Lighting.AllowedGearTypes.Navigation == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 5) then + if (game.Lighting.AllowedGearTypes.Explosives == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 6) then + if (game.Lighting.AllowedGearTypes.Musical == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 7) then + if (game.Lighting.AllowedGearTypes.Social == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 8) then + if (game.Lighting.AllowedGearTypes.Transport == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + elseif (GearType == 9) then + if (game.Lighting.AllowedGearTypes.Building == true) then + if (player.StarterGear) then + for _,gearCheck in pairs(player.StarterGear:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.StarterGear + else + newTool:remove() + end + end + end + end + else + for _,gearCheck in pairs(player.Backpack:GetChildren()) do + if (gearCheck ~= nil) then + if (gearCheck:isA("Tool")) then + if (gearCheck.Name ~= newTool.Name) then + newTool.Parent = player.Backpack + else + newTool:remove() + end + end + end + end + end + end + end + end + else + newTool:remove() + end +end + function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3) local newCharApp = Instance.new("IntValue",Player) newCharApp.Name = "Appearance" @@ -554,7 +820,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso end local typeValue = Instance.new("NumberValue") typeValue.Name = "CustomizationType" - typeValue.Parent = newBackpack + typeValue.Parent = newGear typeValue.Value = 9 end end