PDA

View Full Version : [Tutorial] Om3GA ARS3NAL's Scripting Secrets


0m3GA ARS3NAL
January 27th, 2009, 12:30 AM
Hello all, and thanks for even opening this! ^-^

Anyways... I am not about to make this all flashy and pretty, because it isn't, these scripting techniques should not be tried unless you are sure you know what you are doing!
This is for Advanced - Expert Scripters, fluent in PokeCode. (XSE is preferable, since that is what I will be using.)
Also, in each special script I show you, I will use 'OFFSET-A', or 'OFFSET-B' as placeholders for whatever you want.

Okies...
here is the first thing I will be including in this document...
The quite sought after...
Explaining the Daycare Script

Ok, First off, lets post the WHOLE code, then I'll break it down, and explain each line individually.

#dynamic 0x800000

#org @start
lock
faceplayer
special 0x187
special2 LASTRESULT 0x178
compare LASTRESULT 0x1
if 0x1 goto @OFFSET-A
msgbox @OFFSET-B 0x5
compare LASTRESULT 0x0
if 0x1 goto @OFFSET-C
special2 LASTRESULT 0x84
compare LASTRESULT 0x1
if 0x1 goto @OFFSET-D
fadescreen 0x1
special 0xBC
waitstate
compare 0x8004 0x6
if 0x4 goto @OFFSET-E
special2 LASTRESULT 0x85
compare LASTRESULT 0x0
if 0x1 goto @OFFSET-H
special2 0x8005 0xBA
special 0x176
cmdc3 0x2F
release
end
Now, I know this is really scary, so big and burly, nasty and such, but it can all be explained, and that is what I will do...

#dynamic 0x800000

lock
faceplayer
-------------------------------
You know what these do...
special 0x187
-------------------
I am still doing research on this particular special command... but I suggest leaving it at the top, or the script wont go as planned...
special2 LASTRESULT 0x178
compare LASTRESULT 0x1
if 0x1 goto @OFFSET-A
-------------------------------
special2 LASTRESULT 0x178, assigns LASTRESULT with either 1, or 0, like a binary switch.
It set it to 1 if there ARE pokemon already stored using this script, 0 is set, if there are no pokemon previously stored.
compare LASTRESULT 0x1, checks if LASTRESULT is set to 1, for Pokemon already stored.
if 0x1 goto @OFFSET-A, means, if LASTRESULT is set to 1, go to the specified offset, usually used in order to either return the pokemon, or tell the player that they already have a pokemon deposited.
msgbox @OFFSET-B 0x5
compare LASTRESULT 0x0
if 0x1 goto @OFFSET-C
-----------------------
An experienced scripter such as yourself would know this bit of code.
I use this to ask the player if they WANT to deposit a pokemon.
If they say no, it goes to OFFSET-C. This Portion of code is Optional, and may be removed if you are stealing a pokemon for an event of sorts.
special2 LASTRESULT 0x84
compare LASTRESULT 0x1
if 0x1 goto @snippet9
-------------------------
special2 LASTRESULT 0x84, sets LASTRESULT to be either 0 or 1, but this time, 1 means that you only have one pokemon in your party, and 0 means you have more than one.
This is useful, so the player doesn't accidentally give away his.her last pokemon!
You should know what the Compare and the IF commands do by now...
fadescreen 0x1
special 0xBC
waitstate
compare 0x8004 0x6
if 0x4 goto @OFFSET-E
----------------------------
A bigger chunk, but explainable.
You know what fadescreen does.
special 0xBC, brings up the pokemon selection screen, this is needed unfourtunatley... and I have yet to find away around needing this... if you were planning on having a pokemon stolen from the player at all in the game... so sorry...
waitstate, just waits for the Pokemon selection to be made, and waits for the screen to be faded back in.
compare 0x8004 0x6, checks if you pressed the B button, or pressed the cancel button in the pokemon menu.
if 0x4 goto @OFFSET-E, just says if you did press B, or cancel, then go to the offset. useful for canceling the script, and not causing an error by taking an undefined pokemon.
special2 LASTRESULT 0x85
compare LASTRESULT 0x0
if 0x1 goto @OFFSET-H
-----------------------------
special2 LASTRESULT 0x85, sets LASTRESULT, again, to be either 0, or 1. This time, if LASTRESULT is 0, that means that if you were to give away the pokemon selected, your last pokemon would be an egg. And if LASTRESULT is 1, that means that if you gave the selected pokemon away, that you will still have pokemon to defend yourself with.
This is VERY useful, in order to prevent the player from playing with nothing but an egg, which could lead to errors.
OFFSET-H is the offset to lead AWAY from this script if all that would be left is an egg.
special2 0x8005 0xBA
---------------------------
This sets 0x8005 to the value stored in 0xBA, 0xBA is the Pokemon Species # of the pokemon selected, this is optional, but recomended, it is also useful for making the pokemon cry happen, like when selecting a pokemon from Professor Oak.
special 0x176
cmdc3 0x2F
----------------
I am still doing research on these two commands, but I believe that when they are put in this order, and used together like this, they remove the selected pokemon from the party!
DO NOT change them, remove them, or do anything to them, or the script will not work!
release
end
-----------
If you need an explanation about this, you should not be reading this, you are not ready.
As you can see, I have explained how to take pokemon from the player, in (somewhat decent) detail.
If you have any questions, you know how to post here!

