View Single Post
  #1600    
Old July 5th, 2009, 02:52 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by K3fka View Post
Game: Fire Red (US)
Type: Person
Editor: Pokescript
Script:
Spoiler:
#org $OAK_EVENT
lock
faceplayer
checkflag 0x1000
if 1 goto $OAK_TALK
message $OAKEVENT
$OAKEVENT 1 = Hello, \v\h01.\nI'm glad you came by.\pYou see, something very bad\nhas happened.\pA POKéMON was stolen from my\nlab here!\pThat's where you come in.\pDo you think you can track\ndown the thief and retrieve\nmy POKéMON?\pMy grandson, \v\h06, is also\nlooking for the thief, but I\nI think he may need some help.\pSo what do you say?\pExcellent! Here is a POKéMON\nto help you out.\p\v\h01 recieved a MUDKIP!\pIn addition, I need to test\nout a new device called the\nPOKéDEX. While you are out,\nwould you test it for me?\p\v\h01 recieved the POKéDEX!\pAnd to just to make traveling\neasier, take these.\p\v\h01 recieved the RUNNING SHOES!\pThat's all...\p...so go find the thief!
givepokemon 0x11B 0x5 0x0
setflag 0x828
setflag 0x829
setflag 0x82F
setflag 0x1000
applymovement 0x04 $OAK_MOVE
pausemove 0
release
end

#org $OAK_TALK
lock
faceplayer
message $GOODLUCK
$GOODLUCK 1 = Good luck out there!
release
end

#org $OAK_MOVE
#raw 0x0E
#raw 0x03
#raw 0xFE

For some reason, my script, when compiled and burnt into the ROM looks like this when I view it:
Spoiler:
'-----------------------
#org 0x8030FC
lock
faceplayer
checkflag 0x1000
if 0x1 goto 0x8803151
msgbox 0x880315E '"Hello, [player].\nI'm glad you came..."
copyvar 0x8004 LASTRESULT
givepokemon 0x11B 0x5 0x0 0x0 0x0 0x7D
nop1
copyvar 0x0 0x0
nop
nop
nop
nop
nop
setflag 0x828
setflag 0x829
setflag 0x82F
setflag 0x1000
applymovement 0x4 0x880315B
showcontestwinner 0x61
lockall
clearbox 0x6D 0x6F 0x76 0x65
waitkeypress
spritebehave 0x746E 0x20
comparefarbytetofarbyte 0x26C2030 0xF5A6A

'-----------------------
#org 0x803151
lock

'-----------
' Movements
'-----------
#org 0x80315B
#raw E 'Step Left (Slow)
#raw 3 'Face Right
#raw FE 'End of Movements


'---------
' Strings
'---------
#org 0x80315E
= Hello, [player].\nI'm glad you came by.\pYou see, something very bad\nhas happened.\pA POKéMON was stolen from my\nlab here!\pThat's where you come in.\pDo you think you can track\ndown the thief and retrieve\nmy POKéMON?\pMy grandson, [rival], is also\nlooking for the thief, but I\nI think he may need some help.\pSo what do you say?\pExcellent! Here is a POKéMON\nto help you out.\p[player] recieved a MUDKIP!\pIn addition, I need to test\nout a new device called the\nPOKéDEX. While you are out,\nwould you test it for me?\p[player] recieved the POKéDEX!\pAnd to just to make traveling\neasier, take these.\p[player] recieved the RUNNING SHOES!\pThat's all...\p...so go find the thief!


The end result of the script is when I talk to the person (Prof. Oak, in this case), he just walks to the left and faces right, then the game freezes up.

EDIT: D'oh! I forgot the boxset command, so that explains why the text doesnt show up, but why does it turn into things like "showcontestwinner" in the ROM?
Uhm... may I suggest you using the newest XSE perhaps?

Spoiler:
#dynamic 0x800000

#org @OAK_EVENT
lock
faceplayer
checkflag 0x1000
if 1 goto @OAK_TALK
message @OAKEVENT 0x6
givepokemon 0x11B 0x5 0x0 0x0 0x0 0x0
setflag 0x828
setflag 0x829
setflag 0x82F
setflag 0x1000
applymovement 0x04 @OAK_MOVE
waitmovement 0x0
release
end

#org @OAK_TALK
lock
faceplayer
message @GOODLUCK 0x6
release
end

