• 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 Trading Card Game 2 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.

Script Help Thread (DO NOT REQUEST SCRIPTS)

Status
Not open for further replies.
Is it possible to read the time played in a game,specifically fire red, and create scripts around taht,for example.Checks the time and if its been played for at least an hour a cript will be able to happen?
 
Game: FireRed
Type: Event
Editor: XSE
Script:
Spoiler:

Screenshots and/or Videos: N/A
My main problem is on move2 move3 and move 4.
Move2 Work's perfectly, but the other two don't move at all, also the waitmovement command won't work, and it just goes straight to the text.
Also, I'm trying to make all three movements happen at the same time.
 
Is it possible to read the time played in a game,specifically fire red, and create scripts around taht,for example.Checks the time and if its been played for at least an hour a cript will be able to happen?

Yep, I believe the command comparefarbytetobyte is what you would need. :P
 
Is it possible to read the time played in a game,specifically fire red, and create scripts around taht,for example.Checks the time and if its been played for at least an hour a cript will be able to happen?
Try reading HackMew's first ASM tutorial in the Documents and Tutorials section. If you adapt his code, you should be able to obtain the current playing time down to the millisecond.

For future reference, this question would be better asked in the Simple Questions Thread.
 
Try reading HackMew's first ASM tutorial in the Documents and Tutorials section. If you adapt his code, you should be able to obtain the current playing time down to the millisecond.

For future reference, this question would be better asked in the Simple Questions Thread.

Thanks,and ill remember to ask in the simple questions if it doenst directly involve a script,i was just hoping this could be done by scripting.
 
Thanks,and ill remember to ask in the simple questions if it doenst directly involve a script,i was just hoping this could be done by scripting.

It can, didn't you see my post that replied to yours on the other page?

Anyway, I'll repeat it. You can use the scripting commmand: comparefarbytetobyte.
 
In one of my maps, as soon as I take a left or right onto the script tiles the game freezes.

Code:
'---------------
#org 0x298D2A
checkflag 0x202
if 0x1 goto 0x8298D6F
lock
faceplayer
showsprite 0x4
msgbox 0x8298D90 MSG_NORMAL '"Hold on kiddo!"
applymovement MOVE_PLAYER 0x8298D72
waitmovement 0x0
applymovement 0x4 0x8298D75
waitmovement 0x0
msgbox 0x8298DA1 MSG_NORMAL '"Where the hell did you come from?\..."
applymovement 0x4 0x8298D83
waitmovement 0x0
hidesprite 0x4
setflag 0x202
release
end

'---------------
#org 0x298D6F
release
end


'---------
' Strings
'---------
#org 0x298D90
= Hold on kiddo!

#org 0x298DA1
= Where the hell did you come from?\nI saw that statue glow,\pthen you just pop out of nowhere!\nHmph... Ill figure it out.


'-----------
' Movements
'-----------
#org 0x298D72
#raw 0x2 'Face Left
#raw 0xFE 'End of Movements

#org 0x298D75
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x20 'Step Right (Fast)
#raw 0x55 'Jump in Place (Facing Right)
#raw 0xFE 'End of Movements

#org 0x298D83
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0x1F 'Step Left (Fast)
#raw 0xFE 'End of Movements

I don't know if it's the script or if it's my rom.
 
That actually sounds quite interesting. How would you go about using that?

Comparefarbytetobyte compares a byte at a certain ram address with a certain value, It's useful for seeing how much time has passed or even for seeing what the player's gender is.

It's layout is this:

comparefarbytetobyte 0xpointer to ram address with byte value to compare with. 0xbyte to compare with.
 