Don't ask about how to return taken pokemon to the player, I am still working out the kinks to that!

Cy-Chan
January 27th, 2009, 12:43 PM
Nice tutorial. A long-ass method of returning the Pokémon would be to save the Pokémon's statistics into RAM (copybyte) at the end of this script, and then to copyvar them back in a different script.

Surf
January 27th, 2009, 12:48 PM
Yes you posted it!
You are seriously a scripting god Omega
I needed the take pokemon for globel earth
Tanks

0m3GA ARS3NAL
January 27th, 2009, 01:30 PM
Nice tutorial. A long-ass method of returning the Pokémon would be to save the Pokémon's statistics into RAM (copybyte) at the end of this script, and then to copyvar them back in a different script.

Actually, there is a command built into the game for returning the taken pokemon...

Hehe, I am just working out the kinks... and trying to find out how to copy a value loaded into [buffer1] into a variable...
If you can help me do that, then I'll post how to return pokemon, since that is needed to do so...
I've read your stuff, tutorials and such, but I like your style Cy-Chan, and you seem to know alot about the more advanced things about a Pokemon ROM... so I gotta ask, do you know how to copy [Buffer1] to a varialbe? (Like LASTRESULT or 0x8008?)

Ninja Caterpie
January 27th, 2009, 02:16 PM
Yeah, the only problem is, normally, returning Pokemon involves paying. To cancel that out, we just need to find out how much money is taken away and use givemoney to give that much. :\

0m3GA ARS3NAL
January 27th, 2009, 08:06 PM
Yeah, the only problem is, normally, returning Pokemon involves paying. To cancel that out, we just need to find out how much money is taken away and use givemoney to give that much. :\

Exactly my problem... You guessed it exactly

thethethethe
January 27th, 2009, 09:52 PM
Nice tutorial. A long-ass method of returning the Pokémon would be to save the Pokémon's statistics into RAM (copybyte) at the end of this script, and then to copyvar them back in a different script.
Not necessarily. You could just go with a software interrupt or a DMA transfer, Although I've never really used the DMA transfers much.
But if you went that way, there isn't too much point in going with removing the Pokemon through ways of the in built scripting engine thing, you'd just go with this way.

... so I gotta ask, do you know how to copy [Buffer1] to a varialbe? (Like LASTRESULT or 0x8008?)
A variable's length is only two bytes long. Buffer1, if I'm not mistaken is a string. Unless the length of buffer1 is only two characters long, a copy from a buffer to a variable isn't what you want.

