Mattiewagg Posted September 2, 2014 Author Posted September 2, 2014 A few things to note: When posting scripts, you may want to enclose them within [code][/code] tags, with your script being in between the code (or just click the <> button in the toolbar and paste your script). This retains spaces in scripts and helps with readability. Secondly: This line: convertGoldValue.setValue((myGoldValue as Float)) Could be this, if you wanted: convertGoldValue.SetValueInt(myGoldValue as Float)Though the other method should work just as well. Thirdly: Why does your function have the Return part? You only need to return something when it is actually meant to return a value. You can remove that line.
Darkxenoth Posted September 2, 2014 Posted September 2, 2014 A few things to note: When posting scripts, you may want to enclose them within [code][/code] tags, with your script being in between the code (or just click the <> button in the toolbar and paste your script). This retains spaces in scripts and helps with readability. Secondly: This line: convertGoldValue.setValue((myGoldValue as Float)) Could be this, if you wanted: convertGoldValue.SetValueInt(myGoldValue as Float)Though the other method should work just as well. Thirdly: Why does your function have the Return part? You only need to return something when it is actually meant to return a value. You can remove that line.I will be sure to use the <> button next time I post any script/script fragment.I changed the mentioned line to: convertGoldValue.SetValueInt(myGoldValue) since the myGoldValue property is, as mentioned, and integer already.I'm used to other programming languages, and have always had it drilled into my head that you always put a return, even if it isn't actually returning anything.
Mattiewagg Posted September 2, 2014 Author Posted September 2, 2014 A few things to note: When posting scripts, you may want to enclose them within [code][/code] tags, with your script being in between the code (or just click the <> button in the toolbar and paste your script). This retains spaces in scripts and helps with readability. Secondly: This line: convertGoldValue.setValue((myGoldValue as Float)) Could be this, if you wanted: convertGoldValue.SetValueInt(myGoldValue as Float)Though the other method should work just as well. Thirdly: Why does your function have the Return part? You only need to return something when it is actually meant to return a value. You can remove that line.I will be sure to use the <> button next time I post any script/script fragment.I changed the mentioned line to: convertGoldValue.SetValueInt(myGoldValue) since the myGoldValue property is, as mentioned, and integer already.I'm used to other programming languages, and have always had it drilled into my head that you always put a return, even if it isn't actually returning anything. As far as I know, there's no reason to do that for Papyrus, correct me if I'm wrong. I've only worked a bit with other programming language - some Python, a touch of JavaScript. And of course, the barely programming language that was TESScript.
Darkxenoth Posted September 2, 2014 Posted September 2, 2014 As far as I know, there's no reason to do that for Papyrus, correct me if I'm wrong. I've only worked a bit with other programming language - some Python, a touch of JavaScript. And of course, the barely programming language that was TESScript. I don't know if it's necessary for Papyrus, but assuming from the fact that it compiles without error if I take it out or if I leave it, I assume it doesn't really matter. I've used some C++, Java, and Javascript. But getting back to my problem... What exactly am I doing wrong with these scripts? They compile correctly and, as far as I can tell, should work correctly... but in-game my button never returns a value other than 0 so...
Mattiewagg Posted September 2, 2014 Author Posted September 2, 2014 As far as I know, there's no reason to do that for Papyrus, correct me if I'm wrong. I've only worked a bit with other programming language - some Python, a touch of JavaScript. And of course, the barely programming language that was TESScript. I don't know if it's necessary for Papyrus, but assuming from the fact that it compiles without error if I take it out or if I leave it, I assume it doesn't really matter. I've used some C++, Java, and Javascript. But getting back to my problem... What exactly am I doing wrong with these scripts? They compile correctly and, as far as I can tell, should work correctly... but in-game my button never returns a value other than 0 so... Oh, yeah, back to that. You have an issue where you never define the GlobalVariable convertGoldValue (as a property) in your activator script. I'm surprised that even compiled. And you should use GetValueInt instead. And fill all your properties.
Darkxenoth Posted September 2, 2014 Posted September 2, 2014 As far as I know, there's no reason to do that for Papyrus, correct me if I'm wrong. I've only worked a bit with other programming language - some Python, a touch of JavaScript. And of course, the barely programming language that was TESScript. I don't know if it's necessary for Papyrus, but assuming from the fact that it compiles without error if I take it out or if I leave it, I assume it doesn't really matter. I've used some C++, Java, and Javascript. But getting back to my problem... What exactly am I doing wrong with these scripts? They compile correctly and, as far as I can tell, should work correctly... but in-game my button never returns a value other than 0 so... Oh, yeah, back to that. You have an issue where you never define the GlobalVariable convertGoldValue (as a property) in your activator script. I'm surprised that even compiled. And you should use GetValueInt instead. And fill all your properties. I did define the global variable in the button script... must have pasted my button script before making the changes, my bad. I also changed it to use the GetValueInt() function instead. Still no joy in game... nothing but 0 gets returned still. Maybe the properties aren't filled correctly... going to check that.
Darkxenoth Posted September 2, 2014 Posted September 2, 2014 Checked... and still no joy :confused: So not sure what is going wrong.
lofgren Posted September 2, 2014 Posted September 2, 2014 When you type "help convertGoldValue" into the console, what value does it return for your global?
Darkxenoth Posted September 2, 2014 Posted September 2, 2014 Today, 9:18 PMIofgren said:When you type "help convertGoldValue" into the console, what value does it return for your global?Just tried that... and it returns 0.00 even after I put things into the chest, which should trigger it to change the value... hrmm....
Darkxenoth Posted September 2, 2014 Posted September 2, 2014 I decided to just make it so the chest itself will tell you the gold value of the items inside on close, instead of pushing a button to get the message. Seems to work fine. Event OnClose(ObjectReference akActionRef) Debug.MessageBox("The items in the chest are worth " + myGoldValue + " gold.") EndEvent
Recommended Posts