Difference between revisions of "Scripts"

From Pokémon 3D Wiki
Jump to navigation Jump to search
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
There are numerous scripts that can be used withing the Pokemon 3D game.
The scripts folder contains all of the scripts for in-game events. It also contains the Trainer files and the files for the world maps.
 
Starting with version 0.32 a second scripting language known as version=2 was implemented into the game. Starting with version 0.33 all new scripts for the main game are made in version=2 scripts.
 
==[[Version 1 Scripts]]==
These scripts follow the @Command:subcommand pattern with not all Commands needing sub commands.


This is(will be) a full list of them, how to use them and what they do.
Version 1 is Case Sensitive.


== Commands ==
These scripts are still supported but are not used by the dev team when making new scripts.
Commands often have a subcommand. All combinations will be listed below.


<nowiki>* unless otherwise specified a bool can bee either 1(on) or 0(off).
==[[Version 2 Scripts]]==
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.


** Unless otherwise specified X,Y,Z is a three dimensional position.</nowiki>
Commands are written as @command.subcommand and are no longer case sensitive. All commands require a subcommand.
{|class="wikitable"
! Subcommand
! Job
! Inputs
|-
| @Player:wearskin(text)
| Change the player's skin.
| text - the name of a skin in /content/textures/NPC.
|-
| @Player:move(#)
| Move the player in a straight line
| # - Number of step.
|-
| @Player:turn(#)
| Turns the player to the left
| # - Amount of quarter turns.
|-
| @Player:turnto(#)
| Turns to a specific direction.
| # - 0-3, specifies the direction to turn to.
|-
| @Player:warp(X,Y,Z)
| Warp to a specified place.
| Position values.
|-
| @Player:warp(text,X,Y,Z,R)
| Warps to a different map.
|
* text - Map name.
* X,Y,Z,R - Position and Rotation.
|-
| @Pokemon:remove(#)
| Removes a Pokemon from the party.
| # - 0-5, Party index of a Pokemon.
|-
| @Pokemon:add(#1,#2,text1,#3,text2,bool,text3)
| Adds a Pokemon to your party.
|
* #1 - Pokemon's National Dex number.
* #2 - Level.
* text1 - Catch Method. Optional.
* #3 - Catch Ball. Optional.
* bool - Is in an egg or not. Optional.
* text2 - Catch Trainer. Optional.
|-
| @Pokemon:Setadditionalvalue(#,info)
| Puts info into the AdditionalValue part of a pokemon's save. Example use: designate which Unown.
|
* # - 0-5, Party index of a Pokemon.
* info - Stuff to be added to AdditionalValue.
|-
| @Pokemon:setNickName(#,text)
| Change a Pokemon's name.
|
* # - 0-5, Party index of a Pokemon.
* text - New Name.
|-
| @Pokemon:setStat(#1,text,#2)
| Set a Pokemon's stat to a specific value.
|
* #1 - 0-5, Pary index of a Pokemon.
* text - Name of the stat to adjust. Possible values: hp, chp, attack, defense, spattack, spdefense, speed.
* #2 - Stat value.
|-
| @Pokemon:clear
| hrm?
| no value
|-
| @Pokemon:clearattacks(#)
| Removes all attacks from a specified pokemon.
| # - 0-5, Party index of a Pokemon.
|-
| @Pokemon:Addattack(#1,#2)
| Adds an attack to a specific Pokemon.
|
* #1 - 0-5, Party index of a Pokemon.
* #2 - [[Moves|Move ID number.]]
|-
| @Pokemon:Removeattack(#1,#2)
| Removes an attack from a Pokemon.
|
* #1 - 0-5, Party index of a Pokemon.
* #2 - 0-3, Move location ID(its spot on the Pokemon).
|-
| @Pokemon:setshiny(#,bool)
| Make a Pokemon shiny or not.
|
* # - 0-5, Party index of a Pokemon.
* bool - Turns the shiny on or off.
|-
| @NPC:remove(#)
| Removes an NPC from the map.
| # - NPC ID.
|-
| @NPC:Position(#,X,Y,Z)
| Moves an NPC to a specific point.
| # - NPC ID.
|-
| @NPC:register(text)
|
|
|-
| @NPC:unregiser(text)
|
|
|-
| @NPC:wearskin(#,text)
| Change the skin used on an NPC. Doesn't change until it is out of view.
|
* # - NPC ID.
* text - skin name in /Content/Textures/NPC.
|-
| @Music:text
| Plays designated music.
| text - name of a file in /Content/Songs/.
|-
| @Sound:text
| Plays designated sound.
| text - name of a file in /Content/Sounds/.
|-
| @Options:text,text,...
| Creates a menu with multiple options. Uses the :when construct(see below)
| text - The options. Can be as many as you want.
|-
| @Text:text
| Displays text '~' breaks it to a new line, and '*' resets the text box.
| text - the display text
|-
| @Camera:set(X,Y,Z,#1,#2)
|
|
|-
| @Camera:reset
|-
| @Camera:yaw(#)
|-
| @Camera:pitch(#)
|-
| @Camera:position(X,Y,Z)
|-
| @Camera:x(#)
|-
| @Camera:y(#)
|-
| @Camera:z(#)
|-
| @Wait:#
|-
| @Action:StorageSystem
| Activates the storage system.
| No input.
|-
| @Action:ApricornKurt
| Opens up the Appricorn menu to have 'Kurt' make you an appricorn.
| No input.
|-
| @Action:DayCare(#1,#2)
|-
| @Action:Trade(#)
|-
| @Action:getpokemon(see@Pokemon:add)
| same as @Pokemon:add
|
|-
| @Action:townmap,text
| Opens the town map.
| text - region name. Only Johto is currently available.
|-
| @Action:Network
|-
| @Action:Opendonation
|-
| @Action:RecievePokedex
| Gives you the Pokedex.
| No input.
|-
| @Action:RenamePokemon(#)
| Allows a player to rename a Pokemon.
| # - Party index Number
|-
| @Action:RenameRival
| Rename your rival.
| No input.
|-
| @Action:PlayCry(#)
| Plays the cry of the specified Pokemon
| # - National Dex Number.
|-
| @Action:Show0Pokemon(bool)
| Turns Following Pokemon on or off.
|-
| @Action:ToggleThirdPerson
| Change between third and first person.
| No input.
|-
| @Action:ActivateThirdPerson
| Goto third person.
| No input.
|-
| @Action:DeactivateThirdPerson
| Goto first person
| No input.
|-
| @Action:SetFont(text)
| Change the font
| text - Can be standard or Unown.
|-
| @Action:SetRenderDistance(#)
| Set the Renderdistance.
| # - 0-4, A render distance option.
|-
| @Action:wearskin(see @Player:wearskin)
| see @Player:wearskin.
| see @Player:wearskin.
|-
| @Action:ToggleDarkness
| Turn darkness on or off.
| No input.
|-
| @MessageBulb:#,X,Y,Z
|-
| @Battle:Wild(#1,#2)
| Start a wild pokemon battle
|
* #1 - National Dex Number.
* #2 - Level.
|-
| @Battle:Trainer(text)
| Battle a trainer
| text - Trainer file in /Scripts/Trainer/.
|-
| @Trainer:text
| Same as @Battle:Trainer.
| Same as @Battle:Trainer.
|-
| @Achievement:text<nowiki>|</nowiki>text
|-
| @Register:text
| Adds text to Register.dat.
| text - What to add.
|-
| @Unregister:text
| Removes text from Register.dat.
| text - What to remove.
|-
| @Script:text
| Activates a script file.
| text - Script in /Scripts/.
|-
| @Heal
| Heals all Pokemon
| No input.
|}


== Constructs ==
Constructs were also expanded to be <construct.subconstruct> and can be used with switches too
Constructs are functions in scripts that are not doing something in the game but rather with the script itself.
Constructs start with a : at the beginning of the line and are case sensitive!
Here's the list of constructs:


{|class="wikitable"
There are numerous scripts that can be used withing the Pokemon 3D game.
! Construct
! Use
|-
| :end
| Ends the script.
|-
| :if
| See Below.
|-
| :then
| Follows an :if statement. Continues here if true.
|-
| :else
| Continues here when an :if statement if False.
|-
| :endif
| Ends an :if statement.
|-
| :when
| Works as a switch for the @options command.
|-
| :endwhen
| Ends a when statement
|}


=== :if statements ===
==[[Trainer Files]]==
:if statements can be either 'if true' statements or 'if false' statements
Trainer files all have the extension .trainer.
There are 2 types of trainer files, one that is less descriptive and one that is more.


'if true:'
== [[World Map]] ==
<pre>:if:register(elm1)</pre>
World map files are stored in the /Scripts/worldmap/ folder and are named for the region the represent.


'if false'
As part of the header for a map file the {"CurrentRegion"{str[regionname]}} is listed which dictates which map is looked at when viewing the town map or when flying.
<pre>:if:not register(elm1)</pre>


:if statements can take a variety of conditions as the argument. Here is the full list.
This feature was implemented in version 0.3 along with [[Fly]].


{|class="wikitable"
{{FilePaths}}
! Argument
! Variable
! Description
|-
| :register(text)
| text - A register value in the register.dat file of the save folder.
| Checks to see if the 'text' is in the register.dat file. Considered true if found.
|-
| :daytime(#)
| # - A time of day value. 0 = night, 1 = morning, 2 = Day, 3 = Evening.
| Checks the time of day against the given value.
|-
| :freeplaceinparty
| no variable
| Checks to see if your party is full.
|-
| :nopokemon
| No variable
| Checks to see if you have any Pokemon.
|-
| :day(#)
| # - A 'day' code. (0-6) 0 = Sunday and goes from there.
| Checks if the current weekday matches the code given.
|-
| :aurora
| no variable
| Checks for the 'Aurora' effect?
|-
| :random(#)
| # - The max value.
| Produces a Random integer?
|-
| :position(#,X,Y,Z)
|
* # - The NPC ID of an NPC on the Map. Can also be 'Player' to check the player's position
* X,Y,Z - A three coordinate position.
| Checks if the given NPC(or the player) is in the given place
|-
| :weather(#)
| # - A weather ID. 0 = Clear, 1 = Rain, 2 = Snow, 3 = Bubbles
| Checks the map weather against the given weather. This is not the random weather effect but rather permanent weather such as Route 33's eternal rain.
|-
| :regionWeather(#)
| # - A weather ID. 0 = Clear, 1 = Rain, 2 = Snow, 3 = Bubbles
| Checks to see if the random weather is the same as the given weather.
|-
| :hasBadge(#)
| # - the number of a gym badge. Remember Brock = 1, Falkner = 9.
| Checks if you have the given badge.
|-
| :hasItem(#)
| # - [[Items|An Item's ID number.]]
| Checks if the given item is in your bag
|}

Latest revision as of 06:36, 7 September 2014

The scripts folder contains all of the scripts for in-game events. It also contains the Trainer files and the files for the world maps.

Starting with version 0.32 a second scripting language known as version=2 was implemented into the game. Starting with version 0.33 all new scripts for the main game are made in version=2 scripts.

Version 1 Scripts

These scripts follow the @Command:subcommand pattern with not all Commands needing sub commands.

Version 1 is Case Sensitive.

These scripts are still supported but are not used by the dev team when making new scripts.

Version 2 Scripts

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 too

There are numerous scripts that can be used withing the Pokemon 3D game.

Trainer Files

Trainer files all have the extension .trainer. There are 2 types of trainer files, one that is less descriptive and one that is more.

World Map

World map files are stored in the /Scripts/worldmap/ folder and are named for the region the represent.

As part of the header for a map file the {"CurrentRegion"{str[regionname]}} is listed which dictates which map is looked at when viewing the town map or when flying.

This feature was implemented in version 0.3 along with Fly.

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