Home
Help
Search
Calendar
Login
Register
Please
login
or
register
.
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
News:
Click here to join us on IRC (#charas on irc.freenode.net)!
Charas-Project
»
Game Creation
»
Requests
»
Tutorials
»
My CMS Code, it won't work.
« previous
next »
Print
Pages: [
1
]
Author
Topic: My CMS Code, it won't work. (Read 3240 times)
ThexXtremeXx
Hey.
Exemplar
Posts: 1,007
Dum.. badum.
My CMS Code, it won't work.
«
on:
December 24, 2008, 08:06:39 PM »
Ok, so i got a bunch of pictures:
(Thats not all of them.)
I made a piece of code that looks like this:
I don't know how I should finish it, any help?
Logged
InsaneJP
Certified Public Spriter
Exemplar
Posts: 1,280
video game fanatic and martial arts lover
Re: My CMS Code, it won't work.
«
Reply #1 on:
December 31, 2008, 04:30:53 AM »
i found these tuts see if they help you out.... neither are from me so i couldnt probably answer all your questions about them.... hope they help!
-Cursor Movement-
All Map events not common events
(1) Loop
(2) Move Picture: 1, (V[Menu X],V[Menu Y]), 0.1 Sec (No Wait)
(3) Variable Oper: [PASSWORD] Set, 0
(4) Wait: 0.1 Sec
(5) Key Input Proc: [PASSWORD] (1,2,3,4) (No Wait)
(6) Branch if Var [PASSWORD] is 1 or more
(6.1) Branch if Switch [CURSOR PAUSE] is OFF
(6.11) Switch Operation: [CURSOR PAUSE] ON
(6.12) Variable Oper: [PASSWORD] Set, 0
(6.13) Wait: 0.2 Sec
(6.14) Key Input Proc: [PASSWORD] (1,2,3,4) (No Wait)
(6.2) Jump to Label: 1
(7) Key Input Proc: [PASSWORD] (1,2,3,4,5,6) (Wait)
(
Switch Operation: [CURSOR PAUSE] OFF
(9) Label: 1
(10) Branch if Var [PASSWORD] is 1
[insert code here for moving cursor down]
(11) Branch if Var [PASSWORD] is 2
[insert code here for moving cursor left]
(12) Branch if Var [PASSWORD] is 3
[insert code here for moving cursor right]
(13) Branch if Var [PASSWORD] is 4
[insert code here for moving cursor up]
(14) Branch if Var [PASSWORD] is 5
(15) Branch if Var [PASSWORD] is 6
(16) End Loop
where it says insert code make a conditional branch
For Down, make it say: If Menu Y = (y cooardinate at the bottom of the list), then do nothing. Else, add (measure between options) to variable Menu Y
that way, if you get to the bottom of the list, the cursor wont keep going
and do the same for up, left, and right, and you should be good for now
make 2 variables, Cursor X and Cursor Y
make the x the starting X coordinate, and Y the starting Y one
in the coding, they are called Menu X and Y
where it says insert code for ....such as for moving down
since Y is vertical, add however many pixels there are vertically between the menu options
TemptedTobInsane: so the 1st (x,y) would be at the MenuX and Menu Y and the next one (10) where it says branch is password 1 is pressed (for down) would be the one you just told me to do by movin it down however many?
TomiRm2k3: yep, just change the Y, and since its a loop, it'll change the picture location
And rule of thumb, add to variables to go right and down, and subtract to go up and left
-Scrolling in CMS-
A CMS (Custom Menu System) is a sometimes fun, always time-consuming addition to a game to keep it from being too generic. Or in many cases, people create one to see if--or just because--they can. But oftentimes small problems arise in that they can look great but move like octogenarians having sex. This tutorial and those that may or may not follow will pick up on a few missing details that can help with navigating your CMS and make it more user-friendly.
This edition will show you how to have a cursor that scrolls continuously if you hold an arrow key down. It's a small detail to be sure, but you'd be amazed the difference it can make when your list of variable-based items reaches 50+ and mid-game you want to use item #25. I'd much rather hold the key once for a couple of seconds than press it 24 times.
So let's get to the basics. Almost predominantly, this is what the skeleton of a menu system looks like (this is RM2k3, incidentally):
(1) Loop
(2) Move Picture: 1, (V[X],V[Y]), 0.1 Sec (No Wait)
(3) Key Input Proc: [PASSWORD] (1,2,3,4,5,6) (Wait)
(4) Branch if Var [PASSWORD] is 1
[insert code here for moving cursor down]
(5) Branch if Var [PASSWORD] is 2
[insert code here for moving cursor left]
(6) Branch if Var [PASSWORD] is 3
[insert code here for moving cursor right]
(7) Branch if Var [PASSWORD] is 4
[insert code here for moving cursor up]
(
Branch if Var [PASSWORD] is 5
(9) Branch if Var [PASSWORD] is 6
(10) End Loop
If this doesn't look familiar, it might be because I've numerated it for easier callback (for later on) and tacked on some important details. If it still doesn't look familiar, you've probably jumped the gun reading this tutorial first.
Simply put, you enter a key in line (3). It translates the key you pressed into a number (up=4, down=1, left=2, right=3, Enter or Z=5, Esc or X=6) and stores it as a variable (I call the variable PASSWORD as a habit back from RM2k). Based on the number, six things can happen, called up by lines (4)-(9). Generally, a CMS will have up, down, left, or right move the cursor up, down, left, or right. And that's the philosophy this tutorial will follow. Ignore 5 and 6 this time around, they aren't needed. After this, line (10) sends it back to line (1) and line (2) will move the picture (your cursor) to it's new destination.
Now using this, if you hit up and hold it, the cursor will scroll up once. And then stop. Hold the button down for as long as you want, it's not going to budge again until you release and press again. This is because line (3) has a (Wait) at the end. But if you try to circumvent this and uncheck the Wait box, then instead it will fly right by line (3) and you'd have to be holding the button down at the specific time to manage to catch it. One way is too slow, the other is too fast.
So now to use both options to create a balance. Below is the skeleton of what the new script will look like when you're done. I will explain each line and what it does afterwards.
(1) Loop
(2) Move Picture: 1, (V[X],V[Y]), 0.1 Sec (No Wait)
(3) Variable Oper: [PASSWORD] Set, 0
(4) Wait: 0.1 Sec
(5) Key Input Proc: [PASSWORD] (1,2,3,4) (No Wait)
(6) Branch if Var [PASSWORD] is 1 or more
(6.1) Branch if Switch [CURSOR PAUSE] is OFF
(6.11) Switch Operation: [CURSOR PAUSE] ON
(6.12) Variable Oper: [PASSWORD] Set, 0
(6.13) Wait: 0.2 Sec
(6.14) Key Input Proc: [PASSWORD] (1,2,3,4) (No Wait)
(6.2) Jump to Label: 1
(7) Key Input Proc: [PASSWORD] (1,2,3,4,5,6) (Wait)
(
Switch Operation: [CURSOR PAUSE] OFF
(9) Label: 1
(10) Branch if Var [PASSWORD] is 1
[insert code here for moving cursor down]
(11) Branch if Var [PASSWORD] is 2
[insert code here for moving cursor left]
(12) Branch if Var [PASSWORD] is 3
[insert code here for moving cursor right]
(13) Branch if Var [PASSWORD] is 4
[insert code here for moving cursor up]
(14) Branch if Var [PASSWORD] is 5
(15) Branch if Var [PASSWORD] is 6
(16) End Loop
And it only took 12 more lines of code. Now let's get into the details.
Line (1) is self-explanatory. It's a bookend along with (16). Line (2) we've covered already, but (3) is new. Its purpose is to reset the Var:[PASSWORD] variable because in line (5), it's not going to wait for you to press a button. If you were to leave the variable as is, it would read it as the last button you pressed, whether you were still holding that button or not.
Line (4) is used to keep the code from outrunning the cursor's movement when you hold the button down since there's no wait for cursor movement in line (2). By separating picture movement and the Wait feature, you can allow the code to keep reading WHILE the cursor moves until you want it to stop.
Line (5) is the first Input point. As it has (No Wait), it will only activate if you're holding an arrow key down. If you don't, then Var:[PASSWORD] will stay at 0 as per line (3).
But if you did hold the button down, line (5) will designate Var:[PASSWORD] a number. Now line (6) comes up and reads it. If it's 0, it will ignore everything within the entire (6.?) and (6.??) branches. If not, we're off to the races.
Line (6.1) is called (.1) because it's within the (6) branch. Just to make that known. This section is a little more complicated. The Switch:[CURSOR PAUSE] switch is meant to activate or deactivate a small .2 second pause in line (6.13). Why? Mark your spot and go to the top of this tutorial and hold the arrow key down. Unless you're using an inferior browser, you'll have noticed the screen move once, pause briefly, THEN start scrolling. A little jump start before the breakaway. This is to create a little leeway for people who don't intend to hold the button down, but unfortunately have slow, clumsy fingers (and when applicable: unhappy girlfriends).
Anyway, Switch:[CURSOR PAUSE] will only be on when the game is sure someone is holding a button down with intent to scroll (line (6.11)). As such, it will switch back off when you release the key. This will set Var:[PASSWORD] back to 0 in line (3), thus causing you to skip line (6.2) in the line (6) branch and happily travel to line (
and turn Switch:[CURSOR PAUSE] off. You get all that?
Line (6.11), now that it has been mentioned already earlier, simply turns on Switch :[CURSOR PAUSE] so there will be no .2 sec gap in line (6.13). This enables smooth scrolling.
Line (6.12) is similar to line (3), it sets Var:[PASSWORD] back to 0 again so line (6.14) can double-check if the person had merely tapped the button a split second too long or of they truly do intend to do some serious scrolling.
Line (6.13) is that 0.2 second gap I just spent a big paragraph and a small paragraph talking about. It merely creates a gap between the first movement when you hold the button and the actual scrolling motion.
Line (6.14) is to line (5) as line (6.12) is to line (3). Just a checkpoint if a person is holding the button or pressed a little too much. If the button is still held down, the variable will reset to the number it was supposed to be. If not, then line (6.12) made sure it was 0 again.
Line (6.2) will activate if line (5) registers a number over 1 (meaning the button was held). It's purpose is to jump ahead to line (9) so you skip line (7) and its wait command (you already have a password input from line (6.14) the first time around or line (5) when the scrolling begins). It also skips over line (
because you don't want Switch:[CURSOR PAUSE] off until you've finished scrolling.
Line (7), and we're back to familiar territory. This was line (3) in the first skeleton display I created at the top of this page. Nothing new here.
Line (
we've been over before, but more recently. It turns Switch:[CURSOR PAUSE] off, which means you released the button. So when you press it again to scroll, a fresh start begins and you get that jump, two second pause, then scrolling.
Line (9) is the recieving point from (6.2). It's placement is to skip over lines (7) and (
for reasons already covered.
Lines (10)-(16) are just lines (4)-(10) in the first display. You should already be familiar with them.
And there we have it. No when you enter your item menu chock full of dozens of items. You can just hit the down key, hold it, and watch the cursor blow through the list much more rapidly than tapping the key repeatedly. Or if tapping is still faster, at least it's not as hard on your wrist.
Extra Notes:
1. There are three points in that final display where it asks for a keypress (Key Input Proc). The first two should only have #'s 1-4 checked. Those are the keys used with cursor movement, the others don't need to have a "scrolling" feature.
2. The [X] and [Y] variables in line (2) are of course the X and Y coordinates used to pinpoint where your cursor picture will be centered. A staple of the CMS.
3. If you're using an :Else Handler for the "If Var:[PASSWORD] is 1-6" Branches, by all means keep it. But they're not necessary if every option is accounted for with its own branch.
4. If the event page is already using a #1 Label, by all means change the one above. This is also why I didn't bother to number the variables or switch. It'd change between different games anyway.
Logged
ThexXtremeXx
Hey.
Exemplar
Posts: 1,007
Dum.. badum.
Re: My CMS Code, it won't work.
«
Reply #2 on:
December 31, 2008, 04:31:39 AM »
Damn.
Thanks!
Logged
InsaneJP
Certified Public Spriter
Exemplar
Posts: 1,280
video game fanatic and martial arts lover
Re: My CMS Code, it won't work.
«
Reply #3 on:
December 31, 2008, 04:40:17 PM »
no problem
Logged
Print
Pages: [
1
]
« previous
next »
Charas-Project
»
Game Creation
»
Requests
»
Tutorials
»
My CMS Code, it won't work.