HELP! Bad Label error

I’m having trouble with a goto command. I keep on getting a bad label message and I can’t figure out how to fix it. The error is always “bad label ln3.” I’ve tried switching around the label name, I’ve tried just jumping to the next label (ln4) instead of ln3, but it always results in the same thing.

Essentially, I’m generating a number based on the player’s name. It’s a big and unwieldy code past label named, but its essentially just: grab the first letter, change the first letter into a number; grab the second letter, change the second letter into a number, etc. The first letter always goes smoothly; I can choose any name from my list or enter a name and it’ll go to ln2 like it’s supposed to. But then, no matter what name I choose, when it reaches the second letter it gives me the “bad label ln3” error message. If I choose Hiroas, it tells me there’s an error at the goto ln3 below *elseif ((letter2 = “i”) or (letter2 = “r”)). If I choose Persefs, it tells me there’s an error at the goto ln3 below *elseif (((letter2 = “e”) or (letter2 = “n”)) or (letter2 = “w”)). What’s going wrong?!?

I’ve been working on this error for about an hour. Please help.

My code looks like this:

Then the quietness of the forest is broken by a familiar male voice calling out your name:

*choice
     *if ((gender = "male") or (gender = "neuter")) #Hiroas
          *set name "Hiroas"
          *goto named
     *if (gender = "female") #Hiroa
          *set name "Hiroa"
          *goto named
     *if ((gender = "male") or (gender = "neuter")) #Belleros
          *set name "Belleros"
          *goto named
     *if (gender = "female") #Philone
          *set name "Philone"
          *goto named
     *if ((gender = "male") or (gender = "neuter")) #Theseus
          *set name "Theseus"
          *goto named
     *if (gender = "female") #Araidne
          *set name "Ariadne"
          *goto named
     *if ((gender = "male") or (gender = "neuter")) #Persefs
          *set name "Persefs"
          *goto named
     *if (gender = "female") #Danae
          *set name "Danae"
          *goto named
     *if ((gender = "male") or (gender = "neuter")) #Dionis
          *set name "Dionis"
          *goto named
     *if (gender = "female") #Semely
          *set name "Semely"
          *goto named
     #New Name
          *goto new

*label new
Your name?  (Maximum 9 letters, please)
*input_text name

Right!  So your name is ${name}!
*choice
     #Yes
          *goto named
     #No
          *goto new

*label named
Your name is ${name}
*if (length(name) >= 1)
     *temp letter1 name#1
*if (length(name) >= 2)
     *temp letter2 name#2
*if (length(name) >= 3)
     *temp letter3 name#3
*if (length(name) >= 4)
     *temp letter4 name#4
*if (length(name) >= 5)
     *temp letter5 name#5
*if (length(name) >= 6)
     *temp letter6 name#6
*if (length(name) >= 7)
     *temp letter7 name#7
*if (length(name) >= 8)
     *temp letter8 name#8
*if (length(name) >= 9)
     *temp letter9 name#9
*temp arithmancy1 0
*temp arithmancy2 0
*temp arithmancy3 0

*if (length(name) >= 1)
     *if (((letter1 = "a") or (letter1 = "j")) or (letter1 = "s"))
          *set arithmancy1 + 1
          *goto ln2
     *elseif (((letter1 = "b") or (letter1 = "k")) or (letter1 = "t"))
          *set arithmancy1 + 2
          *goto ln2
     *elseif (((letter1 = "c") or (letter1 = "l")) or (letter1 = "u"))
          *set arithmancy1 + 3
          *goto ln2
     *elseif (((letter1 = "d") or (letter1 = "m")) or (letter1 = "v"))
          *set arithmancy1 + 4
          *goto ln2
     *elseif (((letter1 = "e") or (letter1 = "n")) or (letter1 = "w"))
          *set arithmancy1 + 5
          *goto ln2
     *elseif (((letter1 = "f") or (letter1 = "o")) or (letter1 = "x"))
          *set arithmancy1 + 6
          *goto ln2
     *elseif (((letter1 = "g") or (letter1 = "p")) or (letter1 = "y"))
          *set arithmancy1 + 7
          *goto ln2
     *elseif (((letter1 = "h") or (letter1 = "q")) or (letter1 = "z"))
          *set arithmancy1 + 8
          *goto ln2
     *elseif ((letter1 = "i") or (letter1 = "r"))
          *set arithmancy1 + 9
          *goto ln2
