PDA

View Full Version : [Tutorial] The secret of the Move Camera Script (and extras)


cooley
June 11th, 2008, 02:09 PM
Before I begin, I'd like to give you some advice. DON'T USE POKESCRIPT!!!!
This tutorial uses XSE, the better way of scripting


For those of you who don't know what a "Move Camera Script" is, then look Here (http://www.youtube.com/watch?v=XXUhuuMHyis). That's an example.

MOVE CAMERA SCRIPT

START
Move Camera Scripts are scripts that move the screen, instead of people.

REQUIREMENTS
*Advance map 1.90 or higher
*Visual Boy Advacne
*Pokemon (FR/LG/R/S) ROM(s) *emerald not tested
*XSE(eXtreme Script Editor)
*Common Sense and Patience

EXAMPLE
They are made like this:


#org @start
lockall
special 0x113
applymovement 0x7F @move
waitmovement 0x0
special 0x114
releaseall
end

#org @move
#raw (these can be any movements as long as it comes back to the user)* * = If the camera moves 3 up, then 2 left, then the camera MUST return to it's orignal postion.

EXPLANATION
The special 0x113 and special 0x114 are the most important part of the script. The script is relying on it, so, no special 0x113 or 0x114's, no Move Camera Scripts.

Lockall
This is almost like the command "lock" except it locks every person on the map.

Special 0x113
This makes the player be frozen. And any other people should be as well.

Applymovement 0x7F @move
Applymovement = Applymovement, but the 7F tells the game we are moving the Camera instead of people. The movements are the same as if you were moving people.

Special 0x114
This releases the 'Special 0x113' if this is not present, then you can't move at all

Releaseall
Kinda like 'release' except it releases all people on the map

EXAMPLE OF SCRIPT(decompiled)

'-----------------------
#org 0x17070B
special 0x113
applymovement MOVE_CAMERA 0x81707BE
waitmovement 0x0
pause 0x23
sound 0x15
checksound
setvar 0x8004 0x0
special 0x1B5
pause 0xA
call 0x81707B6
call 0x81707B6
call 0x81707B6
call 0x81707B6
call 0x81707B6
call 0x81707B6
call 0x81707B6
setvar 0x8004 0x1
special 0x1B5
sound 0x27
special 0x1B7
checksound
call 0x81707B6
call 0x81707B6
call 0x81707B6
call 0x81707B6
call 0x81707B6
setdooropened 0x3 0x3
doorchange
fadein 0x0
showsprite 0x1
clearflag 0x33
pause 0x32
fanfare 0x101
applymovement 0x1 0x8170888
waitmovement 0x0
waitfanfare
applymovement MOVE_CAMERA 0x81707C3
waitmovement 0x0
sound 0x5B
setdoorclosed 0x3 0x3
doorchange
applymovement 0x1 0x8170881
waitmovement 0x0
special 0x114
releaseall
end

'-----------------------
#org 0x1707B6
sound 0x17
checksound
pause 0x14
return


'-----------
' Movements
'-----------
#org 0x1707BE
#raw 11 'Step Up (Normal)
#raw 11 'Step Up (Normal)
#raw 13 'Step Right (Normal)
#raw 13 'Step Right (Normal)
#raw FE 'End of Movements

#org 0x170888
#raw 10 'Step Down (Normal)
#raw FE 'End of Movements

#org 0x1707C3
#raw 1C 'Delay5
#raw 1C 'Delay5
#raw 10 'Step Down (Normal)
#raw 10 'Step Down (Normal)
#raw 12 'Step Left (Normal)
#raw 12 'Step Left (Normal)
#raw FE 'End of Movements

#org 0x170881
#raw 13 'Step Right (Normal)
#raw 13 'Step Right (Normal)
#raw 13 'Step Right (Normal)
#raw 13 'Step Right (Normal)
#raw 10 'Step Down (Normal)
#raw 10 'Step Down (Normal)
#raw FE 'End of Movements
CREDITS
-HackMew - (Andrea) - For correcting my mistake, and helping me with this Script.makunouchi - For showing me the script, through video
GameFreak - For using the script in-game for me to catch on.

REFERENCES
Offset(s) of different examples of "Move Camera Scripts":
RUBY(U)...........................................0x160BBC, 0x160BB0
FIRERED(U)....................................0x17070B, 0x16726E, 0x165012HELP?