Then again, I haven't done too much lately and I could be wrong.

destinedjagold
January 27th, 2009, 10:18 PM
taking a pokemon, huh? it's really cool.
useful for my hack.

thanks for this. :)

Cy-Chan
January 27th, 2009, 11:48 PM
What thethethethe said pretty much sums it up, I'd think... I can't really expand on that.

Maybe if you tried checking where the Pokémon is stored in RAM, after being taken? In order to retrieve it, the data still has to be there, after all.

0m3GA ARS3NAL
January 28th, 2009, 12:03 AM
What thethethethe said pretty much sums it up, I'd think... I can't really expand on that.

Maybe if you tried checking where the Pokémon is stored in RAM, after being taken? In order to retrieve it, the data still has to be there, after all.

Hey now... I might be good, but I am not THAT good, I dont know how to do that...

Cy-Chan
January 28th, 2009, 05:45 AM
Hey now... I might be good, but I am not THAT good, I dont know how to do that...

VBA's memory viewer. 0x02024284 contains your team's stats. Make a copy of this script, and see where the lost Pokémon's data is moved to.

If it's not moved (the data simply disappears), then the game has no way of remembering the Pokémon deposited, and no return Pokémon script can be made from this script. If it is moved, well... good!

0m3GA ARS3NAL
January 28th, 2009, 12:50 PM
VBA's memory viewer. 0x02024284 contains your team's stats. Make a copy of this script, and see where the lost Pokémon's data is moved to.

If it's not moved (the data simply disappears), then the game has no way of remembering the Pokémon deposited, and no return Pokémon script can be made from this script. If it is moved, well... good!

So... I know about the Memory Viewer, and that particular offset... But I dont understand how I'll be able to move the "Moved" Pokemon back to the party. Wouldn't that require ASM? Or... Does the command movebyte hold some significance in this situation?

Cy-Chan
January 28th, 2009, 02:41 PM
Ah! Well, I'm not sure, really. I was just saying, the Pokémon needs to be stored in RAM after it's taken away, otherwise it can't be returned, right?

Gamer2020
January 28th, 2009, 08:13 PM
I thought of something that may or may not help. Don't ridicule me cause im only an ok scripter.

But maybe you can figure out a give pokemon script if you look at the daycare script. They always give back the pokemon and stuff. idk. it's just an idea.

Ninja Caterpie
January 28th, 2009, 09:42 PM
I thought of something that may or may not help. Don't ridicule me cause im only an ok scripter.

But maybe you can figure out a give pokemon script if you look at the daycare script. They always give back the pokemon and stuff. idk. it's just an idea.

That's exactly what he's doing. It's why he needs to give money to the player, so no money's lost. :D

Gamer2020
January 28th, 2009, 09:56 PM
That's exactly what he's doing. It's why he needs to give money to the player, so no money's lost. :D

Oh ok. (stupid me) It's still a useful script even without the give pokemon. For example you can somethingin the begining of a hack where you have a team but they get stolen or something.

EDIT* would this script work with ruby?

0m3GA ARS3NAL
January 28th, 2009, 11:15 PM
Oh ok. (stupid me) It's still a useful script even without the give pokemon. For example you can somethingin the begining of a hack where you have a team but they get stolen or something.

EDIT* would this script work with ruby?

I doubt it... I am certain that the special commands are different in Pokemon Ruby version...
But it is not hard to figure out... Just look at the Daycare script from ruby and do some testing with that!