label ln2
*if (length(name) >= 2)
     *if (((letter2 = "a") or (letter2 = "j")) or (letter2 = "s"))
          *set arithmancy1 + 1
          *goto ln3
     *elseif (((letter2 = "b") or (letter2 = "k")) or (letter2 = "t"))
          *set arithmancy1 + 2
          *goto ln3
     *elseif (((letter2 = "c") or (letter2 = "l")) or (letter2 = "u"))
          *set arithmancy1 + 3
          *goto ln3
     *elseif (((letter2 = "d") or (letter2 = "m")) or (letter2 = "v"))
          *set arithmancy1 + 4
          *goto ln3
     *elseif (((letter2 = "e") or (letter2 = "n")) or (letter2 = "w"))
          *set arithmancy1 + 5
          *goto ln3
     *elseif (((letter2 = "f") or (letter2 = "o")) or (letter2 = "x"))
          *set arithmancy1 + 6
          *goto ln3
     *elseif (((letter2 = "g") or (letter2 = "p")) or (letter2 = "y"))
          *set arithmancy1 + 7
          *goto ln3
     *elseif (((letter2 = "h") or (letter2 = "q")) or (letter2 = "z"))
          *set arithmancy1 + 8
          *goto ln3
     *elseif ((letter2 = "i") or (letter2 = "r"))
          *set arithmancy1 + 9
          *goto ln3
label ln3
*if (length(name) >= 3)
     *if (letter3 = "a") or (letter3 = "j")) or (letter3 = "s"))
          *set arithmancy1 + 1
          *goto ln4
     *elseif (((letter3 = "b") or (letter3 = "k")) or (letter3 = "t"))
          *set arithmancy1 + 2
          *goto ln4
     *elseif (((letter3 = "c") or (letter3 = "l")) or (letter3 = "u"))
          *set arithmancy1 + 3
          *goto ln4
     *elseif (((letter3 = "d") or (letter3 = "m")) or (letter3 = "v"))
          *set arithmancy1 + 4
          *goto ln4
     *elseif (((letter3 = "e") or (letter3 = "n")) or (letter3 = "w"))
          *set arithmancy1 + 5
          *goto ln4
     *elseif (((letter3 = "f") or (letter3 = "o")) or (letter3 = "x"))
          *set arithmancy1 + 6
          *goto ln4
     *elseif (((letter3 = "g") or (letter3 = "p")) or (letter3 = "y"))
          *set arithmancy1 + 7
          *goto ln4
     *elseif (((letter3 = "h") or (letter3 = "q")) or (letter3 = "z"))
          *set arithmancy1 + 8
          *goto ln4
     *elseif ((letter3 = "i") or (letter3 = "r"))
          *set arithmancy1 + 9
          *goto ln4
label ln4
*if (length(name) >= 4)
     *if (letter4 = "a") or (letter4 = "j")) or (letter4 = "s"))
          *set arithmancy1 + 1
          *goto ln5
     *elseif (((letter4 = "b") or (letter4 = "k")) or (letter4 = "t"))
          *set arithmancy1 + 2
          *goto ln5
     *elseif (((letter4 = "c") or (letter4 = "l")) or (letter4 = "u"))
          *set arithmancy1 + 3
          *goto ln5
     *elseif (((letter4 = "d") or (letter4 = "m")) or (letter4 = "v"))
          *set arithmancy1 + 4
          *goto ln5
     *elseif (((letter4 = "e") or (letter4 = "n")) or (letter4 = "w"))
          *set arithmancy1 + 5
          *goto ln5
     *elseif (((letter4 = "f") or (letter4 = "o")) or (letter4 = "x"))
          *set arithmancy1 + 6
          *goto ln5
     *elseif (((letter4 = "g") or (letter4 = "p")) or (letter4 = "y"))
          *set arithmancy1 + 7
          *goto ln5
     *elseif (((letter4 = "h") or (letter4 = "q")) or (letter4 = "z"))
          *set arithmancy1 + 8
          *goto ln5
     *elseif ((letter4 = "i") or (letter4 = "r"))
          *set arithmancy1 + 9
          *goto ln5
