LuaAPI.wiki
author almikes@aol.com
Mon, 15 Dec 2014 23:51:37 +0000
changeset 505 a79631e03c84
parent 503 87a36ae53518
child 515 8e9d86efc07b
permissions -rw-r--r--
Add onParameters and ScriptParam
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
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
     3
<wiki:toc max_depth="4" />
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
     4
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     5
== Introduction ==
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     6
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     7
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
     8
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
     9
Lua is an easy to learn scripting language that's implemented using open/v 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
    10
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    11
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    12
How Hedgewars handles Lua scripts As of Version 0.9.13 Hedgewars supports Lua scripts for two similar tasks: Define tutorial missions or provide special map behaviour for precreated maps.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    13
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    14
414
14ec7b5cb560 Add link to the Lua wiki check script.
almikes@aol.com
parents: 413
diff changeset
    15
=== About this wiki page ===
14ec7b5cb560 Add link to the Lua wiki check script.
almikes@aol.com
parents: 413
diff changeset
    16
This page tends to become outdated. For a list of undocumented functions, see [http://hw.ercatec.net/docs/lua_wiki_check.php].
14ec7b5cb560 Add link to the Lua wiki check script.
almikes@aol.com
parents: 413
diff changeset
    17
14ec7b5cb560 Add link to the Lua wiki check script.
almikes@aol.com
parents: 413
diff changeset
    18
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    19
=== Tutorial missions ===
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
    20
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
    21
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    22
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    23
=== Special maps ===
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    24
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. Maps containing lua scripts will be listed with a "Mission:" prefix in map selection.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    25
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    26
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    27
=== How Lua scripts are used ===
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    28
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).
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    29
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
=== Important things to know ===
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    32
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.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    33
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.
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
=== Global variables/constants ===
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    36
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.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    37
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    38
  	  	 
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    39
=== Functions called by the game: Event Handlers ===
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    40
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
    41
478
7b95addbe9fc Move “color” into new data types section.
almikes@aol.com
parents: 477
diff changeset
    42
== Data types ==
7b95addbe9fc Move “color” into new data types section.
almikes@aol.com
parents: 477
diff changeset
    43
=== Color ===
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    44
Some functions take a `color` parameter.
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    45
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    46
Colors are stored in RGB and are always specified as a three-byte number, where each byte defines a component. The value 0 means no intensity and 255 is largest intensity of the component.
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    47
The first byte is for the red component, the second byte for the green component and the third byte for the blue component.
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    48
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    49
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
    50
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    51
Examples:
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    52
<code language="lua">
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    53
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
    54
c = 0xFF0000 -- red
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    55
c = 0x00FF00 -- green
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    56
c = 0x0000FF -- blue
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    57
c = 0xFFFFFF -- white
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    58
c = 0x808080 -- gray (50%)</code>
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    59
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    60
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
    61
== 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
    62
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
    63
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    64
=== 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
    65
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
    66
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
    67
|| *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
    68
|| `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
    69
|| `LAND_HEIGHT` || The height 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
    70
|| `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
    71
|| `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
    72
|| `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
    73
|| `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
    74
|| `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
    75
|| `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
    76
|| `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
    77
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
    78
