Version 2 Scripts

From Pokémon 3D Wiki
Revision as of 05:38, 15 July 2013 by Blazer257 (talk | contribs)
Jump to navigation Jump to search

Version 2 scripts were started in version 0.32. Any script in Version 2 must have "version=2" as the first line of the script.

Commands are written as @command.subcommand and are no longer case sensitive. All commands require a subcommand.

Constructs were also expanded to be <construct.subconstruct> and can be used with switches to

Commands

Commands always have a subcommand. All combinations will be listed below.

The table is split into sections by Command.

* Unless otherwise specified a bool can be either 1(on) or 0(off).

** Unless otherwise specified X,Y,Z is a three dimensional position.

Subcommand Job Inputs

@Battle

@Camera

@Entity

@Environment

@Item

@Level

@Music

.play(str) Plays song 'str' until the song is changed by another script or a new map. str - The song file to play.
.setmusicloop(str) Makes song 'str' the map's song until the player leaves the map or this command is used again. str - Song file to play.

@NPC

@Player

@Pokemon

@Register

.register(str) Registers str in the register file of the save. str - the string to register
.unregister(str) Unregisters str from the register file of the save. str - the string to unregister

@Screen

@Script

@Sound

.play(str) Play sound str. str - the sound to play.

@Storage

.clear Clears all stored values. None
.set(str1,str2,str3) Creates a storage with type of str 1, name of str2, and value of str3. str1 - the type of value being stored(integer, string, Pokemon, boolean, item)
str2 - The name of the Value.
str3 - The Value to be stored.

@Text

.show(str) Displays str str - The text to display.

@Value

Switches

Switches do a comparison between a given paramater and a construct. examples:

:if:<pokemon.level(int)>>3

:if:<register.registered(str)>=true

switches may use multiple paramaters as well by using <and> and <or> Examples:

:if:<pokemon.level(int)><3 <and> <register.registered(str)>=true

:if:<pokemon.level(int)>>=3 <or> <register.registered(str)>=false

:if:

:if: switches start with the line containing

:if:

the next line that follows must be

:then

to switch to the opposite of the condition use, the else statement is not necessary.

:else

to end an if statement use:

:endif

here is an example of the basic layout:

:if:conditions
:then
scripts to execute if conditions are met.
:else
scripts to execute if conditions are not met.
:endif

:select:

:select: switches begin with a select statement and a condition

:select:<player.position>
when: is used to switch the script, if the value(s) after the :when: matches that returned by the construct it will execute the scripts after it
:when:0,0,0

to end a select statement use

:endwhen

here is an example:

:select:condition
:when:value1
Scripts to execute if value1=condition.
:when:value2
Scripts to execute if value2=condition.
:endwhen

@options.show()

@options.show(str,str,...) displays at most ten options at a time to the player to choose from. :when:, and :endwhen are used here similarly to the way they are used in select Exmple:

@options.show(Yes,No)
:when:Yes
Scripts to execte when the layer chooses Yes.
:when:No
Scripts to execte when the layer chooses No.
:endwhen

if a choice is not given a coinciding :when: then it will simply skip to the :endwhen

:end

:end is used to end the script.

As a script is executing if it comes to :end through the normal following of the scripts(including switches) the script will cease to execute and control will return to the player. Example:

version=2
:if:register.registered(str1)>=true
:then
:end
:endif
@text.show(str2)
@register.register(str1)
:end

In the example the player will activate the script and not have registered str1, so it will skip to after the :endif, display str2, register str1, and then end. The next time the player activates the script they will have registered str1 and thus begin executing the :if: statement. This will end the script without displaying str2 or registering str1.

If a script does not reach an :end, it will continue looping the script til it does.

Constructs

Constructs can be used in place of any parameter for command and are used with :if: and :select: statements.
They can even be used in trainer files Constructs always have a subconstruct. All combinations will be listed below.

Constructs that return numbers such as <pokemon.level(int)> may be used in math mathmatical functions including:

  • +: Addition
  • -: Subtraction
  • /: Division
  • *: Multiplication
  • ^: Exponent
  • %: Percent
  • =: Equals
  • >: Greater Than
  • <: Less Than
  • m: Mod (ex. 25m4=1)
  • r: Root(ex. 27r3=3)

The table is split into sections by Construct.

* Unless otherwise specified X,Y,Z is a three dimensional position.

** Unless otherwise specified bool is either true or false.

Sub-construct Inputs Output

Entity

.additionalvalue(int) int - an Entity ID The contents of the AdditionalValue of the given entity.
.collision(int) int - an Entity ID A bool representing the collision of the given entity.
.opacity(int) int - an Entity ID An int representing the percent see through the given entity is.
.position(int) int - an Entity ID The X,Y,Z position of the given entity.
.scale(int) int - an Entity ID The X,Y,Z scale of the given entity
.visible(int) int - an Entity ID A bool representing the visibility of the given entity.

