![]() |
The secret of the Move Camera Script (and extras)
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. 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: Code:
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) Code:
-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 Code:
PM me Visitor Message Email me/MSN 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: Code:
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.*.com/2dbmo2p.jpg Click on add, and then click on "script type". It should look like this: http://i34.*.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.*.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.*.com/vq1a8l.jpg Now test it In-game. And bam, you should look like this, if you used my example: http://i37.*.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.*.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.*.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.*.com/205cqc6.jpg Next, click on decompile http://i33.*.com/a5gsk9.jpg That is your/my script. Now to fix it. Code:
Replace the Bolded '0xFFFF' or whatever it is, with the value in the "value box" in advance map. Code:
http://i38.*.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: Code:
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: Code:
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; Code:
I just realized that, the "Level scripts" don't really need explanations. :P |
For the #raw part, would u put the movement offsets from pokescript, the ones that move the player or other people?
(1st post! ^^) |
Good, simple to understand Tutorial. Thanks for posting, I'm sure a lot of people will learn from this. :)
|
Quote:
|
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? |
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? |
Oh, alright, I wanted to make sure.
I might use this. |
Oh, it sounds like a great tutorial..very useful for some vital events in hacks...
I'll have a go at this....8D |
is this pokescript or XSE? because it wont work in XSE
|
Quote:
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. Quote:
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. Code:
Quote:
Quote:
|
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 |
Quote:
|
Quote:
i prescise special: 116 and 117 is for emerald /113 and 114 for fire redand leaf green |
Quote:
|
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. |
Quote:
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) |
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. |
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. |
hey cOOley why you ignor my question
|
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?
|
Quote:
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? |
Quote:
Quote:
Quote:
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! |
Quote:
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. |
#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. |
Quote:
|
If @begin is the 802000 then yes I did.
|
Quote:
I experimented until I got it right every time, what other way were you talking about? Was it through hex? Quote:
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. |
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.
|
Quote:
|
Quote:
|
Wow! Awesome! This is a great tutorial. Thanks!
|
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.
|
Quote:
Thanks Megiido. |
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? |
Quote:
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 |
XD well, compared to how I insert level scripts previously (manually), this way is more practical because it somehow saves some space.. O.o
|
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. |
WTF!
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 |
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 |
how can i made a level script, that the message always apear?
|
Quote:
You will eventually need XSE to check the script though...And Advance Map with a Hex editor. Get prepared everyone! |
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? :\ |
Quote:
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) |
Quote:
Ok, so like if i was going to make a setmaptile script i cant make it like this Code:
i have to make it like this for it to work? Code:
|
Quote:
|
Quote:
|
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. |
Quote:
|
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 |
Quote:
2. You forgot to put something in Advance map...Like the flag? Or you forgot to fix the problem by Using XSE. |
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^^
|
Hey guys I've figured something out!
I was working on creating your own multi box, and this is the result: http://i38.*.com/2s608d4.png Also, I've seen that Ruby has Diagonal movements, for the player, camera, people, etc. View My Video |
Quote:
That's awesome! :D Especially the diagonal movement. ;) |
Quote:
That's why the camera doesn't move if you demonstrate it on the HIRO. |
Quote:
There's not a chance that this might would be posseble I fire red too? But please tell the movement and stuff... |
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
|
Quote:
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. |
Woah...that's...insane! The diagonal movement thing is just plain cool!
|
Really good tut, and it is in XSE the tool I use
What is level Scripting? Please can someone explain |
| All times are GMT -8. The time now is 8:11 PM. |
![]()
© 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.
Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.