PM me (http://www.pokecommunity.com/private.php?do=newpm&u=41439)
Visitor Message (http://www.pokecommunity.com/member.php?u=41439#)
Email me/MSN (http://www.pokecommunity.com/sendmessage.php?do=im&type=msn&u=41439#)
Post here, xD

Any further help or if this needs to be explained better, then Post here. Good day!

*********************************
EXTRAS
*********************************

Level Scripts

Requirements
Advance Map 1.90 or higher
A Pokémon Rom of your choice(works on all ROMs, but offset may differ)
eXtreme Script Editor(XSE)
An Emulator

Example
The script I used for this example:


#dynamic 0x800000

#org @start
msgbox @complete
callstd 0x6
setvar 0x4033 0x1
release
end

#org @complete
= You see?\nThe level script worked!Explanation - How to make one

First off, make your script. But don't compile it yet, make sure it has a "setvar" in the script, like mine. You can use 0x4033, but you will eventually need to use different ones. And you can also use 0x1 but your free to use 0x2, 0x3, as long as you subtract one from it. So if I use 0x1, I would put 0000 into the Value box. You might not know what it means, so I'll tell you how to make one.

Now, open your ROM in Advance map, and goto the map of choice, where you want the level scirpt to appear². Once the map is loaded, you should go to the header tab, ans scroll down to "Map script" area. It should look like this, once you removed all of Nintedo's Level scripts(If any, then click "remove" until it is greyed out)
It should look like this:

http://i35.tinypic.com/2dbmo2p.jpg

Click on add, and then click on "script type". It should look like this:

http://i34.tinypic.com/efm39v.jpg

Click on the "02 Validates values, loads handler to 0x03000EB0".
Having done this, the "script offset 2" box should be "$000000" meaning, no script at all. So should the "flag" and "value" boxes. Now, compile your script, and insert the "setvar" you used, in the "flag box" and the value you should leave blank(unless you used a value other than 0x1) Altogether you should have this:

http://i34.tinypic.com/14o9501.jpg

You're almost done! Now click "save map scripts" and save the ROM(Ctrl+S)
If you've done what I've done, your settings should look like this:

http://i35.tinypic.com/vq1a8l.jpg

Now test it In-game. And bam, you should look like this, if you used my example:
http://i37.tinypic.com/wvbonb.jpg

What to do? I got a wierd message box!

This is common, in most level scripts. It's all because of Advance map too. It overwrites some of the bytes with FFFF or other things, when it's supposed to be 0.
This is what it'd look like:
http://i36.tinypic.com/2vrss37.jpg

To fix this, you go to the header tab, and press Ctrl+H to get professional header view. You should see an area called "Map Options". And within you should see "Map script offset"

http://i37.tinypic.com/rshsaq.jpg

Copy the map script offset, and open your ROM in XSE.
Once done, paste the offset in the "decompile box" and click on "level script"

http://i37.tinypic.com/205cqc6.jpg

Next, click on decompile

http://i33.tinypic.com/a5gsk9.jpg

That is your/my script.
Now to fix it.


'-----------------------
#org 0x71A23C
#raw 02
#raw pointer 0x871A242
#raw 00

'-----------------------
#org 0x71A242
#raw word 0x4033
#raw word 0x0
#raw pointer 0x880007D
#raw word 0xFFFF 'that is the Jacked up level script byte, that A-map overwrited

'-----------------------
#org 0x80007D
msgbox 0x880008D '"You see?\nThe level script worked!"
callstd 0x6
setvar 0x4033 0x1
release
end


'---------
' Strings
'---------
#org 0x80008D
= You see?\nThe level script worked!

Replace the Bolded '0xFFFF' or whatever it is, with the value in the "value box" in advance map.


'-----------------------
#org 0x71A23C
#raw 02
#raw pointer 0x871A242
#raw 00

'-----------------------
#org 0x71A242
#raw word 0x4033
#raw word 0x0
#raw pointer 0x880007D
#raw word 0x0 'Replaced

'-----------------------
#org 0x80007D
msgbox 0x880008D '"You see?\nThe level script worked!"
callstd 0x6
setvar 0x4033 0x1
release
end


'---------
' Strings
'---------
#org 0x80008D
= You see?\nThe level script worked!Now, Press Shift+Ctrl+C to compile the script back to the ROM.
http://i38.tinypic.com/2jepm3n.jpg

Test it, and it should work in-game now!, That was easy wasn't it?

Done!

Making a Level script, through XSE or HEX

XSE way

Open up XSE and Type:


#dynamic 0x700000

#org @start
#raw 02(type of level script
#raw pointer @nextpart
#raw 00 (filler?)

#org @nextpart
#raw 0x4033(the flag of your level script)
#raw 0x0(Unknown, reserach later)
#raw pointer @script (pointer to the actual script)
#raw 00 (filler?)

#org @script
msgbox @message
callstd 0x6
setvar 0x4033 0x1
release
end

#org @message
= You see?\nThe level script worked!

That should explain it.
All you have to do now, is go into Advance map, and goto the header tab, press Ctrl + H, and paste the offset of the script over the "Map script offset box". It should work now.

If you want to do it in hex, then do it that way, except in hex type...everything in HEX, duh?

Example:

0x700000 =
02 06 00 70 08 00

0x700006 =
33 04 00 0E 00 07 08 00

0x70000E =
The script in hex. Got it?

Done.

The different types of level scripts

There are 15 types of level scripts total. Most of them are unknown, only 7 are known. And here's the list;

00 - No script at all
01 - setmaptile script
02 - Regular level script, most used
03 - On entering map, not on menu close
04 - No name for it, but it's useful
05 - On entering map, on menu close
07 - Same as 05


I just realized that, the "Level scripts" don't really need explanations. :P

Tyrantrum
June 11th, 2008, 07:58 PM
For the #raw part, would u put the movement offsets from pokescript, the ones that move the player or other people?
(1st post! ^^)

Darthatron
June 11th, 2008, 08:53 PM
Good, simple to understand Tutorial. Thanks for posting, I'm sure a lot of people will learn from this. :)

cooley
June 12th, 2008, 04:03 AM
For the #raw part, would u put the movement offsets from pokescript, the ones that move the player or other people?
(1st post! ^^)
The movements Are the same for people...(e.g. 0x12 = Left, 0x13 = right, etc.)

adiktus
June 12th, 2008, 05:42 AM
does special 0x113 prevent applymovement commands if the script continues? or does it prevent the player moving with the camera? I don't really understand the difference between lockall and special 0x113..

also, is it possible for the camera to stay put and away from the center, then the player moves back into the center of the camera?

Luck
June 12th, 2008, 07:27 AM
Its a great and easy tutorial, but its in XSE, where as i use pokescript(but will change soon).
I have one question though,is the main difference in this script from a pokescript version the @'s in the script or are some other stuff like the commands different?
And do i only use the stop camera if I want the camera to stop or do i have to to make it work successfully?

Tyrantrum
June 12th, 2008, 07:34 AM
Oh, alright, I wanted to make sure.
I might use this.

Binary
June 12th, 2008, 07:58 AM
Oh, it sounds like a great tutorial..very useful for some vital events in hacks...
I'll have a go at this....8D

master morty
June 12th, 2008, 11:46 AM
is this pokescript or XSE? because it wont work in XSE

cooley
June 12th, 2008, 12:17 PM
Its a great and easy tutorial, but its in XSE, where as i use pokescript(but will change soon).
I have one question though,is the main difference in this script from a pokescript version the @'s in the script or are some other stuff like the commands different?
And do i only use the stop camera if I want the camera to stop or do i have to to make it work successfully?
Well DON'T USE POKESCRIPT!!!!
It has too many bugs and errors in coding. Irish Witch made pokescript, when she didn't even understand the whole scripting thing.

Please, use XSE. It's a new scripting experience!

And in pokescript, you have to use a bunch of #Raw's because not all the commands are there. XSE corrects scripting mistakes, doesn't waste space, and has extras!
Pokescript is horrible. The main difference isn't the "@" either. You should take a look for yourself.
does special 0x113 prevent applymovement commands if the script continues? or does it prevent the player moving with the camera? I don't really understand the difference between lockall and special 0x113..
also, is it possible for the camera to stay put and away from the center, then the player moves back into the center of the camera?
No, it plays it's part in the applymovement, but without it, it won't work.
Lockall = locks ALL movement on the map. But you can still use Applymovement to move the people.
Special 0x113 = Locks the players movement, but you can still move the player using applymovement 0xFF. Someone correct me if I'm wrong on this.

Last question. Yes that is possible.

#org @start
special 0x113
applymovement 0x7F @move
waitmovement 0x0 'This waits till the movement of the camera is finished
applymovement 0xFF @playermove 'This moves the player to the desired location
waitmovement 0x0
special 0x114
release
end


is this pokescript or XSE? because it wont work in XSE
This WILL work in XSE, You just need you're own pointers if you are trying to compile the decompiled script
Oh, it sounds like a great tutorial..very useful for some vital events in hacks...
I'll have a go at this....8D
Thanks!

AmineX
June 12th, 2008, 04:09 PM
what's wrong
specials: 116 and 117 for emerald

#dynamic 0xECFD50

#org @start
lockall
special 0x116
applymovement 0x7f @walkingto
waitmovement 0x0
special 0x117
releaseall
end

#org @walkingto
#raw 0x09
#raw 0x09
#raw 0x09
#raw 0x0B
#raw 0x0B
#raw 0x0A
#raw 0x0A
#raw 0x08
#raw 0x08
#raw 0x08
#raw 0x03
#raw 0xFE

adiktus
June 12th, 2008, 04:15 PM
what's wrong
specials: 116 and 117 for emerald

#dynamic 0xECFD50

#org @start
lockall
special 0x116
applymovement 0x7f @walkingto
waitmovement 0x0
special 0x117
releaseall
end

#org @walkingto
#raw 0x09
#raw 0x09
#raw 0x09
#raw 0x0B
#raw 0x0B
#raw 0x0A
#raw 0x0A
#raw 0x08
#raw 0x08
#raw 0x08
#raw 0x03
#raw 0xFE

its special 0x113, special 0x114, isn't it?

AmineX
June 12th, 2008, 04:33 PM
its special 0x113, special 0x114, isn't it?hey adiktus you don't see or why
i prescise special: 116 and 117 is for emerald /113 and 114 for fire redand leaf green

adiktus
June 12th, 2008, 05:20 PM
hey adiktus you don't see or why
i prescise special: 116 and 117 is for emerald /113 and 114 for fire redand leaf green

Yeah, you're right. Thanks about that.. It works in hex scripting..

Megiddo-san
June 12th, 2008, 05:24 PM
Okay, I made a level script and the message shows up, but then it freezes. Forgive me for using pokescript.

#org $begin
message $level
boxset 6
setvar 0x4000 0x1
release
end

#org $level
$level 1 = This is a level script.

cooley
June 12th, 2008, 07:03 PM
Okay, I made a level script and the message shows up, but then it freezes. Forgive me for using pokescript.

#org $begin
message $level
boxset 6
setvar 0x4000 0x1
release
end

#org $level
$level 1 = This is a level script.

1.Did you put the 4000 into the flag box?
2.Did you leave the Value Box Blank?
3.You should try a different value, try 0x2 instead of 0x1. (then put 1 into the Value box)

Megiddo-san
June 12th, 2008, 07:09 PM
1. Yes
2. Yes
3. Okay, I will try that. I hope it works.

Edit: Worse result. 0x2 value 0001 made garble come up along with a box saying coins.

cooley
June 12th, 2008, 07:20 PM
Lol.
Try decompiling the script using XSE and click on the "level script" button, then post here.
Oh, wait. You don't use XSE, sorry can't help you then.

AmineX
June 12th, 2008, 07:24 PM
hey cOOley why you ignor my question

Megiddo-san
June 12th, 2008, 08:03 PM
I tried making an xse version script,decompiling it, and clicking level script, but it still didn't work. Do you think it might have to do with the fact I put in a pokemon center?

Luck
June 12th, 2008, 08:34 PM
Lol.
Try decompiling the script using XSE and click on the "level script" button, then post here.
Oh, wait. You don't use XSE, sorry can't help you then.
you seem angry from the annoying pms since you seem really well...stingy with the message.
Now i was wondering if the movements in XSE are the same than as in pokescript.
I accidentally removed the page for the movements and don't want to download XSE again, so i am asking you.
it would be appreciated, if you could answer soon.
I also tried to compile it into a FR rom, but it said lockall is an unknown keyword.
I don't think its supposed to happen so can you tell me whats wrong?

cooley
June 13th, 2008, 04:02 AM
hey adiktus you don't see or why
i prescise special: 116 and 117 is for emerald /113 and 114 for fire redand leaf green
I made this tutorial for FR/LG/R/S not emerald!!!
I tried making an xse version script,decompiling it, and clicking level script, but it still didn't work. Do you think it might have to do with the fact I put in a pokemon center?
There's more to XSE than just "@" . What do you mean, doesn't work?
you seem angry from the annoying pms since you seem really well...stingy with the message.
Now i was wondering if the movements in XSE are the same than as in pokescript.
I accidentally removed the page for the movements and don't want to download XSE again, so i am asking you.
it would be appreciated, if you could answer soon.
I also tried to compile it into a FR rom, but it said lockall is an unknown keyword.
I don't think its supposed to happen so can you tell me whats wrong?
Yes, why wouldn't they?
What kind of error message was it?
Lockall is a command, in fact, it's 0x69 in hexadecimal. Maybe you typed it wrong, that's my only guess on why...


But here's an Update!
An offical Pokemon eruption script. A combination of level script and move camera script.

http://www.youtube.com/watch?v=XXUhuuMHyis

Enjoy!

Darthatron
June 13th, 2008, 06:02 AM
But here's an Update!
An offical Pokemon eruption script. A combination of level script and move camera script.

http://www.youtube.com/watch?v=XXUhuuMHyis

Enjoy!
Nice video, it's a good idea. :)

Also, your Level Script guide is very nice, however I never did my level scripts like that. Then again, I taught myself, since nobody loves me...

Still, very nice addition, can't wait to see what else you can come up with, if anything.

Megiddo-san
June 13th, 2008, 06:10 AM
#dynamic 0x802000

#org @begin
Message @level
callstd 0x6
setvar 0x4000 0x1
release
end

#org @level
= This is a level script.

That. It gave me the same result as the 1st script.

Darthatron
June 13th, 2008, 07:15 AM
#dynamic 0x802000

#org @begin
Message @level
callstd 0x6
setvar 0x4000 0x1
release
end

#org @level
= This is a level script.

That. It gave me the same result as the 1st script.

Are you changing the "Script Offset", in AMap, to the offset XSE gives you for "@begin"? Thanks probably the problem.

Megiddo-san
June 13th, 2008, 07:17 AM
If @begin is the 802000 then yes I did.

cooley
June 13th, 2008, 03:55 PM
Nice video, it's a good idea. :)

Also, your Level Script guide is very nice, however I never did my level scripts like that. Then again, I taught myself, since nobody loves me...

Still, very nice addition, can't wait to see what else you can come up with, if anything.
You did? So did I, xD
I experimented until I got it right every time, what other way were you talking about? Was it through hex?
If @begin is the 802000 then yes I did.
What kind of map are you using? Is it a Town map, like pallet town, or an indoor map, like the player's room.

If it's pallet town, then you have to enter pallet town from a house or from a path(e.g. Route 1)
If it's the player's room, then that might not work sometimes. I haven't mastered Level scripting yet, so I have to see why things like this happen.

Megiddo-san
June 13th, 2008, 06:01 PM
It's a pokemon center. It's ok. Adiktus helped me fix it. The problems are that a-map's level script tool is buggy and that 0x4000 resets to 0 when you exit the map. So it happens again.

ZodiacDaGreat
June 13th, 2008, 07:04 PM
It's a pokemon center. It's ok. Adiktus helped me fix it. The problems are that a-map's level script tool is buggy and that 0x4000 resets to 0 when you exit the map. So it happens again.

I don't think so, you must know that the game itself uses some variables, so I'd say for you not to use 4000 & 4001, maybe the 8000s as well. Try variables starting from 7000.

Darthatron
June 13th, 2008, 09:34 PM
You did? So did I, xD
I experimented until I got it right every time, what other way were you talking about? Was it through hex?
Well, that was one of the ways. :P This way seems to be better though. :)

Dan13x
June 16th, 2008, 12:03 AM
Wow! Awesome! This is a great tutorial. Thanks!

Megiddo-san
June 20th, 2008, 07:14 PM
Don't use 4000. The event will happen more than once. Goto the grayed script offset in a hex editor. You should see something like 004000008008. If there is FFFF after the 08, change it to 0000.

Flashpoint
June 20th, 2008, 07:32 PM
Don't use 4000. The event will happen more than once. Goto the grayed script offset in a hex editor. You should see something like 004000008008. If there is FFFF after the 08, change it to 0000.

Finally it worked!!
Thanks Megiido.

foullump
June 23rd, 2008, 07:07 AM
Well, I have my own concept of "Map Scripting". It works well. I'm not entirely sure how it works, but it does and that's all that really matters. But you know, you can do map scripting in advance map 1.82 or anything lower. All you need to do is look in the advance/professional view of the header and it's all right there. But I guess it's easier for noobs that there's a map scripting box. It kind of ruins the fact that only masters can do it though...
And it's also kind of annoying because it took me like, three days to learn and master it and now I can't do anything without my hex editor. Good thing Ultraedit never expires for me! :P So you'd understand what the bytes like 03 FF FF FF 08 04 FF FF FF 08 02 FF FF FF 08 00 represent in the hex editor huh?

cooley
June 23rd, 2008, 03:48 PM
Well, I have my own concept of "Map Scripting". It works well. I'm not entirely sure how it works, but it does and that's all that really matters. But you know, you can do map scripting in advance map 1.82 or anything lower. All you need to do is look in the advance/professional view of the header and it's all right there. But I guess it's easier for noobs that there's a map scripting box. It kind of ruins the fact that only masters can do it though...
And it's also kind of annoying because it took me like, three days to learn and master it and now I can't do anything without my hex editor. Good thing Ultraedit never expires for me! :P So you'd understand what the bytes like 03 FF FF FF 08 04 FF FF FF 08 02 FF FF FF 08 00 represent in the hex editor huh?
Yeah, I do now

E.G.
03 FF FF FF 08 = Level script #3(on entering map), FF FF FF 08 = Pointer to script
04 FF FF FF 08 = Level script #4(validates values, and loads handler to 0x03000F28), FF FF FF 08 = Pointer to script
02 FF FF FF 08 = Level script #2(validates values, and loads handler to 0x03000EB0), FF FF FF 08 = Pointer to script

02 and 03 are the most used throughout the game.
04 is really for Immediate activites, they have only been used for "spriteface 0xFF 0x2"

But it's really up to people to experiment. I do not have time, you know, my hack, my programs, and my tutorials. xD

how's that for :P lol

adiktus
June 23rd, 2008, 04:06 PM
XD well, compared to how I insert level scripts previously (manually), this way is more practical because it somehow saves some space.. O.o

cooley
July 1st, 2008, 10:02 AM
Well, I just wanted to know does anyone need anything to be added to this tutorial?

@adiktus: I see, your the level script inserter of a few hacks, which is pretty much not needed because, it is so easy. You make people think you can do these advanced things, when they're not really.

Ozumas
July 6th, 2008, 11:13 AM
WTF! (http://wah.studiopokemon.com/manualeshr/movcamaras.php)
I don´t know if you get the script of my tutorial, but ...That my tutorial was made long ago is therefore think that I was the first that it knew, or I think.

To say, that script you can see the camera script in the script of Ho-oh in FR

cooley
July 6th, 2008, 04:33 PM
Well, I never knew about the one in Wah, I knew how it was done, but I was using the wrong specials before.

- HackMew -'s XSE reminded me of it, then I asked him, and then I tested, and experimented. Until I perfected it. So no, I did not know about the one on Wah, I can't even read spanish, xD

Bokkun
July 9th, 2008, 11:42 AM
how can i made a level script, that the message always apear?

cooley
July 16th, 2008, 07:43 AM
how can i made a level script, that the message always apear?

Yeah, sorry about that. I'll update the first post with how to fix this. You see, Advance map overwrites the values with 'FFFF'. Which is why most level scripts won't work if you do it through advance map. I'll update the first post with how to make a level script through XSE, or for those who don't like XSE, through hex. The only thing you'll need from A-map is the 'Professional Header' and the 'Map script offset' from it.

You will eventually need XSE to check the script though...And Advance Map with a Hex editor.
Get prepared everyone!

Tyrantrum
July 16th, 2008, 07:10 PM
Here's what I don't get about level scripts.
When u insert them, how A-Map and the script know where to start.

Explanation:
Like, if u want a level script to happen right when u come downstairs from ur bedroom, how will it know if the script will work at the staircase or at the front door? :\

cooley
July 17th, 2008, 08:08 AM
Here's what I don't get about level scripts.
When u insert them, how A-Map and the script know where to start.

Explanation:
Like, if u want a level script to happen right when u come downstairs from ur bedroom, how will it know if the script will work at the staircase or at the front door? :\
I dunno, xD
I've tried to do that with Level scripts, but it'll only work if you use "setmaptile" scripts or "On entering map/not on menu close" or "Load handler to 0x03000F28"

But the scirpts I just mentioned, they can't use messages, applymovement, or anything that requires "Pointer to data to load". They are however very useful, and can check if a flag has been set, then do something else. These are some of the many compatible commands I've encountered.

checkflag (0x2B
clearflag (0x2A)
hidesprite (0x53)
movesprite2 (0x63)
showsprite (0x55)
setfarbyte (0x13)
setflag (0x29)
spriteface (0x5B)
writebytetooffset (0x11)

KhaosKnight
July 17th, 2008, 09:17 AM
I dunno, xD
I've tried to do that with Level scripts, but it'll only work if you use "setmaptile" scripts or "On entering map/not on menu close" or "Load handler to 0x03000F28"

But the scirpts I just mentioned, they can't use messages, applymovement, or anything that requires "Pointer to data to load". They are however very useful, and can check if a flag has been set, then do something else. These are some of the many compatible commands I've encountered.

checkflag (0x2B
clearflag (0x2A)
hidesprite (0x53)
movesprite2 (0x63)
showsprite (0x55)
setfarbyte (0x13)
setflag (0x29)
spriteface (0x5B)
writebytetooffset (0x11)


Ok, so like if i was going to make a setmaptile script i cant make it like this


#Dynamic 0x800000

#org @main
checkflag 0x201
if 0x1 goto @change
release
end

#org @change
movesprite2 0x15 0x11 0x08
setmaptile 0x14 0x7 0x78 0x1
setmaptile 0x15 0x7 0x79 0x1
setmaptile 0x16 0x7 0x79 0x1
setmaptile 0x17 0x7 0x7A 0x1
setmaptile 0x14 0x8 0x189 0x0
setmaptile 0x15 0x8 0x189 0x0
setmaptile 0x16 0x8 0x189 0x0
setmaptile 0x17 0x8 0x189 0x0
setmaptile 0x14 0x9 0x3E 0x1
setmaptile 0x15 0x9 0x3E 0x1
setmaptile 0x16 0x9 0x3E 0x1
setmaptile 0x17 0x9 0x3E 0x1
setmaptile 0x14 0xA 0x1 0x0
setmaptile 0x15 0xA 0x1 0x0
setmaptile 0x16 0xA 0x1 0x0
setmaptile 0x17 0xA 0x1 0x0
release
end



i have to make it like this for it to work?


#Dynamic 0x800000

#org @main
checkflag 0x201
if 0x0 goto @end
movesprite2 0x15 0x11 0x08
setmaptile 0x14 0x7 0x78 0x1
setmaptile 0x15 0x7 0x79 0x1
setmaptile 0x16 0x7 0x79 0x1
setmaptile 0x17 0x7 0x7A 0x1
setmaptile 0x14 0x8 0x189 0x0
setmaptile 0x15 0x8 0x189 0x0
setmaptile 0x16 0x8 0x189 0x0
setmaptile 0x17 0x8 0x189 0x0
setmaptile 0x14 0x9 0x3E 0x1
setmaptile 0x15 0x9 0x3E 0x1
setmaptile 0x16 0x9 0x3E 0x1
setmaptile 0x17 0x9 0x3E 0x1
setmaptile 0x14 0xA 0x1 0x0
setmaptile 0x15 0xA 0x1 0x0
setmaptile 0x16 0xA 0x1 0x0
setmaptile 0x17 0xA 0x1 0x0
release
end

#org @end
release
end

cooley
July 17th, 2008, 12:04 PM
Ok, so like if i was going to make a setmaptile script i cant make it like this


#Dynamic 0x800000

#org @main
checkflag 0x201
if 0x1 goto @change
release
end

#org @change
movesprite2 0x15 0x11 0x08
setmaptile 0x14 0x7 0x78 0x1
setmaptile 0x15 0x7 0x79 0x1
setmaptile 0x16 0x7 0x79 0x1
setmaptile 0x17 0x7 0x7A 0x1
setmaptile 0x14 0x8 0x189 0x0
setmaptile 0x15 0x8 0x189 0x0
setmaptile 0x16 0x8 0x189 0x0
setmaptile 0x17 0x8 0x189 0x0
setmaptile 0x14 0x9 0x3E 0x1
setmaptile 0x15 0x9 0x3E 0x1
setmaptile 0x16 0x9 0x3E 0x1
setmaptile 0x17 0x9 0x3E 0x1
setmaptile 0x14 0xA 0x1 0x0
setmaptile 0x15 0xA 0x1 0x0
setmaptile 0x16 0xA 0x1 0x0
setmaptile 0x17 0xA 0x1 0x0
release
end

i have to make it like this for it to work?


#Dynamic 0x800000

#org @main
checkflag 0x201
if 0x0 goto @end
movesprite2 0x15 0x11 0x08
setmaptile 0x14 0x7 0x78 0x1
setmaptile 0x15 0x7 0x79 0x1
setmaptile 0x16 0x7 0x79 0x1
setmaptile 0x17 0x7 0x7A 0x1
setmaptile 0x14 0x8 0x189 0x0
setmaptile 0x15 0x8 0x189 0x0
setmaptile 0x16 0x8 0x189 0x0
setmaptile 0x17 0x8 0x189 0x0
setmaptile 0x14 0x9 0x3E 0x1
setmaptile 0x15 0x9 0x3E 0x1
setmaptile 0x16 0x9 0x3E 0x1
setmaptile 0x17 0x9 0x3E 0x1
setmaptile 0x14 0xA 0x1 0x0
setmaptile 0x15 0xA 0x1 0x0
setmaptile 0x16 0xA 0x1 0x0
setmaptile 0x17 0xA 0x1 0x0
release
end

#org @end
release
end

Both ways are good. But setmaptile scripts don't have to include setmaptiles. I don't even think that's the official name for it.

KhaosKnight
July 17th, 2008, 03:27 PM
Both ways are good. But setmaptile scripts don't have to include setmaptiles. I don't even think that's the official name for it.

So if i was going to make a "setmaptile" level script what would i have to do to make it work? I compiled that script with XSE and applied it using A-map but it didnt work.

cooley
July 18th, 2008, 10:31 AM
You aren't supposed to use setmaptile scripts as regular ones...If you'd follow my tutorial, you wouldn't be wondering. setmaptile scripts are the scripts that happens before the map loads, it happens during the black screen that occurs before loading.

You should use the ones in my tutorial. I'll update it today.

OK, Level scripts are all updated! Enjoy, I've included how to make one with Advance map , and XSE.
And I explained it more in-depth with more pictures, etc.

Enjoy, only one more update, until I finish this tutorial.

KhaosKnight
July 18th, 2008, 06:03 PM
You aren't supposed to use setmaptile scripts as regular ones...If you'd follow my tutorial, you wouldn't be wondering. setmaptile scripts are the scripts that happens before the map loads, it happens during the black screen that occurs before loading.

You should use the ones in my tutorial. I'll update it today.

OK, Level scripts are all updated! Enjoy, I've included how to make one with Advance map , and XSE.
And I explained it more in-depth with more pictures, etc.

Enjoy, only one more update, until I finish this tutorial.

I know i have been using them as level scripts, its just i have been using them on a route map and when you enter a route there is no black screen...

Bokkun
July 20th, 2008, 11:00 AM
this tut for the level scripts is now really great, thanks =D
but how can i make this script, that it every start when i enter the map...

and antoher one:
i made a level script with a movement of the camera an a text box, but at the end when the script should be at the end, there comes a text box again with some letters, as like as you forget to change the 0xFFFF to 0x0

cooley
July 21st, 2008, 07:59 AM
this tut for the level scripts is now really great, thanks =D
but how can i make this script, that it every start when i enter the map...

and antoher one:
i made a level script with a movement of the camera an a text box, but at the end when the script should be at the end, there comes a text box again with some letters, as like as you forget to change the 0xFFFF to 0x0
1. I don't know, I'm still researching that.
2. You forgot to put something in Advance map...Like the flag? Or you forgot to fix the problem by Using XSE.

Bokkun
July 21st, 2008, 10:10 AM
this with the movemnt works now, i made it now with a call and it worked...but that thing thate the script every time work.....i hope you find a way^^

cooley
July 22nd, 2008, 11:04 AM
Hey guys I've figured something out!

I was working on creating your own multi box, and this is the result:
http://i38.tinypic.com/2s608d4.png

Also, I've seen that Ruby has Diagonal movements, for the player, camera, people, etc.
View My Video (http://tinypic.com/player.php?v=29djvj8&s=4)

Tyrantrum
July 22nd, 2008, 11:15 AM
Hey guys I've figured something out!

I was working on creating your own multi box, and this is the result:
http://i38.tinypic.com/2s608d4.png

Also, I've seen that Ruby has Diagonal movements, for the player, camera, people, etc.
View My Video (http://tinypic.com/player.php?v=29djvj8&s=4)

Whoa! :shocked:
That's awesome! :D
Especially the diagonal movement. ;)

cooley
July 27th, 2008, 08:02 AM
Whoa! :shocked:
That's awesome! :D
Especially the diagonal movement. ;)
Yes, thank you. The diagonal movement(s), is mainly used in RUBY for camera scripts.
That's why the camera doesn't move if you demonstrate it on the HIRO.

hi sir tomato my password is syvniti
August 7th, 2008, 01:12 AM
I've seen that Ruby has Diagonal movements, for the player, camera, people, etc.
View My Video (http://tinypic.com/player.php?v=29djvj8&s=4)

How do you even dare to come and show this without giving us offsets and exsplain it?
There's not a chance that this might would be posseble I fire red too?

But please tell the movement and stuff...

twi1ight
August 29th, 2008, 01:13 PM
umm i did like everything you told me to do but when it starts the main character freezes up and when i decompile it nothing is there, but also the tutorial is very well laid out easy to understand i'm just having problems so help would be appritiated

cooley
August 30th, 2008, 07:09 PM
umm i did like everything you told me to do but when it starts the main character freezes up and when i decompile it nothing is there, but also the tutorial is very well laid out easy to understand i'm just having problems so help would be appritiated
Obviously, it's not an XSE problem. It's your ROM, that may be broken or corrupt.
Check to see if it's 16 MB.

And are you trying to do a level script? Or a move camera script?
Either way, XSE's not the problem.

Melash
August 30th, 2008, 07:11 PM
Woah...that's...insane! The diagonal movement thing is just plain cool!

torferno lvl-X
October 6th, 2008, 09:01 AM
Really good tut, and it is in XSE the tool I use

What is level Scripting? Please can someone explain

Ausaudriel
October 6th, 2008, 01:17 PM
This thread is over a month old, be sure you review the rules about thread revival so you understand that posting in threads with replies older than 30 days isn't allowed.

(What's with all of the thread revival lately?)