Environment

.daytime None night, morning, day, or evening
.daytimeid None The ID for the time of day.
night=0, morning=1, day=2, or evening=3
.season None winter, spring, summer, or fall
.seasonid None The ID for the season.
winter=0, spring=1, summer=2, or fall=3
.day None Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, or Saturday
.dayinformation None day,daytime
.week None The current week in the year.
.year None The current year(e.g. 2013)
.weather None Returns the Weather effecting the current map.
Clear, Rain, Snow, Underwater, Sunny, Fog , Sandstorm
.mapweather None Same as .weather.
.currentmapweather None Same as .weather.
.regionweather None Returns the random weather effecting the whole area.
Uses the same names as .weather.
.weatherid None Returns the ID of the Weather effecting the current map.
Clear=0, Rain=1, Snow=2, Underwater=3, Sunny=4, Fog=5, Sandstorm=6
.mapweatherid None Same as .weatherid.
.currentmapweatherid None Same as .weatherid.
.regionweatherid None Returns the ID of random weather effecting the whole area.
Uses the same IDs as .weatherid.
.canfly None A bool representing if the player can fly from the map.
.canteleport None A bool representing if the player can teleport from the map.
.candig None A bool representing if the player can dig from the map.
.wildpokemongrass None A bool representing if the player can find Pokémon in the grass on the map.
.wildpokemonwater None A bool representing if the player can find Pokémon in the water on the map.
.wildpokemoneverywhere None A bool representing if the player can find Pokémon on the map.
.isdark None A bool representing the darkness of the map.

Inventory

.countitem(int) int- Item ID. The amount of the given item in the bag.
.countitems None The number of Items in the bag.
.name(int) int- Item ID. The name of the given item.

Level

.mapfile None Returns the file path of the current map relative to the maps folder.
.levelfile None Same as .mapfile.
.filename None Returns the name of the current map file without extension.

NPC

.action(int) int - ID of an NPC on the map. Returns the action value of the given NPC.
.additionaldata(int) int - ID of an NPC on the map. Returns the additionaldata of the given NPC.
.exists(int) int - ID of an NPC on the map. Checks if there is an NPC on the map with that ID.
.facing(int) None Returns the ID of the direction the player is facing.
.hasmoverectangles(int) int - ID of an NPC on the map. Returns a bool reflecting if the given NPC has moverectangles assigned.
.id(int) int - ID of an NPC on the map. Returns the ID of the given NPC.
.ismoving int - ID of an NPC on the map. Returns a bool representing if the player is moving or not.
.moved(int) int - ID of an NPC on the map. Returns the distance moved by that NPC.
- int - ID of an NPC on the map. Returns the type of movement used by the given NPC.
.name(int) int - ID of an NPC on the map. Returns the name of the given NPC.
.position(int) int - ID of an NPC on the map. Returns the position of the given NPC.
.skin(int) int - ID of an NPC on the map. Returns the name of the skin used by the given NPC.

Phone

.callflag None Returns calling if you are calling or receiving if someone is calling you.
.got None A bool representing if the player has received the Phone.

Player

.badges None Returns the number of badges obtained.
.bp None Returns the amount of battle points the player has.
.compass None Returns the name of the direction the player is facing.
.facing None Returns the ID of the direction the player is facing.
.gender None Returns 1 if male, 0 if Female.
.ismoving None Returns a bool representing if the player is moving or not.
.hasbadge(int) int - A badge ID. Returns a bool representing if the player has that badge.
.money None Returns the amount of money the player has.
.name None Returns the name of the player.
.position None Returns the player's position.
.skin None Returns the name of the skin used by the player.
.thirdperson None Returns a bool representing if third person mode is on.
.velocity None Returns the velocity of the player.

Pokemon

