mirror of https://github.com/pret/pokeemerald.git
Added a new scripting macro; setmonball
parent
5d2f3b6f0f
commit
a5c078945b
|
@ -9,6 +9,7 @@ All specials need to be added to the table in `data/specials.inc` following othe
|
||||||
- [Check an Object at a Position](#checkobjectat)
|
- [Check an Object at a Position](#checkobjectat)
|
||||||
- [Get Seen/Caught Mon](#getseenmon-and-getcaughtmon)
|
- [Get Seen/Caught Mon](#getseenmon-and-getcaughtmon)
|
||||||
- [Set Seen/Caught Mon](#setseenmon-and-setcaughtmon)
|
- [Set Seen/Caught Mon](#setseenmon-and-setcaughtmon)
|
||||||
|
- [Set Mon Ball](#setmonball)
|
||||||
|
|
||||||
### getobjectposition
|
### getobjectposition
|
||||||
|
|
||||||
|
@ -181,3 +182,33 @@ Keep in mind that in order to access `FLAG_SET_SEEN` and `FLAG_SET_CAUGHT`, you
|
||||||
In other words, you need to add a `#include "pokedex.h"` to the list of headers at the top of the file.
|
In other words, you need to add a `#include "pokedex.h"` to the list of headers at the top of the file.
|
||||||
|
|
||||||
To use them, simply type either `setseenmon` or `setcaughtmon` in your script, followed by the species ID. For example, `setcaughtmon SPECIES_MAGIKARP`.
|
To use them, simply type either `setseenmon` or `setcaughtmon` in your script, followed by the species ID. For example, `setcaughtmon SPECIES_MAGIKARP`.
|
||||||
|
|
||||||
|
### setmonball
|
||||||
|
|
||||||
|
Credits to Lunos.
|
||||||
|
|
||||||
|
This command will let you modify the caught ball of a Pokémon that is chosen by the Player.
|
||||||
|
|
||||||
|
1. First, our scripting macro:
|
||||||
|
|
||||||
|
```c
|
||||||
|
@ Changes the caught ball of a selected Pokémon
|
||||||
|
.macro setmonball ballId:req
|
||||||
|
special ChoosePartyMon
|
||||||
|
waitstate
|
||||||
|
setvar VAR_TEMP_1, \ballId
|
||||||
|
special SetMonBall
|
||||||
|
.endm
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Next, our special function. You can add it to any .c file, although since it's meant to be used from the overworld, I suggest `src/field_specials.c` specifically.
|
||||||
|
|
||||||
|
```c
|
||||||
|
void SetMonBall(void)
|
||||||
|
{
|
||||||
|
u8 ballId = VarGet(VAR_TEMP_1);
|
||||||
|
SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_POKEBALL, &ballId);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To use it, simply type `setmonball` in your script followed by the desired Poké Ball Item ID. For example, `setmonball ITEM_PREMIER_BALL`.
|
Loading…
Reference in New Issue