| 
			
				|  | Castle Paradox 
 
 |  
 
	
		| View previous topic :: View next topic |  
		| Author | Message |  
		| bis_senchi 
 
 
  
 Joined: 08 Jun 2004
 Posts: 460
 Location: Reims, France
 
 | 
			
				|  Posted: Tue Oct 11, 2005 7:33 am    Post subject: Could somoene help me with a script ? |   |  
				| 
 |  
				| I've made this key is pressed script. It works when I use it but after a few seconds I see the message "script error" interpreter overloaded.
 
 Could somoene help me to solve this problem ?
 As always thanks very much for the help !
 #---------------------------------------------------------------------------
 script, getquickscript, begin
 
 suspend Npcs
 suspend player
 
 if (check tag(tag:acc)==ON) then, begin
 running:=false
 if ((running==false),and, (key is pressed (any key)==false) )then , begin
 
 if (herodirection(me)==right) then, begin
 (running:=true)
 (set hero speed (me, 11)), then,
 (walk hero (me, east, 2)),then,
 (set hero speed (me, 4)), then,
 (wait for hero (me)), then,
 (running:=false), then
 (wait (3)))
 else, begin
 
 if (herodirection(me)==left)then,begin
 (running:=true)
 (set hero speed (me, 11)), then,
 (walk hero (me, west, 2)), then,
 (set hero speed (me, 4)), then,
 (wait for hero (me)), then,
 (running:=false), then
 (wait (3)))
 else, begin
 
 if (herodirection(me)==up)then,begin
 (running:=true)
 (set hero speed (me, 11)), then,
 (walk hero (me, north, 2)),then,
 (set hero speed (me, 4)), then,
 (wait for hero (me)), then,
 (running:=false), then
 (wait (3)))
 else, begin
 
 if (herodirection(me)==down) then, begin
 (set hero speed (me, 11)), then,
 (walk hero (me, south, 2)),then,
 (set hero speed (me, 4)), then,
 (wait for hero (me)), then,
 (running:=false), then
 (wait (3)))
 
 
 resume Npcs
 resume player
 end
 #--------------------------------------------------------------------------------
 
 
 The get script you can read above is autorun script. (but the script luna follows me isn't)
 
 The key is pressed script contains the following code
 
 #-------------------------------------------------------------------------
 #This script allows the pet to follow the hero as the tag is checked "on"
 #the script is on all the maps as the "on-keypressedscript"
 
 script, luna follows me, begin
 
 hero is walking (0) #substitute this for the hero you want
 hero direction (0) #=direction
 npcplace #(*,*,direction,*)
 my keyboard
 
 if (launchgetquickscript)then, begin
 get quick script
 end
 
 if (launchpausescript) then, begin
 mypausescript
 end
 
 end #end on the plotscript
 #------------------------------------------------------------------------
 #This script allows me to customise the keyboard
 
 script, my keyboard, begin
 
 suspend npcs
 suspend player
 
 if (key is pressed(key: r), and, jumping == false, and, hero is walking(me) == false) then (
 
 variable (tilex, tiley)
 tilex := hero x(me)
 tiley := hero y(me)
 if (hero direction(me) == north) then (tiley -= 2)
 if (hero direction(me) == south) then (tiley += 2)
 if (hero direction(me) == east) then (tilex += 2)
 if (hero direction(me) == west) then (tilex -= 2)
 #now check if they can jump to the tile 2 spaces ahead
 if (readmapblock(tilex, tiley) == 10) then,
 (jumping := true ) then,
 
 (variable (i, walkx, walky, hx, hy, jump) #Debut du code pour le saut
 suspend player
 suspend Npcs
 if (hero direction(me) == north) then (walky := -4) #walk at normal speed north
 if (hero direction(me) == south) then (walky := 4)
 if (hero direction(me) == east) then (walkx := 4)
 if (hero direction(me) == west) then (walkx := -4)
 jump := -5
 hx := hero pixel x(me)
 hy := hero pixel y(me)
 for (i, 0, 10) do (
 put hero (me, hx, hy + jump)
 hx := hero pixel x(me) + walk x
 hy := hero pixel y(me) + walk y
 jump += 1
 wait
 )
 resume player
 resume npcs
 end, then, #fin du code pour le saut
 (jumping := false)
 end # end of the jump script
 
 if (key is pressed(key: z))
 then, begin
 #Key is pressed z pour accelerer
 set tag (tag:acc, ON)
 launchgetquickscript:=true
 end
 
 if (key is pressed(key: numlock)), then, begin #Key is pressed pour faire pause
 set tag (tag:pause, ON)
 #Key is pressed numlock pour faire pause
 #increment (pauseispressed, 13)
 launchpausescript:=true
 end
 
 #if (check tag(149)==OFF) then, begin
 #if (wait for key (menukey))then, begin
 #launchlockedkeyboard:=true
 #end #end of the wait for key command
 #end #end of the tag
 
 Resume npcs
 Resume player
 
 end #end of the plotscript here
 
 
 Some explanations:
 
 The global variables allows me to launch the script from the key is pressed script. The global variable check command are on the keyboard script because if I put on other place the command simply doesn't work.
 
 Feel free to ask for further details if there are still things that you don't understand because as everybody has already noticed, I am very good to make myself missunderstood!
 
 Anyway, thanks very much for keeping on providing help and support!
 
 
 bis_senchi
 |  |  
		| Back to top |  |  
		|  |  
		| Raekuul Delicious!
 
 
 
  
 Joined: 31 Mar 2004
 Posts: 641
 Location: Nowhere
 
 | 
			
				|  Posted: Tue Oct 11, 2005 8:39 am    Post subject: |   |  
				| 
 |  
				| Are you *supressing minor warnings? _________________
 A broken clock is still right twice a day.
 |  |  
		| Back to top |  |  
		|  |  
		| bis_senchi 
 
 
  
 Joined: 08 Jun 2004
 Posts: 460
 Location: Reims, France
 
 | 
			
				|  Posted: Wed Oct 12, 2005 11:58 pm    Post subject: ?? What do mean by minor warnings ? |   |  
				| 
 |  
				| It's the first I've heard about "minor warnings". Could you please explain me what it is ?? 
 Thanks for the help !
 |  |  
		| Back to top |  |  
		|  |  
		| Uncommon His legend will never die
 
 
 
  
 Joined: 10 Mar 2003
 Posts: 2503
 
 
 | 
			
				|  Posted: Thu Oct 13, 2005 6:31 am    Post subject: |   |  
				| 
 |  
				| That means it doesn't whine at you for defining variables you don't use, etc, etc. |  |  
		| Back to top |  |  
		|  |  
		| bis_senchi 
 
 
  
 Joined: 08 Jun 2004
 Posts: 460
 Location: Reims, France
 
 | 
			
				|  Posted: Sat Oct 15, 2005 8:51 am    Post subject: Here is what happen |   |  
				| 
 |  
				| When I compile the script there are no error message. When I press w the character walk but when I start to press a key as the phero gets quick on the screen I got the following error message. 
 "script error. Interpreter overloaded ". and then "failed to load script 48" (that is to say my on-kepressed script which I named "luna follows me")
 
 Feel free to ask for further informations!
 |  |  
		| Back to top |  |  
		|  |  
		| Ysoft_Entertainment VB Programmer
 
 
 
  
 Joined: 23 Sep 2003
 Posts: 810
 Location: Wherever There is a good game.
 
 | 
			
				|  Posted: Sat Oct 15, 2005 6:47 pm    Post subject: |   |  
				| 
 |  
				| ok, first of all, you cannot have multiple "then" without "if", and your quick script is full of them. _________________
 Try my OHR exporter/importer.
 OHRGFX
 Striving to become better pixel artist then Fenrir Lunaris.  Unfortunately the laziness gets in the way of my goals.
 |  |  
		| Back to top |  |  
		|  |  
		| tgfcoder 
 
 
 
 Joined: 14 Oct 2005
 Posts: 37
 Location: Australia
 
 | 
			
				|  Posted: Sat Oct 15, 2005 7:20 pm    Post subject: Hmm |   |  
				| 
 |  
				| The code is REALLY poorly structured. It needs to be in a code tag, or at least be consistent with begin's with enclosing ends. Luckily for you I have rewritten it! I'm not an expert at this, there still may be bugs. 
 
  	  | Code: |  	  | script, getquickscript, (
 suspend npcs
 suspend player
 
 if (check tag(tag:acc) == 1) then, (
 running := false
 
 if ((running==false), and, (key is pressed (any key) == false)) then, (
 if (herodirection(me) == right) then, (
 running := true
 set hero speed (me, 11)
 walk hero (me, east, 2)
 set hero speed (me, 4)
 wait for hero (me)
 running := false
 wait (3)
 )
 else, (
 if (herodirection(me) == left) then, (
 running := true
 set hero speed (me, 11)
 walk hero (me, west, 2)
 set hero speed (me, 4)
 wait for hero (me)
 running := false
 wait (3)
 )
 )
 else, (
 if (herodirection(me) == up) then, (
 running := true
 set hero speed (me, 11)
 walk hero (me, north, 2)
 set hero speed (me, 4)
 wait for hero (me)
 running := false
 wait (3)
 )
 )
 else, (
 if (herodirection(me) == down) then, (
 set hero speed (me, 11)
 walk hero (me, south, 2)
 set hero speed (me, 4)
 wait for hero (me)
 running := false
 wait (3)
 )
 )
 )
 )
 
 resume npcs
 resume player
 
 )
 
 | 
 
 I assume that's the way you want it to work, as I have no idea what you're trying to accomplish, also with no intention of trying to figure out
   
 As for the Luna Follows Me script, I dunno what I can do there.
 Hope it helps
  |  |  
		| Back to top |  |  
		|  |  
		| TMC On the Verge of Insanity
 
 
 
 
 Joined: 05 Apr 2003
 Posts: 3240
 Location: Matakana
 
 | 
			
				|  Posted: Sun Oct 16, 2005 4:15 am    Post subject: |   |  
				| 
 |  
				| An if can't have more than one then or else. If it does, it is ignored, and everything is run anyway. Something like 
  	  | Code: |  	  | if (something)
 then (do something)
 then (do something more)
 then (do even more)
 
 if (is it A?)
 then (is A)
 else (
 if (is it B?)
 then (not A, is B)
 )
 else (
 if (is it C?)
 then (not A or B, is C)
 )
 
 | 
 
 Is wrong and should be
 
 
  	  | Code: |  	  | if (something)
 then (
 do something
 do something more
 do even more
 )
 
 if (is it A?)
 then (is A)
 else (
 if (is it B?)
 then (not A, is B)
 else (
 if (is it C?)
 then (not A or B, is C)
 )
 )
 
 | 
 
 
 
 Firstly, you should probably not use a speed of 11, this does not divide into 20. If your hero gets misaligned, change the speed from 11 to 10.
 
 I think you can get the scripts working with a few small changes without needing to rewrite it.
 
 Firstly, I changed tgf's version of getquickscript a little futher. I removed the line
 running := false
 because otherwise running is ALWAYS false on the next line, if ((running==false) ... . The point of having running is to stop the code from being run again if it already is happening.
 
 Also, I removed the elses because they do nothing.
 
 
  	  | Code: |  	  | script, getquickscript, ( suspend npcs
 suspend player
 
 if (check tag(tag:acc) == 1) then, (
 if ((running==false), and, (key is pressed (any key) == false)) then, (
 if (herodirection(me) == right) then, (
 running := true
 set hero speed (me, 11)
 walk hero (me, east, 2)
 set hero speed (me, 4)
 wait for hero (me)
 wait (3)
 running := false
 )
 if (herodirection(me) == left) then, (
 running := true
 set hero speed (me, 11)
 walk hero (me, west, 2)
 set hero speed (me, 4)
 wait for hero (me)
 wait (3)
 running := false
 )
 if (herodirection(me) == up) then, (
 running := true
 set hero speed (me, 11)
 walk hero (me, north, 2)
 set hero speed (me, 4)
 wait for hero (me)
 wait (3)
 running := false
 )
 if (herodirection(me) == down) then, (
 set hero speed (me, 11)
 walk hero (me, south, 2)
 set hero speed (me, 4)
 wait for hero (me)
 wait (3)
 running := false
 )
 )
 )
 
 resume npcs
 resume player
 
 )
 | 
 
 Next, I got rid of more extra then's which break the code in the jumping part of mykeyboard. Replace your code with this:
 
 
  	  | Code: |  	  | if (key is pressed(key: r), and, jumping == false, and, hero is walking(me) == false) then (
 
 variable (tilex, tiley)
 tilex := hero x(me)
 tiley := hero y(me)
 if (hero direction(me) == north) then (tiley -= 2)
 if (hero direction(me) == south) then (tiley += 2)
 if (hero direction(me) == east) then (tilex += 2)
 if (hero direction(me) == west) then (tilex -= 2)
 #now check if they can jump to the tile 2 spaces ahead
 if (readmapblock(tilex, tiley) == 10) then(
 jumping := true
 
 variable (i, walkx, walky, hx, hy, jump) #Debut du code pour le saut
 if (hero direction(me) == north) then (walky := -4) #walk at normal speed north
 if (hero direction(me) == south) then (walky := 4)
 if (hero direction(me) == east) then (walkx := 4)
 if (hero direction(me) == west) then (walkx := -4)
 jump := -5
 hx := hero pixel x(me)
 hy := hero pixel y(me)
 for (i, 0, 10) do (
 put hero (me, hx, hy + jump)
 hx := hero pixel x(me) + walk x
 hy := hero pixel y(me) + walk y
 jump += 1
 wait
 )
 
 #fin du code pour le saut
 jumping := false
 )
 ) # end of the jump script
 | 
 
 I also got rid of the extra suspend and resume statements.
 
 Tell me if that works
  _________________
 "It is so great it is insanely great."
 |  |  
		| Back to top |  |  
		|  |  
		| tgfcoder 
 
 
 
 Joined: 14 Oct 2005
 Posts: 37
 Location: Australia
 
 | 
			
				|  Posted: Sun Oct 16, 2005 12:13 pm    Post subject: |   |  
				| 
 |  
				| Wow, teamwork. Someone who actually knows PS? Amazing; I'm so used to low level coding I try to deallocate memory in OHR.     
 
  	  | Code: |  	  | script, end, (
 if (check tag(10)), (
 deallocate(1024)
 game over
 )
 else, (
 show text box(29)
 )
 )
 
 | 
 
 Spot which line the compiler caught.
 |  |  
		| Back to top |  |  
		|  |  
		| Mike Caron Technomancer
 
 
 
  
 Joined: 26 Jul 2003
 Posts: 889
 Location: Why do you keep asking?
 
 | 
			
				|  Posted: Sun Oct 16, 2005 6:56 pm    Post subject: |   |  
				| 
 |  
				| is it the check tag bit? Those tricky HamsterSpeak gremlins are all over the place...   
 And, you'll find that anyone named "The Mad Cacti" or "Moogle1" or "James Paige" will know more about plotscripting than there is to know. Really.
 _________________
 I stand corrected. No rivers ran blood today. At least, none that were caused by us.
 
 Final Fantasy Q
 OHR Developer BLOG
 Official OHRRPGCE Wiki and FAQ
 |  |  
		| Back to top |  |  
		|  |  
		| tgfcoder 
 
 
 
 Joined: 14 Oct 2005
 Posts: 37
 Location: Australia
 
 | 
			
				|  Posted: Mon Oct 17, 2005 1:38 am    Post subject: |   |  
				| 
 |  
				| =Lolx:) |  |  
		| Back to top |  |  
		|  |  
		| bis_senchi 
 
 
  
 Joined: 08 Jun 2004
 Posts: 460
 Location: Reims, France
 
 | 
			
				|  Posted: Sat Oct 22, 2005 6:49 am    Post subject: |   |  
				| 
 |  
				| I've tested the new get script several times and I have bad news. It doesn't work. The interperter is still overloaded and there are problems to launch the script lunafollowsme. 
 Does anyone could make a script map? what script is suposed to launch sub-scripts ? Here's the pic in my mind
 
 Luna follows me
 
 sub-script A get quickscript launched with a global variable. go to my keyboard script and then to get quick script.
 sub-script B get pausescript launched with a global variable. go to me keyboard script and then to the pause script
 
 On the keyboard tags are turned on and are required by the script to start.
 I would also like to add an sub script C that would allows me to lock the keyboard.
 
 I make launch scripts from the keyboard script because the script were too big. Launching script from my keyboard script is the only to make the keyispressed command valid. If I make launched the script directly from Lunafollowsme, nothing happens when I press the keys.
 
 Could somoene help me to solve this problem ?
 Thanks in advance for the help!
 |  |  
		| Back to top |  |  
		|  |  
		| Mike Caron Technomancer
 
 
 
  
 Joined: 26 Jul 2003
 Posts: 889
 Location: Why do you keep asking?
 
 | 
			
				|  Posted: Sat Oct 22, 2005 9:01 am    Post subject: |   |  
				| 
 |  
				| You can easily use keyispressed from another type of script by having a loop: 
 
  	  | Code: |  	  | variable(waiting) waiting:= true
 while(waiting) do, begin
 if(key is pressed(any key)) then (waiting:= false)
 wait(1) #really important!!!!!1
 end
 | 
 
 So, your script would probably look something like this:
 
 
  	  | Code: |  	  | while(true) do, begin #loop forever (make sure it's only launched once!!!!!!!) if(check tag(tag:asc), and, key is pressed(any key)) then, begin
 #... put the conditionals in here
 end
 wait(1) #really really really ... important.
 end
 | 
 _________________
 I stand corrected. No rivers ran blood today. At least, none that were caused by us.
 
 Final Fantasy Q
 OHR Developer BLOG
 Official OHRRPGCE Wiki and FAQ
 |  |  
		| Back to top |  |  
		|  |  
		| Raekuul Delicious!
 
 
 
  
 Joined: 31 Mar 2004
 Posts: 641
 Location: Nowhere
 
 | 
			
				|  Posted: Sun Oct 23, 2005 3:49 am    Post subject: |   |  
				| 
 |  
				| Even though the wait would get done every-single-time a key is pressed... _________________
 A broken clock is still right twice a day.
 |  |  
		| Back to top |  |  
		|  |  
		| Mike Caron Technomancer
 
 
 
  
 Joined: 26 Jul 2003
 Posts: 889
 Location: Why do you keep asking?
 
 | 
			
				|  Posted: Mon Oct 24, 2005 10:08 am    Post subject: |   |  
				| 
 |  
				| Nonono, this isn't an onkeypress script. Read what I said: 
 
  	  | Me wrote: |  	  | You can easily use keyispressed from another type of script by having a loop: | 
 _________________
 I stand corrected. No rivers ran blood today. At least, none that were caused by us.
 
 Final Fantasy Q
 OHR Developer BLOG
 Official OHRRPGCE Wiki and FAQ
 |  |  
		| Back to top |  |  
		|  |  
		|  |  
  
	| 
 
 | You can post new topics in this forum You can reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 
 |  
 Powered by phpBB © 2001, 2005 phpBB Group
 
 
 |