With this command you can add texture replacements similar to how a content pack replaces textures.
This is especially useful when, for example, you have multiple supported languages and want to replace certain textures with localized versions.
The file that is required is in the same format as the exceptions.dat file in content packs, but only supports texture replacement entries.
The replaced texture list is cleared when quitting the current save game.
Content Packs should still work, even with the replaced textures.
Also update the scriptlibrary for dopokedex.
`<Pokedex.PokemonCaught(ID)>` Returns if the specified Pokémon has been caught.
`<Pokedex.PokemonSee(ID)>` Returns if the specified Pokémon has been seen.
Also made each Script Delay be defined with an identifier so you can have multiple delays running at the same time!
* arg0 = Identifier
* arg1 = Script Path
* arg2 = Delay Type (Steps, ItemCount)
// Steps
* arg3 = Amount of steps
* arg4 = Whether to display the remaining steps in the start menu
//ItemCount
* arg3 = Item ID
* arg4 = Compare Type (Equal, Below, EqualOrBelow, Above, EqualOrAbove)
* arg5 = Item Amount
With the ItemCount type you can run a script when you do or do not have a certain amount of items
@Player.RemoveItemData(LevelPath,ItemIndex)
Makes the specified item index of the specified map spawn again after it has been found.
LevelPath (str) - Path to the map file (including .dat) relative to "Content\Maps\"
ItemIndex (int) - Index of the ItemObject on the map (first argument in the object's AdditionalValue)
@pokemon.select has an extra argument. If it is set to an attack ID, it will be visible which Pokémon can learn that move while selecting.
Added @Pokemon.CanLearnAttack(PartyIndex,AttackID)
Returns if the Pokémon can learn the specified move.
@Pokemon.NewRoaming(RoamerID,PokémonID,Level,regionID,startLevelFile,MusicLoop,[Shiny],[ScriptPath])
RoamerID & ScriptPath are new.
* RoamerID (int) = A required identifier for the roaming Pokémon, can be used in scripts.
* ScriptPath (str) = Path to a script file to execute after every encounter with any roaming Pokémon
Sets the Ride Type of the current map.
Possible values for "int": 0 = Depends on CanDig and CanFly tags, 1 = Can ride, 2 = Can not ride, 3 = Can't stop riding once started
@Pokemon.Ride([pokeIndex])
Makes a Pokémon in the player's party use the field move Ride. If the argument is left empty, the first Pokémon who knows Ride gets selected.
pokeIndex (int) [optional, defaults to -1] = the party index of a Pokémon
<Pokémon.LevelAttacks(Index,[MaxLevel])>
Returns a string of every move the Pokémon can learn at or below a certain level
* Index (int) = Index of a Pokémon in the player's party
* MaxLevel (int) [optional] = Every move the Pokémon can learn at or below the level specified by this argument is added to the string. When this argument is left out or set to "-1", it will default to the Pokémon's current level.
@Pokemon.SetStatus(index,status)
index = Index of the Pokémon in the player's party
status = the desired status to give the Pokémon (possible values: "brn", "frz", "prz", "psn", "bpsn", "slp", "fnt")
@Script.Delay(ScriptPath,DelayType,DelayValue)
Executes a script file after something happened (like having moved a certain amount of steps)
@Script.ClearDelay(ScriptPath,DelayType,DelayValue)
Clears the register created with @script.delay, preventing the script from being executed.
<script.delay(ReturnType)>
Returns a different thing depending on what you write for ReturnType:
"type" - returns what kind of trigger the script delay uses (only "steps" atm)
"script" - returns the script that will be executed after the delay ended
"value" - returns when the trigger ends, like how many steps are left for example
@Player.SetScriptSteps(stepAmount,scriptPath)
Executes a script file after having moved the given amount of steps.
@Player.ClearScriptSteps
Clears the register created with @Player.SetScriptSteps, preventing the script from being executed.
<Player.ScriptSteps>
Returns the amount of steps before the script as defined by @Player.SetScriptSteps is executed.
@Music.ForcePlay(song)
Changes the currently playing music to a new one and prevents the music from being changed by warps or surfing/riding and such.
@Music.Unforce
Allows warps and surfing/riding etc. to change the music again.
@item.select(AllowedPages,AllowedItems)
Opens an item select screen with only the specified item type pages (separated with ";", e.g. "0;1;2" or "standard;medicine;plants") and possible item IDs (single items separated with ";", or with a "-" if you want a range, e.g. "2000-2066"
Both variables are optional. If AllowedPages is empty, all pages are allowed. If AllowItems is empty, all items are allowed.
<inventory.selected>
Returns the ID of the item selected in the screen opened by @item.select(AllowedPages,AllowedItems)
@Environment.SetEnvironmentType(ID)
This command temporarily sets the "EnvironmentType" parameter of the current map until a map change, which also changes the sky texture and sometimes adds particles. Value can be 0-5.
0 = Outside
1 = Inside
2 = Cave
3 = Dark (also makes all entities darker)
4 = Underwater (adds air bubble particles)
5= Forest
Added @player.stopmovement before waterfall scripts to make sure the player doesn't move further than they should
Fixed spelling error in code: NotifcationTypes -> NotificationTypes
Added commands to ScriptLibrary that were missing