=== !GameFlags ===
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    79
The !GameFlags are used to store simple boolean settings of the game. All game flags are stored together in a bitmask. You don’t have to worry about this too much, the functions in [LuaAPI#GameFlags] do all the bitmask handling for you.
102
86cf695636c6 Added gfResetHealth to Gameflags section along with a note.
RedGrinner@gmail.com
parents: 101
diff changeset
    80
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
    81
|| *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
    82
|| `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
    83
|| `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
    84
|| `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
    85
|| `gfDivideTeams` || The teams will start at opposite sites of the terrain. Two clans maximum. ||
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
|| `gfBorder` || An indestrctible border is active around the map. ||
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
|| `gfBottomBorder` || There is an indestructable border at the bottom of the map. ||
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
|| `gfShoppaBorder` || TODO ||
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
|| `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
    90
|| `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
    91
|| `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
    92
|| `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
    93
|| `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
    94
|| `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
    95
|| `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
    96
|| `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
    97
|| `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
    98
|| `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
    99
|| `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
   100
|| `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
   101
|| `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
   102
|| `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
   103
|| `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
   104
|| `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
   105
|| `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
   106
|| `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
   107
|| `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
   108
|| `gfTagTeam` || Tag Team: Teams in the same clan share their turn time. ||
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   109
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
   110
The following !GameFlag is not yet available to Lua:
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
|| *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
   112
|| `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
   113
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
=== More 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
   115
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
   116
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   117
== Event Handlers ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   118
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   119
=== <tt>onGameInit()</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   120
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   121
<blockquote>This function is called before the game loads its resources. One can modify various game variables here:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   122
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   123
 * <tt>Seed = 0</tt> - sets the seed of the random number generator
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
   124
 * <tt>!EnableGameFlags(gfSolidLand, gfArtillery)</tt> - sets the !GameFlags (just 2 of them in this example), see above for the available flags/
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   125
 * <tt>!TurnTime = 60000</tt> - set the turntime in ms
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   126
 * <tt>!CaseFreq = 0</tt> - frequency of crate drops
22
af151755fd72 fix for auto-links
henrik.rostedt
parents: 21
diff changeset
   127
 * <tt>!HealthCaseProb = 35</tt> - chance of receiving a health crate
af151755fd72 fix for auto-links
henrik.rostedt
parents: 21
diff changeset
   128
 * <tt>!HealthCaseAmount = 25</tt> - amount of health in a health crate
21
e8bcd7c1ba3c updated with more options and flags
henrik.rostedt
parents: 17
diff changeset
   129
 * <tt>!DamagePercent = 100</tt> - percent of damage to inforce
23
5800c5aef9ca one more
henrik.rostedt
parents: 22
diff changeset
   130
 * <tt>!MinesNum = 0</tt> - number of mines being placed (before 0.9.14 !LandAdds)
21
e8bcd7c1ba3c updated with more options and flags
henrik.rostedt
parents: 17
diff changeset
   131
 * <tt>!MinesTime = 3</tt> - time for a mine to explode from activated, -1 for random
e8bcd7c1ba3c updated with more options and flags
henrik.rostedt
parents: 17
diff changeset
   132
 * <tt>!MineDudPercent = 0</tt> - chance of mine being a dud
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   133
 * <tt>Explosives = 0</tt> - number of explosives being placed
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   134
 * <tt>Delay = 0</tt> - delay between each round
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   135
 * <tt>!SuddenDeathTurns = 30</tt> - turns until sudden death begins
22
af151755fd72 fix for auto-links
henrik.rostedt
parents: 21
diff changeset
   136
 * <tt>!WaterRise = 47</tt> - height of water rise at sudden death in pixels
af151755fd72 fix for auto-links
henrik.rostedt
parents: 21
diff changeset
   137
 * <tt>!HealthDecrease = 5</tt> - amount of health decreased on sudden death
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   138
 * <tt>Map = "Bamboo"</tt> - the map being played
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   139
 * <tt>Theme = "Bamboo"</tt> - the theme to be used
147
379d7931ffc7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 146
diff changeset
   140
 * <tt>Ready = 5000</tt> - the ready timer at the start of the round
412
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   141
 * <tt>!MapGen</tt> - type of map generator. One of `mgRandom`, `mgMaze`, `mgPerlin`, `mgDrawn`.
146
a644314c7703 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 145
diff changeset
   142
 * <tt>!TemplateFilter</tt>
87
315a93b441d4 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 82
diff changeset
   143
 * <tt>Goals = "Jumping is disabled"</tt> - if you want to add info to the game mode dialog, use "|" to separate lines
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   144
412
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   145
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
   146
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   147
=== <tt>onGameStart()</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   148
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   149
<blockquote>This function is called when the first round starts.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   150
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   151
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
   152
505
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   153
=== <tt>onPreviewInit()</tt> (0.9.21) ===
461
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   154
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
   155
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   156
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
   157
505
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   158
=== <tt>onParameters()</tt> (0.9.21) ===
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   159
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
   160
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   161
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
   162
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   163
*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
   164
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   165
*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
   166
64
a651a8ab85d5 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 63
diff changeset
   167
=== <tt>onGameTick()</tt> ===
a651a8ab85d5 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 63
diff changeset
   168
346
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   169
<blockquote>This function is called on every game tick, i.e. 1000 times a second.  If you just need to check on something periodically, consider...
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   170
</blockquote>
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   171
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   172
=== <tt>onGameTick20()</tt> ===
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   173
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   174
<blockquote>This function is called every 20 game ticks, i.e. 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
   175
</blockquote>
a651a8ab85d5 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 63
diff changeset
   176
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   177
=== <tt>onNewTurn()</tt> ===
63
24004a9003ec Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 62
diff changeset
   178
24004a9003ec Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 62
diff changeset
   179
<blockquote>This function calls at the start of every turn.
24004a9003ec Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 62
diff changeset
   180
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   181
=== <tt>onGearAdd(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   182
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   183
<blockquote>This function is called when a new gear is added. Useful in
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   184
combination with <tt>!GetGearType(gearUid)</tt>.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   185
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   186
=== <tt>onGearDelete(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   187
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   188
<blockquote>This function is called when a new gear is deleted. Useful in
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   189
combination with <tt>!GetGearType(gearUid)</tt>.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   190
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   191
=== <tt>onGearDamage(gearUid, damage)</tt> ===
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   192
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   193
<blockquote>This function is called when a gear is damaged.
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   194
</blockquote>
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   195
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   196
Example:
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   197
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   198
<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
   199
        if (GetGearType(gear) == gtHedgehog) then
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   200
            -- 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
   201
            AddCaption(GetHogName(gear) .. ' took ' .. damage .. ' points of damage')
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   202
        end
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   203
    end</code>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   204
=== <tt>onGearResurrect(gearUid) </tt> ===
44
bf53e635a2ac Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 43
diff changeset
   205
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   206
<blockquote>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
   207
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   208
=== <tt>onAmmoStoreInit()</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   209
13
2074f03075c6 LuaAPI: minor changes
tobias.neumann
parents: 12
diff changeset
   210
<blockquote>This function is called when the game is initialized to request the available ammo and ammo probabilities. Use !SetAmmo here.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   211
</blockquote>
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
   212
203
08cc35ba4d34 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 202
diff changeset
   213
=== <tt>onNewAmmoStore(team/clan index, hog index)</tt> ===
202
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   214
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   215
<blockquote>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.</blockquote>
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   216
If gfSharedAmmo is set, the parameters passed are the clan index, and -1, and the function will be called once for each clan.
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   217
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.
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   218
If neither is set, the parameters passed are the team index and -1, and the function will be called once for each team.
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   219
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   220
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.
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   221
If you add this hook, the expectation is that you will call SetAmmo appropriately.  Any values from onAmmoStoreInit are ignored.
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   222
502
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   223
=== <tt>onGearWaterSkip(gear)</tt> (0.9.21) ===
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   224
This function is called when the gear `gear` skips over water.
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   225
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   226
=== <tt>onScreenResize()</tt> (0.9.16) ===
145
547ac6a1d14e Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 144
diff changeset
   227
547ac6a1d14e Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 144
diff changeset
   228
<blockquote>This function is called when you resize the screen. Useful place to put a redraw function for any vgtHealthTags you're using.
547ac6a1d14e Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 144
diff changeset
   229
</blockquote>
547ac6a1d14e Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 144
diff changeset
   230
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
   231
=== <tt>onAttack()</tt> ===
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
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
   233
<blockquote>This function is called when your Hedgehog attacks.
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
   234
</blockquote>
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
   235
107
kyberneticist
parents: 102
diff changeset
   236
=== <tt>onHJump()</tt> ===
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
   237
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
   238
<blockquote>This function is called when you press the high jump key.
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
   239
</blockquote>
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
   240
107
kyberneticist
parents: 102
diff changeset
   241
=== <tt>onLJump()</tt> ===
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
   242
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
   243
<blockquote>This function is called when you press the long jump key.
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
   244
</blockquote>
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
   245
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
   246
=== <tt>onPrecise()</tt> ===
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
   247
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
<blockquote>This function is called when you press the precise key.
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
   249
</blockquote>
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
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
   251
=== <tt>onLeft()</tt> ===
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
   252
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
<blockquote>This function is called when you press the left key.
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
   254
</blockquote>
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
   255
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
=== <tt>onRight()</tt> ===
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
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
   258
<blockquote>This function is called when you press the right key.
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
</blockquote>
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
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
   261
=== <tt>onUp()</tt> ===
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
<blockquote>This function is called when you press the up key.
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
   264
</blockquote>
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>onDown()</tt> ===
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
   267
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
<blockquote>This function is called when you press the down key.
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
</blockquote>
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
   270
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   271
=== <tt>onAttackUp()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   272
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   273
<blockquote>This function is called when you release the attack key.</blockquote>
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> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   276
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   277
<blockquote>This function is called when you release the down key.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   278
 
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   279
=== <tt>onHogAttack()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   280
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   281
<blockquote>This function is called when you press the attack key.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   282
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   283
=== <tt>onLeftUp()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   284
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   285
<blockquote>This function is called when you release the left key.</blockquote>
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>onPreciseUp()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   288
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   289
<blockquote>This function is called when you release the precise key.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   290
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   291
=== <tt>onRightUp()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   292
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   293
<blockquote>This function is called when you release the right key.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   294
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   295
=== <tt>onSetWeapon()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   296
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   297
<blockquote>It is get called when a weapon is selected or switched.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   298
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   299
=== <tt>onSlot()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   300
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   301
<blockquote>This function is called when a weapon slot (row in the weapon menu) is selected.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   302
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   303
=== <tt>onSwitch()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   304
176
c480b9c21241 fix typo
sheepyluva@gmail.com
parents: 175
diff changeset
   305
<blockquote>This function is called when a hog is switched to another.</blockquote>
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   306
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   307
=== <tt>onTaunt()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   308
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   309
<blockquote>This function is called when the player uses an animated   emote for example "/wave, /juggle and etc.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   310
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   311
=== <tt>onTimer()</tt> ===
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   312
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   313
<blockquote>This function is called when one of the timer keys is pressed.</blockquote>
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   314
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   315
=== <tt>onUpUp()</tt> ===
173
ef246592a16e Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 172
diff changeset
   316
178
dde460404412 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 177
diff changeset
   317
<blockquote>This function is called when you release the up 
dde460404412 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 177
diff changeset
   318
key.</blockquote>
dde460404412 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 177
diff changeset
   319
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   320
=== <tt>onHogHide()</tt> (0.9.16) ===
178
dde460404412 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 177
diff changeset
   321
179
156e5fba2e2c Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 178
diff changeset
   322
<blockquote>This function is called when a hedgehog is hidden(removed from the map).</blockquote>
156e5fba2e2c Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 178
diff changeset
   323
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   324
=== <tt>onHogRestore()</tt> (0.9.16) ===
179
156e5fba2e2c Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 178
diff changeset
   325
403
7642806ce7b9 Fix bad intendation.
almikes@aol.com
parents: 402
diff changeset
   326
<blockquote>This function is called when a hedgehog is restored (unhidden).</blockquote>
173
ef246592a16e Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 172
diff changeset
   327
411
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   328
=== <tt>onSpritePlacement(spriteId, centerX, centerY)</tt> (0.9.21) ===
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   329
This function is called when a [Sprites Sprite] has been placed.
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   330
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   331
`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
   332
402
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   333
=== <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
   334
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
   335
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   336
`frameIdx` is an integer and declares the length and orientation of the girder:
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   337
|| `frameIdx` || length || orientation ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   338
|| 0 || short || horizontal ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   339
|| 1 || short || decreasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   340
|| 2 || short || vertical ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   341
|| 3 || short || increasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   342
|| 4 || long || horizontal ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   343
|| 5 || long || decreasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   344
|| 6 || long || vertical ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   345
|| 7 || long || increasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   346
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   347
`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
   348
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   349
=== <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
   350
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
   351
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   352
`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
   353
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   354
|| `frameIdx` || orientation ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   355
|| 0 || horizontal ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   356
|| 1 || decreasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   357
|| 2 || vertical ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   358
|| 3 || increasing right ||
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   359
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   360
`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
   361
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   362
== Functions for creating gears ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   363
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   364
=== <tt>!AddGear(x, y, gearType, state, dx, dy, timer)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   365
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
   366
<blockquote>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
   367
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   368
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   369
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   370
<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
   371
    FindPlace(gear, true, 0, LAND_WIDTH)</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   372
359
pntanasis@gmail.com
parents: 347
diff changeset
   373
=== <tt>!AddVisualGear(x, y, visualGearType, state, critical)</tt> ===
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   374
42
565e15a60043 Edited wiki page LuaAPI through web user interface.
kyberneticist
parents: 39
diff changeset
   375
<blockquote>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.  False if it is just an effect, and can be skipped when in fastforward (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
   376
</blockquote>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   377
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   378
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   379
<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
   380
    vgear = AddVisualGear(1000, 1000, vgtExplosion, 0, false) 
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   381
</code>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   382
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   383
=== <tt>!SpawnHealthCrate(x, y)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   384
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> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   388
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   389
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).
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   390
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:
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   391
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   392
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   393
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   394
<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
   395
    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
   396
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   397
=== <tt>!SpawnUtilityCrate(x, y, ammoType)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   398
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   399
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
   400
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   401
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   402
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   403
<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
   404
    SpawnUtilityCrate(0, 0, amLaserSight)</code>
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   405
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   406
=== <tt>!SpawnFakeAmmoCrate(x, y, explode, poison) </tt> ===
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   407
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   408
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
   409
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   410
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   411
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   412
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   413
Example:
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   414
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   415
<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
   416
</code>
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   417
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   418
=== <tt>!SpawnFakeHealthCrate(x, y, explode, poison) </tt> ===
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   419
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   420
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
   421
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   422
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   423
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   424
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   425
=== <tt>!SpawnFakeUtilityCrate(x, y, explode, poison) </tt> ===
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   426
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   427
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
   428
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   429
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   430
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   431
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   432
=== <tt>!AddHog(hogname, botlevel, health, hat)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   433
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   434
Adds a new hedgehog for current team (last created one with the `AddTeam` function), with bot level and specified health, also hat.
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   435
`botlevel` ranges from `0` to `5`, where `0` denotes a human player and `1` to `5` denote the skill level of a bot.
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   436
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   437
Notice: This works only for singleplayers training missions for now and will desync multiplayer games.
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
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   440
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   441
<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
   442
    SetGearPosition(player, 1500, 1000)</code>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   443
== Functions to get gear properties ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   444
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   445
=== <tt>!GetGearType(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   446
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   447
<blockquote>returns one of [GearTypes Gear Types] for the specified gear
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   448
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   449
=== <tt>!GetGearPosition(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   450
148
f343b50d5619 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 147
diff changeset
   451
<blockquote>returns x,y coordinates for the specified gear
f343b50d5619 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 147
diff changeset
   452
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   453
=== <tt>!GetGearRadius(gearUid)</tt> ===
148
f343b50d5619 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 147
diff changeset
   454
f343b50d5619 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 147
diff changeset
   455
<blockquote>Returns radius for the specified gear
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   456
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   457
=== <tt>!GetGearVelocity(gearUid)</tt> ===
71
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   458
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   459
<blockquote>returns tuple of dx,dy values for the specified gear
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   460
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   461
=== <tt>!GetGearElasticity(gearUid) </tt> ===
74
6130cad02b02 Added GetGearElasticity
RedGrinner
parents: 73
diff changeset
   462
6130cad02b02 Added GetGearElasticity
RedGrinner
parents: 73
diff changeset
   463
<blockquote>Returns the elasticity of the specified gear. 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.
6130cad02b02 Added GetGearElasticity
RedGrinner
parents: 73
diff changeset
   464
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   465
=== <tt>!GetHogClan(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   466
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   467
<blockquote>returns the clan id of the specified hedgehog gear
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   468
</blockquote>
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   469
=== <tt>!GetHogTeamName(gearUid)</tt> ===
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   470
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   471
<blockquote>returns the name of the specified hedgehog gear's team
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   472
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   473
=== <tt>!GetHogName(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   474
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   475
<blockquote>returns the name of the specified hedgehog gear
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   476
</blockquote>
140
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   477
=== <tt>!GetEffect(gearUid, effect)</tt> ===
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   478
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   479
<blockquote>Returns the state of given effect for the given hedgehog gear.  
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   480
</blockquote>
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   481
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   482
see !SetEffect for further details
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   483
=== <tt>!GetHogHat(gearUid)</tt> ===
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   484
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   485
<blockquote>Returns the hat of the specified hedgehog gear
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   486
</blockquote>
141
b10bef9ac535 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 140
diff changeset
   487
=== <tt>!GetAmmoCount(gearUid, ammoType) (0.9.16)</tt> ===
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   488
141
b10bef9ac535 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 140
diff changeset
   489
<blockquote>Returns the ammo count of the specified ammo type for the specified hedgehog gear.
b10bef9ac535 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 140
diff changeset
   490
</blockquote>
138
9ca80a93aae0 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 137
diff changeset
   491
=== <tt>!GetGearTarget(gearUid, x, y)  (0.9.16)</tt> ===
137
dd7605730ec5 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 136
diff changeset
   492
138
9ca80a93aae0 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 137
diff changeset
   493
<blockquote>Returns the x and y coordinate of target-based weapons/utilities. <b> Note: </b>: This can't be used in onGearAdd() but must be called after gear creation. 
137
dd7605730ec5 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 136
diff changeset
   494
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   495
=== <tt>GetX(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   496
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   497
<blockquote>returns x coordinate of the gear
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   498
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   499
=== <tt>GetY(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   500
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   501
<blockquote>returns y coordinate of the gear
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   502
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   503
=== <tt>!GetState(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   504
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
   505
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
   506
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
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
   508
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
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
   510
<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
   511
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
   512
--[[ 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
   513
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
   514
</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
   515
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
<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
   517
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
   518
--[[ 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
   519
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
   520
“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
   521
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
   522
</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
   523
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
<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
   525
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
   526
--[[ 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
   527
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
   528
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
   529
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
   530
</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
   531
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   532
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   533
=== <tt>!GetGearMessage(gearUid)</tt> ===
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   534
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   535
<blockquote>returns the message of the gear.
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   536
</blockquote>
419
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
=== <tt>!GetTag(gearUid)</tt> ===
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
Returns the tag of the specified gear (by `gearUid`). 
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
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
   543
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   544
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
   545
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   546
<code language="lua">
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   547
-- This adds a ball (the one from the ballgun) at (123, 456):
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   548
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   549
-- 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
   550
colorTag = GetTag(ball)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   551
-- 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
   552
</code>
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   553
421
d584704354ad Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents: 419
diff changeset
   554
The meaning of tags are described in [GearTypes].
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   555
209
26805ae2a319 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 203
diff changeset
   556
=== <tt>!GetFollowGear()</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   557
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   558
<blockquote>Returns the uid of the gear that is currently being followed.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   559
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   560
=== <tt>!GetTimer(gearUid)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   561
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   562
<blockquote>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.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   563
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   564
=== <tt>!GetHealth(gearUid)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   565
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   566
<blockquote>returns the health of the gear
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   567
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   568
=== <tt>!GetHogLevel(gearUid)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   569
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   570
<blockquote>returns the bot level from 0 to 5. 0 means human player.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   571
</blockquote>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   572
503
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   573
=== <tt>!GetGearPos(gearUid)</tt> ===
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   574
Get pos of specified gear.
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   575
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   576
=== <tt>!GetVisualGearValues(vgUid)</tt> ===
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   577
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   578
<blockquote>This returns the typically set visual gear values, useful if manipulating things like smoke or bubbles or circles.  It returns the following values:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   579
X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint 
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   580
X, Y typically position, dX, dY typically speed, Angle is usually the rotation angle, Frame is typically the animation frame, FrameTicks is usually an animation counter.  State can have a variety of values, but is typically bit packed, Timer is usually the gear lifetime and Tint is the colour.
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   581
Most visual gears require little to no modification of parameters.
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   582
</blockquote>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   583
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   584
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   585
<code language="lua">    GetVisualGearValues(vgUid) -- return visual gear values
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   586
</code>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   587
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   588
== Functions to modify gears ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   589
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   590
=== <tt>!HideHog(gearUid)</tt> ===
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   591
244
74d74086e49b Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 243
diff changeset
   592
<blockquote>Removes a hedgehog from the map. The hidden hedgehog can be restored with !RestoreHog(gearUid). The current hedgehog cannot be hidden!</blockquote>
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   593
Example: 
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   594
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   595
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   596
     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
   597
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   598
=== <tt>!RestoreHog(gearUid)</tt> ===
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   599
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   600
<blockquote>Restores a previously hidden hedgehog.</blockquote>
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   601
Example: 
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   602
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   603
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   604
     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
   605
     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
   606
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   607
=== <tt>!DeleteGear(gearUid)</tt> ===
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   608
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   609
<blockquote>Deletes a Gear</blockquote>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   610
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   611
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   612
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   613
    DeleteGear(gear) -- Delete the newly created gear.</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   614
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   615
=== <tt>!DeleteVisualGear(vgUid)</tt> ===
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   616
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   617
<blockquote>Deletes a Visual Gear.  Note, most visual gears delete themselves.</blockquote>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   618
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   619
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   620
<code language="lua">    vgear = AddVisualGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   621
    DeleteVisualGear(vgear) -- Delete the newly created visual gear.</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   622
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   623
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   624
=== <tt>!SetVisualGearValues(vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)</tt> ===
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   625
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   626
<blockquote>This allows manipulation of many of the visual gear values.  Calling GetVisualGearValues first is recommended on most visual gears unless you are controlling all the key values.  In the case of vgtCircle, the visual gear values are mapped as follows.  X, Y: position.  State: radius. Timer: Thickness.  FrameTicks: pulsation speed (0 to disable).  dX, dY: min/max pulsation opacity (0-255). Tint: colour, RGBA.
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   627
Most visual gears require little to no modification of parameters.
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   628
</blockquote>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   629
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   630
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   631
<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.
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   632
    SetVisualGearValues(circleUid, 1000,1000, 20, 200, 0, 0, 100, 50, 3, 0xff0000ff)
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   633
</code>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   634
136
538adf2596b5 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 135
diff changeset
   635
=== <tt>!FindPlace(gearUid, fall, left, right, tryHarder) (0.9.16)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   636
136
538adf2596b5 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 135
diff changeset
   637
<blockquote>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
   638
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   639
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   640
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   641
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   642
    FindPlace(gear, true, 0, LAND_WIDTH) -- places the gear randomly between 0 and LAND_WIDTH</code>
59
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   643
=== <tt>!HogSay(gearUid, text, manner)</tt> ===
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   644
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   645
<blockquote>Makes the specified gear say, think, or shout some text in a bubble.
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   646
</blockquote>
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   647
Example:
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   648
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   649
<code language="lua">    HogSay(CurrentHedgehog, "I wonder what to do...", SAY_THINK) -- thought bubble with text
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   650
    HogSay(CurrentHedgehog, "I'm hungry...", SAY_SAY) -- speech bubble with text
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   651
    HogSay(CurrentHedgehog, "I smell CAKE!", SAY_SHOUT) -- exclamatory bubble with text
59
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   652
</code>
52
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   653
=== <tt>!HogTurnLeft(gearUid, boolean)</tt> ===
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   654
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   655
<blockquote>Faces the specified hog left or right.
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   656
</blockquote>
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   657
Example:
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   658
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   659
<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
   660
    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
   661
=== <tt>!SetGearPosition(gearUid, x, y)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   662
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   663
<blockquote>Places the specified gear exactly at the position (x,y).
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   664
</blockquote>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   665
=== <tt>!SetGearVelocity(gearUid, dx, dy)</tt> ===
71
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   666
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   667
<blockquote>Gives the specified gear the velocity of dx, dy.
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   668
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   669
=== <tt>!SetAmmo(ammoType, count, probability, delay, numberInCrate)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   670
101
174650a7ce20 Added entry for AddAmmo()
RedGrinner@gmail.com
parents: 100
diff changeset
   671
<blockquote>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
   672
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   673
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   674
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   675
<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
   676
    SetAmmo(amGrenade, 0, 0, 0, 3) -- crates should contain always three grenade</code>
135
124b11219537 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 134
diff changeset
   677
=== <tt>!AddAmmo(gearUid, ammoType, ammoCount) (0.9.16) </tt> ===
101
174650a7ce20 Added entry for AddAmmo()
RedGrinner@gmail.com
parents: 100
diff changeset
   678
135
124b11219537 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 134
diff changeset
   679
<blockquote>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
   680
174650a7ce20 Added entry for AddAmmo()
RedGrinner@gmail.com
parents: 100
diff changeset
   681
*Note:* The effectiveness of this function may be limited due to problems with gfPerHogAmmo in lua scripting.
174650a7ce20 Added entry for AddAmmo()
RedGrinner@gmail.com
parents: 100
diff changeset
   682
174650a7ce20 Added entry for AddAmmo()
RedGrinner@gmail.com
parents: 100
diff changeset
   683
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   684
=== <tt>!SetHealth(gearUid, health)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   685
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   686
<blockquote>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
   687
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
   688
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   689
For example:
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   690
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   691
  * Starting the RC Plane 10 shots
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   692
  * Starting Flying Saucer (gtJetpack) with only 50% fuel.
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   693
  * 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
   694
  * (And more!)
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   695
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   696
<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
   697
       if (GetGearType(gear) == gtRCPlaane) then
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   698
            SetHealth(gear, 10)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   699
       end
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   700
       if (GetGearType(gear) == gtJetpack) then
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   701
            SetHealth(gear, 1000)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   702
       end
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   703
       if (GetGearType(gear) == gtMine) then
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   704
            SetHealth(gear, 0)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   705
       end
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   706
    end</code>
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   707
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   708
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   709
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   710
</blockquote>
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   711
=== <tt>!SetEffect(gearUid, effect, effectState)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   712
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   713
<blockquote>Sets the state for one of the effects <tt>heInvulnerable, heResurrectable, hePoisoned, heResurrected, heFrozen</tt> for the specified hedgehog gear.
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   714
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
   715
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   716
Example: (sets all bots poisoned)
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   717
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   718
<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
   719
        if (GetGearType(gear) == gtHedgehog) and (GetBotLevel(gear) > 0) then
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   720
            SetEffect(gear, hePoisoned, 1)
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   721
        end
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   722
    end</code>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   723
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   724
Note: prior to the ice-gun release, 0.9.19 (commit 10a0a31804f3 ) effectState was of boolean type (true = effect enabled, false = effect disabled)
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   725
17
2893bd461cc7 LuaAPI: minor improvement
tobias.neumann
parents: 16
diff changeset
   726
=== <tt>CopyPV(gearUid, gearUid)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   727
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   728
<blockquote>This sets the position and velocity of the second gear to the first one.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   729
</blockquote>
71
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   730
=== <tt>CopyPV2(gearUid, gearUid)</tt> (deprecated) ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   731
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   732
<blockquote>This sets the position of the second gear to that of the first one, but makes its velocity twice the one of the first.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   733
</blockquote>
132
e41fcc3ff67a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 126
diff changeset
   734
Notice: This function is no longer used, use GetGearVelocity and SetGearVelocity instead.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   735
=== <tt>!FollowGear(gearUid)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   736
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   737
<blockquote>Makes the gameclient follow the specifiec gear.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   738
</blockquote>
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   739
=== <tt>!SetHogName(gearUid, name)</tt> ===
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   740
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   741
<blockquote>Sets the name of the specified hedgehog gear
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   742
</blockquote>
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   743
=== <tt>!SetHogTeamName(gearUid, name)</tt> ===
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   744
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   745
<blockquote>Sets the team name of the specified hedgehog gear
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   746
</blockquote>
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   747
=== <tt>!SetWeapon(ammoType)</tt> ===
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   748
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   749
<blockquote>Sets the selected weapon of CurrentHedgehog to one of the [AmmoTypes Ammo Type].
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   750
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   751
<b>Example:</b>
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   752
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   753
<code language="lua">
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   754
  AddAmmo(CurrentHedgehog, amBazooka, 1) -- give the CurrentHedgehog a bazooka
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   755
  SetWeapon(amBazooka) -- select the Bazooka.</code>
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   756
</blockquote>
408
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   757
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
   758
=== <tt>!SetNextWeapon()</tt> (0.9.21) ===
408
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   759
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
   760
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   761
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   762
=== <tt>!SetHogHat(gearUid, hat)</tt> ===
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   763
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   764
<blockquote>Sets the hat of the specified hedgehog gear
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   765
</blockquote>
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   766
=== <tt>!SetGearTarget(gearUid, x, y) (0.9.16)</tt> ===
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   767
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   768
<blockquote>Sets the x and y coordinate of target-based weapons/utilities. <b> Note: </b>: This can't be used in onGearAdd() but must be called after gear creation. 
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   769
</blockquote>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   770
=== <tt>!SetState(gearUid, state)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   771
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
   772
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
   773
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   774
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
   775
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   776
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
   777
<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
   778
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
   779
--[[ 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
   780
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
   781
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
   782
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
   783
</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
   784
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   785
<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
   786
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
   787
--[[ 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
   788
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
   789
</code>
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   790
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   791
=== <tt>!SetGearMessage(gearUid, message)</tt> ===
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   792
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   793
<blockquote>Sets the message of the specified gear.
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   794
</blockquote>
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   795
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   796
=== <tt>!SetTag(gearUid, tag)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   797
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   798
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
   799
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   800
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
   801
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   802
<code language="lua">
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   803
-- This adds a ball (the one from the ballgun) at (123, 456):
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   804
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   805
-- 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
   806
SetTag(ball, 8) -- 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   807
</code>
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   808
421
d584704354ad Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents: 419
diff changeset
   809
The meaning of tags are described in [GearTypes].
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   810
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   811
=== <tt>!SetTimer(gearUid, timer)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   812
13
2074f03075c6 LuaAPI: minor changes
tobias.neumann
parents: 12
diff changeset
   813
<blockquote>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
   814
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   815
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
   816
=== <tt>!SetHogLevel(gearUid, level)</tt> ===
69
48f6e6c0076d Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 68
diff changeset
   817
48f6e6c0076d Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 68
diff changeset
   818
<blockquote>Sets the bot level from 0 to 5. 0 means human player.
48f6e6c0076d Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 68
diff changeset
   819
</blockquote>
48f6e6c0076d Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 68
diff changeset
   820
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
   821
=== <tt>!SetGearPos(gearUid, value) (0.9.18-dev)</tt> ===
183
72b2bac582e2 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 182
diff changeset
   822
72b2bac582e2 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 182
diff changeset
   823
<blockquote>Set pos of specified gear to specified value.</blockquote>
72b2bac582e2 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 182
diff changeset
   824
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   825
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   826
== Gameplay functions ==
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   827
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   828
=== `GameFlags` ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   829
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   830
==== <tt>!ClearGameFlags()</tt> ====
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   831
381
87b3dcfe11cc I hate the wiki syntax... and I think it hates me too
sheepyluva@gmail.com
parents: 380
diff changeset
   832
<blockquote>Disables *all* !GameFlags
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   833
</blockquote>
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   834
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   835
==== <tt>!DisableGameFlags(gameflag, ...)</tt> ====
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   836
381
87b3dcfe11cc I hate the wiki syntax... and I think it hates me too
sheepyluva@gmail.com
parents: 380
diff changeset
   837
<blockquote>Disables the listed !GameFlags, without changing the status of other !GameFlags
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   838
</blockquote>
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   839
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   840
==== <tt>!EnableGameFlags(gameflag, ...)</tt> ====
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   841
381
87b3dcfe11cc I hate the wiki syntax... and I think it hates me too
sheepyluva@gmail.com
parents: 380
diff changeset
   842
<blockquote>Enables the listed !GameFlags, without changing the status of other !GameFlags
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   843
</blockquote>
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   844
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   845
==== <tt>!GetGameFlag(gameflag)</tt> ====
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   846
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   847
<blockquote>Returns true if the specified gameflag is enabled, otherwise false
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   848
</blockquote>
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   849
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   850
=== Environment ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   851
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   852
==== <tt>!SetGravity(percent)</tt> ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   853
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   854
<blockquote>Changes the current gravity of the game in percent (relative to default, integer value).
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   855
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
   856
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   857
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   858
==== <tt>!GetGravity()</tt> ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   859
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   860
<blockquote>Returns the current gravity in percent
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   861
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   862
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   863
==== <tt>!SetWaterLine(waterline)</tt> ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   864
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   865
<blockquote>Sets the water level to the specified y-coordinate
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   866
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   867
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   868
==== <tt>!SetWind(windSpeed)</tt> ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   869
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   870
<blockquote>Sets the current wind in the range of -100 to 100. Use together with gfDisableWind for full control.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   871
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   872
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   873
==== <tt>!EndGame()</tt> ====
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   874
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   875
<blockquote>Makes the game end.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   876
</blockquote>
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   877
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   878
=== Map ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   879
==== <tt>!MapHasBorder()</tt> ====
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
<blockquote>Returns true/false if the map has a border or not.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   882
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   883
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   884
==== <tt>!TestRectForObstacle(x1, y1, x2, y2, landOnly) (0.9.16) </tt> ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   885
<blockquote>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.)
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   886
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   887
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   888
==== <tt>!PlaceGirder(x, y, state)</tt> (0.9.16) ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   889
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   890
<blockquote>Places a girder with centre points x, y and the chosen state.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   891
These are the accepted states:
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   892
  * 0: short, horizontal
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   893
  * 1: short, decreasing right
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   894
  * 2: short, vertical
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   895
  * 3: short, increasing right
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   896
  * 4: long, horizontal
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   897
  * 5: long, decreasing right
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   898
  * 6: long, vertical
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   899
  * 7: long, increasing right
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   900
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   901
412
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   902
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   903
==== <tt>!AddPoint(x, y [, width [, erase] ])</tt> (0.9.21) ====
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   904
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
   905
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   906
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
   907
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   908
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
   909
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   910
==== <tt>!FlushPoints()</tt> (0.9.21) ====
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
   911
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
   912
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   913
=== Current hedgehog ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   914
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   915
==== <tt>!GetCurAmmoType()</tt> (0.9.16) ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   916
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   917
<blockquote>Returns the currently selected [AmmoTypes Ammo Type].
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   918
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   919
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   920
==== <tt>!SwitchHog(gearUid)</tt> (0.9.16) ====
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
<blockquote>This function will switch to the hedgehog with the specified Uid.</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   923
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   924
==== <tt>!SetInputMask(mask)</tt> ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   925
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   926
<blockquote>Masks specified player input.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   927
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   928
Example: 
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   929
<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
   930
SetInputMask(band(0xFFFFFFFF, bnot(gmLJump + gmHJump))) 
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   931
    -- 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
   932
    SetInputMask(0xFFFFFFFF) 
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   933
		</code>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   934
Note: Using the input mask is an effective way to script uninterrupted cinematics, or create modes such as No Jumping. 
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   935
405
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
   936
==== <tt>!GetInputMask()</tt> ====
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
   937
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
   938
Returns the current input mask of the player.
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
   939
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   940
=== Randomness ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   941
==== <tt>!GetRandom(number)</tt> ====
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   942
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   943
<blockquote>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 can use the Lua random, but adding a regular gear should use GetRandom.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   944
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   945
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   946
=== Clans and teams ===
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   947
==== <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
   948
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   949
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
   950
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
   951
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   952
Arguments:
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   953
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   954
 * `teamname`: The name of the team.
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
   955
 * `color`: The 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
   956
 * `grave`: The name of the team’s grave (equals file name without the suffix)
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   957
 * `fort`: The name of the team’s fort
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   958
 * `voicepack`: The name of the team’s voice pack (equals the directory name)
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   959
 * `flag`: Optional argument (only in development version at the moment) for the name of the team’s flag (equals file name without the suffix)
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   960
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   961
Note: This works only for singleplayer's 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
   962
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   963
Example:
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   964
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
   965
<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
   966
--[[ 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
   967
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
   968
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   969
==== <tt>!DismissTeam(teamname)</tt> ====
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   970
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
   971
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   972
==== <tt>!GetClanColor(clan)</tt> ====
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
   973
Returns the 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
   974
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   975
==== <tt>!SetClanColor(clan, color)</tt> ====
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
   976
Sets the 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
   977
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   978
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   979
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   980
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   981
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   982
== Functions affecting the GUI ==
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   983
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   984
=== <tt>!AddCaption(text)</tt> ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   985
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   986
<blockquote>Display event text in the upper part of the screen.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   987
</blockquote>
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   988
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   989
=== <tt>!ShowMission(caption, subcaption, text, icon, time)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   990
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   991
<blockquote>Use to tell the player what he is supposed to do.
79
64fc6cee4af7 Added a note on the new icons for ShowMission
RedGrinner
parents: 78
diff changeset
   992
64fc6cee4af7 Added a note on the new icons for ShowMission
RedGrinner
parents: 78
diff changeset
   993
As of (0.9.15), icon currently accepts:
81
a381e4547712 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 80
diff changeset
   994
 * -amBazooka, -amShotgun etc. (and other ammo types)
a381e4547712 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 80
diff changeset
   995
 * 0 (Gold Crown icon)
a381e4547712 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 80
diff changeset
   996
 * 1 (Target icon)
a381e4547712 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 80
diff changeset
   997
 * 2 (Exclamation mark)
a381e4547712 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 80
diff changeset
   998
 * 3 (Question mark)
a381e4547712 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 80
diff changeset
   999
 * 4 (Gold star)
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1000
</blockquote>
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1001
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1002
=== <tt>!HideMission()</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1003
143
58019b91cd69 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 142
diff changeset
  1004
<blockquote>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
  1005
</blockquote>
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1006
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1007
=== <tt>!SetZoom(zoomLevel)</tt> ===
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1008
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1009
<blockquote>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
  1010
</blockquote>
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1011
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1012
=== <tt>!GetZoom()</tt> ===
147
379d7931ffc7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 146
diff changeset
  1013
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1014
<blockquote>Returns the current zoom level
147
379d7931ffc7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 146
diff changeset
  1015
</blockquote>
379d7931ffc7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 146
diff changeset
  1016
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1017
== Sound functions ==
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1018
=== <tt>!PlaySound(soundId)</tt> ===
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1019
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1020
<blockquote>Plays the specified sound.
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1021
</blockquote>
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1022
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1023
=== <tt>!PlaySound(soundId, gearUid)</tt> ===
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
  1024
/
70
ff7d4c176303 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 69
diff changeset
  1025
<blockquote>Plays the specified sound for the chosen hedgehog's team.
ff7d4c176303 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 69
diff changeset
  1026
</blockquote>
ff7d4c176303 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 69
diff changeset
  1027
77
588f5dc682e2 Added SetInputMask function
RedGrinner
parents: 76
diff changeset
  1028
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1029
== File system functions ==
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
  1030
=== <tt>!HedgewarsScriptLoad(scriptPath)</tt> ===
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1031
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
  1032
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1033
Example:
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1034
<code language="lua">
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1035
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
  1036
</code>
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1037
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1038
=== <tt>!GetDataPath()</tt> ===
68
fd230628d72c Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 67
diff changeset
  1039
fd230628d72c Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 67
diff changeset
  1040
<blockquote>Returns the path to the data directory, used when adding libraries.
fd230628d72c Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 67
diff changeset
  1041
</blockquote>
fd230628d72c Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 67
diff changeset
  1042
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1043
=== <tt>!GetUserDataPath()</tt> ===
180
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1044
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1045
<blockquote>Returns the path to the user data directory, used when adding libraries.
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1046
</blockquote>
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1047
73
c6623486d077 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 72
diff changeset
  1048
89
caf6544f767a Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 87
diff changeset
  1049
caf6544f767a Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 87
diff changeset
  1050
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1051
== Stats functions ==
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
  1052
=== <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
  1053
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
  1054
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
  1055
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
  1056
`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
  1057
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
  1058
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
  1059
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
  1060
|| `TStatInfoType` || Meaning of `statMessage` || Team parameter used? ||
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
  1061
|| `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
  1062
|| `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
  1063
|| `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 ||
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
  1064
|| `siPointType` || Replaces the word “kills” in the ranking list. Sadly, grammatical number is currently not respected at all here. || 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
  1065
|| `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
  1066
|| `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
  1067
|| `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
  1068
|| `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
  1069
|| `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
  1070
|| `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
  1071
|| `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
  1072
|| `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
  1073
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1074
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1075
<b>Examples:</b>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1076
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1077
<code language="lua">
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1078
-- will automatically change the health icon to a star
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1079
SendStat(siGraphTitle,'Custom Graph Title')
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1080
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
  1081
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
  1082
-- 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
  1083
-- 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
  1084
SendStat(siPointType,'Point')
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1085
-- 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
  1086
-- 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
  1087
SendStat(siPlayerKills,'3',teamName)
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1088
-- 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
  1089
-- 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
  1090
-- in normal mode "value" represents clan health
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1091
SendStat(siClanHealth, "100",teamName)
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1092
-- 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
  1093
SendStat(siMaxStepKills, "1 hedgeHogName (teamName)")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1094
-- hog with most damage inflicted to his own team
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1095
SendStat(siMaxTeamDamage, "100 hedgeHogName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1096
-- total number of killed hedgehogs
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1097
SendStat(siKilledHHs, "1")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1098
-- 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
  1099
SendStat(siTeamStats, "teamName:0:")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1100
-- best shot award
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1101
SendStat(siMaxStepDamage, "30 hedgeHogName (teamName)")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1102
-- team with most kills of own hedgehogs
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1103
SendStat(siMaxStepDamage, "2 teamName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1104
-- team with most skips
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1105
SendStat(siMaxTurnSkips, "3 teamName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1106
</code>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1107
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1108
<b>Important:</b>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1109
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1110
  * As the game engine send stats to the front end 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.)
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1111
  * Calling just EndGame() won't produce any stats.
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1112
  * If one would like to produce a custom graph see also SendHealthStatsOff().
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1113
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1114
=== <tt>!SendHealthStatsOff()</tt> (0.9.20) ===
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1115
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1116
<blockquote>Prevents the engine of sending health stats to the front end. 
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1117
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1118
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().</blockquote>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1119
382
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1120
== Math Functions ==
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1121
383
6679b75048c0 I really have to get used to using preview on google code wiki...
sheepyluva@gmail.com
parents: 382
diff changeset
  1122
=== <tt>div(dividend, divisor)</tt> ===
382
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1123
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1124
<blockquote>Performs an integer division and returns the result.
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1125
The result is an integer and has the value of the first parameter (integer) divided by the second parameter (integer), rounded towards zero.
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1126
</blockquote>
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1127
401
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1128
=== <tt>band(value1, value2)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1129
Returns the bitwise logical AND of `value1` and `value2`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1130
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1131
=== <tt>bor(value1, value2)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1132
Returns the bitwise logical OR of `value1` and `value2`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1133
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1134
=== <tt>bnot(value)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1135
Returns the bitwise logical NOT of `value`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1136
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1137
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1138
== Debugging Functions ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1139
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1140
=== <tt>!ParseCommand(string)</tt> ===
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1141
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1142
<blockquote>Makes the gameclient parse the specified custom command.
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1143
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1144
*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
  1145
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1146
If you do 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].
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1147
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1148
With your report we can fix the shortcoming in future releases.
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1149
This will allow scripts to use the previously missing feature in a way that won't break!
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1150
</blockquote>
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1151
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1152
=== <tt>!WriteLnToConsole(string)</tt> ===
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1153
184
346bf9196f84 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 183
diff changeset
  1154
<blockquote>Writes (string) to the game0.log, found in the user data directory.
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1155
</blockquote>