BogyMac
|
  |
| Joined: 04 Nov 2011 |
| Total Posts: 823 |
|
|
| 06 Mar 2014 01:57 PM |
Say down below is ScriptB. If you were to create ScriptA with the same parent as ScriptB, and gave ScriptA this code: script.Parent.CompleteAchieve:Invoke("Hard", 0001) it should change the color of the ImageLabel "0001" and print "Player1 Completed Achievement 0001", but it doesn't for some reason.
Code:
repeat wait(1) until game.Players.LocalPlayer player = game.Players.LocalPlayer achievements = script.Parent:WaitForChild("Achievements")
function Achieve(type,number) if type == "Easy" then achieveNumber = Achievements.AchievementsScreen.Achievements:FindFirstChild(number) if achieveNumber ~= nil then achieveNumber.Image = "http://www.roblox.com/asset/?id=148670054" print(player.Name.." Completed Achievement "..achieveNumber.."!") else print("[ ERROR ] - Could not find "..achieveNumber".") end elseif type == "Hard" then achieveNumber = Achievements.AchievementsScreen.Achievements:FindFirstChild(number) if achieveNumber ~= nil then Achievements.AchievementsScreen.Achievements[number].Image = "http://www.roblox.com/asset/?id=148670076" print(player.Name.." Completed Achievement "..achieveNumber.."!") else print("[ ERROR ] - Could not find "..achieveNumber".") end end end
function script.Parent.CompleteAchieve.OnInvoke(type2,number2) Achieve(type2,number2) end |
|
|
| Report Abuse |
|
|
|
| 06 Mar 2014 02:07 PM |
| Try putting quotes around the achievement number when calling Invoke. |
|
|
| Report Abuse |
|
|
BogyMac
|
  |
| Joined: 04 Nov 2011 |
| Total Posts: 823 |
|
|
| 06 Mar 2014 02:30 PM |
Nope, when using this script:
script.Parent.CompleteAchieve:Invoke("Hard", "0001")
Still doesn't work, comes up with this error:
12:29:37.868 - Players.Player1.PlayerGui.Achieve:15: attempt to index global 'Achievements' (a nil value) 12:29:37.868 - Script 'Players.Player1.PlayerGui.Achieve', Line 15 - global Achieve 12:29:37.869 - Script 'Players.Player1.PlayerGui.Achieve', Line 26 12:29:37.869 - stack end 12:29:37.869 - Players.Player1.PlayerGui.Achieve:15: attempt to index global 'Achievements' (a nil value) 12:29:37.870 - Script 'Players.Player1.PlayerGui.LocalScript', Line 1 12:29:37.870 - stack end |
|
|
| Report Abuse |
|
|
|
| 06 Mar 2014 02:41 PM |
Achievements.AchievementsScreen.Achievements:FindFirstChild(number)
Your variable at the top is 'achievements' Is this intentional? If so, what is 'Achievements' supposed to be? |
|
|
| Report Abuse |
|
|
BogyMac
|
  |
| Joined: 04 Nov 2011 |
| Total Posts: 823 |
|
|
| 06 Mar 2014 02:44 PM |
Oh my god, what a stupid mistake! xD
Sorry, no, that was not intentional.
-Bogy |
|
|
| Report Abuse |
|
|
BogyMac
|
  |
| Joined: 04 Nov 2011 |
| Total Posts: 823 |
|
|
| 06 Mar 2014 02:49 PM |
Partially works, more errors though, I have no idea why o.o
repeat wait(1) until game.Players.LocalPlayer player = game.Players.LocalPlayer Achievements = script.Parent:WaitForChild("Achievements")
function Achieve(type,number) if type == "Easy" then achieveNumber = Achievements.AchievementsScreen.Achievements:FindFirstChild(number) if achieveNumber ~= nil then achieveNumber.Image = "http://www.roblox.com/asset/?id=148670054" print(player.Name.." Completed Achievement "..achieveNumber.."!") else print("[ ERROR ] - Could not find "..achieveNumber".") end elseif type == "Hard" then achieveNumber = Achievements.AchievementsScreen.Achievements:FindFirstChild(number) if achieveNumber ~= nil then Achievements.AchievementsScreen.Achievements[number].Image = "http://www.roblox.com/asset/?id=148670076" print(player.Name.." Completed Achievement "..achieveNumber.."!") else print("[ ERROR ] - Could not find "..achieveNumber".") end end end
function script.Parent.CompleteAchieve.OnInvoke(type2,number2) Achieve(type2,number2) end
|
|
|
| Report Abuse |
|
|
BogyMac
|
  |
| Joined: 04 Nov 2011 |
| Total Posts: 823 |
|
|
| 06 Mar 2014 02:49 PM |
Errors:
12:47:57.178 - Players.Player1.PlayerGui.Achieve:18: attempt to concatenate global 'achieveNumber' (a userdata value) 12:47:57.179 - Script 'Players.Player1.PlayerGui.Achieve', Line 18 - global Achieve 12:47:57.179 - Script 'Players.Player1.PlayerGui.Achieve', Line 26 12:47:57.179 - stack end 12:47:57.180 - Players.Player1.PlayerGui.Achieve:18: attempt to concatenate global 'achieveNumber' (a userdata value) 12:47:57.180 - Script 'Players.Player1.PlayerGui.LocalScript', Line 1 12:47:57.180 - stack end |
|
|
| Report Abuse |
|
|
| |
|
|
| 06 Mar 2014 02:51 PM |
Oh. Use tostring() when concatenating objects. |
|
|
| Report Abuse |
|
|
BogyMac
|
  |
| Joined: 04 Nov 2011 |
| Total Posts: 823 |
|
|
| 06 Mar 2014 03:27 PM |
Darn, errors out AGAIN!
repeat wait(1) until game.Players.LocalPlayer player = game.Players.LocalPlayer Achievements = script.Parent:WaitForChild("Achievements")
function Achieve(type,number) if type == "Easy" then achieveNumber = Achievements.AchievementsScreen.Achievements:FindFirstChild(number) if achieveNumber ~= nil then achieveNumber.Image = "http://www.roblox.com/asset/?id=148670054" m1 = tostring(player.Name.." Completed Achievement "..achieveNumber.."!") print(m1) else m2 = tostring("[ ERROR ] - Could not find "..achieveNumber".") print(m2) end elseif type == "Hard" then achieveNumber = Achievements.AchievementsScreen.Achievements:FindFirstChild(number) if achieveNumber ~= nil then Achievements.AchievementsScreen.Achievements[number].Image = "http://www.roblox.com/asset/?id=148670076" m3 = tostring(player.Name.." Completed Achievement "..achieveNumber.."!") print(m3) else m4 = tostring("[ ERROR ] - Could not find "..achieveNumber..".") print(m4) end end end
function script.Parent.CompleteAchieve.OnInvoke(type2,number2) Achieve(type2,number2) end
Errors:
13:27:32.677 - Players.Player1.PlayerGui.Achieve:20: attempt to concatenate global 'achieveNumber' (a userdata value) 13:27:32.677 - Script 'Players.Player1.PlayerGui.Achieve', Line 20 - global Achieve 13:27:32.678 - Script 'Players.Player1.PlayerGui.Achieve', Line 30 13:27:32.678 - stack end 13:27:32.679 - Players.Player1.PlayerGui.Achieve:20: attempt to concatenate global 'achieveNumber' (a userdata value) 13:27:32.679 - Script 'Players.Player1.PlayerGui.LocalScript', Line 1 13:27:32.679 - stack end |
|
|
| Report Abuse |
|
|