Commands

wooterslw
29 May 2019, 06:25

Do commands only work with objects or can I use a command to pass a text option to code?

For example. My game has several attributes related to skills. I want to create a command called 'Learn #text#' where the text is a name of one of the skills. This will execute code that will let the player spend available experience to learn a skill. I tried 'Learn #text#', but when I tried using ListContains (game.skills, text) the program died saying I was passing ListContains a null value.


The Pixie
29 May 2019, 06:44

That should work. Try temporarily adding these lines at the start of the command script.

msg("text type=" + TypeOf(text))
msg("text=" + text)

That will you what text is (the type, then the value), so you can tell if that bit works or not.


wooterslw
29 May 2019, 07:16

Yeah. It's not working. I get this message.

text type=string
text=Agility
Error running script: Error evaluating expression 'ListContains (game.skills, s) or ListContains (game.disabledskills, s)': ListContains function expected list parameter but was passed 'null'

fyi my code contains s = CapFirst(text), so I am changing text to a variable, which is working, it's pulling in the text, it's just my ListContains doesn't see it.


The Pixie
29 May 2019, 08:18

So we know text is a string, with the value "Agility", so that part is working.

The error message actually says "expected list parameter", so it is the first parameter that is null, game.skills or game.disabledskills. Have you created these lists somewhere?


wooterslw
29 May 2019, 08:25

I'm a dummy. Sorry to waste everyone's time. I figured it out. Thank you.


DarkLizerd
30 May 2019, 01:49

No... You are a learner...
A dummy never learns...
(But, you can make dumb mistakes... that's called learning...)
So... for the rest of us "learners", what was your fix?