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.
Sadly I don't know how it works, I tried for a few hours today, but no success...
The closest I got to it working was this:
Spoiler:
This is the script:
Spoiler:
msgbox @change 0x2
setvar 0x8009 0x0890
setvar 0x8008 0x0034
setvar 0x8006 0x1
setvar 0x8005 0x0
special 0x58
release
end
#org @change
= I will change the pokemon now.
The pointer set in 8009 & 8008 is 0x08900000 (why does the script have 34 added to it, I know not, its just how others did it and it changed the pokemon to Sunflora instead of ??????? so yeah...)
The data I added to that offset was:
Spoiler:
0A 0C 01 9A
This was repeated about 12 times
That should make Deoxys levels 10-12
There are 3 ways to make it works, first is by loadpointer command, Second is by Setting the value to 8008 and 8009 in halves, lower halve in 8008 and upper in 8009 and lastly, by writebytetooffset.
So I'll show you the sample script, let's say the Wild data is stored in 08ABCDEF,
Loadpointer
Spoiler:
By using loadpointer command and bank 0x0, we can change the Wild Data,
Sorry, I can't face my computer so I'm still clueless on what time special is, maybe tonight, anyway,
Here's the Structure 15 00 00 00 3C 96 3C 08
15- Determines if it is Grass, Water, Tree or Fishing Rod? 00 00 00- Fillers 3C 96 3C 08- Pointer to the wild table, this table contains the index number of the pokemon(reversed), let's say lv32 Eevee, Eevee's index number is 85, so you will Write 20 20 00 85
Sorry, I can't face my computer so I'm still clueless on what time special is, maybe tonight, anyway,
Here's the Structure 15 00 00 00 3C 96 3C 08
15- Determines if it is Grass, Water, Tree or Fishing Rod? 00 00 00- Fillers 3C 96 3C 08- Pointer to the wild table, this table contains the index number of the pokemon(reversed), let's say lv32 Eevee, Eevee's index number is 85, so you will Write 20 20 00 85
Do I understand it correctly?
First, we have to create a script like this:
Spoiler:
...
loadpointer 0x0 0x800000(whatever offset I want)
special 0x58
...
Offset is 0x800000 and contains something like this: 15 00 00 00 XX XX XX 08 where XX is another pointer? Can this pointer point to whatever address I want? Or does it have to be 3C 96 3C?
Is this supposed to be another pointer, or the wild data??
In the example you gave, you used 08ABCDEF would 15 00 00 00 3C 96 3C 08 go in that part, or is that a pointer within a pointer??
Lastly this part "15 00 00 00 3C 96 3C 08" would be repeated over and over to fill all the needed slots?? eg: 15 times for grass wild battles to be changed.
And don't fret about getting the timer specials, if you can great if not its no big deal.
I'm sorry, but I still don't understand this part.
Is this supposed to be another pointer, or the wild data??
In the example you gave, you used 08ABCDEF would 15 00 00 00 3C 96 3C 08 go in that part, or is that a pointer within a pointer??
Lastly this part "15 00 00 00 3C 96 3C 08" would be repeated over and over to fill all the needed slots?? eg: 15 times for grass wild battles to be changed.
And don't fret about getting the timer specials, if you can great if not its no big deal.
Nope, 3c963c is a pointer to the wild data,
If you want to use 3c963c, go to that addressan fill the bytes with 19 20 85 00
If you don't want to do some hex editing, just open Advance Map 1.92 and create a wild data, then click expand, the pointer that you will see that will be the pointer you'll use on the special 0x28, by loadpointer, Var setting or wring byte specified offset
Nope, 3c963c is a pointer to the wild data,
If you want to use 3c963c, go to that addressan fill the bytes with 19 20 85 00
If you don't want to do some hex editing, just open Advance Map 1.92 and create a wild data, then click expand, the pointer that you will see that will be the pointer you'll use on the special 0x28, by loadpointer, Var setting or wring byte specified offset
Have you actually tested it yourself? I've been trying to make it work for an hour or so and still can't figure it out. Could you post a full example of what offsets you use and what's exactly there?
Have you actually tested it yourself? I've been trying to make it work for an hour or so and still can't figure it out. Could you post a full example of what offsets you use and what's exactly there?
So with JPANs Hack Applier, He has made it so trainer battle scripts don't always have to start with the trainerbattle part in the script. Now when you change the 'Unknown' in Advanced Map to anything but 00, you can make the script start with anything and the trainer will run up to you. This is all great, however I'm not happy with it.
If you have the Trainerbox set to 00 instead of 01, the OW will never run up to you for a battle, you need to talk to him. If you set the Trainerbox to 01, The trainer will run up to you, but when you leave the map and come back, the trainer will run up to you again. (When the trainer runs up to you again it doesn't do the battle again but it's still not fun to have OWs running up to you telling you the battle was fun). Is there a way to make this work?
Here is the context in which I am trying to make this function work.
I want to make it so the OW has different level Pokemon depending on what stage in the game you are at. So if you have no badges, they will face you with level 10 Pokemon but if you have 1 badge they will face you with level 15 Pokemon. This is the script I have made for it.
Spoiler:
'---------------
#org 0x8084DA
lock
faceplayer
textcolor 0x0
compare 0x4012 0x0
if 0x1 goto 0x8808502
compare 0x4012 0x1
if 0x1 goto 0x880851B
compare 0x4012 0x2
if 0x1 goto 0x8808534
release
end
It works Perfectly except for the fact that when the Player leaves the map and comes back, the OW runs back at the player and says 'Talking 3'. If these is a way to make the OW not at the player ever again after the battle has taken place I would love to know.
The way I thought of fixing this way by putting a line of code in the script that changes the OWs 'Trainer' status to be 00 from 01. However I don't know how to do that.
If anyone knows how to fix this issue, or a code that can change the an OWs Trainer Status, I would be very greatful. Thanks!
So with JPANs Hack Applier, He has made it so trainer battle scripts don't always have to start with the trainerbattle part in the script. Now when you change the 'Unknown' in Advanced Map to anything but 00, you can make the script start with anything and the trainer will run up to you. This is all great, however I'm not happy with it.
I know that this is a thing that JPAN had (cuz I've used it), but where did you find it saying that it exsisted?? I checked his forum and the manual, but can't seem to find where he says that you can run scripts with the trainer box active.
It works Perfectly except for the fact that when the Player leaves the map and comes back, the OW runs back at the player and says 'Talking 3'. If these is a way to make the OW not at the player ever again after the battle has taken place I would love to know.
Don't think there is a fix for this, but I've got a somewhat messy way of having it work (bare with me I haven't tested it, but in theory it should work):
Spoiler:
Set 2 person events, both of them the same, except for the 'script' and the 'PersonID', and the 2nd person having 'trainer' set to "00", while person 1 has it set to "01".
Have your 1st person be the one that does the battle you want, and when the battle is complete do 'setflag 0xYYYY' the Y's being the PersonID, and after do 'clearflag 0xZZZZ' the Z's being the PersonID for the 2nd person.
On the 2nd person, have their script be the "you beat me" speech they have w/ no battle, just a simple msgbox,release,end thingy.
Person 2 also has to be set to invisible prior to this so that he/she will appear, though I'm not sure if the OW will disappear after a map change, so the best thing to do here, is to set the PersonID flag before even getting to that person (maybe in the 1st intro script or something like that.)
If this doesn't work, or I didn't explain it good enough, PM/VM me and I'll try to help you out.
I know that this is a thing that JPAN had (cuz I've used it), but where did you find it saying that it exsisted?? I checked his forum and the manual, but can't seem to find where he says that you can run scripts with the trainer box active.
Don't think there is a fix for this, but I've got a somewhat messy way of having it work (bare with me I haven't tested it, but in theory it should work):
Spoiler:
Set 2 person events, both of them the same, except for the 'script' and the 'PersonID', and the 2nd person having 'trainer' set to "00", while person 1 has it set to "01".
Have your 1st person be the one that does the battle you want, and when the battle is complete do 'setflag 0xYYYY' the Y's being the PersonID, and after do 'clearflag 0xZZZZ' the Z's being the PersonID for the 2nd person.
On the 2nd person, have their script be the "you beat me" speech they have w/ no battle, just a simple msgbox,release,end thingy.
Person 2 also has to be set to invisible prior to this so that he/she will appear, though I'm not sure if the OW will disappear after a map change, so the best thing to do here, is to set the PersonID flag before even getting to that person (maybe in the 1st intro script or something like that.)
If this doesn't work, or I didn't explain it good enough, PM/VM me and I'll try to help you out.
The thing about your suggestion is that pretty much every trainer in my game is going to be using this formula so I need to make it as short as possible without using many flags and taking up as little data as possible.
I guess another way to make this work would to be to ask this question. Is there a way to make an OW run up to you to battle without Using a level Script or ticking off the Trainer Box in Advanced Map?
The thing about your suggestion is that pretty much every trainer in my game is going to be using this formula so I need to make it as short as possible without using many flags and taking up as little data as possible.
I guess another way to make this work would to be to ask this question. Is there a way to make an OW run up to you to battle without Using a level Script or ticking off the Trainer Box in Advanced Map?
Oh ok! I see now, as far as I know, there is NO other solution to this, though you may be able to find some sort of fix if you ask KarateKid, he appears to know more of the technical issues with the engine, I'm just simplifying the guide.
Oh ok! I see now, as far as I know, there is NO other solution to this, though you may be able to find some sort of fix if you ask KarateKid, he appears to know more of the technical issues with the engine, I'm just simplifying the guide.
Thanks for the help. I've already messaged him, and I got nothing. I haven't worked on my game in a year and wasn't sure if we was still active on this website.
Sorry I not have a problem if someone can help me, I do not work the script to give evs and do not know why I'm using the patch if mrdollsteak not have anything to do.