(Also, this script is not very practical for stealing pokemon... since you have to select the pokemon yourself... but I think it might work like a phony pokemon daycare, like Cassidy and Burt did on an episode of pokemon... *Butch yells- I TOLD YOU, MY NAME IS BUTCH!*

Gamer2020
January 29th, 2009, 09:41 PM
I doubt it... I am certain that the special commands are different in Pokemon Ruby version...
But it is not hard to figure out... Just look at the Daycare script from ruby and do some testing with that!

(Also, this script is not very practical for stealing pokemon... since you have to select the pokemon yourself... but I think it might work like a phony pokemon daycare, like Cassidy and Burt did on an episode of pokemon... *Butch yells- I TOLD YOU, MY NAME IS BUTCH!*

Oh yeah I didn't think of that. But there has to be a way to do it without you picking your pokemon. Like in Gold with the bug catching contest. You could only use one pokemon. and the guy held the others.

0m3GA ARS3NAL
January 29th, 2009, 09:55 PM
Oh yeah I didn't think of that. But there has to be a way to do it without you picking your pokemon. Like in Gold with the bug catching contest. You could only use one pokemon. and the guy held the others.

You still had to select the pokemon you wanted to use though...
If I could figure out how to ASM hack... I would do it... does anyone know where I can find some semi-understandable ASM tutorials? (I have always wanted to learn ASM, but I could never find a tutorial that I could understand...)

Giga Universe
January 30th, 2009, 06:03 AM
OMG. I have been trying to find this for ages, and here it is sticking out at me. This will really help me with my one script, so Thanks! All I need to do now is find out how to remove the select a Pokemon Special. Maybe it uses one of the special variables, such as 0x8002?

HackMew
January 30th, 2009, 09:10 AM
Sorry if I say that but... this is just the way the Pokémon Daycare works. It's not really like a "takepokemon" in the true meaning of the term. Basically a surrogate, if you ask me. "Who cares if it works?" you may say. Well, it doesn't really work because you wouldn't be able to use the daycare in your hacks. Keep in mind Daycare = eggs as well.

Now, what's my idea about takepokemon?
ASM hacking + scripting of course. First you need to make the usual checks to make sure the player has at least 2 Pokémon (the second one not being an egg, for example). Then you would set a variable, like 0x8000, in order to choose the Pokémon that should be taken away. Then you would check the value hold by the variable is in a proper range, that is it couldn't be 0x5 when you have just 2 Pokémon. If everything was fine you set another variable like 0x8001 to either 0x0 or 0x1. The reason of this will be explained in a minute. Then an ASM script would be called. The ASM script would first check if some Pokémon was taken away already. If so, unless variable 0x8001 is set to 0x1, the ASM script would end. Otherwhise it would get the Pokémon data and store it on a safe memory area (overwriting anything there in case a Pokémon was removed already and 0x8001 was set to 0x1). Then the Pokémon data would be erased and the rest of the data adjusted eventually. Finally a "takepokemon flag" would be set. That flag would be useful of course in case you want to get back the Pokémon with another ASM script later on or in case you want to check if a Pokémon was taken away so far. Pretty complex? Maybe. I wish I knew more ASM.

0m3GA ARS3NAL
January 30th, 2009, 03:13 PM
True HackMew, this is not quite a 'tekepokemon' per say, but it is an acceptable placeholder...
For instance, you could infact add a daycare later in the game, if this event were to come first.
(In the hack I am working on, the player has the option of giving a little girl her first pokemon, and later in my hack, there is in fact a daycare, and it works out perfectly... I have tested it and everything.)
But I do think ASM would work much better, that is why I want to learn it, and that is why I said...
You still had to select the pokemon you wanted to use though...
If I could figure out how to ASM hack... I would do it... does anyone know where I can find some semi-understandable ASM tutorials? (I have always wanted to learn ASM, but I could never find a tutorial that I could understand...)
So if you can find one, please tell me... and I'll start working on it... or you people can just ask M_X about it when he is done with D&N, he might do it...

Liquid Shadow
January 30th, 2009, 08:25 PM
So... I know about the Memory Viewer, and that particular offset... But I dont understand how I'll be able to move the "Moved" Pokemon back to the party. Wouldn't that require ASM? Or... Does the command movebyte hold some significance in this situation?

Hmm ok, I think this is possible using the loadbytefrompointer and writebytetooffset commands. This commands were explained in one of the recent RHNs. Check it out, they teach you how to use that command to change the players OW. I'm still learning how to use these commands properly, but I think it should work in theory if the Pokemon data is moved to some other place. I think it would require a lot of loadbytetooffset and writebytooffset commands though.

0m3GA ARS3NAL
January 30th, 2009, 08:50 PM
Hmm ok, I think this is possible using the loadbytefrompointer and writebytetooffset commands. This commands were explained in one of the recent RHNs. Check it out, they teach you how to use that command to change the players OW. I'm still learning how to use these commands properly, but I think it should work in theory if the Pokemon data is moved to some other place. I think it would require a lot of loadbytetooffset and writebytooffset commands though.

!!!!I have been trying to find those offsets! Can you please link me to that particular RHN?!!!!

(But yeah, I do believe that this method would work, I have renamed the first bit of information, to 'Explaining the Daycare Script'. But I do believe if I could find the location the pokemon were stored, I could pull this off... I can't find it though...)

ZodiacDaGreat
January 30th, 2009, 09:15 PM
I can try to attempt a routine a cheapo one first without any check for egg or party amount then improve from there. I don't promise anything though XD

Liquid Shadow
January 30th, 2009, 09:56 PM
!!!!I have been trying to find those offsets! Can you please link me to that particular RHN?!!!!

(But yeah, I do believe that this method would work, I have renamed the first bit of information, to 'Explaining the Daycare Script'. But I do believe if I could find the location the pokemon were stored, I could pull this off... I can't find it though...)

What offsets lol? The ones for the OW? If so, they are located in the INI of Hackmew's Overworld Editor RE, but anyways here's the link to the RHN: http://www.pokecommunity.com/showpost.php?p=4216237&postcount=300

Oh and just a quick question to any scripters here... The loadbytefrompointer and loadbytetooffset would work on Ruby if you want to change the main players OW, correct?

0m3GA ARS3NAL
January 30th, 2009, 10:12 PM
What offsets lol? The ones for the OW? If so, they are located in the INI of Hackmew's Overworld Editor RE, but anyways here's the link to the RHN: http://www.pokecommunity.com/showpost.php?p=4216237&postcount=300

Oh and just a quick question to any scripters here... The loadbytefrompointer and loadbytetooffset would work on Ruby if you want to change the main players OW, correct?

By Offset, I mean the offsets in the RAM.
The bytes with the sprite information have to be stored somewhere... and the offsets to that have to be something, ammirite?
I know them now though, Darthatron showed me, I am going to check out that RHN now...

ZodiacDaGreat
January 30th, 2009, 10:41 PM
You can search for it in the RAM ^^ Open the Search For Cheats, and set it to this:
Search Type = Specific Value
Data Size = 32 bits
Compare Type = Equal
Signed/Unsigned = Hex
value = 08+pointertomale/female sprite data

liuyanghejerry
January 31st, 2009, 05:48 PM
This is the script that retaken the pokemons to the player.
But this is just a simple one,I remove the "check" thing,so if there's any problems about your team (Is it full?),it may go wrong.And I also remove the "Pay" function ,so that you can get your pokemon back for free.


'This script isn't safe,just for test!
#dynamic 0x575288
lock
faceplayer
setvar 0x8004 0x0
special2 LASTRESULT 0xC0
message @2 0x2
release
end

#org @2
= Done.
Hope it helps...

0m3GA ARS3NAL
February 1st, 2009, 11:29 PM
This is the script that retaken the pokemons to the player.
But this is just a simple one,I remove the "check" thing,so if there's any problems about your team (Is it full?),it may go wrong.And I also remove the "Pay" function ,so that you can get your pokemon back for free.


'This script isn't safe,just for test!
#dynamic 0x575288
lock
faceplayer
setvar 0x8004 0x0
special2 LASTRESULT 0xC0
message @2 0x2
release
end

#org @2
= Done.
Hope it helps...

I think you dont understand Special2's function... Special2 writes a value to the variable given (In this case, it would be LASTRESULT (0x800D))
What this script here does, is...

Lock the player
Make the sprite face the player
set 0x8004 to 0
set LASTRESULT to an unknown value stored in special2 0xC0
Display a message
Unlock player and sprite
end script

This does not add the pokemon to the party, I am afraid...


Also, ZodiacDaGreat, how would searching for the sprite data make a difference? Shouldn't I search for the pokemon's party data?

ZodiacDaGreat
February 2nd, 2009, 12:13 AM
Excuse me? Who was it that wanted the pointer to where the player's sprite location is stored? Anyway, for pokemon party data its all here:
* Ruby: 0x03004360
* Sapphire: 0x03004360
* Emerald: 0x02024190 (0x020244EC for US games??)
* FireRed: 0x02024284
* LeafGreen: 0x020241e4
He's what I can do, copy the data of one pokemon to another area in the ROM(Taking Pokemon) and copying it back(Giving) the only thing I have yet to try is whether or not the data copied to a different area of the ROM is saved if the player saves the game and turns off the GBA.

0m3GA ARS3NAL
February 2nd, 2009, 12:21 AM
Excuse me? Who was it that wanted the pointer to where the player's sprite location is stored? Anyway, for pokemon party data its all here:

He's what I can do, copy the data of one pokemon to another area in the ROM(Taking Pokemon) and copying it back(Giving) the only thing I have yet to try is whether or not the data copied to a different area of the ROM is saved if the player saves the game and turns off the GBA.

Oh, *Facepalm* I know where they are now, I asked Darthatron, he told me a day ago...
Sorry, but in any case... What is the format of the Party Data? like, what do the different bytes mean?

ZodiacDaGreat
February 2nd, 2009, 12:34 AM
This (http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_structure_in_the_GBA) should help ;) (Fillers)

0m3GA ARS3NAL
February 2nd, 2009, 12:47 AM
Well then... this should not be so hard... all we gotta do is insert a pokemon into the 'daycare' system, then search for the missing bytes elsewhere in the RAM, then once found, we gotta load the missing bytes into 100 different variables, and write them back to the missing party slot...

ZodiacDaGreat
February 2nd, 2009, 12:50 AM
lol, thats off - using 100 variables cause it makes no difference of wasting variables :/ ASM is your best bet here.

Edit: Its problematic if you try something like a read and write byte array with scripting.

0m3GA ARS3NAL
February 2nd, 2009, 12:58 AM
lol, thats off - using 100 variables cause it makes no difference of wasting variables :/ ASM is your best bet here.

Well, if you could load the 100 byte string representing the pokemon inserted into the daycare, divided into 100 bytes, put onto 100 variables, then you could use writebytetooffset and write the bytes to the empty slot in the party.

thethethethe
February 2nd, 2009, 02:43 AM
Well, if you could load the 100 byte string representing the pokemon inserted into the daycare, divided into 100 bytes, put onto 100 variables, then you could use writebytetooffset and write the bytes to the empty slot in the party.

No ASM is the best way to do it. I've already written up a code to do it all, I just need to test it all out for any bugs and errors when I find the time.

Through the Pokemon script engine it would take up far too much space in the ROM with 100 writebytetooffset's, and load byte to offsets plus the rest of the script. Then again to send the data back, which would obviously take thousands of bytes. Those commands are only useful for the odd little thing. You're much better off with ASM and only using probably at most 1/10th of the space. It would also be more efficient time-wise.

@Zodiacdagreat
After you mentioned it to me, only some areas of the 02000000 range don't reset with the restart of the game. I didn't try the 03... range though. I only went off and found an offset that didn't reset.

0m3GA ARS3NAL
February 2nd, 2009, 02:48 AM
LOL, so true, I was just trying to think of a non-ASM alternative... I dont know ASM in any case, and most tutorials I find are confusing, and not written in a way I can understand it... I wish you would make an ASM tutorial thethethethe... you make good tutorials...

Charlzard
February 2nd, 2009, 03:55 AM
Are you not the guy who "made" a follow me script?

0m3GA ARS3NAL
February 3rd, 2009, 12:54 AM
Are you not the guy who "made" a follow me script?

I made a Diamond/Pearl/Platinum styled version of the script, where you have to place a copy of the tile on EVERY tile, and they can not follow you from map to map, but yes...
Why do you ask?

liuyanghejerry
February 3rd, 2009, 01:58 AM
I think you dont understand Special2's function... Special2 writes a value to the variable given (In this case, it would be LASTRESULT (0x800D))
What this script here does, is...

Lock the player
Make the sprite face the player
set 0x8004 to 0
set LASTRESULT to an unknown value stored in special2 0xC0
Display a message
Unlock player and sprite
end script

This does not add the pokemon to the party, I am afraid...



Hehe,I understand your doubt,but did you even try my script?
Let me show you :http://liuyanghejerry.hostse.com/K.rar
(There's a AVI video of 50+MB in this rar. Tell me if you can't watch it.)

Charlzard
February 3rd, 2009, 03:18 AM
Jw, because Roy said you and Younghove made a follow me script. Why don\'t you release that?

You must be a good scripter :p

foullump
February 3rd, 2009, 07:10 AM
Glad to see it's finally been cracked! Many people just edit the old script, but that's too buggy. More people should write the script manually.

Juan
February 3rd, 2009, 01:02 PM
I did a routine ASM to remove an Pokémon, and one for him again.
The tutorial is in Portuguese, do not translate because my English is very bad, and not rely so much on google.

Video(very simple):
http://br.youtube.com/watch?v=7ZD9_TVtKH0
http://br.youtube.com/watch?v=7ZD9_TVtKH0

Tutorial (BPRE): http://rhm.890m.com/site/index.php/rotinas-assembly/63-asm-take-pokemon.html

--------------------------------------------
PT-BR:
Eu fiz uma rotina ASM para remover um pokémon, e outra para pegá-lo novamente.
O tutorial está em português, não traduzo pois meu inglês é muito ruim, e não confio tanto no google.

0m3GA ARS3NAL
February 3rd, 2009, 01:42 PM
Jw, because Roy said you and Younghove made a follow me script. Why don\'t you release that?

You must be a good scripter :p

Well, it is not taht practical, since it has to be placed on every tile you want the player to be able to walk on... A follow Me Script would be to... space consuming... over 3000 lines of script for a very smooth one... pretty big... well, I might... let me think about it...

I did a routine ASM to remove an Pokémon, and one for him again.
The tutorial is in Portuguese, do not translate because my English is very bad, and not rely so much on google.

Video(very simple):
http://br.youtube.com/watch?v=7ZD9_TVtKH0
http://br.youtube.com/watch?v=7ZD9_TVtKH0

Tutorial (BPRE): http://rhm.890m.com/site/index.php/rotinas-assembly/63-asm-take-pokemon.html

--------------------------------------------
PT-BR:
Eu fiz uma rotina ASM para remover um pokémon, e outra para pegá-lo novamente.
O tutorial está em português, não traduzo pois meu inglês é muito ruim, e não confio tanto no google.

Well, No offence, but thethethethe also made one, I'll use both of yourse and compare them... may the best one win, but in any case, I started a revolution, hehehe. I am writing up some more usefull information, so expect an update sometime soon!

Juan
February 3rd, 2009, 03:15 PM
Well, No offence, but thethethethe also made one, I'll use both of yourse and compare them... may the best one win, but in any case, I started a revolution, hehehe. I am writing up some more usefull information, so expect an update sometime soon!
Not understand very well what he said, because the translator does not help much xD
But anyway, the idea was his, never said otherwise.
And I did not see the routine of thethethethe, and am still learning ASM, it served as a good training ^ ^
Who want to seize it any hack, or even optimize it, make a wish, it is even better because I learn more.
PS: the google translator is a bit better than the Cade, I did not know it ^