The file is attached, takes in 9 names and match attendance. I can't get it to output to = output 1, and output 2 error at line 51. button "Button 1": execution error at line 51 (Chunk: error in range start expression), char 1. Anyone like to help me, please. Here is the code for this attempt. 
global nameOfperson, gigsGone, calc, money, ticket?, winner1, winner2 
on mouseUp
   declareVariables
   repeat with index=1 to 9
   nameOf
   NoOfGigs
   calculateLoyalFanness
   finalOutput
   end repeat
end mouseUp
on declareVariables //Declareing variables and emptying field
   put "" into nameOfperson
   put 0 into NoOfGigs
   put empty into field "output 1"
   put empty into field "output 2"
   put 1 into index
end declareVariables
on nameOf //Their information
   ask "What is your first name?"
      if the result = "Cancel" then exit to top
   put it into nameOfperson[index]
end nameOf
on NoOfGigs //The number of gigs they have been to
   ask "How many of their gigs have you been to?"
   if the result = "Cancel" then exit to top
   put it into gigsGone[index]
      if gigsGone[index] >2 and gigsGone[index] <6 and gigsGone[index] is an integer then
   else 
   answer "Sorry, that number of gigs is not viable for loyal fandom."   
   end if
end NoOfGigs
on calculateLoyalFanness //Calculate the price of thier ticket
   if gigsGone[index] = 3 then
      put 0.7 into calc
   end if
   if gigsGone[index] = 4 then
   put 0.6 into calc
end if
if gigsGone[index] = 5 then
   put 0.5 into calc
end if
put 15 * calc into money[index]
end calculateLoyalFanness
on finalOutput //Output the information that really matters
put  nameOfperson[index]& "the cost of your final concert ticket with the appropriate discount is £"&money[index]& "" into line index of field "output 1"
//put  ""&nameOfperson[index]&"the cost of your final concert ticket with the appropriate discount is £" &money[index]& "" into line index of field "output 1"
   repeat until winner1 <> winner2
      put random(9) into winner1
      put random(9) into winner2
   end repeat
   put nameOfperson[winner1] into line 1 of field "output 2" 
   put nameOfperson[winner2] into line 2 of field "output 2"
end finalOutput
			
			
									
									
						code help
Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller
Re: code help
Hi.
Step through your handlers. The line that fails (first line in the handler "finalOutput) is asking you to put something into "line index" of a field. But "index" as a variable name does not contain a number, the only chunk that will properly resolve for the parser to work properly.
These sorts of issues are easily fixed by stepping through.
Craig Newman
			
			
									
									
						Step through your handlers. The line that fails (first line in the handler "finalOutput) is asking you to put something into "line index" of a field. But "index" as a variable name does not contain a number, the only chunk that will properly resolve for the parser to work properly.
These sorts of issues are easily fixed by stepping through.
Craig Newman
Re: code help
I am very new to this, sorry, but can you be a little more specific? Do I need the declare Index as a Variable, Integer? What is needed as a number in Index?
			
			
									
									
						Re: code help
OK.
First off, a very nice early project. I like the way you structure your script, with handlers called from the main "mouseUp" routine. You should have fun with this.
Know that when you re-use variables among handlers in the same script, you must declare them as local in that script:
Otherwise, subsequent handlers will not know what you are talking about. If you want these to be available in other scripts in other objects, you must declare them as global. It is possible to pass values as parameters between handlers, but we will leave that for when you are more comfortable. And custom properties are my preferred method of storing data universally, but that also is for a little later.
One caveat: I would not use the same variable name in multiple places, unless you really want to, as when you pass parameters. Your "index" is an ordinary variable, an "index" for a repeat loop, and an array element name. Just don't.
Craig
			
			
									
									
						First off, a very nice early project. I like the way you structure your script, with handlers called from the main "mouseUp" routine. You should have fun with this.
Know that when you re-use variables among handlers in the same script, you must declare them as local in that script:
Code: Select all
local nameOfPerson,money,gigsGone,index
on mouseUp
....One caveat: I would not use the same variable name in multiple places, unless you really want to, as when you pass parameters. Your "index" is an ordinary variable, an "index" for a repeat loop, and an array element name. Just don't.
Craig