In FR, the location for the playtime is at 0x20245C6 in the RAM. The first two bytes you'll find there are the hours of playtime, second byte minutes, then seconds and last, but not least, the milliseconds.
In R/S, the offset is 0x2024EB2, and in Emerald 0x2024A96. And indeed, you can check them with comparefarbytetobyte. To check for at least an hour of playtime, you would use:
Code:
comparefarbytetobyte 0x20245C6 0x1
if 0x4 goto @script
(Obviously, that's for FR/LG. In R/S/E, only the offset changes. The rest remains the same.)
 
In FR, the location for the playtime is at 0x20245C6 in the RAM. The first two bytes you'll find there are the hours of playtime, second byte minutes, then seconds and last, but not least, the milliseconds.
In R/S, the offset is 0x2024EB2, and in Emerald 0x2024A96. And indeed, you can check them with comparefarbytetobyte. To check for at least an hour of playtime, you would use:
Code:
comparefarbytetobyte 0x20245C6 0x1
if 0x4 goto @script
(Obviously, that's for FR/LG. In R/S/E, only the offset changes. The rest remains the same.)
Actually, this is not the case. The play time data, along with most of the other player data, actually moves around due to DMA (Direct Memory Access). The offset of the data is determined by a pointer at 0x300500C (which is in the IRAM, in case you're wondering.
You'll have to use ASM to access it. Read HackMew's Knowledge, ASM Tutorial 1, which explains how to access the player data.
 
I edited the map for Cinnabar Island (img21.imageshack.us/img21/1884/cinnabarisland.png), and now the script to keep you out of the Gym until you have the Secret Key doesn't work. How do I fix this?
 
I edited the map for Cinnabar Island (img21.imageshack.us/img21/1884/cinnabarisland.png), and now the script to keep you out of the Gym until you have the Secret Key doesn't work. How do I fix this?

You'll need to move the script tile to in front of Cinnibar Island's gym.
 
I have a script problem(duh)
the player is in a tight hallway and professor oke is one tile above you. I want him to follow you left and right so I wrote a script.
My first attempt used flags, and it worked on paper but no in game.
I then tried a referent way of doing things. I tried comparing the players facing so if he is facing left oke will move left, and if he faces right oke will move right. But When I play the game no matter what I do oke only moves left

'---------------
#org 0x71BBE4
lock
getplayerpos 0x6000 0x6001
compare PLAYERFACING 0x3
if 0x1 goto 0x871BC3E
compare PLAYERFACING 0x4
if 0x1 goto 0x871BC63
end

'---------------
#org 0x71BC3E
applymovement 0x17 0x871BC70
waitmovement 0x0
release
end

'---------------
#org 0x71BC63
applymovement 0x17 0x871BC73
waitmovement 0x0
release
end


'-----------
' Movements
'-----------
#org 0x71BC70
#raw 0x12 'Step Left (Normal)
#raw 0xFE 'End of Movements

#org 0x71BC73
#raw 0x13 'Step Right (Normal)
#raw 0xFE 'End of Movements
 
I'd really appreciate it if someone could help me with this.

Game: FireRed
Type: Event
Editor: XSE
Script:
Spoiler:

Screenshots and/or Videos: N/A
My main problem is on move2 move3 and move 4.
Move2 Work's perfectly, but the other two don't move at all, also the waitmovement command won't work, and it just goes straight to the text.
Also, I'm trying to make all three movements happen at the same time.
 
Game: Pokémon Rose Version (Fire Red Hack)

Type: A Trigger Script (you walk over a green script tile)

Editor: I'm using PokeScript to put the script into the game, and I'm using XSE to view the script.

Script:

What I wrote and compiled with PokeScript:

Spoiler:


The script, as seen in XSE:

Spoiler:


Here's what happens:

Spoiler:


I previously edited the script and had this in XSE:

Spoiler:


With this result in-game:

Spoiler:


So, in short, XSE shows that the messages I want to have in this dialogue do in fact appear, and the movements for the player do, in fact, appear--it's the part right after setting variable 0x4001 that is messing up.

What this script is SUPPOSED to do is:

1. Stop the player and set the appropriate variable for the movement part of the script.
2. First message from the mother
3. Movement towards the mother
4. Another message
5. Followed by another message
6. Oak question (Yes: go to 9, No: go to 7)
7. Elm question (Yes: go to 10, No: go to 8)
8. Birch question (Yes: go to 11, No: go to 5)
9: Another message from the mom, and a variable is set (go to 12)
10: Another message from the mom, and a variable is set (go to 12)
11: Another message from the mom, and a variable is set (go to 12)
12: A final message by the mom, a variable is set to prevent this script from occurring again, and the script ends.
 
Game: Pokémon Rose Version (Fire Red Hack)

Type: A Trigger Script (you walk over a green script tile)

Editor: I'm using PokeScript to put the script into the game, and I'm using XSE to view the script.

Script:

What I wrote and compiled with PokeScript:

Spoiler:


The script, as seen in XSE:

Spoiler:


Here's what happens:

Spoiler:


I previously edited the script and had this in XSE:

Spoiler:


With this result in-game:

Spoiler:


So, in short, XSE shows that the messages I want to have in this dialogue do in fact appear, and the movements for the player do, in fact, appear--it's the part right after setting variable 0x4001 that is messing up.

What this script is SUPPOSED to do is:

1. Stop the player and set the appropriate variable for the movement part of the script.
2. First message from the mother
3. Movement towards the mother
4. Another message
5. Followed by another message
6. Oak question (Yes: go to 9, No: go to 7)
7. Elm question (Yes: go to 10, No: go to 8)
8. Birch question (Yes: go to 11, No: go to 5)
9: Another message from the mom, and a variable is set (go to 12)
10: Another message from the mom, and a variable is set (go to 12)
11: Another message from the mom, and a variable is set (go to 12)
12: A final message by the mom, a variable is set to prevent this script from occurring again, and the script ends.

...which is why you should use XSE to write and compile scripts.
 
I have a script problem(duh)
the player is in a tight hallway and professor oke is one tile above you. I want him to follow you left and right so I wrote a script.
My first attempt used flags, and it worked on paper but no in game.
I then tried a referent way of doing things. I tried comparing the players facing so if he is facing left oke will move left, and if he faces right oke will move right. But When I play the game no matter what I do oke only moves left

'---------------
#org 0x71BBE4
lock
getplayerpos 0x6000 0x6001
compare PLAYERFACING 0x3
if 0x1 goto 0x871BC3E
compare PLAYERFACING 0x4
if 0x1 goto 0x871BC63
end

'---------------
#org 0x71BC3E
applymovement 0x17 0x871BC70
waitmovement 0x0
release
end

'---------------
#org 0x71BC63
applymovement 0x17 0x871BC73
waitmovement 0x0
release
end


'-----------
' Movements
'-----------
#org 0x71BC70
#raw 0x12 'Step Left (Normal)
#raw 0xFE 'End of Movements

#org 0x71BC73
#raw 0x13 'Step Right (Normal)
#raw 0xFE 'End of Movements

First of all, remove the getplayerpos, it's not necessary. Also replace the compare PLAYERFACING 0x3 and 0x4 with PLAYERFACING FACE_LEFT and FACE_RIGHT.
 
Status
Not open for further replies.
Back
Top