label ln5
*if (length(name) >= 5)
     *if (letter5 = "a") or (letter5 = "j")) or (letter5 = "s"))
          *set arithmancy1 + 1
          *goto ln6
     *elseif (((letter5 = "b") or (letter5 = "k")) or (letter5 = "t"))
          *set arithmancy1 + 2
          *goto ln6
     *elseif (((letter5 = "c") or (letter5 = "l")) or (letter5 = "u"))
          *set arithmancy1 + 3
          *goto ln6
     *elseif (((letter5 = "d") or (letter5 = "m")) or (letter5 = "v"))
          *set arithmancy1 + 4
          *goto ln6
     *elseif (((letter5 = "e") or (letter5 = "n")) or (letter5 = "w"))
          *set arithmancy1 + 5
          *goto ln6
     *elseif (((letter5 = "f") or (letter5 = "o")) or (letter5 = "x"))
          *set arithmancy1 + 6
          *goto ln6
     *elseif (((letter5 = "g") or (letter5 = "p")) or (letter5 = "y"))
          *set arithmancy1 + 7
          *goto ln6
     *elseif (((letter5 = "h") or (letter5 = "q")) or (letter5 = "z"))
          *set arithmancy1 + 8
          *goto ln6
     *elseif ((letter5 = "i") or (letter5 = "r"))
          *set arithmancy1 + 9
          *goto ln6
label ln6
*if (length(name) >= 6)
     *if (letter6 = "a") or (letter6 = "j")) or (letter6 = "s"))
          *set arithmancy1 + 1
          *goto ln7
     *elseif (((letter6 = "b") or (letter6 = "k")) or (letter6 = "t"))
     *set arithmancy1 + 2
          *goto ln7
     *elseif (((letter6 = "c") or (letter6 = "l")) or (letter6 = "u"))
          *set arithmancy1 + 3
          *goto ln7
     *elseif (((letter6 = "d") or (letter6 = "m")) or (letter6 = "v"))
          *set arithmancy1 + 4
          *goto ln7
     *elseif (((letter6 = "e") or (letter6 = "n")) or (letter6 = "w"))
          *set arithmancy1 + 5
          *goto ln7
     *elseif (((letter6 = "f") or (letter6 = "o")) or (letter6 = "x"))
          *set arithmancy1 + 6
          *goto ln7
     *elseif (((letter6 = "g") or (letter6 = "p")) or (letter6 = "y"))
          *set arithmancy1 + 7
          *goto ln7
     *elseif (((letter6 = "h") or (letter6 = "q")) or (letter6 = "z"))
          *set arithmancy1 + 8
          *goto ln7
     *elseif ((letter6 = "i") or (letter6 = "r"))
          *set arithmancy1 + 9
          *goto ln7
*else
     *goto an1
