I've got a small problem...
The problem is the nickname part. It keeps going if it's yes and freezes if it's no.
I've tried
Code:
Compare 0x0
if 0x1 goto
and
Compare 0x1
if 0x0 goto...
and
compare 0x1
if 0x1 goto...
But none of them work.
Here's the fixed + optimized script:
Few notes. Since you're using FireRed and you wanted to change the text color to just blue and red, respectively, you simply need to use the textcolor command.
Proper values are:
0x0 = Blue
0x1 = Red
0x3 = Black
Once you use a textcolor command, the changes will be permanent till the end of the script, or till you use another textcolor command.
Also, make sure the script at 0x1A74EB looks like this:
Code:
'---------------
#org 0x1A74EB
fadescreen 0x1
special 0x9E
waitstate
return
Finally, since you're using the new beta version of XSE, autobanking is not turned on by default any more due to expanded ROM support. Basically to prevent taking memory addresses as regular offsets while writing them to the ROM.
Hey Guys i have a problem with this level script
yes i know i spelt Cqindaquil wrong
Heres what happens
this just keeps repeating
Please Help
First of all that's not really a level script, rather a part of it. Anyway, your script is kinda screwed up. Since the script will happen at the very beginning of the game, and no more, checking flag 0x828 is just pointless.
Also, you wrote setvar 4033 0x1, while you actually meant 0x4033. 0x stands for hexadecimal, and it's not an optional, indeed. When you write 4033, that would be like typing 0xFC1 (in hex). Crearly not the right value.
After each applymovement you should put a waitmovement 0x0 too.
Yet another thing, some of the latest AM version will even screw up the level script structure. Hence my suggestion to load any level script directly with XSE. All you have to do is to check the Professional Header View option, copy the Map Script offset, paste it into XSE, check the Level Script option near the decompile button and then decompile it.
Here's the fixed script:
Who knows the warp command for XSE?
because warp 0x[bank] 0x[mapnumber] 0x[warp number] doesn't work...
There are basically two ways, depending on the choice of using coordinates or not.
The most obvious way is the following:
Code:
warp [bank] [map] [warp] 0x0 0x0
Then there's the less obvious way:
Code:
warp [bank] [map] 0xFF [X] [Y]
As you can see here the warp is 0xFF, which acts like a "coordinate enabler".
An example is the Oak script found at FR/LG beginning.
I'm really new to scripting, and need some assistance. ^^; What am I doing wrong with this (XSE) script? I can compile it and everything, but when I go to talk to the sprite on the overworld, she does absolutely nothing except make that "beep" sound when you normally talk to a sprite. (During the course of making changes, I've gotten her to actually talk and start the battle, but all the text boxes are glitchy and she never follows any of the movement commands, meaning if you keep talking to her, you're in an endless battle loop. The script below is the one that yields the "nothing" result).
What I want the sprite to do is say a line while facing in a different direction from you, then turn and get an exclamation point over her head, while the "female rival" music plays. Then I want her to talk a bit more, after which a battle will start. After the battle, she'll talk a little more, than walk up a step, than walk left off the screen and vanish. Flags relating to having met her are either set or cleared.
Thanks so much in advance!
Well, it seems like you misunderstood how offset/pointer works.
Let's take the first line for example.
Code:
#org 0x1E40CF
lockall
msgbox 0x1E40D0
First you tell the compiler to go to offset 0x1E40CF. Then you write a lockall command at that offset. Then it comes a msgbox command, and now offset would 0x1E40D0. At this point, you use 0x1E40D0 as pointer to the text data. But at 0x1E40D0 there's the msgbox command. Same happens with the rest of the script. Also, pay attention to the "0x" prefix.
0x means hexadecimal. So, if you want to hide people number 16, you would do
or, eventually
That said, here's the dynamic version of the script, I've adjusted few things.
Note: to properlt hide a person forever you need to set the proper flag (People ID) after using hidesprite. I changed the flag value to 0x1001, so you'll need to change the People ID on AM accordingly. Also, you'll need to edit the rest of the string in order to make them use dynamic pointers. See the script above as example:
It works perfectly, but the pointer $talk0 is being said after the wrap command.
Here's what it looks like in XSE.
The same message came twice(the large sized words). I placed it only one place.
Is there a problem?
The message came twice because the warp command wasn't compiled fine - that is, with just 3 params instead of 5. Placing 4 nops after the warp command would solve that. Of course, using XSE at first you wouldn't have gotten that problem.
The following script (Emerald) is supposed to force the player back if the player does not have the Hoenn PokéDex, and it should give the player the National PokéDex if he/she already has the Hoenn PokéDex.
In Advance-Map, the script takes the form of a script tile.
The script works well when I don't have the Hoenn PokéDex (I freeze, message box appears, I walk back). However, when I already have the Hoenn PokéDex, I can walk straight through as though there were no script tile there (i.e. no message box, no National PokéDex). Does anyone have suggestions?
Thanks.
I tried your script and it worked, actually.
Proof:
Make sure your script tile has the right values:
Unknown: 0003 (older version of AM would show it as 03 00)
Var Number: 40XX (older: XX 40)
Var Value: 0000
XX stands for a hex value between 0x2 and 0xFF, basically. Since those values can be used by the game already, you may have to experiment a little.
You may even try something like 50XX.
Oh~~I think it's the time to ask a question:how to use the wildbattle command in XSE?I don't think it's the same as pokescript...
Well, since you're beta-testing the newest one, you should check the Command Help.
Now there are 2 wildbattle constructs. (Yeah, wildbattle is not a command actually).
I put this script in using PokeSav 1.52 and my ROM died. Is there something wrong with it?
And yes, I tested the ROM before and it worked.
Not just something - everything. I dunno if you noticed, but after you compiled that script, the ROM header got completely overwritten with garbage. Now, if you're able to manually fix the header using a hex editor, do it. You'll need to get the right data from a proper ROM. Otherwhise you'll have to take another ROM.
Once you're ready, get XSE and compile this script below. Since it was a total mess, I removed any movements etc. You'll need to add them by yourself.
Wait, there's a removeitem command?
Is there a removepokemon command then?
No, there isn't one.
But after I use the 2nd way of Shiny Hack Maker and write this code into ROM, the game restart :
Code:
#org @start ' I write this code into a OW.
lock
faceplayer
callasm 0x71A24C ' This is the offset I use the Shiny Hack Maker
wildbattle 0x20 0x46 0x0
release
end
The problem is you're not using the callasm command properly.
Being a THUMB routine, the pointer must be an
even odd number.
Here's the fixed version: