LuaAPI.wiki
author Wuzzy
Thu, 07 Apr 2016 19:48:44 +0100
changeset 862 d06141c36428
parent 861 ccbc115e68ad
child 863 825d0dcd739f
permissions -rw-r--r--
LuaAPI: Sudden Death disable
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
67
eecbb1c261bb Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 66
diff changeset
     1
#summary API for writing Lua scripts in Hedgewars.
284
365362b51148 This is cool stuff, let's put it on the project frontpage (adding "featured" tag)
sheepyluva@gmail.com
parents: 244
diff changeset
     2
#labels Featured
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
     3
741
8fa25c5a4967 LuaAPI: Add title
Wuzzy
parents: 692
diff changeset
     4
= Core Lua API documentation =
8fa25c5a4967 LuaAPI: Add title
Wuzzy
parents: 692
diff changeset
     5
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     6
== Introduction ==
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     7
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     8
Version 0.9.13 of Hedgewars introduced the ability to use Lua scripts to modify Hedgewars behaviour for different maps without having to recompile the whole game. The till then used triggers (only appeared in training maps) were removed.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     9
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    10
Lua is an easy to learn scripting language that’s implemented using open source libraries. If you’d like to learn more about Lua, have a look at [http://www.lua.org Lua's official homepage]. Even though its easy to learn syntax this wiki page won't explain all basics of using Lua, e.g. declaring variables or using control structures. There are tons of step-by-step tutorials and documentation available on the internet. Just throw “Lua” into your favourite search engine and give it a try.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    11
519
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    12
=== About this wiki page ===
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    13
This page tends to become outdated. For a list of undocumented functions, see [http://hw.ercatec.net/docs/lua_wiki_check.php].
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    14
519
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    15
<wiki:toc max_depth="4" />
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    16
859
16f26a7c87d9 LuaAPI: fix typo in title overview
Wuzzy
parents: 858
diff changeset
    17
== Overview ==
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    18
=== How Hedgewars handles Lua scripts ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    19
As of Version 0.9.20, Hedgewars supports Lua scripts for two similar tasks: Define tutorial missions, campaign missions or provide special map behaviour for precreated maps. It is also used for multiplayer scripts to create new game styles.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    20
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    21
=== Tutorial missions ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    22
Tutorial missions are located within text files inside `share/hedgewars/Data/Missions/Training`. The game will list all files with the lua extension inside this directory in the Training selection screen. You’ll find some premade example scripts within this directory that contain several comments on the script lines and what they do.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    23
567
17cf8a0c007f Link to [Missions].
almikes@aol.com
parents: 564
diff changeset
    24
See [Missions] for details.
17cf8a0c007f Link to [Missions].
almikes@aol.com
parents: 564
diff changeset
    25
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    26
=== Special maps ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    27
In addition to tutorial missions predrawn maps (maps not created using the random map creator) may contain a single lua script file named `map.lua`. If it’s there, it will be used once the map is played. This way it’s possible to play maps alone or over the internet using custom goals. Mission maps can be found in singleplayer mode under the “training” button and in multiplayer mode, it is selectable as a map type.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    28
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    29
See also [PresetMaps] for more information about such maps.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    30
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    31
=== How Lua scripts are used ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    32
Several parts of script files are executed multiple times. In general, the whole script file is read while loading the map. Declarations as well as function calls outside functions are executed at once. Later on the game will call special predefined function names at special occassions such as the creation of new game objects (called “gears”).
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    33
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    34
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    35
=== Important things to know ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    36
It is possible to play missions in multiplayer. However this requires all participating players to have the exact same version of the map files, including the `map.lua` script file. If this isn’t the case the game will probably desync and “kick” at least the one player using a different version of the map files. To avoid problems when running prepackaged maps, you should never modify any maps provided with the Hedgewars default package. Instead, create a copy of the existing map and modify this one. Feel free to share your work on the forums.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    37
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    38
Another thing to note is the current status of our scripting implementation. Similar to the whole game, this is still work in progress and we can’t guarantee that scripts working in this version will run in future revisions of the game as we might extend, change or rename parts of the scripting engine.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    39
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    40
=== Global variables/constants ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    41
Global variables are used by the game to interact with the scripts by passing and retrieving their values. While some of the variables are never read by the engine some allow you to modify the engine’s behaviour, e.g. the theme to be used for the current map.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    42
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    43
  	  	 
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    44
=== Functions called by the game: Event handlers ===
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    45
After successfully loading the Lua script the game will call the following functions on different occasions. To be used, they have to use the exact same name as defined below.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    46
478
7b95addbe9fc Move “color” into new data types section.
almikes@aol.com
parents: 477
diff changeset
    47
== Data types ==
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    48
This section defines some commonly used non-primitive parameter types which are used in multiple functions. This section is a bit incomplete at the moment.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    49
478
7b95addbe9fc Move “color” into new data types section.
almikes@aol.com
parents: 477
diff changeset
    50
=== Color ===
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    51
Some functions take a `color` parameter.
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    52
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    53
Colors are stored in RGB or RGBA format and are specified as a three- or four-byte number, respecively.
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    54
In 3-byte (RGB) colors, each byte represents a color component. The value 0 means no intensity and 255 is largest intensity of the component.
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    55
The first byte is for the red component, the second byte for the green component and the third byte for the blue component.
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    56
Four-byte (RGBA) colors use the first 3 bytes for the color components (like for the 3-byte colors) and the fourth byte is used for opacity, where 255 means maximum opacity and 0 means fully transparent (also called the “alpha channel”).
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    57
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    58
Specifying the color number becomes much easier if you write it in hexadecimal notation.
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    59
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    60
Examples for RGB (3-byte) colors:
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    61
<code language="lua">
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    62
c = 0x000000 -- black (R, G, B are all 0)
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    63
c = 0xFF0000 -- red
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    64
c = 0x00FF00 -- green
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    65
c = 0x0000FF -- blue
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    66
c = 0xFFFFFF -- white
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    67
c = 0x808080 -- gray (50%)</code>
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    68
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    69
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    70
== Globally available variables and constants ==
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    71
The following variables are made available by Hedgewars in Lua and can be used to quickly query a value. Lua scripts schould normally *not* write to these variables, only read from them.
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    72
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    73
=== General variables and constants ===
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    74
Here are some unsorted variables or constants which are available in Lua. You shouldn’t write to most of them.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
    75
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    76
|| *Identifier* || *Description* ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    77
|| `LAND_WIDTH` || The width of the landscape in pixels ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    78
|| `LAND_HEIGHT` || The height of the landscape in pixels ||
818
a80f855475b5 LuaAPI: Add LeftX, RightX, TopY, CursorX and CursorY
Wuzzy
parents: 790
diff changeset
    79
|| `LeftX` || X coordinate of the leftmost point of the landsacpe ||
a80f855475b5 LuaAPI: Add LeftX, RightX, TopY, CursorX and CursorY
Wuzzy
parents: 790
diff changeset
    80
|| `RightX` || X coordinate of the rightmost point of the landsacpe ||
a80f855475b5 LuaAPI: Add LeftX, RightX, TopY, CursorX and CursorY
Wuzzy
parents: 790
diff changeset
    81
|| `TopY` || Y coordinate of the topmost point of the landsacpe ||
819
80d8736efefa LuaAPI: special CursorX, CursorY values
Wuzzy
parents: 818
diff changeset
    82
|| `CursorX` || The X position of the cursor if the player is choosing a target. Otherwise, this is `-2147483648` ||
80d8736efefa LuaAPI: special CursorX, CursorY values
Wuzzy
parents: 818
diff changeset
    83
|| `CursorY` || The Y position of the cursor if the player is choosing a target. Otherwise, this is `-2147483648` ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    84
|| `WaterLine` || The y position of the water, used to determine at which position stuff drowns. Use `SetWaterLine` to change. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    85
|| `ClansCount` || Number of clans in the game (teams with the same color belong to one clan) ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    86
|| `TeamsCount` || Number of teams in the game ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    87
|| `TurnTimeLeft` || Number of game ticks (milliseconds) left until the current turn ends. You can change this variable directly. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    88
|| `GameTime` || Number of total game ticks ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    89
|| `TotalRounds` || Number of rounds that have passed ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    90
|| `CurrentHedgehog` || The hedgehog gear that is currently in play ||
125
b0b7654c6de6 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 123
diff changeset
    91
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    92
=== !GameFlags ===
557
7a25067aa32c fix link to gameflag functions
sheepyluva@gmail.com
parents: 556
diff changeset
    93
The !GameFlags are used to store simple boolean settings of the game.
7a25067aa32c fix link to gameflag functions
sheepyluva@gmail.com
parents: 556
diff changeset
    94
You can read/modify them using the [LuaAPI#GameFlags_functions GameFlags-Functions].
102
86cf695636c6 Added gfResetHealth to Gameflags section along with a note.
RedGrinner@gmail.com
parents: 101
diff changeset
    95
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    96
|| *Identifier* || *Description (active state)* ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    97
|| `gfOneClanMode` || Used when only one clan is in the game. This game flag is primarily used for training missions. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    98
|| `gfMultiWeapon` || TODO (Used in training missions.) ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    99
|| `gfForts` || Fort Mode ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   100
|| `gfDivideTeams` || The teams will start at opposite sites of the terrain. Two clans maximum. ||
626
c243eb309e6f Explain gfShoppaBorder
Wuzzy
parents: 625
diff changeset
   101
|| `gfBorder` || An indestructible border is active around the map. ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   102
|| `gfBottomBorder` || There is an indestructable border at the bottom of the map. ||
626
c243eb309e6f Explain gfShoppaBorder
Wuzzy
parents: 625
diff changeset
   103
|| `gfShoppaBorder` || The terrain edge will be replaced by a decorative black/yellow “danger stripe”. This has no gameplay effect. ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   104
|| `gfSolidLand` || The terrain is indestructible. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   105
|| `gfLowGravity` || The gravity is low. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   106
|| `gfLaserSight` || A laser sight is almost always active. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   107
|| `gfInvulnerable` || All hedgehogs are invulnerable. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   108
|| `gfVampiric` || All hedgehogs become vampires and get 80% of the damage they deal as health. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   109
|| `gfKarma` || Attackers share the damage they deal to enemies. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   110
|| `gfArtillery` || Hedgehogs can’t walk. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   111
|| `gfRandomOrder` || The game is played in random order. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   112
|| `gfPlaceHog` || Placement mode: At the beginning of the round, all hedgehogs are placed manually first. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   113
|| `gfKing` || King Mode: One hedgehog per team becomes their king, if the king dies, the team loses. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   114
|| `gfSharedAmmo` || Teams in the same clan share their ammo. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   115
|| `gfDisableGirders` || No girders will be created in random maps ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   116
|| `gfDisableLandObjects` || No land objects will be created in random maps ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   117
|| `gfAISurvival` || Computer-controlled hedgehogs will be revived after they die. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   118
|| `gfInfAttack` || Attacks don’t end the turn. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   119
|| `gfResetWeps` || The weapons will be reset to the initial state each turn. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   120
|| `gfPerHogAmmo` || Each hedgehog has its own weapon stash. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   121
|| `gfDisableWind` || There is no wind. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   122
|| `gfMoreWind` || There is always strong wind. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   123
|| `gfTagTeam` || Tag Team: Teams in the same clan share their turn time. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   124
|| `gfResetHealth` || The health of all living hedgehogs is reset at the end of each turn. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   125
540
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   126
=== Land flags ===
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   127
The land flags denote several types of terrain. Like all flags, they can be combined at will.
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   128
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   129
|| *Identifier* || *Meaning* ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   130
|| `lfIce` || Slippery terrain, hogs will slide on it. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   131
|| `lfBouncy` || Bouncy terrain, hogs and some other gears will bounce off when they collide with it. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   132
|| `lfIndestructible` || Almost indestructible terrain, most weapons will not destroy it. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   133
|| `lfNormal` || Normal destroyable terrain. Note that this is only actually the case when no other land flag is set. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   134
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   135
=== More constants ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   136
More constants are at at [GearTypes Gear Types] , [AmmoTypes Ammo Types], [Sounds], [States], [Sprites], [VisualGearTypes Visual Gear Types].
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   137
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   138
== Event handlers ==
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   139
Lua scripts are supposed to _define_ these functions to do something. The functions are then _called_ by Hedgewars when a certain even has occoured.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   140
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   141
=== <tt>onGameInit()</tt> ===
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   142
This function is called before the game loads its resources. One can read and modify various game variables here. These variables will become globally available after `onGameInit` has been invoked, but changing them has only an effect in `onGameInit`.
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   143
Most variables are optional, but for missions, `Theme` must be set by the scripter if you want to use a random map, rather than an image map. All other variables do not need to be set by the scripter and have default values.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   144
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   145
List of game variables:
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   146
|| *Variable name* || *Default* || *Description ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   147
|| `Theme` || _depends_ || The theme to be used. When `Map` is set, a default value is used. For missions which don't use an image map, `Theme` *must* be set explicitly ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   148
|| `Map` || `""` || The image map being played or `""` if no image map is used ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   149
|| `Seed` || `0` || Seed of the random number generator ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   150
|| `MapGen` || `mgRandom` || Type of map generator. One of `mgRandom`, `mgMaze`, `mgPerlin`, `mgDrawn`. ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   151
|| `TemplateFilter` || `0` || _unknown meaning_ ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   152
|| `TemplateNumber` || `0` || _unknown meaning_ ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   153
|| `MapFeatureSize` || `50` || Used by random maps to determine its “curvyness” or complexity. This value can be set by the user with the slider under the random map preview in the game setup screen. The user-set value ranges from 1 (leftmost position) to 25 (rightmost position). ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   154
|| `GameFlags` || `0` || All `GameFlags` combined as a bitmask. See [LuaAPI#GameFlags_functions] for easier manipulation of `GameFlags` ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   155
|| `Ready` || `5000` || Ready timer at the start of the turn (in milliseconds) ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   156
|| `Delay` || `100` || Delay between each turn in milliseconds ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   157
|| `TurnTime` || `45000` || Turn time in milliseconds ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   158
|| `GetAwayTime` || `100` || Retreat time in percent ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   159
|| `CaseFreq` || `5` || Probability that a crate drops in a turn. 0: never, >0: probability = `1/CaseFreq` ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   160
|| `HealthCaseProb` || `35` || Chance that a crate drop is a health crate, in percent (other crates are ammo or utility crates) ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   161
|| `HealthCaseAmount` || `25` || Amount of health in a health crate ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   162
|| `DamagePercent` || `100` || Global damage in percent, affects damage and knockback ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   163
|| `RopePercent` || `100` || Rope length in percent ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   164
|| `MinesNum` || `4` || Number of mines being placed on a medium-sized map ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   165
|| `MinesTime` || `3000` || Time for a mine to explode from activated (in milliseconds), `-1000` for random ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   166
|| `MineDudPercent` || `0` || Chance of mine being a dud, in percent ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   167
|| `Explosives` || `2` || Number of barrels being placed on a medium-sized map ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   168
|| `SuddenDeathTurns` || `15` || Turns until Sudden Death begins ||
862
d06141c36428 LuaAPI: Sudden Death disable
Wuzzy
parents: 861
diff changeset
   169
|| `WaterRise` || `47` || Height of water rise in pixels for each Sudden Death turn ||
861
ccbc115e68ad LuaAPI: fix broken onGameInit table
Wuzzy
parents: 860
diff changeset
   170
|| `HealthDecrease` || `5` || Amount of health decreased on each turn in Sudden Death ||
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   171
|| `Goals` || `""` || Use this to add additional text to the goal text popup shown at the beginning and when using the quit or pause keys. The text is added to the default text which usually explains the game modifiers and does not replace it. Use `|` for line breaks. Also, all text before and including a `:` in a line will be highlighted. See also `ShowMission`. ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   172
|| `ScreenWidth` || _N/A_ || Width of the Hedgewars window or screen ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   173
|| `ScreenHeigth` || _N/A_ || Heigth of the Hedgewars window or screen ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   174
862
d06141c36428 LuaAPI: Sudden Death disable
Wuzzy
parents: 861
diff changeset
   175
The proper way to disable Sudden Death is by setting both `WaterRise` and `HealthDecrease` to `0`.
d06141c36428 LuaAPI: Sudden Death disable
Wuzzy
parents: 861
diff changeset
   176
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   177
If you want to add teams or hogs manually, you have to do it here. If you want to draw your own map using `AddPoint` and `FlushPoints`, you have to do this within this function as well.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   178
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   179
=== <tt>onGameStart()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   180
This function is called when the first round starts.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   181
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   182
Can be used to show the mission and for more setup, for example initial target spawning.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   183
505
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   184
=== <tt>onPreviewInit()</tt> (0.9.21) ===
461
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   185
This function is called when the map preview in the frontend is initialized. This happens when the script is selected or you change a map generator parameter.
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   186
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   187
It is useful for scripts which create their own maps (see `AddPoint` and `FlushPoints`). If you create a map in this function, a preview will be generated from this map and is exposed to the frontend.
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   188
505
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   189
=== <tt>onParameters()</tt> (0.9.21) ===
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   190
This function is called when the script parameters (as specified in the game scheme) become available. The script parameter string is stored in the global variable `ScriptParam`.
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   191
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   192
Please note that it is normally not safe to call many of the other functions inside this function, this function is called very early in the game, only use this to initialize variables and other internal stuff like that.
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   193
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   194
*Tip*: If you use the Params library  (`/Scripts/Params.lua`), you can make the task of dissecting the string into useful values a bit easier, but it’s not required. (The Params library is not documented yet, however).
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   195
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   196
*Tip*: If you use this callback, make sure to document the interpretation of the parameters so others know how to set the parameters properly.
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   197
64
a651a8ab85d5 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 63
diff changeset
   198
=== <tt>onGameTick()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   199
This function is called on every game tick, i.e. 1000 times a second. If you just need to check on something periodically, consider `onGameTick20`.
346
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   200
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   201
=== <tt>onGameTick20()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   202
This function is called every 20 game ticks, which equals 50 times a second. It reduces Lua overhead for simple monitoring that doesn’t need to happen every single tick.
64
a651a8ab85d5 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 63
diff changeset
   203
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   204
=== <tt>onNewTurn()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   205
This function calls at the start of every turn.
63
24004a9003ec Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 62
diff changeset
   206
650
0a106238f409 fix formatting
Wuzzy
parents: 649
diff changeset
   207
=== <tt>onSuddenDeath()</tt> (0.9.22) ===
649
a33b0ddce148 onSuddenDeath
Wuzzy
parents: 648
diff changeset
   208
This function is called on the start of Sudden Death.
a33b0ddce148 onSuddenDeath
Wuzzy
parents: 648
diff changeset
   209
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   210
=== <tt>onGearAdd(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   211
This function is called when a new gear is added. Useful in combination with `GetGearType(gearUid)`.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   212
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   213
=== <tt>onGearDelete(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   214
This function is called when a new gear is deleted. Useful in combination with `GetGearType(gearUid)`.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   215
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   216
=== <tt>onGearDamage(gearUid, damage)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   217
This function is called when a gear is damaged.
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   218
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   219
Example:
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   220
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   221
<code language="lua">    function onGearDamage(gear, damage)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   222
        if (GetGearType(gear) == gtHedgehog) then
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   223
            -- adds a message saying, e.g. "Hoggy H took 25 points of damage"
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   224
            AddCaption(GetHogName(gear) .. ' took ' .. damage .. ' points of damage')
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   225
        end
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   226
    end</code>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   227
=== <tt>onGearResurrect(gearUid) </tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   228
This function is called when a gear is resurrected. CPU Hogs will resurrect if the !GameFlag `gfAISurvival` is enabled. Alternatively, specific gears can have `heResurrectable` set to true via `SetEffect`.
44
bf53e635a2ac Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 43
diff changeset
   229
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   230
=== <tt>onAmmoStoreInit()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   231
This function is called when the game is initialized to request the available ammo and ammo probabilities. Use `SetAmmo` here.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   232
203
08cc35ba4d34 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 202
diff changeset
   233
=== <tt>onNewAmmoStore(team/clan index, hog index)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   234
This function is identical to `onAmmoStoreInit` in function, but is called once per ammo store.  This allows different ammo sets for each clan, team or hedgehog depending on the mode.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   235
If `gfSharedAmmo` is set, the parameters passed are the clan index, and `-1`, and the function will be called once for each clan.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   236
If `gfPerHogAmmo` is set, the parameters passed are the team index and the hog index in that team, and the function will be called once for each hedgehog.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   237
If neither is set, the parameters passed are the team index and `-1`, and the function will be called once for each team.
202
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   238
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   239
These indexes can be used to look up details of the clan/team/hedgehog prior to gear creation. Routines to do these lookups will be created as needed.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   240
If you add this hook, the expectation is that you will call SetAmmo appropriately. Any values from `onAmmoStoreInit` are ignored.
202
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   241
502
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   242
=== <tt>onGearWaterSkip(gear)</tt> (0.9.21) ===
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   243
This function is called when the gear `gear` skips over water.
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   244
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   245
=== <tt>onScreenResize()</tt> (0.9.16) ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   246
This function is called when you resize the screen. Useful place to put a redraw function for any `vgtHealthTags` you're using.
145
547ac6a1d14e Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 144
diff changeset
   247
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   248
=== <tt>onAttack()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   249
This function is called when your Hedgehog attacks.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   250
107
kyberneticist
parents: 102
diff changeset
   251
=== <tt>onHJump()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   252
This function is called when you press the high jump key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   253
107
kyberneticist
parents: 102
diff changeset
   254
=== <tt>onLJump()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   255
This function is called when you press the long jump key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   256
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   257
=== <tt>onPrecise()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   258
This function is called when you press the precise key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   259
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   260
=== <tt>onLeft()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   261
This function is called when you press the left key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   262
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   263
=== <tt>onRight()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   264
This function is called when you press the right key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   265
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   266
=== <tt>onUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   267
This function is called when you press the up key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   268
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   269
=== <tt>onDown()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   270
This function is called when you press the down key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   271
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   272
=== <tt>onAttackUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   273
This function is called when you release the attack key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   274
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   275
=== <tt>onDownUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   276
This function is called when you release the down key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   277
 
535
5cb76f048bd9 Update onHogAttack
almikes@aol.com
parents: 533
diff changeset
   278
=== <tt>onHogAttack(ammoType)</tt> ===
5cb76f048bd9 Update onHogAttack
almikes@aol.com
parents: 533
diff changeset
   279
This function is called when you press the attack key. Beginning with 0.9.21, the parameter `ammoType` is provided. It contains the ammo type of the weapon used for the attack.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   280
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   281
=== <tt>onLeftUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   282
This function is called when you release the left key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   283
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   284
=== <tt>onPreciseUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   285
This function is called when you release the precise key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   286
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   287
=== <tt>onRightUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   288
This function is called when you release the right key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   289
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   290
=== <tt>onSetWeapon(msgParam)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   291
It is get called when a weapon is selected or switched.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   292
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   293
`msgParam` tells you which ammo type was selected.
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   294
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   295
=== <tt>onSlot(msgParam)</tt> ===
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   296
This function is called when one of the weapon slot keys has been pressed.
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   297
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   298
`msgParam` tells the slot number minus 1 (i.e. `0` is for slot number 1, `1` is for slot number 2, etc.).
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   299
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   300
=== <tt>onSwitch()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   301
This function is called when a hog is switched to another.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   302
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   303
=== <tt>onTaunt(msgParam)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   304
This function is called when the player uses an animated emote for example by using the chat commands `/wave`, `/juggle`, etc.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   305
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   306
`msgParam` tells you which animation was played:
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   307
623
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   308
|| *`msgParam`* || *Animation* || *Associated chat command* ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   309
|| 0 || Rolling up || `/rollup` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   310
|| 1 || Sad face || `/sad` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   311
|| 2 || Waving hand || `/wave` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   312
|| 3 || Stupid winner's grin / “Awesome” face || `/hurrah` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   313
|| 4 || Peeing || `/ilovelotsoflemonade` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   314
|| 5 || Shrug || `/shrug` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   315
|| 6 || Juggling || `/juggle` ||
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   316
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   317
=== <tt>onTimer(msgParam)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   318
This function is called when one of the timer keys is pressed.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   319
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   320
`msgParams` tells the set timer in seconds (i.e. `3` for the 3 seconds timer key).
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   321
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   322
=== <tt>onUpUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   323
This function is called when you release the up key.
178
dde460404412 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 177
diff changeset
   324
689
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   325
=== <tt>onHogHide(gearUid)</tt> (0.9.16) ===
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   326
This function is called when a hedgehog with the gear ID `gearUid` is hidden (removed from the map).
179
156e5fba2e2c Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 178
diff changeset
   327
689
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   328
=== <tt>onHogRestore(gearUid)</tt> (0.9.16) ===
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   329
This function is called when a hedgehog with the specified gear ID `gearUid` is restored (unhidden).
173
ef246592a16e Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 172
diff changeset
   330
411
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   331
=== <tt>onSpritePlacement(spriteId, centerX, centerY)</tt> (0.9.21) ===
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   332
This function is called when a [Sprites Sprite] has been placed.
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   333
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   334
`spriteID` is the type of the sprite, you find a list at [Sprites Sprites]. `centerX` and `centerY` are the coordinates of the center of the sprite.
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   335
402
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   336
=== <tt>onGirderPlacement(frameIdx, centerX, centerY)</tt> (0.9.21) ===
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   337
This function is called when a girder has been placed.
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   338
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   339
`frameIdx` is an integer and declares the length and orientation of the girder:
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   340
|| *`frameIdx`* || *Length* || *Orientation* ||
402
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   341
|| 0 || short || horizontal ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   342
|| 1 || short || decreasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   343
|| 2 || short || vertical ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   344
|| 3 || short || increasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   345
|| 4 || long || horizontal ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   346
|| 5 || long || decreasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   347
|| 6 || long || vertical ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   348
|| 7 || long || increasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   349
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   350
`centerX` and `centerY` are the coordinates of the girder’s center.
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   351
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   352
=== <tt>onRubberPlacement(frameIdx, centerX, centerY)</tt> (0.9.21) ===
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   353
This function is called when a rubber has been placed.
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   354
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   355
`frameIdx` is an integer which stands for the orientation of the rubber.
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   356
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   357
|| *`frameIdx`* || *Orientation* ||
402
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   358
|| 0 || horizontal ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   359
|| 1 || decreasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   360
|| 2 || vertical ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   361
|| 3 || increasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   362
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   363
`centerX` and `centerY` are the coordinates of the rubber’s center.
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   364
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   365
== Functions for creating gears ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   366
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   367
=== <tt>!AddGear(x, y, gearType, state, dx, dy, timer)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   368
This creates a new gear at position x,y (measured from top left) of kind `gearType` (see [GearTypes Gear Types]). The initial velocities are `dx` and `dy`. All arguments are numbers. The function returns the `uid` of the gear created. Gears can have multple states at once: `state` is a bitmask, the flag variables can be found in [States].
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   369
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   370
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   371
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   372
<code language="lua">    local gear = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   373
    FindPlace(gear, true, 0, LAND_WIDTH)</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   374
359
pntanasis@gmail.com
parents: 347
diff changeset
   375
=== <tt>!AddVisualGear(x, y, visualGearType, state, critical)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   376
This creates a new visual gear at position x,y (measured from top left) of kind `visualGearType` (see [VisualGearTypes Visual Gear Types]). The function returns the `uid` of the visual gear created.  Set `critical` to `true` if the visual gear is crucial to game play. Use `false` if it is just an effect, and can be skipped when in fast-forward mode (such as when joining a room). A critical visual gear will always be created, a non-critical one may fail. Most visual gears delete themselves. 
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   377
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   378
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   379
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   380
<code language="lua">  -- adds an non-critical explosion at position 1000,1000. Returns 0 if it was not created.
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   381
    vgear = AddVisualGear(1000, 1000, vgtExplosion, 0, false) 
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   382
</code>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   383
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   384
=== <tt>!SpawnHealthCrate(x, y)</tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   385
Spawns a health crate at the specified position. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   386
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   387
=== <tt>!SpawnAmmoCrate(x, y, ammoType)</tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   388
Spawns an ammo crate at the specified position with content of ammoType (see [AmmoTypes Ammo Types]). If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
564
c002f49283c6 Add SetAmmoDelay
almikes@aol.com
parents: 563
diff changeset
   389
Because by default settings the number of ammo in crates is zero it has to be increased to at least one with `SetAmmo` first, see the example:
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   390
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   391
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   392
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   393
<code language="lua">    SetAmmo(amGrenade, 0, 0, 0, 1) -- see below
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   394
    SpawnAmmoCrate(0, 0, amGrenade) -- x=y=0 means random position on map</code>
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   395
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   396
=== <tt>!SpawnUtilityCrate(x, y, ammoType)</tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   397
Spawns an utility crate at specified position with content of ammoType. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   398
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   399
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   400
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   401
<code language="lua">    SetAmmo(amLaserSight, 0, 0, 0, 1)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   402
    SpawnUtilityCrate(0, 0, amLaserSight)</code>
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   403
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   404
=== <tt>!SpawnFakeAmmoCrate(x, y, explode, poison) </tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   405
Spawns a crate at the specified coordinates which looks exactly like a real ammo crate but contains not any ammo. It can be use useful for scripted events or to create a trap. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   406
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   407
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   408
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   409
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   410
Example:
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   411
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   412
<code language="lua">SpawnFakeAmmoCrate(500, 432, false, false) -- Spawns a fake ammo crate at the coordinates (500, 434) without explosion and poison.
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   413
</code>
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   414
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   415
=== <tt>!SpawnFakeHealthCrate(x, y, explode, poison) </tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   416
Spawns a crate at the specified coordinates which looks exactly like a real health crate but it will not heal the player. It can be use useful for scripted events or to create a trap. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   417
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   418
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   419
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   420
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   421
=== <tt>!SpawnFakeUtilityCrate(x, y, explode, poison) </tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   422
Spawns a crate at the specified coordinates which looks exactly like a real utility crate but contains not any ammo. It can be use useful for scripted events or to create a trap. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   423
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   424
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   425
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   426
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   427
=== <tt>!AddHog(hogname, botlevel, health, hat)</tt> ===
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   428
Adds a new hedgehog for current team (last created one with the `AddTeam` function), with bot level and specified health, also hat.
556
e57188e7bc3b Better explanation of botlevel (AddHog argument).
almikes@aol.com
parents: 555
diff changeset
   429
`botlevel` ranges from `0` to `5`, where `0` denotes a human player and `1` to `5` denote the skill level of a bot, where `1` is strongest and `5` is the weakest. Note that this is the reverse order of how the bot level is displayed in the game.
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   430
556
e57188e7bc3b Better explanation of botlevel (AddHog argument).
almikes@aol.com
parents: 555
diff changeset
   431
*Warning*: This works only for singleplayers training missions for now and will desync multiplayer games.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   432
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   433
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   434
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   435
<code language="lua">    local player = AddHog("HH 1", 0, 100, "NoHat") -- botlevel 0 means human player
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   436
    SetGearPosition(player, 1500, 1000)</code>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   437
== Functions to get gear properties ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   438
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   439
=== <tt>!GetGearType(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   440
This function returns one of [GearTypes Gear Types] for the specified gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   441
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   442
=== <tt>!GetGearPosition(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   443
Returns x,y coordinates for the specified gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   444
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   445
=== <tt>!GetGearRadius(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   446
Returns radius for the specified gear.
148
f343b50d5619 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 147
diff changeset
   447
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   448
=== <tt>!GetGearVelocity(gearUid)</tt> ===
555
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   449
Returns a tuple of dx,dy values for the specified gear.
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   450
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   451
=== <tt>!GetFlightTime(gearUid)</tt> ===
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   452
Returns the `FlightTime` of the specified gear. The `FlightTime` is a gear varialbe used to store a general time interval. The precise meaning of the `FlightTime` depends on the gear type.
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   453
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   454
For example: The `FlightTime` of a hedgehog (`gtHedgehog`) is the time since they last have stood on solid ground. For most projectile gear types (i.e. `gtShell`), it stores the time after it has been launched.
71
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   455
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   456
=== <tt>!GetGearElasticity(gearUid) </tt> ===
611
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   457
Returns the elasticity of the specified gear. The elasticity normally determines how strong the gear will bounce after collisions, where higher elasticity is for stronger bounces.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   458
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   459
This is also useful for determining if a hog is on a rope or not. If a hog is attached to a rope, or is busy firing one, the elasticity of the rope will be non-zero.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   460
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   461
=== <tt>!GetGearFriction(gearUid) </tt> ===
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   462
Returns the friction of the specified gear. The friction normally determines how well the gear will slide on terrain. Higher values are for increased sliding properties.
74
6130cad02b02 Added GetGearElasticity
RedGrinner
parents: 73
diff changeset
   463
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   464
=== <tt>!GetHogClan(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   465
Returns the clan ID of the specified hedgehog gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   466
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   467
=== <tt>!GetHogTeamName(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   468
Returns the name of the specified hedgehog gear’s team.
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   469
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   470
=== <tt>!GetHogName(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   471
Returns the name of the specified hedgehog gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   472
140
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   473
=== <tt>!GetEffect(gearUid, effect)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   474
Returns the state of given effect for the given hedgehog gear.
140
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   475
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   476
See `SetEffect` for further details.
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   477
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   478
=== <tt>!GetHogHat(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   479
Returns the hat of the specified hedgehog gear.
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   480
610
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   481
=== <tt>!GetHogFlag(gearUid)</tt> (0.9.22) ===
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   482
Returns the name of the flag of the team of the specified hedgehog gear.
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   483
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   484
=== <tt>!GetHogGrave(gearUid)</tt> (0.9.22) ===
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   485
Returns the name of the grave of the team of the specified hedgehog gear.
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   486
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   487
=== <tt>!GetHogVoicepack(gearUid)</tt> (0.9.22) ===
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   488
Returns the name of the voicepack of the team of the specified hedgehog gear.
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   489
141
b10bef9ac535 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 140
diff changeset
   490
=== <tt>!GetAmmoCount(gearUid, ammoType) (0.9.16)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   491
Returns the ammo count of the specified ammo type for the specified hedgehog gear.
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   492
138
9ca80a93aae0 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 137
diff changeset
   493
=== <tt>!GetGearTarget(gearUid, x, y)  (0.9.16)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   494
Returns the x and y coordinate of target-based weapons/utilities. 
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   495
<b>Note:</b>: This can’t be used in `onGearAdd()` but must be called after gear creation. 
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   496
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   497
=== <tt>GetX(gearUid)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   498
Returns x coordinate of the gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   499
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   500
=== <tt>GetY(gearUid)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   501
Returns y coordinate of the gear.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   502
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   503
=== <tt>!GetState(gearUid)</tt> ===
415
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   504
Returns the state of the gear. The gear state is a bitmask which is built out of the variables as shown in [States].
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   505
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   506
This function is usually used in combination with `band` to extract the truth value of a single flag. It is also used together with `SetState` and `bor` in order to activate a single flag.
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   507
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   508
Examples:
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   509
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   510
local state = GetState(gear)
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   511
--[[ Stores the full raw bitmask of gear in state. Usually
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   512
useless on its own. ]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   513
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   514
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   515
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   516
isDrowning = band(GetState(CurrentHedgehog),gstDrowning) ~= 0
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   517
--[[ GetState(CurrentHedgehog) returns the state bitmask of
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   518
CurrentHedgehog, gstDrowning is a bitmask where only the
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   519
“drowning” bit is set. band does a bitwise AND on both, if
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   520
it returns a non-zero value, the hedgehog is drowning.]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   521
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   522
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   523
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   524
SetState(CurrentHedgehog, bor(GetState(CurrentHedgehog), gstInvisible))
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   525
--[[ first the state bitmask of CurrentHedgehog is bitwise ORed with
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   526
the gstInvisible flag, thus making the bit responsible for
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   527
invisiblity to become 1. Then the new bitmask is applied to
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   528
CurrentHedgehog, thus making it invisible.]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   529
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   530
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   531
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   532
=== <tt>!GetGearMessage(gearUid)</tt> ===
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
   533
Returns the message of the gear. This is a bitmask built out of flags seen in [GearMessages].
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   534
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   535
=== <tt>!GetTag(gearUid)</tt> ===
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   536
Returns the tag of the specified gear (by `gearUid`). 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   537
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   538
A “tag” of a gear is simply an extra variable to modify misc. things. The meaning of a tag depends on the gear type. For example, for gtBall gears, it specifies the ball color, for gtAirAttack gears (airplane) it specifies the direction of the plane, etc. `tag` has to be an integer.
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   539
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   540
Note that the word “tag” here does _not_ refer to the name and health tags you see above hedgehogs, this is something different. 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   541
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   542
<code language="lua">
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   543
-- This adds a ball (the one from the ballgun) at (123, 456):
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   544
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   545
-- The tag of a ball defines its color. It will automatically chosen at random when created.
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   546
colorTag = GetTag(ball)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   547
-- Now colorTag stores the tag of ball (in this case a number denoting its color)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   548
</code>
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   549
421
d584704354ad Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents: 419
diff changeset
   550
The meaning of tags are described in [GearTypes].
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   551
209
26805ae2a319 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 203
diff changeset
   552
=== <tt>!GetFollowGear()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   553
Returns the uid of the gear that is currently being followed.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   554
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   555
=== <tt>!GetTimer(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   556
Returns the timer of the gear. This is for example the time it takes for watermelon, mine, etc. to explode. This is also the time used to specify the blowtorch or rcplane time.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   557
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   558
=== <tt>!GetHealth(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   559
Returns the health of the gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   560
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   561
=== <tt>!GetHogLevel(gearUid)</tt> ===
576
dff03a98693a Clarified bot levels in GetHogLevel
almikes@aol.com
parents: 573
diff changeset
   562
Returns the bot level ranging from `0` to `5`. `1` is the strongest bot level and `5` is the weakest one. `0` is for human player.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   563
503
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   564
=== <tt>!GetGearPos(gearUid)</tt> ===
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   565
Get pos of specified gear.
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   566
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   567
=== <tt>!GetGearValues(gearUid)</tt> (0.9.22) ===
616
51fafc27af9c Fix GetGearValues return value
Wuzzy
parents: 615
diff changeset
   568
This returns a bunch of values associated with the gear, their meaning is often depending on the gear type and many values might be unused for certain gear types.
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   569
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   570
This is returned (all variables are integers):
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   571
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   572
`Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, nImpactSounds, Tint, Damage, Boom`
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   573
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   574
Boom is 0.9.23+
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   575
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   576
A rough description of some of the parameters:
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   577
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   578
 * `Radius`: Effect or collision radius, most of the time
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
   579
 * `ImpactSound`: Sound it makes on a collision (see [Sounds])
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   580
 * `Tint`: Used by some gear types to determine its colorization. The color is in RGBA format.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   581
 * `Boom`: Used by most gears to determine the damage dealt. (0.9.23+)
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   582
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   583
Example:
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   584
<code language="lua">
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   585
-- Get all values in a single line of code (omit Boom in 0.9.22) :
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   586
local Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, nImpactSounds, Tint, Damage, Boom = GetGearValues(myGear)
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   587
</code>
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   588
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   589
=== <tt>!GetVisualGearValues(vgUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   590
This returns the typically set visual gear values, useful if manipulating things like smoke or bubbles or circles. It returns the following values:
614
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   591
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   592
`X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint`
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   593
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   594
 * `X`, `Y`: typically position
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   595
 * `dX`, `dY`: typically speed
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   596
 * `Angle` is usually the rotation angle
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   597
 * `Frame` is typically the animation frame
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   598
 * `FrameTicks` is usually an animation counter
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   599
 * `State` can have a variety of values, but is typically bit packed
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   600
 * `Timer` is usually the gear lifetime
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   601
 * `Tint` is the RGBA color
614
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   602
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   603
Most visual gears require little to no modification of parameters.
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   604
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   605
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   606
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   607
<code language="lua">    GetVisualGearValues(vgUid) -- return visual gear values
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   608
</code>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   609
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   610
== Functions to modify gears ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   611
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   612
=== <tt>!HideHog(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   613
Removes a hedgehog from the map. The hidden hedgehog can be restored with `RestoreHog(gearUid)`. The current hedgehog cannot be hidden!
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   614
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   615
Example: 
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   616
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   617
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   618
     HideHog(gear) -- Hide the newly created gear.</code>
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   619
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   620
=== <tt>!RestoreHog(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   621
Restores a previously hidden hedgehog.
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   622
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   623
Example: 
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   624
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   625
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   626
     HideHog(gear) -- Hide the newly created gear.
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   627
     RestoreHog(gear) -- Restore the newly hidden gear.</code>
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   628
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   629
=== <tt>!DeleteGear(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   630
Deletes a gear.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   631
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   632
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   633
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   634
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   635
    DeleteGear(gear) -- Delete the newly created gear.</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   636
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   637
=== <tt>!DeleteVisualGear(vgUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   638
Deletes a visual gear. Note, most visual gears delete themselves.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   639
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   640
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   641
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   642
<code language="lua">    vgear = AddVisualGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   643
    DeleteVisualGear(vgear) -- Delete the newly created visual gear.</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   644
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   645
=== <tt>!SetGearValues(gearUid, Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, ImpactSounds, Tint, Damage, Boom)</tt> (0.9.22) ===
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   646
Sets various gear value for the specified gear (`gearUid`). The meaining of each value often depends on the gear type. See the documentation on !GetGearValues for a brief description of the gear values.  Boom is 0.9.23+.
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   647
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   648
Set `nil` for each value you do not want to change.
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   649
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   650
Example:
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   651
<code language="lua">
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   652
-- Paints all RC planes into a white color
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   653
function onGearAdd(gear)
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   654
    if GetGearType(gear) == gtRCPlane then
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   655
         SetGearValues(gear, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xFFFFFFFF)
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   656
    end
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   657
end
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   658
</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   659
554
b77ffc789732 Escape “FrameTicks” once again
almikes@aol.com
parents: 553
diff changeset
   660
=== <tt>!SetVisualGearValues(vgUid, X, Y, dX, dY, Angle, Frame, !FrameTicks, State, Timer, Tint)</tt> ===
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   661
This allows manipulation of many of the visual gear values. In the case of `vgtCircle`, the visual gear values are mapped as follows:
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   662
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   663
 * `X`, `Y`: Position
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   664
 * `State`: Radius.
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   665
 * `Timer`: Thickness
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   666
 * `FrameTicks`: Pulsation speed (`0` to disable)
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   667
 * `dX`, `dY`: min/max pulsation opacity (`0`-`255`)
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   668
 * `Tint`: RGBA color
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   669
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   670
Most visual gears require little to no modification of parameters.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   671
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   672
Example 1:
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   673
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   674
<code language="lua">  -- set a circle to position 1000,1000 pulsing from opacity 20 to 200 (8%-78%), radius of 50, 3px thickness, bright red.
552
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   675
    SetVisualGearValues(circleUid, 1000,1000, 20, 200, 0, 0, 100, 50, 3, 0xff0000ff)</code>
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   676
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   677
Beginning from 0.9.21-dev, the 2nd to 11th arguments are optional. Any such argument which is declared as `nil` will not overwrite the corresponding value of the visual gear. With this change, it is not required anymore to call `GetVisualGearValues` beforehand.
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   678
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   679
Example 2:
552
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   680
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   681
<code language="lua">  -- set a circle to position 1000,1000
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   682
    SetVisualGearValues(circleUid, 1000, 1000)</code>
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   683
<code language="lua">  -- set the color of a circle to bright red.
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   684
    SetVisualGearValues(circleUid, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xff0000ff)</code>
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   685
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   686
136
538adf2596b5 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 135
diff changeset
   687
=== <tt>!FindPlace(gearUid, fall, left, right, tryHarder) (0.9.16)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   688
Finds a place for the specified gear between x=`left` and x=`right` and places it there. 0.9.16 adds an optional fifth parameter, `tryHarder`. Setting to `true`/`false` will determine whether the engine attempts to make additional passes, even attempting to place gears on top of each other.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   689
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   690
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   691
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   692
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   693
    FindPlace(gear, true, 0, LAND_WIDTH) -- places the gear randomly between 0 and LAND_WIDTH</code>
533
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   694
=== <tt>!HogSay(gearUid, text, manner [,vgState])</tt> ===
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   695
Makes the specified gear say, think, or shout some text in a comic-style speech or thought bubble. In 0.9.21 `gearUid` is _not_ limited to hedgehogs, altough the function name suggests otherwise.
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   696
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   697
The `manner` parameter specifies the type of the bubble and can have one of these values:
59
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   698
533
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   699
|| *Value of `manner`* || *Looks* ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   700
|| `SAY_THINK` || Thought bubble ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   701
|| `SAY_SAY` || Speech bubble ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   702
|| `SAY_SHOUT` || Exclamatory bubble (denotes shouting) ||
59
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   703
533
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   704
As of 0.9.21, there is a optional 4th parameter `vgState`, it defines wheather the speechbubble is drawn fully opaque or semi-transparent. The value `0` is the default value.
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   705
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   706
|| *Value of `vgState`* || *Effect* ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   707
|| `0` || If the specified gear is a hedgehog, and it’s the turn of the hedgehog’s team, the bubble is drawn fully opaque.<br>If the gear is a hedgehog, and it’s another team’s turn, the bubble is drawn translucent.<br>If the gear is not a hedgehog, the bubble is drawn fully opaque. ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   708
|| `1` || The bubble is drawn translucent. ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   709
|| `2` || The bubble is drawn fully opaque. ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   710
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   711
Examples:
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   712
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   713
<code language="lua">HogSay(CurrentHedgehog, "I wonder what to do …", SAY_THINK) -- thought bubble with text “I wonder what to do …”</code>
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   714
<code language="lua">HogSay(CurrentHedgehog, "I'm hungry.", SAY_SAY) -- speech bubble with text “I’m hungry.”</code>
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   715
<code language="lua">HogSay(CurrentHedgehog, "I smell CAKE!", SAY_SHOUT) -- exclamatory bubble with text “I smell CAKE!”</code>
52
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   716
=== <tt>!HogTurnLeft(gearUid, boolean)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   717
Faces the specified hog left or right.
52
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   718
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   719
Example:
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   720
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   721
<code language="lua">    HogTurnLeft(CurrentHedgehog, true) -- turns CurrentHedgehog left 
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   722
    HogTurnLeft(CurrentHedgehog, false) -- turns CurrentHedgehog right</code>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   723
=== <tt>!SetGearPosition(gearUid, x, y)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   724
Places the specified gear exactly at the position (`x`,`y`).
71
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   725
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   726
=== <tt>!SetGearVelocity(gearUid, dx, dy)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   727
Gives the specified gear the velocity of `dx`, `dy`.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   728
555
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   729
=== <tt>!SetFlightTime(gearUid, flighttime)</tt> ===
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   730
Sets the `FlightTime` of the given gear to `flighttime`. The meaning of `FlightTime` is explained in the section `GetFlightTime`.
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   731
611
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   732
=== <tt>!SetGearElasticity(gearUid, Elasticity) </tt> ===
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   733
Sets the elasticity of the specified gear. For most gears, the elasticity determines how strong the gear will bounce after collisions, where higher elasticity is for stronger bounces. Recommended are values between `0` and `9999`.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   734
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   735
=== <tt>!SetGearFriction(gearUid, Friction) </tt> ===
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   736
Sets the friction of the specified gear. The friction normally determines how well the gear will slide on terrain. Higher values are for increased sliding properties. `0` is for no sliding whatsoever, where `9999` is for very long slides, greater values are not recommended.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   737
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   738
=== <tt>!SetAmmo(ammoType, count, probability, delay, numberInCrate)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   739
This updates the settings for a specified [AmmoTypes Ammo Type] as of count available for players, spawn probability, availability delay in turns, and the number available in crates. This is supposed to be used in the `onAmmoStoreInit()` event handler.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   740
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   741
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   742
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   743
<code language="lua">    SetAmmo(amShotgun, 9, 0, 0, 0) -- unlimited amount of shotgun ammo for players
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   744
    SetAmmo(amGrenade, 0, 0, 0, 3) -- crates should contain always three grenade</code>
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   745
564
c002f49283c6 Add SetAmmoDelay
almikes@aol.com
parents: 563
diff changeset
   746
=== <tt>!SetAmmoDelay(ammoType, delay)</tt> ===
c002f49283c6 Add SetAmmoDelay
almikes@aol.com
parents: 563
diff changeset
   747
Changes the delay of a specified [AmmoTypes Ammo Type].
c002f49283c6 Add SetAmmoDelay
almikes@aol.com
parents: 563
diff changeset
   748
135
124b11219537 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 134
diff changeset
   749
=== <tt>!AddAmmo(gearUid, ammoType, ammoCount) (0.9.16) </tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   750
Adds `ammoType` to the specified gear. The amount added is determined by the arguments passed via `SetAmmo()` in the `onAmmoStoreInit()` event handler. In 0.9.16 ammo can be set directly via the optional third parameter, `ammoCount`. A value of 0 will remove the weapon, a value of 100 will give infinite ammo.
101
174650a7ce20 Added entry for AddAmmo()
RedGrinner@gmail.com
parents: 100
diff changeset
   751
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   752
*Note:* The effectiveness of this function may be limited due to problems with `gfPerHogAmmo` in Lua scripting.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   753
101
174650a7ce20 Added entry for AddAmmo()
RedGrinner@gmail.com
parents: 100
diff changeset
   754
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   755
=== <tt>!SetHealth(gearUid, health)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   756
Sets the health of the specified gear.
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   757
This can be used for purposes other than killing hedgehogs.
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   758
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   759
For example:
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   760
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   761
  * Starting the RC Plane 10 shots
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   762
  * Starting Flying Saucer (`gtJetpack`) with only 50% fuel.
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   763
  * Setting all the mines to duds.
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   764
  * (And more!)
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   765
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   766
<code language="lua">    function onGearAdd(gear)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   767
       if (GetGearType(gear) == gtRCPlaane) then
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   768
            SetHealth(gear, 10)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   769
       end
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   770
       if (GetGearType(gear) == gtJetpack) then
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   771
            SetHealth(gear, 1000)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   772
       end
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   773
       if (GetGearType(gear) == gtMine) then
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   774
            SetHealth(gear, 0)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   775
       end
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   776
    end</code>
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   777
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   778
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   779
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   780
=== <tt>!SetEffect(gearUid, effect, effectState)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   781
Sets the state for one of the effects <tt>heInvulnerable, heResurrectable, hePoisoned, heResurrected, heFrozen</tt> for the specified hedgehog gear.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   782
A value of 0 usually means the effect is disabled, values other than that indicate that it is enabled and in some cases specify e.g. the remaining time of that effect.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   783
824
adfb23d8bc13 LuaAPI: fix typo
Wuzzy
parents: 823
diff changeset
   784
|| *`effect`* || *Description* || *`effectState`* ||
823
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   785
|| `heInvulnerable` || Wether hog is invulnerable || Any non-zero value turns on invulnerability. `0` turns it off. ||
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   786
|| `hePoisoned` || Poison damage, damages hog each turn. || Amount of damage per turn. Use `0` to disable poisoning. ||
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   787
|| `heResurrectable` || Whether to resurrect the hog on death || With a non-zero value, the hedgehog will be resurrected and teleported to a random location on death. `0` disables this. ||
824
adfb23d8bc13 LuaAPI: fix typo
Wuzzy
parents: 823
diff changeset
   788
|| `heResurrected` || Whether the hedgehog has been resurrected once. This is only a subtle graphical effect. || With a non-zero value, the hedgehog was resurrected, `0` otherwise. ||
826
07f7de5b6325 LuaAPI: heFrozen flame
Wuzzy
parents: 824
diff changeset
   789
|| `heFroze` || Freeze level. Frozen hedgehogs skip turn, are heavy and take half damage || The number denotes “how frozen” the hedgehog is, i.e. how long it takes to melt. The freezer sets this to `199999` initially. The value will be reduced by `50000` each round. Being hit by a flame reduces this number by `1000`. If `0`, the hedgehog is not frozen. The value will also be used for some other things by the engine, like animation, etc. ||
823
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   790
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   791
Example (sets all bots poisoned with poison damage of 1):
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   792
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   793
<code language="lua">    function onGearAdd(gear)
558
e9a42aa9e4c2 GetHogLevel, not GetBotLevel
nemo
parents: 557
diff changeset
   794
        if (GetGearType(gear) == gtHedgehog) and (GetHogLevel(gear) > 0) then
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   795
            SetEffect(gear, hePoisoned, 1)
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   796
        end
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   797
    end</code>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   798
823
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   799
*Historic note*: prior to the ice-gun release, 0.9.19 (commit r10a0a31804f3) `effectState` was of boolean type (`true` = effect enabled, `false` = effect disabled)
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   800
17
2893bd461cc7 LuaAPI: minor improvement
tobias.neumann
parents: 16
diff changeset
   801
=== <tt>CopyPV(gearUid, gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   802
This sets the position and velocity of the second gear to the first one.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   803
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   804
=== <tt>!FollowGear(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   805
Makes the game client follow the specifiec gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   806
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   807
=== <tt>!SetHogName(gearUid, name)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   808
Sets the name of the specified hedgehog gear.
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   809
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   810
=== <tt>!SetHogTeamName(gearUid, name)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   811
Sets the team name of the specified hedgehog gear.
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   812
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   813
=== <tt>!SetWeapon(ammoType)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   814
Sets the selected weapon of `CurrentHedgehog` to one of the [AmmoTypes Ammo Type].
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   815
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   816
Example:
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   817
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   818
<code language="lua">
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   819
  AddAmmo(CurrentHedgehog, amBazooka, 1) -- give the CurrentHedgehog a bazooka
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   820
  SetWeapon(amBazooka) -- select the Bazooka.</code>
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   821
408
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   822
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
   823
=== <tt>!SetNextWeapon()</tt> (0.9.21) ===
408
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   824
This function makes the current hedgehog switch to the next weapon in list of available weapons. It can be used for example in trainings to pre-select a weapon.
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   825
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   826
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   827
=== <tt>!SetHogHat(gearUid, hat)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   828
Sets the hat of the specified hedgehog gear.
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   829
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   830
=== <tt>!SetGearTarget(gearUid, x, y) (0.9.16)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   831
Sets the x and y coordinate of target-based weapons/utilities.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   832
*Note*: This can’t be used in onGearAdd() but must be called after gear creation.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   833
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   834
=== <tt>!SetState(gearUid, state)</tt> ===
415
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   835
Sets the state of the specified gear to the specified `state`. This is a bitmask made out of the variables as seen in [States].
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   836
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   837
This function is often used together with `GetState` and the bitmask utility functions `band` and `bnot` in order to manipulate a single flag.
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   838
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   839
Examples:
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   840
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   841
SetState(CurrentHedgehog, bor(GetState(CurrentHedgehog), gstInvisible))
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   842
--[[ first the state bitmask of CurrentHedgehog is bitwise ORed with
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   843
the gstInvisible flag, thus making the bit responsible for
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   844
invisiblity to become 1. Then the new bitmask is applied to
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   845
CurrentHedgehog, thus making it invisible. ]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   846
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   847
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   848
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   849
SetState(CurrentHedgehog, band(GetState(CurrentHedgehog), bnot(gstInvisible)))
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   850
--[[ The reverse of the above: This function toggles CurrentHedgehog’s
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   851
gstInvisible flag off, thus making it visible again. ]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   852
</code>
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   853
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   854
=== <tt>!SetGearMessage(gearUid, message)</tt> ===
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
   855
Sets the gear messages of the specified gear. `message` is a bitmask built out of flags seen in [GearMessages].
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   856
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   857
=== <tt>!SetTag(gearUid, tag)</tt> ===
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   858
Sets the tag of the specified gear (by `gearUid`). A “tag” of a gear is simply an extra variable to modify misc. things. The meaning of a tag depends on the gear type. For example, for gtBall gears, it specifies the ball color, for gtAirAttack gears (airplane) it specifies the direction of the plane, etc. `tag` has to be an integer.
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   859
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   860
Note that the word “tag” here does _not_ refer to the name and health tags you see above hedgehogs, this is something different. 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   861
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   862
<code language="lua">
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   863
-- This adds a ball (the one from the ballgun) at (123, 456):
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   864
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   865
-- This sets the tag of the gear. For gtBall, the tag specified the color. “8” is the color white.
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   866
SetTag(ball, 8) -- 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   867
</code>
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   868
421
d584704354ad Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents: 419
diff changeset
   869
The meaning of tags are described in [GearTypes].
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   870
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   871
=== <tt>!SetTimer(gearUid, timer)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   872
Sets the timer of the specified gear. Also see `GetTimer`
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   873
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
   874
=== <tt>!SetHogLevel(gearUid, level)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   875
Sets the bot level from 0 to 5. `0` means human player.
69
48f6e6c0076d Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 68
diff changeset
   876
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
   877
=== <tt>!SetGearPos(gearUid, value) (0.9.18-dev)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   878
Set pos of specified gear to specified value.
183
72b2bac582e2 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 182
diff changeset
   879
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   880
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   881
== Gameplay functions ==
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   882
549
fdff535292e4 Minor fix.
almikes@aol.com
parents: 540
diff changeset
   883
=== `GameFlags` functions ===
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   884
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   885
==== <tt>!ClearGameFlags()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   886
Disables *all* !GameFlags.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   887
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   888
==== <tt>!DisableGameFlags(gameflag, ...)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   889
Disables the listed !GameFlags, without changing the status of other !GameFlags.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   890
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   891
==== <tt>!EnableGameFlags(gameflag, ...)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   892
Enables the listed !GameFlags, without changing the status of other !GameFlags.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   893
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   894
==== <tt>!GetGameFlag(gameflag)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   895
Returns `true` if the specified gameflag is enabled, otherwise `false`.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   896
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   897
=== Environment ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   898
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   899
==== <tt>!SetGravity(percent)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   900
Changes the current gravity of the game in percent (relative to default, integer value).
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   901
Setting it to 100 will set gravity to default gravity of hedgewars, 200 will double it, etc.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   902
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   903
==== <tt>!GetGravity()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   904
Returns the current gravity in percent.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   905
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   906
==== <tt>!SetWaterLine(waterline)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   907
Sets the water level (`WaterLine`) to the specified y-coordinate.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   908
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   909
==== <tt>!SetWind(windSpeed)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   910
Sets the current wind in the range of -100 to 100. Use together with `gfDisableWind` for full control.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   911
608
9a49d69316f2 SetMaxBuildDistance
Wuzzy
parents: 583
diff changeset
   912
==== <tt>!SetMaxBuildDistance(distInPx)</tt> (0.9.22) ====
790
1c4b787e841d LuaAPI: fix SetMaxBuildDistance documentation
Wuzzy
parents: 775
diff changeset
   913
Sets the maximum building distance for of girders and rubber bands in pixels to `distInPx`. If `distInPx` is `0`, the limit is disabled. If called without arguments, the distance will be reset to the default value.
608
9a49d69316f2 SetMaxBuildDistance
Wuzzy
parents: 583
diff changeset
   914
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   915
==== <tt>!EndGame()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   916
Makes the game end.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   917
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   918
=== Map ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   919
==== <tt>!MapHasBorder()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   920
Returns `true`/`false` if the map has a border or not.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   921
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   922
==== <tt>!TestRectForObstacle(x1, y1, x2, y2, landOnly) (0.9.16) </tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   923
Checks the rectangle between the given coordinates for possible collisions. Set `landOnly` to `true` if you don’t want to check for collisions with gears (hedgehogs, etc.).
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   924
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   925
==== <tt>!PlaceGirder(x, y, state)</tt> (0.9.16) ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   926
Places a girder with centre points `x`, `y` and a certain length and orientation, specified by `state`.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   927
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   928
These are the accepted states:
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   929
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   930
|| *`state`* || *Length* || *Orientation* ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   931
|| 0 || short || horizontal ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   932
|| 1 || short || decreasing right ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   933
|| 2 || short || vertical ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   934
|| 3 || short || increasing right ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   935
|| 4 || long || horizontal ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   936
|| 5 || long || decreasing right ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   937
|| 6 || long || vertical ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   938
|| 7 || long || increasing right ||
412
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   939
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   940
==== <tt>!PlaceSprite(x, y, sprite, frameIdx, tint, behind, flipHoriz, flipVert, [, landFlag, ...])</tt> ====
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   941
Places a [Sprites sprite] at the specified position (`x`, `y`) on the map, it behaves like terrain then. `frameIdx` is the frame index starting by 0. This is used if the sprite consists of several sub-images. Only a subset of the sprites is currently supported by this function:
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   942
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   943
 * `sprAmGirder`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   944
 * `sprAmRubber`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   945
 * `sprAMSlot`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   946
 * `sprAMAmmos`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   947
 * `sprAMAmmosBW`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   948
 * `sprAMCorners`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   949
 * `sprHHTelepMask`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   950
 * `sprTurnsLeft`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   951
 * `sprSpeechCorner`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   952
 * `sprSpeechEdge`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   953
 * `sprSpeechTail`
691
30323b8a8830 Add sprTargetBee to list of allowed PlaceSprite sprite types
Wuzzy
parents: 689
diff changeset
   954
 * `sprTargetBee` (since 0.9.23)
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   955
 * `sprThoughtCorner`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   956
 * `sprThoughtEdge`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   957
 * `sprThoughtTail`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   958
 * `sprShoutCorner`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   959
 * `sprShoutEdge`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   960
 * `sprShoutTail`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   961
 * `sprSnow`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   962
 * `sprBotlevels`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   963
 * `sprIceTexture`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   964
 * `sprCustom1`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   965
 * `sprCustom2`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   966
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
   967
`tint` is for an RGBA colouring to apply, this works about the same as `Tint` in gears. `behind` indicates the sprite should not replace existing land. `flipHoriz` and `flipVert` are for mirroring the sprite vertically and horizontally before placing, respectively.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   968
The 9th and later arguments specify land flags (see the constants section) to be used for the newly created terrain. If omited, `lfNormal` is assumed.
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   969
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   970
Example:
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   971
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   972
<code language="lua">PlaceSprite(2836, 634, sprAmGirder, 5)
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   973
-- Places the girder sprite as normal terrain at (2836, 634). The `frameIdx` 5 is for the long decreasing right girder.</code>
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   974
<code language="lua">PlaceSprite(1411, 625, sprAmRubber, 1, nil, nil, nil, nil, lfBouncy)
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   975
-- Places the rubber band sprite as bouncy terrain at (2836, 634). The `frameIdx` 1 is for the decreasing right rubber band.</code>
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
   976
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   977
==== <tt>!EraseSprite(x, y, sprite, frameIdx, eraseOnLFMatch, onlyEraseLF, flipHoriz, flipVert, [, landFlag, ...])</tt> ====
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
   978
Erases a [Sprites sprite] at the specified position (`x`, `y`) on the map. `frameIdx` is the frame index starting by 0. `sprite`, `frameIdx`, `flipHoriz` and `flipVert` behave the same as in `PlaceSprite`. For `sprite`, the same subset of sprites is permitted.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   979
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
   980
Set `eraseOnLFMatch` to `true` to erase all land for a pixel that matches any of the passed in land flags.  This is useful if, for example, an `lfBouncy` sprite was placed “behind” land using `PlaceSprite` and you want to remove it without destroying the non-bouncy terrain.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   981
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
   982
Set `onlyEraseLF` to `true` to only remove specific land flags. If for example a sprite consists of `lfIndestructible` and `lfBouncy`, and you call `EraseSprite` with `onlyEraseLF` and `lfIndestructible` set, the sprite will remain bouncy but can be destroyed.  You can use this to entirely remove all land flags from a sprite—at this point the sprite will be visual only, painted on the map but with no collision.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   983
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
   984
Examples:
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   985
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   986
<code language="lua">EraseSprite(2836, 634, sprAmGirder, 5)
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
   987
-- Removes the girder sprite at (2836, 634). The frameIdx 5 is for the long decreasing right girder.</code>
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   988
<code language="lua">EraseSprite(1411, 625, sprAmRubber, 1, true, true, nil, nil, lfIndestructible)
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
   989
-- Removes indestructibility from a rubber band sprite at (2836, 634). The frameIdx 1 is for the decreasing right rubber band.</code>
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   990
412
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   991
==== <tt>!AddPoint(x, y [, width [, erase] ])</tt> (0.9.21) ====
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   992
This function is used to draw your own maps using Lua. The maps drawn with this are of type “hand-drawn”.
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   993
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   994
The function takes a `x`,`y` location, a `width` (means start of a new line) and `erase` (if `false`, this function will draw normally, if `true`, this function will erase drawn stuff).
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   995
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   996
This function must be called within `onGameInit`, where `MapGen` has been set to `mgDrawn`. You also should call `FlushPoints` when you are finished with drawing.
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   997
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   998
==== <tt>!FlushPoints()</tt> (0.9.21) ====
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   999
Makes sure that all the points/lines specified using `AddPoint` are actually applied to the map. This function must be called within `onGameInit`.
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1000
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1001
=== Current hedgehog ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1002
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1003
==== <tt>!GetCurAmmoType()</tt> (0.9.16) ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1004
Returns the currently selected [AmmoTypes Ammo Type].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1005
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1006
==== <tt>!SwitchHog(gearUid)</tt> (0.9.16) ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1007
This function will switch to the hedgehog with the specifiedd `gearUid`.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1008
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1009
==== <tt>!SetInputMask(mask)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1010
Masks specified player input. This means that Hedgewars ignores certain player inputs, such as walking or jumping.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1011
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1012
Example: 
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1013
<code language="lua">    -- masks the long and high jump commands
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1014
SetInputMask(band(0xFFFFFFFF, bnot(gmLJump + gmHJump))) 
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1015
    -- clears input mask, allowing player to take actions
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1016
    SetInputMask(0xFFFFFFFF) 
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1017
		</code>
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1018
*Note*: Using the input mask is an effective way to script uninterrupted cinematics, or create modes such as No Jumping.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1019
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1020
See also [GearMessages].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1021
405
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
  1022
==== <tt>!GetInputMask()</tt> ====
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
  1023
Returns the current input mask of the player.
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
  1024
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1025
=== Randomness ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1026
==== <tt>!GetRandom(number)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1027
Returns a randomly generated number in the range of 0 to number - 1. This random number uses the game seed, so is synchronised, and thus safe for multiplayer and saved games. Use `GetRandom` for anything that could impact the engine state. For example, a visual gear could simply use Lua’s `math.random`, but adding a regular gear should use `GetRandom`.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1028
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1029
=== Clans and teams ===
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1030
==== <tt>!AddTeam(teamname, color, grave, fort, voicepack, flag)</tt> ====
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1031
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1032
Adds a new team. Note that this can only be done in `onGameInit`, not at a later time.
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1033
You *must* add at least one hedgehog with `AddHog` after calling this. The engine does not support empty teams.
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1034
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1035
Arguments:
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1036
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1037
 * `teamname`: The name of the team.
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1038
 * `color`: The RGB color of the team as defined in [LuaAPI#Color]
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1039
 * `grave`: The name of the team’s grave (equals file name without the suffix)
638
9f17dc37a141 some AddTeam clarifications
Wuzzy
parents: 637
diff changeset
  1040
 * `fort`: The name of the team’s fort (equals file name without the suffix and without the letter “L” or “R” before that suffix)
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1041
 * `voicepack`: The name of the team’s voice pack (equals the directory name)
638
9f17dc37a141 some AddTeam clarifications
Wuzzy
parents: 637
diff changeset
  1042
 * `flag`: Optional argument for the name of the team’s flag (equals file name without the suffix). If set to `nil`, the flag “hedgewars” is used.
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1043
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
  1044
*Note*: This works only for singleplayer training missions for now and will desync multiplayer games.
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1045
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1046
Example:
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1047
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1048
<code language="lua">AddTeam("team 1", 0xDD0000, "Simple", "Tank", "Default", "hedgewars")
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1049
--[[ Adds a new team with name “team 1”, red color (hexadecimal notation), the grave “Simple”,
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1050
the fort “Tank” the voicepack “Default” and the flag “hedgewars”. ]]</code>
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1051
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1052
==== <tt>!DismissTeam(teamname)</tt> ====
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1053
Removes the team with the given team name from the game.
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1054
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1055
==== <tt>!GetClanColor(clan)</tt> ====
858
2a562faa73fb LuaAPI: GetClanColor, SetClanColor: They use RGBA instead of RGB
Wuzzy
parents: 826
diff changeset
  1056
Returns the RGBA color of the chosen clan by its number. The color data type is described in [LuaAPI#Color].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1057
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1058
==== <tt>!SetClanColor(clan, color)</tt> ====
858
2a562faa73fb LuaAPI: GetClanColor, SetClanColor: They use RGBA instead of RGB
Wuzzy
parents: 826
diff changeset
  1059
Sets the RGBA color of the chosen clan by its number. The color data type is described in [LuaAPI#Color].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1060
577
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1061
=== Campaign management ===
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1062
==== <tt>!SaveCampaignVar(varname, value)</tt> ====
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1063
Stores the value `value` (a string) into the campaign variable `varname` (also a string). Campaign variables allow you to save progress of a team in a certain campaign. Campaign variables are saved on a per-team per-campaign basis. They are written into the team file (see [ConfigurationFiles#TeamName.hwt]).
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1064
579
9895045e9963 Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents: 577
diff changeset
  1065
There are some special campaign variables which are used by Hedgewars to determine which missions to display in the campaign menu. This is described [ConfigurationFiles#%5BCampaign%20%3CCAMPAIGN_NAME%3E%5D here].
9895045e9963 Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents: 577
diff changeset
  1066
577
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1067
==== <tt>!GetCampaignVar(varname)</tt> ====
579
9895045e9963 Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents: 577
diff changeset
  1068
Returns the value of the campaign variable `varname` as a string. See also `SaveCampaignVar`.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1069
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1070
== Functions affecting the GUI ==
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1071
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1072
=== <tt>!AddCaption(text)</tt> ===
561
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1073
Display an event text in the upper part of the screen. The text will be white and the caption group will be `capgrpMessage`.
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1074
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1075
Example:
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1076
<code language="lua">
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1077
AddCaption("Hello, world!")
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1078
</code>
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1079
561
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1080
=== <tt>!AddCaption(text, color, captiongroup)</tt> ===
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1081
Display an event text in the upper part of the screen with the specified RGBA [LuaAPI#Color color] and caption group. Although an RBGA color is used, Hedgewars does not actually support transparent or semi-transparent captions, so the fourth byte is ignored. We recommend you to always specify a full opacity (`FF` in hexadecimal) for the caption.
561
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1082
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1083
|| *`captiongroup`* || *Meaning* ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1084
|| `capgrpGameState` || Used for important global game events, like Sudden Death ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1085
|| `capgrpAmmoinfo` || Used for new weapon crates and some other events ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1086
|| `capgrpVolume` || Used when adjusting volume ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1087
|| `capgrpMessage` || Generic message ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1088
|| `capgrpMessage2` || Generic message ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1089
|| `capgrpAmmostate` || Used to show information about weapon state, i.e. bounce level, timer, remaining shots, etc. ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1090
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1091
Example:
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1092
<code language="lua">
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1093
AddCaption("Melon bomb rain in 2 rounds!", 0xFF0000FF, capgrpGameState)
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1094
-- Green example message.
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1095
</code>
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1096
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1097
=== <tt>!ShowMission(caption, subcaption, text, icon, time)</tt> ===
648
0830fdc658b8 ShowMission: time=0
Wuzzy
parents: 647
diff changeset
  1098
Use to tell the player what he is supposed to do. If you use this function, a mission pop-up is shown for the amount of time specified in `time` (in milliseconds). If `time` is set to 0, it will be displayed for a default amount of time.
646
044ef16b8ac5 Better explanation of Goals
Wuzzy
parents: 645
diff changeset
  1099
This function replaces the *entire* text of the pop-up. Compare this to the global `Goals` variable, which *adds* to the default text without replacing it.
645
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1100
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1101
`caption` is the text displayed in the first line, `subcaption` is displayed in the second line and `text` is the text displayed in the third and following lines.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1102
647
42b3e6a6ea8a Minor copy-editing
Wuzzy
parents: 646
diff changeset
  1103
`text` uses some special characters for formatting: `|` is used for a line break, and everything written before and including a `:` in a line is written in a lighter color.
645
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1104
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1105
As of version 0.9.22, `icon` accepts the following values:
79
64fc6cee4af7 Added a note on the new icons for ShowMission
RedGrinner
parents: 78
diff changeset
  1106
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1107
|| *`icon`* || *What is shown* ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1108
|| _negative number_ || Icon of an ammo type. It is specified as the negative of an ammo type constant (see [AmmoTypes]), i.e. `-amBazooka` for the bazooka icon. ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1109
|| `0` || Golden crown ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1110
|| `1` || Target ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1111
|| `2` || Exclamation mark ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1112
|| `3` || Question mark ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1113
|| `4` || Golden star ||
636
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1114
|| `5` || Utility crate ||
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1115
|| `6` || Health crate ||
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1116
|| `7` || Ammo crate ||
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1117
|| `8` || Barrel ||
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1118
645
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1119
Example:
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1120
<code language="lua">
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1121
ShowMission(loc("Nobody Laugh"), loc("User Challenge"), loc("Eliminate the enemy before the time runs out"), 0, 0)
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1122
</code>
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1123
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1124
=== <tt>!HideMission()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1125
Hides the mission. This function is currently bugged somehow and will completely ruin your life, and your script should you happen to use it.
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1126
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1127
=== <tt>!SetZoom(zoomLevel)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1128
Sets the zoom level. The value for maximum zoom is currently 1.0 and for minimum 3.0 The default zoom level is 2.0
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1129
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1130
=== <tt>!GetZoom()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1131
Returns the current zoom level.
147
379d7931ffc7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 146
diff changeset
  1132
775
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1133
=== `SetCinematicMode(enable)` (0.9.23) ===
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1134
Turns on or off cinematic mode. Cinematic mode can be used for cutscenes etc.
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1135
If `enable` is set to `true`, cinematic mode is enabled,
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1136
if it is `false`, cinematic mode is disabled.
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1137
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1138
== Sound functions ==
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1139
=== <tt>!PlaySound(soundId)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1140
Plays the specified sound. Possible values for `soundId` are listed on the [Sounds] page.
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1141
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1142
=== <tt>!PlaySound(soundId, gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1143
Plays the specified sound for the chosen hedgehog gear. This can be used to play a taunt with the voicepack of the hedgehog’s team.
70
ff7d4c176303 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 69
diff changeset
  1144
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1145
Possible values for `soundId` are listed on the [Sounds] page. See also [Taunts].
77
588f5dc682e2 Added SetInputMask function
RedGrinner
parents: 76
diff changeset
  1146
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1147
== File system functions ==
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
  1148
=== <tt>!HedgewarsScriptLoad(scriptPath)</tt> ===
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1149
Loads a script (i.e. a [LuaLibraries library]) from the specified `scriptPath`. The root directory is here Hedgewars’ data directory.
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1150
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1151
Example:
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1152
<code language="lua">
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1153
HedgewarsScriptLoad("/Scripts/Locale.lua")  -- loads locale library
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1154
</code>
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1155
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1156
=== <tt>!GetDataPath()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1157
Returns the path to the data directory, used when adding libraries.
68
fd230628d72c Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 67
diff changeset
  1158
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1159
=== <tt>!GetUserDataPath()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1160
Returns the path to the user data directory, used when adding libraries.
180
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1161
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1162
73
c6623486d077 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 72
diff changeset
  1163
89
caf6544f767a Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 87
diff changeset
  1164
caf6544f767a Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 87
diff changeset
  1165
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1166
== Stats functions ==
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
  1167
=== <tt>!SendStat(TStatInfoType, statMessage[, teamName])</tt> (0.9.20) ===
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1168
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1169
This function exposes the uIO SendStat to the Lua scripts. Use it to produce custom stat pages.
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1170
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1171
`TStatInfoType` is the piece of information you want to manipulate. The result of this functions varies greatly for different `TStatInfoType`s. The parameter `statMessage` is mandatory and is a string used for the statistics, its meaning depends on the `TStatInfoType`. The parameter `teamName` contains the name of a team which is relevant to the chosen stat. This parameter is not always required, this also depends on `TStatInfoType`.
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1172
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1173
This tables explains the different behaviours of this function for different values of `TStatInfoType`:
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1174
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1175
|| *`TStatInfoType`* || *Meaning of `statMessage`* || *Team parameter used?* ||
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1176
|| `siGraphTitle` || Title of the graph. If you use this, the health icon changes into a star. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1177
|| `siGameResult` || Title of the stats screen, used to show the result of the game, i.e. who won the game || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1178
|| `siCustomAchievement` || A freeform text for a single “bullet point” in the “bullet point” list in the details section. For each time you call `SendStat` with this `TStatInfoType`, a new “bullet point” gets added to the list. || No ||
685
06cd9e0842e4 Clarify siPointType usage
Wuzzy
parents: 650
diff changeset
  1179
|| `siPointType` || Replaces the word “kills” in the ranking list. You have to call this each time before you report the score or kills of a team with `siPlayerKills`. Sadly, grammatical number is currently not respected at all here. || No ||
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1180
|| `siPlayerKills` || The number of kills for the specified team (converted to a string), as shown in the ranking list. Unless the word “kills” has been replaced by `siPointType`, then that word is used instead. Only integers (converted to string) are possible. || Yes ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1181
|| `siClanHealth` || Value of a data point (converted to a string). This sets a single data point on the graph for the specified team. Subsequent calls will draw the next point along the horizontal axis; the frontend will then simply connect the dots in the final graph. The graphs are treated independently for each other. Currently the graph only can display positive values. You also should have called `SendHealthStatsOff` if you use this to prevent the default health graphs to be drawn. || Yes ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1182
|| `siMaxStepKills` || Most hedgehogs killed in a round. `statText` must be in format “`<kills> <name of killer hedgehog> (<team name of killer>)`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1183
|| `siMaxTeamDamage` || Hedgehog with most damage inflicted to his own team. `statText` must be in the format “`<damage> <hedgehog name>`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1184
|| `siKilledHHs` || Total number of killed hedgehogs (converted to string). || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1185
|| `siTeamStats` || Increases the wins of local teams in case the given number is greater than 0. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1186
|| `siMaxStepDamage` || Best shot award (most damage in one turn). `statText` must be in format “`<damage> <hedgehog name> (<team name>)`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1187
|| `siMaxTurnSkips` || Team with most skips. `statText` must be of format “`<number> <teamName>`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1188
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1189
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1190
<b>Examples:</b>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1191
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1192
<code language="lua">
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1193
-- will automatically change the health icon to a star
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1194
SendStat(siGraphTitle,'Custom Graph Title')
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1195
SendStat(siGameResult,'Winner is Team A!')
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1196
SendStat(siCustomAchievement,'This is a custom message posted in the Details section!')
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1197
-- Changes the word kill to Point, call it just before sending kills/score for each hog
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1198
-- in case you want to change the word i.e. print Point or Points
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1199
SendStat(siPointType,'Point')
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1200
-- if above function call was not used it will print 3 kills for teamName in Ranking section.
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1201
-- if it was used it will print 3 Point for teamName in Ranking section.
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1202
SendStat(siPlayerKills,'3',teamName)
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1203
-- call siClanHealth to send the "value" of a clan that will be used for the graph creation
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1204
-- a good idea is to call it always for every hog by using the runOnGears(function)
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1205
-- in normal mode "value" represents clan health
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1206
SendStat(siClanHealth, "100",teamName)
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1207
-- most hedgehogs killed in a round (hedgeHogName is who killed them)
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1208
SendStat(siMaxStepKills, "1 hedgeHogName (teamName)")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1209
-- hog with most damage inflicted to his own team
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1210
SendStat(siMaxTeamDamage, "100 hedgeHogName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1211
-- total number of killed hedgehogs
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1212
SendStat(siKilledHHs, "1")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1213
-- increases the wins of local teams in case the given number is greater than 0
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1214
SendStat(siTeamStats, "teamName:0:")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1215
-- best shot award
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1216
SendStat(siMaxStepDamage, "30 hedgeHogName (teamName)")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1217
-- team with most kills of own hedgehogs
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1218
SendStat(siMaxStepDamage, "2 teamName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1219
-- team with most skips
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1220
SendStat(siMaxTurnSkips, "3 teamName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1221
</code>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1222
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1223
<b>Important:</b>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1224
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1225
  * As the game engine send stats to the frontend at the end of the game one should send her stats when the game is going to finish and right before the call of `EndGame()`. (Note: Stats are sent from the engine in `CheckForWin`. If conditions are met (win or draw) then `SendStats(uStats)` is called.)
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1226
  * Calling just `EndGame()` won’t produce any stats.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1227
  * If one would like to produce a custom graph see also `SendHealthStatsOff()`.
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1228
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1229
=== <tt>!SendHealthStatsOff()</tt> (0.9.20) ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1230
Prevents the engine of sending health stats to the frontend. 
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1231
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1232
If any health stats haven’t been sent before this will cause the health graph to the stats page to be hidden. Use this function in the Lua scripts to produce custom graphs by calling it inside `onGameStart()` and using the `SendStat()`.
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1233
382
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1234
== Math Functions ==
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1235
383
6679b75048c0 I really have to get used to using preview on google code wiki...
sheepyluva@gmail.com
parents: 382
diff changeset
  1236
=== <tt>div(dividend, divisor)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1237
Performs an integer division and returns the result.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1238
The result is an integer and has the value of the first parameter (an integer) divided by the second parameter (another integer), rounded towards zero.
382
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1239
401
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1240
=== <tt>band(value1, value2)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1241
Returns the bitwise logical AND of `value1` and `value2`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1242
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1243
=== <tt>bor(value1, value2)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1244
Returns the bitwise logical OR of `value1` and `value2`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1245
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1246
=== <tt>bnot(value)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1247
Returns the bitwise logical NOT of `value`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1248
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1249
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1250
== Debugging Functions ==
820
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1251
=== `WriteLnToConsole(string)` ===
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1252
Writes `string` to `Logs/game0.log`, found in the user data directory.
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1253
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1254
=== `DumpPoint(x, y)` (0.9.23) ===
821
2bf17581d46b LuaAPI: DumpPoint 2
Wuzzy
parents: 820
diff changeset
  1255
Converts the whole numbers `x` and `y` to strings and writes them to `Logs/game0.log`, one line each.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1256
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1257
=== <tt>!ParseCommand(string)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1258
Makes the game client parse the specified custom command.
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1259
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1260
*Note*: Please be aware that the *engine protocol can (and will) change* between releases.
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1261
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1262
If you use `ParseCommand` to overcome a shortcoming in our Lua API (e.g. a missing function), please make sure to [https://code.google.com/p/hedgewars/issues/entry report the issue].
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1263
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1264
With your report we can fix the shortcoming in future releases.
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1265
This will allow scripts to use the previously missing feature in a way that won’t break!
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1266
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1267