Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
This is not a script request thread. I am sorry, but you will need to go get help elsewhere.
Unless you want to learn how to make a give pokemon script, then you should go look around in the documents and tutorials section.
Here is a link to the documents and tutorials section, look around there for a scripting tutorial.
(Depending on what kind of script program you use, you may want to find the appropreate tutorial. CLICK ME!
Hello,
I've got a problem with this script o' mine:
Code:
#dynamic 0x800000
#org @start
lock
faceplayer
checkflag 0x904
if b_true goto @heal
checkflag 0x903
if b_true goto @newest
checkflag 0x902
if b_true goto @newer
checkitem 0x10D 0x1
if b_true goto @new
msgbox @normal
boxset 0x6
release
end
#org @new
msgbox @shop2
boxset 0x6
removeitem 0x10D 0x1
setflag 0x902
release
end
#org @newer
msgbox @sleep
boxset 0x6
release
end
#org @newest
msgbox @morn
boxset 0x6
givepokemon 0xF6 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @getPK
boxset 0x4
waitfanfare
#raw 0x68
setflag 0x828
msgbox @bye
boxset 0x6
setflag 0x904
release
end
#org @heal
msgbox @wellback
boxset 0x4
#raw 0x68
fadescreen 0x1
fanfare 0x100
special 0x0
waitfanfare
fadescreen 0x0
msgbox @fin
boxset 0x6
release
end
#org @normal
= Dad: You better get going, if you want to\nbe home before night, [player].
#org @shop2
= Dad: Oh, welcome back, [player].\pDid you get the parcel?\p...\pYou did? Great!\p[player] gave Dad the parcel.\pYes, this is it...\pIt's been a long day, [player].\nGo upstairs and get some rest.\pAfter all, it is your birthday tomorrow.
#org @sleep
= Dad: Go get some sleep, [player].
#org @morn
= Dad: Good morning, [player].\nAnd happy birthday, too.\pToday is the day you are allowed to have\nyour first Pokemon.\pSo... I guess this is it then.\nHere you go [player].
#org @getPK
= [player] received a Larvitar.
#org @bye
= Dad: Now that you have your Pokémon, I\nguess you're eager to explore the world\land create a bond with your Pokémon...\pI just want to say, good luck.\pAnd I hope you'll come and visit me now\nand then, okay?\lGood bye, [player].
#org @wellback
= Dad: Welcome home, [player].\nYou look a little tired.\pI think you should rest a bit.
#org @fin
= Dad: You and and your Pokémon look much better\nnow.\pSee you, [player].
The problem is, even though I have "Item 10D" the scipt continues with "msgbox @normal
boxs..." instead of jumping to "@new".
Hello,
I've got a problem with this script o' mine:
Code:
#dynamic 0x800000
#org @start
lock
faceplayer
checkflag 0x904
if b_true goto @heal
checkflag 0x903
if b_true goto @newest
checkflag 0x902
if b_true goto @newer
[B] checkitem 0x10D
#raw 0x01 0x00
compare 0x800D 0x1
if 0x4 goto @new[/B]
msgbox @normal
boxset 0x6
release
end
#org @new
msgbox @shop2
boxset 0x6
removeitem 0x10D 0x1
setflag 0x902
release
end
#org @newer
msgbox @sleep
boxset 0x6
release
end
#org @newest
msgbox @morn
boxset 0x6
givepokemon 0xF6 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @getPK
boxset 0x4
waitfanfare
#raw 0x68
setflag 0x828
msgbox @bye
boxset 0x6
setflag 0x904
release
end
#org @heal
msgbox @wellback
boxset 0x4
#raw 0x68
fadescreen 0x1
fanfare 0x100
special 0x0
waitfanfare
fadescreen 0x0
msgbox @fin
boxset 0x6
release
end
#org @normal
= Dad: You better get going, if you want to\nbe home before night, [player].
#org @shop2
= Dad: Oh, welcome back, [player].\pDid you get the parcel?\p...\pYou did? Great!\p[player] gave Dad the parcel.\pYes, this is it...\pIt's been a long day, [player].\nGo upstairs and get some rest.\pAfter all, it is your birthday tomorrow.
#org @sleep
= Dad: Go get some sleep, [player].
#org @morn
= Dad: Good morning, [player].\nAnd happy birthday, too.\pToday is the day you are allowed to have\nyour first Pokemon.\pSo... I guess this is it then.\nHere you go [player].
#org @getPK
= [player] received a Larvitar.
#org @bye
= Dad: Now that you have your Pokémon, I\nguess you're eager to explore the world\land create a bond with your Pokémon...\pI just want to say, good luck.\pAnd I hope you'll come and visit me now\nand then, okay?\lGood bye, [player].
#org @wellback
= Dad: Welcome home, [player].\nYou look a little tired.\pI think you should rest a bit.
#org @fin
= Dad: You and and your Pokémon look much better\nnow.\pSee you, [player].
The problem is, even though I have "Item 10D" the scipt continues with "msgbox @normal
boxs..." instead of jumping to "@new".
Thank you, SO much, Hiche!
It's working great now. ^^
//44tim44
EDIT: Okay now I have a new problem:
As soon as the map is reset where the previous script is
taking place, it's like all the flags have been cleared, why?
ALl flags work properly as long as I saty on the map, but as soon
as I leave-return they're cleared.
I usually have no problems with scripting, but I
have been into RPGmaking so, I have forgotten some stuff...
#org @movecamera2
'this is where I want to warp the camera back to the starting map
#org @wait
= \c\h01\h08Hey! Stop! THIEF!
#org @betterhelp
= \c\h01\h06\v\h01: What was that? \pWhatever it was, I'd better\ngo check it out.
#org @end
release
end
Okay, I really don't understand level scripts at all. I've got this script, with comments in at certain places. Hiche said that would require level scripting, but I'm not sure how to implement them, nor how to move the camera to a different map. (I know how to move the camera normally, just not how to warp it to another map.)
Keep in mind, that this script hasn't been tested yet.
Also, if anyone's confused, this is what the script's supposed to do:
Spoiler:
The first part of the script will be placed by the stairway, preventing the player from exiting the map until the script is complete. The next part is set to the bed, and when the player enters the bed, the screen fades, and a msgbox is placed. The screen returns (hopefully) to another map, where the player witnesses a robbery. Then, the screen fades again, and the camera returns back to the player, after which, displays another msgbox. The flag is then set and the player is free to roam about the room.
i need a script that make HIRO follow some one like how you have to follow oak if you attempt to go into the grass, i need it to have somthing showing me (put downsteps here) (right, left Up)
and i also wanted it to give hiro item at the end
i am using leaf green if that helps
and XSE for script
I aslo need an item list including pokedex please help
i need a script that make HIRO follow some one like how you have to follow oak if you attempt to go into the grass, i need it to have somthing showing me (put downsteps here) (right, left Up)
and i also wanted it to give hiro item at the end
i am using leaf green if that helps
and XSE for script
I aslo need an item list including pokedex please help
Hello,
I've got a problem with this script o' mine:
Code:
#dynamic 0x800000
#org @start
lock
faceplayer
checkflag 0x904
if b_true goto @heal
checkflag 0x903
if b_true goto @newest
checkflag 0x902
if b_true goto @newer
checkitem 0x10D 0x1
if b_true goto @new
msgbox @normal
boxset 0x6
release
end
#org @new
msgbox @shop2
boxset 0x6
removeitem 0x10D 0x1
setflag 0x902
release
end
#org @newer
msgbox @sleep
boxset 0x6
release
end
#org @newest
msgbox @morn
boxset 0x6
givepokemon 0xF6 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @getPK
boxset 0x4
waitfanfare
#raw 0x68
setflag 0x828
msgbox @bye
boxset 0x6
setflag 0x904
release
end
#org @heal
msgbox @wellback
boxset 0x4
#raw 0x68
fadescreen 0x1
fanfare 0x100
special 0x0
waitfanfare
fadescreen 0x0
msgbox @fin
boxset 0x6
release
end
#org @normal
= Dad: You better get going, if you want to\nbe home before night, [player].
#org @shop2
= Dad: Oh, welcome back, [player].\pDid you get the parcel?\p...\pYou did? Great!\p[player] gave Dad the parcel.\pYes, this is it...\pIt's been a long day, [player].\nGo upstairs and get some rest.\pAfter all, it is your birthday tomorrow.
#org @sleep
= Dad: Go get some sleep, [player].
#org @morn
= Dad: Good morning, [player].\nAnd happy birthday, too.\pToday is the day you are allowed to have\nyour first Pokemon.\pSo... I guess this is it then.\nHere you go [player].
#org @getPK
= [player] received a Larvitar.
#org @bye
= Dad: Now that you have your Pokémon, I\nguess you're eager to explore the world\land create a bond with your Pokémon...\pI just want to say, good luck.\pAnd I hope you'll come and visit me now\nand then, okay?\lGood bye, [player].
#org @wellback
= Dad: Welcome home, [player].\nYou look a little tired.\pI think you should rest a bit.
#org @fin
= Dad: You and and your Pokémon look much better\nnow.\pSee you, [player].
Okay now I have a new problem:
As soon as the map is reset where the previous script is
taking place, it's like all the flags have been cleared, why?
ALl flags work properly as long as I saty on the map, but as soon
as I leave-return they're cleared.
I usually have no problems with scripting, but I
have been into RPGmaking so, I have forgotten some stuff...
-----------------------
#org 0x8000A2
if 0x0 goto 0x88000B3
if 0x1 goto 0x8800124
end
'-----------------------
#org 0x8000B3
lock
msgbox 0x88000C9 '"Oh!\pMom said not to leave Rubyflam..."
callstd 0x6
applymovement MOVE_PLAYER 0x8800121
waitmovement 0x0
release
end
'-----------------------
#org 0x800124
release
end
'-----------
' Movements
'-----------
#org 0x800121
#raw C 'Step Down (Slow)
#raw FE 'End of Movements
'---------
' Strings
'---------
#org 0x8000C9
= Oh!\pMom said not to leave Rubyflame\nwithout a Pokémonn....\pBut where can I get one?
When playtesting, if I step on where the script is, the game freezes up.
-----------------------
#org 0x8000A2
if 0x0 goto 0x88000B3
if 0x1 goto 0x8800124
end
'-----------------------
#org 0x8000B3
lock
msgbox 0x88000C9 '"Oh!\pMom said not to leave Rubyflam..."
callstd 0x6
applymovement MOVE_PLAYER 0x8800121
waitmovement 0x0
release
end
'-----------------------
#org 0x800124
release
end
'-----------
' Movements
'-----------
#org 0x800121
#raw C 'Step Down (Slow)
#raw FE 'End of Movements
'---------
' Strings
'---------
#org 0x8000C9
= Oh!\pMom said not to leave Rubyflame\nwithout a Pokémonn....\pBut where can I get one?
When playtesting, if I step on where the script is, the game freezes up.
#org @welcome
= Welcome to Saren City.\pWe hope you had a comfy ride!
For some reason, the level script doesn't activate.
I have the flag in A-Map set to 7000, the value set to zero, and I've fixed A-Map's error with the level script.
HELP ME PLEASE!!!!!!!!!!!!
Did you use variable 0x7000 somewhere else, perhaps?
Also, could you post the full level script? AM -> Professional Header View -> Header -> Map Script Offset. Copy and paste into XSE, check the Level Script option and decompile.
Oh. lol. I guess i wasn't paying attention >_<
Now, the problem is, that when I click Yes, it goes to the NO pointer and when I click No it goes to the yes pointer.
Spoiler:
'---------------
#org 0x800920
msgbox 0x8800976 MSG_YESNO '"Want to listen to a song?"
compare LASTRESULT 0x0
if 0x0 goto 0x8800991
compare LASTRESULT 0x1
if 0x1 goto 0x88009BF
multichoice 0x15 0x0 0x2 0x1
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto 0x88009F3
compare 0x8000 0x1
if 0x1 goto 0x88009FF
compare 0x8000 0x2
if 0x1 goto 0x8800A0B
compare 0x8000 0x3
if 0x1 goto 0x8800A17
end
'---------------
#org 0x800991
hidemoney 0x0 0x0
msgbox2 0x880099E '"Which song do you want to hear?"
callstd 0x2
releaseall
end
'---------------
#org 0x8009BF
msgbox 0x88009CB MSG_NORMAL '"Ehh, I have better stuff to do any..."
fadedefault
releaseall
end
'---------------
#org 0x8009F3
setvar 0x8004 0x1
goto 0x8800A23
end
'---------------
#org 0x8009FF
setvar 0x8004 0x2
goto 0x8800A2A
end
'---------------
#org 0x800A0B
setvar 0x8004 0x3
goto 0x8800A31
end
'---------------
#org 0x800A17
setvar 0x8004 0x4
goto 0x8800A38
end
'---------------
#org 0x800A23
playsong 0x12C 0x0
releaseall
end
'---------------
#org 0x800A2A
playsong 0x12B 0x0
releaseall
end
'---------------
#org 0x800A31
playsong 0x12A 0x0
releaseall
end
'---------------
#org 0x800A38
playsong 0x12D 0x0
releaseall
end
'---------
' Strings
'---------
#org 0x800976
= Want to listen to a song?
#org 0x80099E
= Which song do you want to hear?
#org 0x8009CB
= Ehh, I have better stuff to do anyway.
When you use if 0x0 goto @something, it's like telling the script "if the above condition was false (0x0) then goto the @something part". If you mix those things, you better use B_TRUE (and B_FALSE) eventually. Same applies for B_YES and B_NO while using compare. Also, remember that whenever you check if the answer is yes or no, you don't need to check it again. If it wasn't yes, it's obvious it was no and vice-versa.
There's another problem. Whatever the answer was, you're using goto. Hence no return.
In other words, the multichoice part would be never executed.
Here's the fixed script:
Spoiler:
#org @start
msgbox @want MSG_YESNO
compare LASTRESULT B_NO
if B_TRUE goto @no
hidemoney 0x0 0x0
msgbox @which MSG_FACE
releaseall
multichoice 0x15 0x0 0x2 0x1
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @choice1
compare 0x8000 0x1
if 0x1 goto @choice2
compare 0x8000 0x2
if 0x1 goto @choice3
compare 0x8000 0x3
if 0x1 goto @choice4
end
#org @no
msgbox @better MSG_NORMAL
fadedefault
releaseall
end
#org @choice1
setvar 0x8004 0x1
call @song1
end
#org @choice2
setvar 0x8004 0x2
call @song2
end
#org @choice3
setvar 0x8004 0x3
call @song3
end
#org @choice4
setvar 0x8004 0x4
call @song4
end
#org @song1
playsong 0x12C 0x0
return
#org @song2
playsong 0x12B 0x0
return
#org @song3
playsong 0x12A 0x0
return
#org @song4
playsong 0x12D 0x0
return
#org @want
= Want to listen to a song?
#org @which
= Which song do you want to hear?
#org @better
= Ehh, I have better stuff to do anyway.
I just learned how to make level scripts, and everything is working fine except for one problem I'm running into. You see I set a flag in the beginning of the game to hide a sprite in one of the houses in pallet town. That flag was 112. So the sprite was hidden. Then I went and made a script that when I talk to a man he leads him to his house, and in his house I put a level script where he gives me a Pokemon (celebi). It all works fine, and I get the Celebi and everything. I made it so that the flag I set in the beginning of the game is cleared when I talk to the man, because I want the sprite in the house that he's leading me to to be visible again. So, the sprite is visible again and all works fine. HOWEVER, my problem is that when I go into the house without talking to the old man, as soon as I enter the house, the game freezes... Or at least the character freezes. I've been trying to solve this for like 2 weeks but to no avail... any help?
Here are my 2 scripts:
The first one, when the old man leads me to his house (this one works fine)
Spoiler:
#Dynamic 0x802000
#org @start
checkflag 0x109
if b_true goto @done
lock
faceplayer
message @1
boxset 5
compare LASTRESULT 1
if 1 goto @wierd
message @letsgo
boxset 6
release
end
#org @give
= Here, take this Pokemon as a\ngift for following me.
#org @nickname
= Would you like to rename Celebi?
#org @name
call 0x1A74EB
return
#org @done
release
end
#org @given
= \v\h01 Received a Celebi!
#org @6
= \c\h01\h06\v\h01 : Thanks!
#org @moveinh2
#RAW 0x11 0x13 0xFE
I'm not sure If I posted this same issue here before and pmed a lot of people but I still didn't get it to work. Oh and the type of level script I'm doing is the "validates values, loads handler to 0x30000EB0" since that's the only one I know how to use and if I try to experiment with the other types it leads to failure.. so yeah.... Oh and people keep telling me stuff like don't use flags used in the game and variables use in the game but I already know that and I tried using different variables and flags it made no difference.
Well, the first thing I would try is replacing all those unsafe flags with better values, like 0x1001 and above. Also, could you post the full level script? See the details I wrote above.
that's the use of those? o.O
I still think they are pretty useless :\ , because no matter what I type on those "x and Y coordinates", the player will always land on where I put the warp tile, at least, in Ruby...
Maybe you should explaing why it works like that. Well, the rename Pokémon special will check the value of variable 0x8004 to decide what Pokémon actually needs to be renamed.
When you you get the first Pokémon, you need to set 0x8004 to 0x0 because 0x0 means the first one in the player's party.
and I compiled it in the ROM and it took the offset 0x900000 and consumed it all the way to 0x900100.
and then I compiled SCRIPT B, e.g.;
Spoiler:
Code:
#Dynamic 0x900101
#org $start
lock
faceplayer
message @1
boxset 0x6
release
end
#org @1
= Who was that guy?
and compiled successfully and it took offsets 0x900101 to 0x900200...
then suddenly, I tried it out in the ROM and SCRIPT A didn't worked the way I wanted it to. So I opened SCRIPT A and added some codes to perfect it.
so it turned like this;
Spoiler:
Code:
#Dynamic 0x900000
#org @start
lock
faceplayer
checkflag 0x200
if 0x1 goto @done
message @1
boxset 0x6
setflag 0x200
release
end
#org @done
release
end
#org @1
= Hi!
now my question...
since I already compiled SCRIPT A first and then I compiled SCRIPT B and afterwards I edited SCRIPT A and compiled it back, will XSE overwrite the offsets of SCRIPT B or will find free sp
ace either automatically or the offsets after SCRIPT B?
When you compile something using just dynamic offset, nothing will be ever overwritten.
Also, it doesn't make a lot of sense changing the #dynamic offset each time since XSE will just use the value as a starting point for the free space search inside the ROM. It would be a waste of time looking right from the beginning or something, so you can use FSF for example to get your offset and then you don't need to change it... ever, unless you add a LOT of data and therefore it's better to find a new offset.
All XSE need is that offset, after all. Searching free space it's its job.
Hello,
I've got a problem with this script o' mine:
Spoiler:
Code:
#dynamic 0x800000
#org @start
lock
faceplayer
checkflag 0x904
if b_true goto @heal
checkflag 0x903
if b_true goto @newest
checkflag 0x902
if b_true goto @newer
checkitem 0x10D 0x1
if b_true goto @new
msgbox @normal
boxset 0x6
release
end
#org @new
msgbox @shop2
boxset 0x6
removeitem 0x10D 0x1
setflag 0x902
release
end
#org @newer
msgbox @sleep
boxset 0x6
release
end
#org @newest
msgbox @morn
boxset 0x6
givepokemon 0xF6 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @getPK
boxset 0x4
waitfanfare
#raw 0x68
setflag 0x828
msgbox @bye
boxset 0x6
setflag 0x904
release
end
#org @heal
msgbox @wellback
boxset 0x4
#raw 0x68
fadescreen 0x1
fanfare 0x100
special 0x0
waitfanfare
fadescreen 0x0
msgbox @fin
boxset 0x6
release
end
#org @normal
= Dad: You better get going, if you want to\nbe home before night, [player].
#org @shop2
= Dad: Oh, welcome back, [player].\pDid you get the parcel?\p...\pYou did? Great!\p[player] gave Dad the parcel.\pYes, this is it...\pIt's been a long day, [player].\nGo upstairs and get some rest.\pAfter all, it is your birthday tomorrow.
#org @sleep
= Dad: Go get some sleep, [player].
#org @morn
= Dad: Good morning, [player].\nAnd happy birthday, too.\pToday is the day you are allowed to have\nyour first Pokemon.\pSo... I guess this is it then.\nHere you go [player].
#org @getPK
= [player] received a Larvitar.
#org @bye
= Dad: Now that you have your Pokémon, I\nguess you're eager to explore the world\land create a bond with your Pokémon...\pI just want to say, good luck.\pAnd I hope you'll come and visit me now\nand then, okay?\lGood bye, [player].
#org @wellback
= Dad: Welcome home, [player].\nYou look a little tired.\pI think you should rest a bit.
#org @fin
= Dad: You and and your Pokémon look much better\nnow.\pSee you, [player].
The problem is, even though I have "Item 10D" the scipt continues with "msgbox @normal
boxs..." instead of jumping to "@new".
If anyone know how to fix it, please tell me.
//44tim44
That happens because you're not using the checkitem command properly.
I won't stop repeating you should use only 0x1001 and above as flag values.
Look at this carefully:
Spoiler:
#dynamic 0x800000
#org @start
lock
faceplayer
checkflag 0x1004
if b_true goto @heal
checkflag 0x1003
if b_true goto @newest
checkflag 0x1002
if b_true goto @newer
checkitem 0x10D 0x1
compare LASTRESULT 0x1
if b_true goto @new
msgbox @normal
boxset 0x6
release
end
#org @normal
= Dad: You better get going, if you want to\nbe home before night, [player].
#org @shop2
= Dad: Oh, welcome back, [player].\pDid you get the parcel?\p...\pYou did? Great!\p[player] gave Dad the parcel.\pYes, this is it...\pIt's been a long day, [player].\nGo upstairs and get some rest.\pAfter all, it is your birthday tomorrow.
#org @sleep
= Dad: Go get some sleep, [player].
#org @morn
= Dad: Good morning, [player].\nAnd happy birthday, too.\pToday is the day you are allowed to have\nyour first Pokemon.\pSo... I guess this is it then.\nHere you go [player].
#org @getPK
= [player] received a Larvitar.
#org @bye
= Dad: Now that you have your Pokémon, I\nguess you're eager to explore the world\land create a bond with your Pokémon...\pI just want to say, good luck.\pAnd I hope you'll come and visit me now\nand then, okay?\lGood bye, [player].
#org @wellback
= Dad: Welcome home, [player].\nYou look a little tired.\pI think you should rest a bit.
#org @fin
= Dad: You and and your Pokémon look much better\nnow.\pSee you, [player].
After each msgbox you need to use callstd/boxset (until the new XSE is released, at lest).
At the end of each movement you need to put 0xFE to make it stop.
Also, checkflag alone isn't enough. You need to use the if command too.
Finally, use better flags, 0x1001 and above.
Don't forget script triggers - green "S" - should always set up like this:
Most of the times, it will work just fine. Using always the same variable isn't a really good practice, but most people do that anyway.
Fixed script below:
-----------------------
#org 0x8000A2
if 0x0 goto 0x88000B3
if 0x1 goto 0x8800124
end
'-----------------------
#org 0x8000B3
lock
msgbox 0x88000C9 '"Oh!\pMom said not to leave Rubyflam..."
callstd 0x6
applymovement MOVE_PLAYER 0x8800121
waitmovement 0x0
release
end
'-----------------------
#org 0x800124
release
end
'-----------
' Movements
'-----------
#org 0x800121
#raw C 'Step Down (Slow)
#raw FE 'End of Movements
'---------
' Strings
'---------
#org 0x8000C9
= Oh!\pMom said not to leave Rubyflame\nwithout a Pokémonn....\pBut where can I get one?
When playtesting, if I step on where the script is, the game freezes up.