label ln7
*if (length(name) >= 7)
     *if (letter7 = "a") or (letter7 = "j")) or (letter7 = "s"))
          *set arithmancy1 + 1
          *goto ln8
     *elseif (((letter7 = "b") or (letter7 = "k")) or (letter7 = "t"))
          *set arithmancy1 + 2
          *goto ln8
     *elseif (((letter7 = "c") or (letter7 = "l")) or (letter7 = "u"))
          *set arithmancy1 + 3
          *goto ln8
     *elseif (((letter7 = "d") or (letter7 = "m")) or (letter7 = "v"))
          *set arithmancy1 + 4
          *goto ln8
     *elseif (((letter7 = "e") or (letter7 = "n")) or (letter7 = "w"))
          *set arithmancy1 + 5
          *goto ln8
     *elseif (((letter7 = "f") or (letter7 = "o")) or (letter7 = "x"))
          *set arithmancy1 + 6
          *goto ln8
     *elseif (((letter7 = "g") or (letter7 = "p")) or (letter7 = "y"))
          *set arithmancy1 + 7
          *goto ln8
     *elseif (((letter7 = "h") or (letter7 = "q")) or (letter7 = "z"))
          *set arithmancy1 + 8
          *goto ln8
     *elseif ((letter7 = "i") or (letter7 = "r"))
          *set arithmancy1 + 9
          *goto ln8
label ln8
*if (length(name) >= 8)
     *if (letter8 = "a") or (letter8 = "j")) or (letter8 = "s"))
          *set arithmancy1 + 1
          *goto ln9
     *elseif (((letter8 = "b") or (letter8 = "k")) or (letter8 = "t"))
          *set arithmancy1 + 2
          *goto ln9
     *elseif (((letter8 = "c") or (letter8 = "l")) or (letter8 = "u"))
          *set arithmancy1 + 3
          *goto ln9
     *elseif (((letter8 = "d") or (letter8 = "m")) or (letter8 = "v"))
          *set arithmancy1 + 4
          *goto ln9
     *elseif (((letter8 = "e") or (letter8 = "n")) or (letter8 = "w"))
          *set arithmancy1 + 5
          *goto ln9
     *elseif (((letter8 = "f") or (letter8 = "o")) or (letter8 = "x"))
          *set arithmancy1 + 6
          *goto ln9
     *elseif (((letter8 = "g") or (letter8 = "p")) or (letter8 = "y"))
          *set arithmancy1 + 7
          *goto ln9
     *elseif (((letter8 = "h") or (letter8 = "q")) or (letter8 = "z"))
          *set arithmancy1 + 8
          *goto ln9
     *elseif ((letter8 = "i") or (letter8 = "r"))
          *set arithmancy1 + 9
          *goto ln9
*else
     *goto an1
label ln9
*if (length(name) >= 9)
     *if (letter9 = "a") or (letter9 = "j")) or (letter9 = "s"))
          *set arithmancy1 + 1
          *goto an1
     *elseif (((letter9 = "b") or (letter9 = "k")) or (letter9 = "t"))
          *set arithmancy1 + 2
          *goto an1
     *elseif (((letter9 = "c") or (letter9 = "l")) or (letter9 = "u"))
          *set arithmancy1 + 3
          *goto an1
     *elseif (((letter9 = "d") or (letter9 = "m")) or (letter9 = "v"))
          *set arithmancy1 + 4
          *goto an1
     *elseif (((letter9 = "e") or (letter9 = "n")) or (letter9 = "w"))
          *set arithmancy1 + 5
          *goto an1
     *elseif (((letter9 = "f") or (letter9 = "o")) or (letter9 = "x"))
          *set arithmancy1 + 6
          *goto an1
     *elseif (((letter9 = "g") or (letter9 = "p")) or (letter9 = "y"))
          *set arithmancy1 + 7
          *goto an1
     *elseif (((letter9 = "h") or (letter9 = "q")) or (letter9 = "z"))
          *set arithmancy1 + 8
          *goto an1
     *elseif ((letter9 = "i") or (letter9 = "r"))
          *set arithmancy1 + 9
          *goto an1

label an1
*set arithmancy {arithmancy1}

Your number is {arithmancy1}

I think you need to *label not just label

3 Likes

For curiosity’s sake, I deleted the entire 2nd letter line, and the same thing happens when trying to go to ln4.

Would you look at that. That worked, fore some reason. :-/

Every command like
*label
*goto
*set
*if
*choice
*temp
*create
has to be marked with a starting *. Else, it won’t be recognized by ChoiceScript as a command but as normal text, basically.

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.