#org @OAKEVENT
= Hello, \v\h01.\nI'm glad you came by.\pYou see, something very bad\nhas happened.\pA POKéMON was stolen from my\nlab here!\pThat's where you come in.\pDo you think you can track\ndown the thief and retrieve\nmy POKéMON?\pMy grandson, \v\h06, is also\nlooking for the thief, but I\nI think he may need some help.\pSo what do you say?\pExcellent! Here is a POKéMON\nto help you out.\p\v\h01 recieved a MUDKIP!\pIn addition, I need to test\nout a new device called the\nPOKéDEX. While you are out,\nwould you test it for me?\p\v\h01 recieved the POKéDEX!\pAnd to just to make traveling\neasier, take these.\p\v\h01 recieved the RUNNING SHOES!\pThat's all...\p...so go find the thief!

#org @GOODLUCK
= Good luck out there!

#org @OAK_MOVE
#raw 0x0E
#raw 0x03
#raw 0xFE



Quote:
Originally Posted by ckret2 View Post
I've been trying for weeks now to make a script that makes it impossible to progress in the game until you battle and defeat a wild Pokémon. The good news is that I succeeded. Yay. The bad news is that it's still possible to catch the Pokémon in battle. So, hypothetically, you could come up to the Pokémon with ten Poké Balls, battle it, catch it, rebattle and recatch it, until you've caught it ten times, and then make it faint and then you'd progress in the game. Which is silly. However, aside from making it impossible to bring any Poké Balls into the battle (which I am more than willing to do, but I'd like a "cleaner" solution if possible), I can't find a way to make it impossible to catch the Pokémon. Any ideas?

It's in a FireRed hack, and made with XSE. Here's the script as it is so far. Well, with extraneous scripting irrelevant to the issue removed and with the dialogue changed, but this is the gist of it:

[...]

So far as I can tell, I'm the first person to dissect and make use of special2 0xB4 in a script, so here's a mini-tutorial on how it functions and why I set it up like I did. (And if someone HAS figured out special2 0xB4 before me, I apologize for presuming to be the first, although I must mention that I've been all over this site trying to figure out how the heck it works and must humbly ask why the wisdom wasn't shared, as it would have saved me a lot of time.)

Given the above, is there any way to make it impossible to throw a Poké Ball at the Pokémon in battle, apart from a) making Poké Balls unavailable until after the battle, b) inserting a script that throws all your Poké Balls away and/or sends them to the PC, c) making the Pokémon a ghost, or d) making the Pokémon's catch rate 0 and making sure Master Balls aren't available yet? (Speaking of which, I don't actually know if Master Balls work on Pokémon with a catch rate of 0.) Is there some special, some form of wildbattle, something? (I know the original Ghost Marowak script uses wildbattle2 but don't know what that does. I'm afraid it'll just turn the Pokémon into a ghost.)
Tip: avoid using quotes when posting a script. Quoting a quote will make it disappear. Either use [code] for small ones or even better a [spoiler]. I'm sorry but you aren't the first one to figure the 0xB4 special2, he he. Anyway, wildbattle2 is exactly the same as wildbattle except it includes a special. In the Marowak ghost script, you can see:

Code:
wildbattle2 0x69 0x1E 0x0 0x6
That 0x6 stands for special 0x156. In this case, actually, the wildbattle is just fake because the real wildbattle is started by special 0x156. If you want, feel free to change the Pokémon species etc. You will get a Marowak ghost, no matter what. All your possible solutions aren't clean enough though. The first one, will not let the player have Poké Balls before the battle (or any other type of ball), which is not that good if you want to catch some other wild Pokémon midway. The second one is not so good as well, as it would look very weird to have some balls before the battle and then none of them as soon as the battle starts. Not to say the problems you would get counting and removing the exact amount of all the possible balls and then adding them back after the battle. Which might not even work at all, actually. The third one might be good, if the Pokémon wasn't turned into a ghost. The fourth one could be useful if and only if the non-catchable Pokémon isn't available elsewhere in the whole game. Besides that, it's not a clean solution either. So, what's my idea? I reversed the special 0x156 already therefore I would rather make an ASM routine to replicate it but without the ghost collateral effect. That way you can have whatever ball, even a Master Ball, and you wouldn't be able to catch the Pokémon. And it wouldn't be a ghost. For further details, let's continue this conversation via PM.
__________________