.additionaldata(int) int - Party index of a Pokémon(0-5) Returns the additionaldata of the given party member.
.atk(int) int - Party index of a Pokémon(0-5) Returns the attack stat of the given party member.
.attackname(int1,int2) int1 - Party index of a Pokémon(0-5)
int2 - Attack index of a Pokémon's attack(0-3).
Returns the name of the given attack from the given party member.
.catchball(int) int - Party index of a Pokémon(0-5) Returns the catchball of the given party member.
.catchlocation(int) int - Party index of a Pokémon(0-5) Returns the catchlocation of the given party member.
.catchmethod(int) int - Party index of a Pokémon(0-5) Returns the catchmethod of the given party member.
.count None Returns the number of Pokémon in the party.
.countattacks(int) int - Party index of a Pokémon(0-5) Returns the number of attacks on the given party member.
.defense(int) int - Party index of a Pokémon(0-5) Returns the defense stat of the given party member.
.freeplaceinparty None Returns a bool representing if there is an empty slot in the party.
.friendship(int) int - Party index of a Pokémon(0-5) Returns the friendship value of the given party member.
.has(int) int - dex number of a Pokémon Returns a bool representing if the given Pokémon is in the party.
.hasattack(int1,int2) int1 - Party index of a Pokémon(0-5)
int2 - Attack index.
Returns a bool representing if the given party member has the given attack.
.hasegg None Returns a bool representing if there is an egg in the party.
.hasfullhp(int) int - Party index of a Pokémon(0-5) Returns a bool representing if the given party member has full hp.
.hp(int) int - Party index of a Pokémon(0-5) Returns the current HP of the given party member.
.id(int) int - Party index of a Pokémon(0-5) Returns the dex number of the given party member
.isegg(int) int - Party index of a Pokémon(0-5) Returns a bool representing if the given party member is an egg.
.islegendary(int) int - Party index of a Pokémon(0-5) Returns a bool representing if the given party member is a legendary.
.isshiny(int) int - Party index of a Pokémon(0-5) Returns a bool representing if the given party member is shiny.
.item(int) int - Party index of a Pokémon(0-5) Returns the name of the item held by the given party member.
.itemid(int) int - Party index of a Pokémon(0-5) Returns the id of the item held by the given party member.
.itemname(int) int - Party index of a Pokémon(0-5) Returns the name of the item held by the given party member.
.level(int) int - Party index of a Pokémon(0-5) Returns the level of the given party member.
.maxhp(int) int - Party index of a Pokémon(0-5) Returns the max HP of the given party member.
.maxpartylevel None Returns the highest level of among the Pokémon in the player's party.
.name(int) int - Party index of a Pokémon(0-5) Returns the name of the given party member.
.nature(int) int - Party index of a Pokémon(0-5) Returns the nature of the given party member.
.nickname(int) int - Party index of a Pokémon(0-5) Returns the nickname of the given party member.
.nopokemon None Returns a bool representing if there are no Pokémon in the party.
.number(int) int - Party index of a Pokémon(0-5) Returns the dex number of the given party member.
.ot(int) int - Party index of a Pokémon(0-5) Returns the ot of the given party member.
.ownpokemon(int) int - Party index of a Pokémon(0-5) Returns a bool representing if the given party member was caught by the current trainer.
.selected None Returns the Party index of the Pokémon selected using @Pokemon.select.
.selectedmove None Returns the index of the Pokémon's attack selected using @Pokemon.selectmove.
.spatk(int) int - Party index of a Pokémon(0-5) Returns the spec. attack stat of the given party member.
.spdef(int) int - Party index of a Pokémon(0-5) Returns the spec. defense stat of the given party member.
.speed(int) int - Party index of a Pokémon(0-5) Returns the speed stat of the given party member.
.trainer(int) int - Party index of a Pokémon(0-5) Returns the catch trainer of the given party member.

Register

.count None Returns the number of registers.
.registered(str) str - A register string. A bool representing if the string has been registered.

Storage

.count(str) str1 - The type of values to count(integer, string, Pokemon, boolean, item).
Does not need to be defined.
Returns the number of different stored values of that type.
If str is not defined then it returns a count of all types.
.get(str1,str2) str1 - The type of value is stored(integer, string, Pokemon, boolean, item).
str2 - the name of the stored value.
Returns the value stored as str2.

System

.booltoint(str) Either "true", "false", or a construct that returns one of those. Returns 0 for false and 1 for true.
.calcint(str) A str representing an integer, or a Construct that returns one. Returns the str as an integer.
.calcsng(str) A str representing a single, or a Construct that returns one. Returns the str as a single. (A single is a number that is a decimal)
.dayofyear None Returns the day of the year as a number.
.random(int1,int2) int1 - If it is the only argument then it is the max of the range, otherwise it is the min.
int2 - The max of the range. Does not need to be defined.
Returns a random integer between the int1 and int2 if both are defined.
If int2 is not defined then it chooses from between 1 and int1.(Ranges are inclusive)
.unixtimestamp None Returns the Unix time stamp. (See here for more details.)
.year None Returns the current year.

Value

.get(str) str - The name of the stored value. Returns the value stored as str.
Game Folder
Content ContentPacks GameModes Saves Screenshots Game Executable
Pokemon Data ContentPack Folder GameMode folder Savegame folder Version History
Data Maps Moves Scripts Control Files Content GameMode.dat Party.dat Player.dat Options.dat
poke battle structures V1 V2 trainer worldmap