author | Wuzzy |
Wed, 17 Apr 2019 00:19:05 +0100 | |
changeset 1735 | 4b658d116488 |
parent 1725 | 5b85c98653ad |
child 1740 | 0b3872c5bc59 |
permissions | -rw-r--r-- |
67
eecbb1c261bb
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
66
diff
changeset
|
1 |
#summary API for writing Lua scripts in Hedgewars. |
284
365362b51148
This is cool stuff, let's put it on the project frontpage (adding "featured" tag)
sheepyluva@gmail.com
parents:
244
diff
changeset
|
2 |
#labels Featured |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
3 |
|
741 | 4 |
= Core Lua API documentation = |
5 |
||
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
6 |
== Introduction == |
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
7 |
|
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
8 |
Version 0.9.13 of Hedgewars introduced the ability to use Lua scripts to modify Hedgewars behaviour for different maps without having to recompile the whole game. The till then used triggers (only appeared in training maps) were removed. |
1426 | 9 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
10 |
Lua is an easy to learn scripting language that’s implemented using open source libraries. If you’d like to learn more about Lua, have a look at [http://www.lua.org Lua's official homepage]. Even though its easy to learn syntax this wiki page won't explain all basics of using Lua, e.g. declaring variables or using control structures. There are tons of step-by-step tutorials and documentation available on the internet. Just throw “Lua” into your favourite search engine and give it a try. |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
11 |
|
519 | 12 |
=== About this wiki page === |
1240 | 13 |
This page might become outdated. For a list of undocumented functions, see [http://hw.ercatec.net/docs/lua_wiki_check.php]. |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
14 |
|
519 | 15 |
<wiki:toc max_depth="4" /> |
16 |
||
859 | 17 |
== Overview == |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
18 |
=== How Hedgewars handles Lua scripts === |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
19 |
As of Version 0.9.20, Hedgewars supports Lua scripts for two similar tasks: Define tutorial missions, campaign missions or provide special map behaviour for precreated maps. It is also used for multiplayer scripts to create new game styles. |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
20 |
|
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
21 |
=== Tutorial missions === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
22 |
Tutorial missions are located within text files inside `share/hedgewars/Data/Missions/Training`. The game will list all files with the lua extension inside this directory in the Training selection screen. You’ll find some premade example scripts within this directory that contain several comments on the script lines and what they do. |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
23 |
|
567 | 24 |
See [Missions] for details. |
25 |
||
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
26 |
=== Special maps === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
27 |
In addition to tutorial missions predrawn maps (maps not created using the random map creator) may contain a single lua script file named `map.lua`. If it’s there, it will be used once the map is played. This way it’s possible to play maps alone or over the internet using custom goals. Mission maps can be found in singleplayer mode under the “training” button and in multiplayer mode, it is selectable as a map type. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
28 |
|
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
29 |
See also [PresetMaps] for more information about such maps. |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
30 |
|
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
31 |
=== How Lua scripts are used === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
32 |
Several parts of script files are executed multiple times. In general, the whole script file is read while loading the map. Declarations as well as function calls outside functions are executed at once. Later on the game will call special predefined function names at special occassions such as the creation of new game objects (called “gears”). |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
33 |
|
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
34 |
|
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
35 |
=== Important things to know === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
36 |
It is possible to play missions in multiplayer. However this requires all participating players to have the exact same version of the map files, including the `map.lua` script file. If this isn’t the case the game will probably desync and “kick” at least the one player using a different version of the map files. To avoid problems when running prepackaged maps, you should never modify any maps provided with the Hedgewars default package. Instead, create a copy of the existing map and modify this one. Feel free to share your work on the forums. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
37 |
|
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
38 |
Another thing to note is the current status of our scripting implementation. Similar to the whole game, this is still work in progress and we can’t guarantee that scripts working in this version will run in future revisions of the game as we might extend, change or rename parts of the scripting engine. |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
39 |
|
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
40 |
=== Global variables/constants === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
41 |
Global variables are used by the game to interact with the scripts by passing and retrieving their values. While some of the variables are never read by the engine some allow you to modify the engine’s behaviour, e.g. the theme to be used for the current map. |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
42 |
|
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
43 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
44 |
=== Functions called by the game: Event handlers === |
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
45 |
After successfully loading the Lua script the game will call the following functions on different occasions. To be used, they have to use the exact same name as defined below. |
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
46 |
|
478 | 47 |
== Data types == |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
48 |
This section defines some commonly used non-primitive parameter types which are used in multiple functions. This section is a bit incomplete at the moment. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
49 |
|
478 | 50 |
=== Color === |
477
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
51 |
Some functions take a `color` parameter. |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
52 |
|
583
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
53 |
Colors are stored in RGB or RGBA format and are specified as a three- or four-byte number, respecively. |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
54 |
In 3-byte (RGB) colors, each byte represents a color component. The value 0 means no intensity and 255 is largest intensity of the component. |
477
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
55 |
The first byte is for the red component, the second byte for the green component and the third byte for the blue component. |
583
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
56 |
Four-byte (RGBA) colors use the first 3 bytes for the color components (like for the 3-byte colors) and the fourth byte is used for opacity, where 255 means maximum opacity and 0 means fully transparent (also called the “alpha channel”). |
477
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
57 |
|
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
58 |
Specifying the color number becomes much easier if you write it in hexadecimal notation. |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
59 |
|
583
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
60 |
Examples for RGB (3-byte) colors: |
477
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
61 |
<code language="lua"> |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
62 |
c = 0x000000 -- black (R, G, B are all 0) |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
63 |
c = 0xFF0000 -- red |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
64 |
c = 0x00FF00 -- green |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
65 |
c = 0x0000FF -- blue |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
66 |
c = 0xFFFFFF -- white |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
67 |
c = 0x808080 -- gray (50%)</code> |
8c326a00ead3
Add information about the “color” parameter found in some functions.
almikes@aol.com
parents:
476
diff
changeset
|
68 |
|
885 | 69 |
Hint: On [http://www.colorpicker.com/] you find a color-picking tool for getting RGB colors easily. |
70 |
||
312
6c0397400a9b
Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents:
295
diff
changeset
|
71 |
|
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
|
72 |
== 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
|
73 |
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
|
74 |
|
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 |
=== General variables and constants === |
1632 | 76 |
Here are some unsorted variables or constants which are available in Lua. *Consider these variables to be read-only.* |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
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 |
|| *Identifier* || *Description* || |
1654 | 79 |
|| `LOCALE` || Current locale identifier (e.g. `"de"` for German) || |
80 |
|| `INTERFACE` || Type of the game interface: `"desktop"` for desktop, `"touch"` for touchscreen || |
|
81 |
|| `MAX_HOG_HEALTH` || Maximum possible hedgehog health || |
|
82 |
|| `MAX_TURN_TIME` || Maximum possible turn time in milliseconds || |
|
1532
94030dc69d1e
LuaAPI: Explain map variables that they are set when onGameStart is called
Wuzzy
parents:
1531
diff
changeset
|
83 |
|| `LAND_WIDTH` || The width of the landscape in pixels. Not available before `onGameStart` || |
94030dc69d1e
LuaAPI: Explain map variables that they are set when onGameStart is called
Wuzzy
parents:
1531
diff
changeset
|
84 |
|| `LAND_HEIGHT` || The height of the landscape in pixels. Not available before `onGameStart` || |
94030dc69d1e
LuaAPI: Explain map variables that they are set when onGameStart is called
Wuzzy
parents:
1531
diff
changeset
|
85 |
|| `LeftX` || X coordinate of the leftmost point of the landscape. Not available before `onGameStart` || |
94030dc69d1e
LuaAPI: Explain map variables that they are set when onGameStart is called
Wuzzy
parents:
1531
diff
changeset
|
86 |
|| `RightX` || X coordinate of the rightmost point of the landscape. Not available before `onGameStart` || |
94030dc69d1e
LuaAPI: Explain map variables that they are set when onGameStart is called
Wuzzy
parents:
1531
diff
changeset
|
87 |
|| `TopY` || Y coordinate of the topmost point of the landscape. Not available before `onGameStart` || |
1648 | 88 |
|| `CursorX` || The X position of the cursor if the player is choosing a target. Otherwise, this equals `NO_CURSOR` || |
89 |
|| `CursorY` || The Y position of the cursor if the player is choosing a target. Otherwise, this equals `NO_CURSOR` || |
|
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
|
90 |
|| `WaterLine` || The y position of the water, used to determine at which position stuff drowns. Use `SetWaterLine` to change. || |
1157 | 91 |
|| `ClansCount` || Number of clans, including defeated ones (a clan is a group of teams with same color) || |
92 |
|| `TeamsCount` || Number of teams, including defeated ones || |
|
1631 | 93 |
|| `TurnTimeLeft` || Number of game ticks (milliseconds) left until the current turn ends. To set this value, use `SetTurnTimeLeft` || |
94 |
|| `ReadyTimeLeft` || Remaining ready time in millseconds, 0 if turn in progress. To set this value, use `SetReadyTimeLeft` || |
|
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
|
95 |
|| `GameTime` || Number of total game ticks || |
1650 | 96 |
|| `TotalRounds` || Number of rounds that have passed. Equals `-1` if game has not started yet or hogs are still being placed. || |
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
|
97 |
|| `CurrentHedgehog` || The hedgehog gear that is currently in play || |
1155 | 98 |
|| `AmmoTypeMax` || Maximum ammo type ID (useful to iterate through all ammo types, starting by 0) || |
125
b0b7654c6de6
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
123
diff
changeset
|
99 |
|
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
|
100 |
=== !GameFlags === |
557 | 101 |
The !GameFlags are used to store simple boolean settings of the game. |
102 |
You can read/modify them using the [LuaAPI#GameFlags_functions GameFlags-Functions]. |
|
102
86cf695636c6
Added gfResetHealth to Gameflags section along with a note.
RedGrinner@gmail.com
parents:
101
diff
changeset
|
103 |
|
491
9079444264ae
Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents:
478
diff
changeset
|
104 |
|| *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
|
105 |
|| `gfOneClanMode` || Used when only one clan is in the game. This game flag is primarily used for training missions. || |
1657 | 106 |
|| `gfMultiWeapon` || Shooting any weapon enters multi-shot mode with infinite shots. The remaining shots counter for weapons like shotgun is suppressed. Intended for target practice missions, not recommended for anything else. || |
1300 | 107 |
|| `gfSwitchHog` || Free hog switching at turn start || |
1629 | 108 |
|| `gfDivideTeams` || Each clan will start in its own side of the terrain. No effect if `gfPlaceHog` is active. || |
626 | 109 |
|| `gfBorder` || An indestructible border is active around the map. || |
491
9079444264ae
Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents:
478
diff
changeset
|
110 |
|| `gfBottomBorder` || There is an indestructable border at the bottom of the map. || |
626 | 111 |
|| `gfShoppaBorder` || The terrain edge will be replaced by a decorative black/yellow “danger stripe”. This has no gameplay effect. || |
491
9079444264ae
Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents:
478
diff
changeset
|
112 |
|| `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
|
113 |
|| `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
|
114 |
|| `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
|
115 |
|| `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
|
116 |
|| `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
|
117 |
|| `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
|
118 |
|| `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
|
119 |
|| `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
|
120 |
|| `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
|
121 |
|| `gfKing` || King Mode: One hedgehog per team becomes their king, if the king dies, the team loses. || |
1629 | 122 |
|| `gfSharedAmmo` || Teams in the same clan share their ammo. Takes precedence over `gfPerHogAmmo`. || |
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
|
123 |
|| `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
|
124 |
|| `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
|
125 |
|| `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
|
126 |
|| `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
|
127 |
|| `gfResetWeps` || The weapons will be reset to the initial state each turn. || |
1629 | 128 |
|| `gfPerHogAmmo` || Each hedgehog has its own weapon stash. No effect if `gfSharedAmmo` is active. || |
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
|
129 |
|| `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
|
130 |
|| `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
|
131 |
|| `gfTagTeam` || Tag Team: Teams in the same clan share their turn time. || |
9079444264ae
Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents:
478
diff
changeset
|
132 |
|| `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
|
133 |
|
540 | 134 |
=== Land flags === |
135 |
The land flags denote several types of terrain. Like all flags, they can be combined at will. |
|
136 |
||
137 |
|| *Identifier* || *Meaning* || |
|
138 |
|| `lfIce` || Slippery terrain, hogs will slide on it. || |
|
139 |
|| `lfBouncy` || Bouncy terrain, hogs and some other gears will bounce off when they collide with it. || |
|
140 |
|| `lfIndestructible` || Almost indestructible terrain, most weapons will not destroy it. || |
|
1228 | 141 |
|| `0` || Normal destroyable terrain. Note that this is the case when no other land flag is set. || |
540 | 142 |
|
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
|
143 |
=== More constants === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
144 |
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
|
145 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
146 |
== Event handlers == |
890 | 147 |
Lua scripts are supposed to _define_ these functions to do something. The functions are then _called_ by Hedgewars when a certain event has occoured. |
12
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 |
=== <tt>onGameInit()</tt> === |
860 | 150 |
This function is called before the game loads its resources. One can read and modify various game variables here. These variables will become globally available after `onGameInit` has been invoked, but changing them has only an effect in `onGameInit`. |
151 |
Most variables are optional, but for missions, `Theme` must be set by the scripter if you want to use a random map, rather than an image map. All other variables do not need to be set by the scripter and have default values. |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
152 |
|
860 | 153 |
List of game variables: |
863 | 154 |
|| *Identifier* || *Default* || *Description* || |
860 | 155 |
|| `Theme` || _depends_ || The theme to be used. When `Map` is set, a default value is used. For missions which don't use an image map, `Theme` *must* be set explicitly || |
156 |
|| `Map` || `""` || The image map being played or `""` if no image map is used || |
|
157 |
|| `Seed` || `0` || Seed of the random number generator || |
|
1579 | 158 |
|| `LandDigest` || _N/A_ || Digest for the current map. Only meant for internal use by Hedgewars || |
860 | 159 |
|| `MapGen` || `mgRandom` || Type of map generator. One of `mgRandom`, `mgMaze`, `mgPerlin`, `mgDrawn`. || |
160 |
|| `TemplateFilter` || `0` || _unknown meaning_ || |
|
161 |
|| `TemplateNumber` || `0` || _unknown meaning_ || |
|
1683 | 162 |
|| `MapFeatureSize` || `50` (`12` in 1.0.0) || Used by random maps to determine its “curvyness” or complexity. This value can be set by the user with the slider under the random map preview in the game setup screen. The user-set value ranges from 1 (leftmost position) to 25 (rightmost position). A good starting value is `12`. || |
1251 | 163 |
|| `GameFlags` || `0` || All `GameFlags` combined as a bitmask. Setting `GameFlags` directly is discouraged, use the [LuaAPI#GameFlags_functions] instead || |
860 | 164 |
|| `Ready` || `5000` || Ready timer at the start of the turn (in milliseconds) || |
1679 | 165 |
|| `Delay` || `100` || Time the current hedgehog needs to be inactive before gear stuff gets updated in infinite attack mode, like applying hog damage and deaths. This is quite an obscure variable, only change it if you know what you're doing || |
860 | 166 |
|| `TurnTime` || `45000` || Turn time in milliseconds || |
167 |
|| `GetAwayTime` || `100` || Retreat time in percent || |
|
168 |
|| `CaseFreq` || `5` || Probability that a crate drops in a turn. 0: never, >0: probability = `1/CaseFreq` || |
|
1647 | 169 |
|| `MaxCaseDrops` || `5` || Maximum number of crates that can be in the game before the random crate drops stop || |
860 | 170 |
|| `HealthCaseProb` || `35` || Chance that a crate drop is a health crate, in percent (other crates are ammo or utility crates) || |
171 |
|| `HealthCaseAmount` || `25` || Amount of health in a health crate || |
|
172 |
|| `DamagePercent` || `100` || Global damage in percent, affects damage and knockback || |
|
173 |
|| `RopePercent` || `100` || Rope length in percent || |
|
174 |
|| `MinesNum` || `4` || Number of mines being placed on a medium-sized map || |
|
175 |
|| `MinesTime` || `3000` || Time for a mine to explode from activated (in milliseconds), `-1000` for random || |
|
176 |
|| `MineDudPercent` || `0` || Chance of mine being a dud, in percent || |
|
1111 | 177 |
|| `AirMinesNum` || `0` || Number of air mines being placed on a medium-sized map || |
860 | 178 |
|| `Explosives` || `2` || Number of barrels being placed on a medium-sized map || |
1574 | 179 |
|| `SuddenDeathTurns` || `15` || Number of rounds until Sudden Death begins, _after the first round is over_. E.g. 0 = SD starts in 2nd round || |
862 | 180 |
|| `WaterRise` || `47` || Height of water rise in pixels for each Sudden Death turn || |
861 | 181 |
|| `HealthDecrease` || `5` || Amount of health decreased on each turn in Sudden Death || |
1715
5cac9aadcc27
LuaAPI: Update special escape characters for ShowMission
Wuzzy
parents:
1711
diff
changeset
|
182 |
|| `Goals` || `""` || Use this to add additional text to the goal text popup shown at the beginning and when using the quit or pause keys. The text is added to the default text which usually explains the game modifiers and does not replace it. The text supports the same special characters as in `ShowMission` || |
1111 | 183 |
|| `WorldEdge` || `weNone` || Type edges being used at the left and right sides of the terrain (see below). || |
860 | 184 |
|| `ScreenWidth` || _N/A_ || Width of the Hedgewars window or screen || |
890 | 185 |
|| `ScreenHeight` || _N/A_ || Height of the Hedgewars window or screen || |
860 | 186 |
|
862 | 187 |
The proper way to disable Sudden Death is by setting both `WaterRise` and `HealthDecrease` to `0`. |
188 |
||
860 | 189 |
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
|
190 |
|
1656 | 191 |
==== <tt>!WorldEdge</tt> ==== |
917 | 192 |
The value of `WorldEdge` can have the following values: |
193 |
||
194 |
|| *Identifier* || *Meaning* || |
|
195 |
|| `weNone` || No world edges || |
|
196 |
|| `weBounce` || Bouncy world edges || |
|
197 |
|| `weWrap` || World wraps around at the edges || |
|
198 |
|| `weSea` || Ocean world edges || |
|
199 |
||
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
200 |
=== <tt>onGameStart()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
201 |
This function is called when the first round starts. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
202 |
|
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
203 |
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
|
204 |
|
1532
94030dc69d1e
LuaAPI: Explain map variables that they are set when onGameStart is called
Wuzzy
parents:
1531
diff
changeset
|
205 |
At this stage, the global variables `LeftX`, `RightX`, `TopY`, `LAND_WIDTH` and `LAND_HEIGHT` become available. |
94030dc69d1e
LuaAPI: Explain map variables that they are set when onGameStart is called
Wuzzy
parents:
1531
diff
changeset
|
206 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
207 |
=== <tt>onPreviewInit()</tt> === |
461 | 208 |
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. |
209 |
||
210 |
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. |
|
211 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
212 |
=== <tt>onParameters()</tt> === |
505 | 213 |
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`. |
214 |
||
215 |
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. |
|
216 |
||
217 |
*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). |
|
218 |
||
219 |
*Tip*: If you use this callback, make sure to document the interpretation of the parameters so others know how to set the parameters properly. |
|
220 |
||
64
a651a8ab85d5
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
63
diff
changeset
|
221 |
=== <tt>onGameTick()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
222 |
This function is called on every game tick, i.e. 1000 times a second. If you just need to check on something periodically, consider `onGameTick20`. |
346
5f322c85c0e0
toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents:
328
diff
changeset
|
223 |
|
5f322c85c0e0
toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents:
328
diff
changeset
|
224 |
=== <tt>onGameTick20()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
225 |
This function is called every 20 game ticks, which equals 50 times a second. It reduces Lua overhead for simple monitoring that doesn’t need to happen every single tick. |
64
a651a8ab85d5
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
63
diff
changeset
|
226 |
|
181 | 227 |
=== <tt>onNewTurn()</tt> === |
1112 | 228 |
This function calls at the start of every turn. You can set `ReadyTimeLeft` here to change the ready time for this turn. (See also: `Ready`) |
63
24004a9003ec
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
62
diff
changeset
|
229 |
|
1725 | 230 |
=== <tt>onCaseDrop(gear)</tt> === |
231 |
This function calls between two turns right after the moment at which the game *might* drop a crate according to the game scheme settings. It does not matter if it actually wants to drop a crate. |
|
232 |
||
233 |
If a crate was dropped, `gear` is the crate gear that was dropped, if no crate was dropped, `gear` is `nil`. |
|
234 |
||
235 |
This function is useful to add custom crate drops as well. |
|
236 |
||
1189 | 237 |
=== <tt>onEndTurn()</tt> (0.9.24) === |
238 |
This function calls at the end of every turn. The end of a turn is defined as the point of time after the current hedgehog lost control and all the important gears are either gone or have settled. |
|
239 |
||
240 |
`CurrentHedgehog` holds the gear ID of the hedgehog whose turn just ended. |
|
241 |
||
242 |
This function is called at one of the earliest possible moment after the end of a turn. After this callback, Hedgewars then performs all the other stuff between turns. This includes things like: Applying poison or Sudden Death damage, calculating total hog damage, rising the water in Sudden Death, dropping a crate, checking victory, giving control to the next hog. |
|
243 |
||
244 |
Because this function is called *before* victories are checked, this is useful to set up your victory conditions here. |
|
245 |
||
1269 | 246 |
=== <tt>onSkipTurn()</tt> (0.9.24) === |
247 |
This function calls when a hog skips its turn. |
|
248 |
||
1693 | 249 |
=== <tt>onGameResult(winningClan)</tt> (0.9.25) === |
1720 | 250 |
This function calls when the game ends with a winner or in a draw. If a clan wins, `winningClan` is the clan ID of the winning clan. If the game ends in a draw, `winningClan` is set to -1. |
1693 | 251 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
252 |
=== <tt>onSuddenDeath()</tt> === |
649 | 253 |
This function is called on the start of Sudden Death. |
254 |
||
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
255 |
=== <tt>onGearAdd(gearUid)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
256 |
This function is called when a new gear is added. Useful in combination with `GetGearType(gearUid)`. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
257 |
|
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
258 |
=== <tt>onGearDelete(gearUid)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
259 |
This function is called when a new gear is deleted. Useful in combination with `GetGearType(gearUid)`. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
260 |
|
916
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
261 |
=== <tt>onVisualGearAdd(vgUid)</tt> (0.9.23) === |
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
262 |
This function is called when a new visual gear is added. Useful in combination with `GetVisualGearType(vgUid)`. |
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
263 |
|
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
264 |
=== <tt>onVisualGearDelete(vgUid)</tt> (0.9.23) === |
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
265 |
This function is called when a new visual gear is deleted. Useful in combination with `GetVisualGearType(vgUid)`. |
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
266 |
|
181 | 267 |
=== <tt>onGearDamage(gearUid, damage)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
268 |
This function is called when a gear is damaged. |
55
ef26ff619aea
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
54
diff
changeset
|
269 |
|
ef26ff619aea
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
54
diff
changeset
|
270 |
Example: |
ef26ff619aea
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
54
diff
changeset
|
271 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
272 |
<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
|
273 |
if (GetGearType(gear) == gtHedgehog) then |
55
ef26ff619aea
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
54
diff
changeset
|
274 |
-- 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
|
275 |
AddCaption(GetHogName(gear) .. ' took ' .. damage .. ' points of damage') |
55
ef26ff619aea
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
54
diff
changeset
|
276 |
end |
ef26ff619aea
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
54
diff
changeset
|
277 |
end</code> |
1642 | 278 |
=== <tt>onGearResurrect(gearUid, spawnedVGear) </tt> === |
942 | 279 |
This function is called when a gear is resurrected due to the hog effect `heResurrectable` being set (see `SetEffect`) and/or being an AI hog when the game modifier “AI Survival” (`gfAISurvival`) is active. It is *not* called when a hog was resurrected by the resurrector tool you can use in the game. |
44
bf53e635a2ac
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
43
diff
changeset
|
280 |
|
1642 | 281 |
`spawnedVGear` is a visual gear handle of the “resurrection effect”. You can use this handle to modify or delete the resurrection animation. |
282 |
||
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
283 |
=== <tt>onAmmoStoreInit()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
284 |
This function is called when the game is initialized to request the available ammo and ammo probabilities. Use `SetAmmo` here. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
285 |
|
203
08cc35ba4d34
Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents:
202
diff
changeset
|
286 |
=== <tt>onNewAmmoStore(team/clan index, hog index)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
287 |
This function is identical to `onAmmoStoreInit` in function, but is called once per ammo store. This allows different ammo sets for each clan, team or hedgehog depending on the mode. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
288 |
If `gfSharedAmmo` is set, the parameters passed are the clan index, and `-1`, and the function will be called once for each clan. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
289 |
If `gfPerHogAmmo` is set, the parameters passed are the team index and the hog index in that team, and the function will be called once for each hedgehog. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
290 |
If neither is set, the parameters passed are the team index and `-1`, and the function will be called once for each team. |
202
47363108b6b6
Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents:
184
diff
changeset
|
291 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
292 |
These indexes can be used to look up details of the clan/team/hedgehog prior to gear creation. Routines to do these lookups will be created as needed. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
293 |
If you add this hook, the expectation is that you will call SetAmmo appropriately. Any values from `onAmmoStoreInit` are ignored. |
202
47363108b6b6
Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents:
184
diff
changeset
|
294 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
295 |
=== <tt>onGearWaterSkip(gear)</tt> === |
502 | 296 |
This function is called when the gear `gear` skips over water. |
297 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
298 |
=== <tt>onScreenResize()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
299 |
This function is called when you resize the screen. Useful place to put a redraw function for any `vgtHealthTags` you're using. |
145
547ac6a1d14e
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
144
diff
changeset
|
300 |
|
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
|
301 |
=== <tt>onAttack()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
302 |
This function is called when your Hedgehog attacks. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
303 |
|
107 | 304 |
=== <tt>onHJump()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
305 |
This function is called when you press the high jump key. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
306 |
|
107 | 307 |
=== <tt>onLJump()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
308 |
This function is called when you press the long jump key. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
309 |
|
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
|
310 |
=== <tt>onPrecise()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
311 |
This function is called when you press the precise key. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
312 |
|
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
|
313 |
=== <tt>onLeft()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
314 |
This function is called when you press the left key. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
315 |
|
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
|
316 |
=== <tt>onRight()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
317 |
This function is called when you press the right key. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
318 |
|
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
|
319 |
=== <tt>onUp()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
320 |
This function is called when you press the up key. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
321 |
|
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
|
322 |
=== <tt>onDown()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
323 |
This function is called when you press the down key. |
98
54e178bb6986
Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents:
95
diff
changeset
|
324 |
|
181 | 325 |
=== <tt>onAttackUp()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
326 |
This function is called when you release the attack key. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
327 |
|
181 | 328 |
=== <tt>onDownUp()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
329 |
This function is called when you release the down key. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
330 |
|
535 | 331 |
=== <tt>onHogAttack(ammoType)</tt> === |
1572
ed20d7c7c667
LuaAPI: Add hint for onHogAttack to use onSkipTurn to detect a skip turn
Wuzzy
parents:
1570
diff
changeset
|
332 |
This function is called when you press the attack key. Beginning with 0.9.21, the parameter `ammoType` is provided. It contains the ammo type of the weapon used for the attack. |
ed20d7c7c667
LuaAPI: Add hint for onHogAttack to use onSkipTurn to detect a skip turn
Wuzzy
parents:
1570
diff
changeset
|
333 |
|
ed20d7c7c667
LuaAPI: Add hint for onHogAttack to use onSkipTurn to detect a skip turn
Wuzzy
parents:
1570
diff
changeset
|
334 |
Note: If you want to detect when a turn was skipped, use `onSkipTurn()`. There is no guarantee that `onHogAttack(amSkip)` is called in such an event. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
335 |
|
181 | 336 |
=== <tt>onLeftUp()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
337 |
This function is called when you release the left key. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
338 |
|
181 | 339 |
=== <tt>onPreciseUp()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
340 |
This function is called when you release the precise key. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
341 |
|
181 | 342 |
=== <tt>onRightUp()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
343 |
This function is called when you release the right key. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
344 |
|
622
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
345 |
=== <tt>onSetWeapon(msgParam)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
346 |
It is get called when a weapon is selected or switched. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
347 |
|
622
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
348 |
`msgParam` tells you which ammo type was selected. |
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
349 |
|
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
350 |
=== <tt>onSlot(msgParam)</tt> === |
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
351 |
This function is called when one of the weapon slot keys has been pressed. |
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
352 |
|
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
353 |
`msgParam` tells the slot number minus 1 (i.e. `0` is for slot number 1, `1` is for slot number 2, etc.). |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
354 |
|
181 | 355 |
=== <tt>onSwitch()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
356 |
This function is called when a hog is switched to another. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
357 |
|
622
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
358 |
=== <tt>onTaunt(msgParam)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
359 |
This function is called when the player uses an animated emote for example by using the chat commands `/wave`, `/juggle`, etc. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
360 |
|
622
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
361 |
`msgParam` tells you which animation was played: |
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
362 |
|
623 | 363 |
|| *`msgParam`* || *Animation* || *Associated chat command* || |
364 |
|| 0 || Rolling up || `/rollup` || |
|
365 |
|| 1 || Sad face || `/sad` || |
|
366 |
|| 2 || Waving hand || `/wave` || |
|
367 |
|| 3 || Stupid winner's grin / “Awesome” face || `/hurrah` || |
|
368 |
|| 4 || Peeing || `/ilovelotsoflemonade` || |
|
369 |
|| 5 || Shrug || `/shrug` || |
|
370 |
|| 6 || Juggling || `/juggle` || |
|
622
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
371 |
|
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
372 |
=== <tt>onTimer(msgParam)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
373 |
This function is called when one of the timer keys is pressed. |
175
2455fbbab5e8
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
174
diff
changeset
|
374 |
|
622
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
375 |
`msgParams` tells the set timer in seconds (i.e. `3` for the 3 seconds timer key). |
d7c2a5db19a4
Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents:
616
diff
changeset
|
376 |
|
181 | 377 |
=== <tt>onUpUp()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
378 |
This function is called when you release the up key. |
178
dde460404412
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
177
diff
changeset
|
379 |
|
946 | 380 |
=== <tt>onUsedAmmo(ammoType)</tt> (0.9.23) === |
381 |
Called after a weapon has been used completely, with `ammoType` as the used ammo type. |
|
382 |
||
947 | 383 |
For example, it is called right after a bazooka is fired, when both shots of a shotgun have been fired, when extra time is used, or when all 4 shots of a portable portal device have been fired. It is also called when using a multi-shot ammo has been aborted by changing the weapon selection mid-way, because this still uses up the ammo. |
946 | 384 |
|
1491 | 385 |
*Warning:* In 0.9.24 or earlier, you must not manipulate any ammo within this callback, e.g. by using `AddAmmo`. The ammo storage might become garbled otherwise. |
386 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
387 |
=== <tt>onHogHide(gearUid)</tt> === |
689 | 388 |
This function is called when a hedgehog with the gear ID `gearUid` is hidden (removed from the map). |
179
156e5fba2e2c
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
178
diff
changeset
|
389 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
390 |
=== <tt>onHogRestore(gearUid)</tt> === |
689 | 391 |
This function is called when a hedgehog with the specified gear ID `gearUid` is restored (unhidden). |
173
ef246592a16e
Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents:
172
diff
changeset
|
392 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
393 |
=== <tt>onSpritePlacement(spriteId, centerX, centerY)</tt> === |
411 | 394 |
This function is called when a [Sprites Sprite] has been placed. |
395 |
||
396 |
`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. |
|
397 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
398 |
=== <tt>onGirderPlacement(frameIdx, centerX, centerY)</tt> === |
402
1e7586c110f6
Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents:
401
diff
changeset
|
399 |
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
|
400 |
|
940 | 401 |
`frameIdx` is used for the length and orientation of the girder. The possible values are explained in `PlaceGirder`. `centerX` and `centerY` are the coordinates of the girder’s center. |
402
1e7586c110f6
Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents:
401
diff
changeset
|
402 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
403 |
=== <tt>onRubberPlacement(frameIdx, centerX, centerY)</tt> === |
402
1e7586c110f6
Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents:
401
diff
changeset
|
404 |
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
|
405 |
|
940 | 406 |
`frameIdx` is used for the rubber orientation. The possible values are explained in `PlaceRubber`. `centerX` and `centerY` are the coordinates of the rubber’s center. |
402
1e7586c110f6
Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents:
401
diff
changeset
|
407 |
|
1656 | 408 |
=== <tt>onSpecialPoint(x, y, flags)</tt> === |
1223
868b783afc88
LuaAPI: Add onSpecialPoints. I hope it's more or less correct
Wuzzy
parents:
1221
diff
changeset
|
409 |
This is used while a special hand-drawn map is loaded. The engine is building these hand-drawn maps by reading points from the map definition. Optionally, some of these points may be “special”. These are not actually drawn on the map, but are used to store additional information for a position on the map. Special points currently need to be added manually in the map, the in-game editor is not able to add those yet (as of 0.9.23). |
868b783afc88
LuaAPI: Add onSpecialPoints. I hope it's more or less correct
Wuzzy
parents:
1221
diff
changeset
|
410 |
Now, when such a special point at the coordinates `x` and `y` with an assigned value of `flags` is added, this function is called. `flags` is a whole number between `0` and `255` inclusive. |
868b783afc88
LuaAPI: Add onSpecialPoints. I hope it's more or less correct
Wuzzy
parents:
1221
diff
changeset
|
411 |
|
868b783afc88
LuaAPI: Add onSpecialPoints. I hope it's more or less correct
Wuzzy
parents:
1221
diff
changeset
|
412 |
This function is used in Racer and !TechRacer to define waypoints. |
868b783afc88
LuaAPI: Add onSpecialPoints. I hope it's more or less correct
Wuzzy
parents:
1221
diff
changeset
|
413 |
|
1692 | 414 |
=== <tt>onAchievementsDeclaration()</tt> === |
1229 | 415 |
This function is called after the stats for the stats screen (after the game) have been generated. You are supposed to call `DeclareAchievement` here. |
1225
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
416 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
417 |
== Functions for creating gears == |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
418 |
|
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
419 |
=== <tt>!AddGear(x, y, gearType, state, dx, dy, timer)</tt> === |
1519 | 420 |
This creates a new gear at position x,y (measured from top left) of kind `gearType` (see [GearTypes Gear Types]). Gears are dynamic objects or events in the world that affect the gameplay, including hedgehogs, projectiles, weapons, land objects, active utilities and a few more esoteric things. |
421 |
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
|
422 |
|
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
423 |
Example: |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
424 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
425 |
<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
|
426 |
FindPlace(gear, true, 0, LAND_WIDTH)</code> |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
427 |
|
1165 | 428 |
=== <tt>!AddVisualGear(x, y, visualGearType, state, critical [, layer])</tt> === |
1519 | 429 |
This attempts to create a new visual gear at position x,y (measured from top left) of kind `visualGearType` (see [VisualGearTypes Visual Gear Types]). Visual gears are decorational objects which are usually used for purely decorational graphical effects. They have no effect on gameplay. Visual gears are not the same as gears, but they share some similarities. |
1518 | 430 |
|
431 |
The function returns the `uid` of the visual gear created or `nil` if creation failed. There is no guarantee that a visual gear will spawn. *IMPORTANT: Do not rely on visual gears to spawn*. *Always* be prepared for this function to return `nil`. |
|
432 |
||
433 |
Set `critical` to `true` if the visual gear is crucial to gameplay and must always be spawned when in-game. Use `false` if it is just an effect or eye-candy, and its creation can be skipped when in fast-forward mode (such as when joining a room). |
|
1511 | 434 |
|
1518 | 435 |
You can set an optional `layer` to specify which visual gears get drawn on top. |
436 |
||
437 |
Most visual gears delete themselves eventually. |
|
1511 | 438 |
|
1704 | 439 |
*NOTE:* Visual gears *must* only be used for decorational/informational/rendering purposes. *Never* use the visual gear's internal state to manipulate anything gameplay-related. Visual gears are not safe for reliable storage and using them as that would lead to strange bugs. |
1518 | 440 |
|
441 |
*NOTE:* Since 0.9.25, visual gears will never spawn when Hedgewars is run in a testing mode (i.e. not as the real game), so don't rely for visual gears to spawn even if they're critical. |
|
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
442 |
|
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
443 |
Example: |
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
444 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
445 |
<code language="lua"> -- adds an non-critical explosion at position 1000,1000. Returns 0 if it was not created. |
1518 | 446 |
local vgear = AddVisualGear(1000, 1000, vgtExplosion, 0, false) |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
447 |
</code> |
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
448 |
|
871
3222b4cfef8a
LuaAPI: Additional parameter for SpawnHealthCrate, SpawnAmmoCrate, SpawnUtilityCrate
Wuzzy
parents:
869
diff
changeset
|
449 |
=== <tt>!SpawnHealthCrate(x, y, [, health])</tt> === |
1235
dae4580eca94
LuaAPI: Discourage negative health for health crates
Wuzzy
parents:
1232
diff
changeset
|
450 |
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). Set `health` for the initial health contained in the health crate. If not set, the default health (`HealthCaseAmount`) is used. Do not use a negative value for `health`. |
417
f4b7962d39cd
Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents:
416
diff
changeset
|
451 |
|
1189 | 452 |
=== <tt>!SpawnSupplyCrate(x, y, ammoType [, amount])</tt> (0.9.24) === |
453 |
Spawns an ammo or utility crate at the specified position with the given ammo type and an optional amount (default: 1). The crate type is chosen automatically based on the ammo type. |
|
454 |
Otherwise, this function behaves like `SpawnAmmoCrate`. |
|
455 |
||
871
3222b4cfef8a
LuaAPI: Additional parameter for SpawnHealthCrate, SpawnAmmoCrate, SpawnUtilityCrate
Wuzzy
parents:
869
diff
changeset
|
456 |
=== <tt>!SpawnAmmoCrate(x, y, ammoType [, amount])</tt> === |
1189 | 457 |
Spawns an ammo crate at the specified position with content of `ammoType` (see [AmmoTypes Ammo Types]). Any `ammoType` is permitted, an ammo crate is spawned even if the ammo is normally defined as an utility. |
1648 | 458 |
If `ammoType` is set to `amNothing`, a random weapon (out of the available weapons from the weapon scheme) will be selected. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land). The `amount` parameter specifies the amount of ammo contained in the crate. If `amount` is `nil` or `0`, the value set by `SetAmmo` is used, or if `SetAmmo` has not been used, it falls back to the weapon scheme's value. If `amount` is equal to or greater than `AMMO_INFINITE`, the amount is infinite. |
1031
637ad254daf9
LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents:
1030
diff
changeset
|
459 |
|
637ad254daf9
LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents:
1030
diff
changeset
|
460 |
Note that in Lua missions, the default number of ammo in crates is 0, so it has to be set to at least 1 with `SetAmmo` first, see the example: |
417
f4b7962d39cd
Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents:
416
diff
changeset
|
461 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
462 |
Example: |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
463 |
|
1033 | 464 |
<code language="lua"> SetAmmo(amGrenade, 0, 0, 0, 1) -- grenade ammo crates now contain 1 grenade each |
465 |
SpawnAmmoCrate(0, 0, amGrenade) -- spawn grenade ammo crate at random position</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
|
466 |
|
871
3222b4cfef8a
LuaAPI: Additional parameter for SpawnHealthCrate, SpawnAmmoCrate, SpawnUtilityCrate
Wuzzy
parents:
869
diff
changeset
|
467 |
=== <tt>!SpawnUtilityCrate(x, y, ammoType [, amount])</tt> === |
881
ab6bd4812ca4
LuaAPI: special amNothing for SpawnAmmoCrate / SpawnUtilityCrate
Wuzzy
parents:
871
diff
changeset
|
468 |
Spawns an utility crate with some ammo at the specified position. The function behaves almost like `SpawnAmmoCrate`, the differences are 1) the crate looks different and 2) if `ammoType` is set to `amNothing`, a random utility out of the set of available utilities from the weapon scheme is chosen as content. |
417
f4b7962d39cd
Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents:
416
diff
changeset
|
469 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
470 |
Example: |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
471 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
472 |
<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
|
473 |
SpawnUtilityCrate(0, 0, amLaserSight)</code> |
400 | 474 |
|
475 |
=== <tt>!SpawnFakeAmmoCrate(x, y, explode, poison) </tt> === |
|
417
f4b7962d39cd
Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents:
416
diff
changeset
|
476 |
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 | 477 |
`explode` and `poison` are booleans. |
478 |
If `explode` is `true`, the crate will explode when collected. |
|
479 |
If `poison` is `true`, the collector will be poisoned. |
|
480 |
||
481 |
Example: |
|
482 |
||
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
483 |
<code language="lua">SpawnFakeAmmoCrate(500, 432, false, false) -- Spawns a fake ammo crate at the coordinates (500, 434) without explosion and poison. |
400 | 484 |
</code> |
485 |
||
486 |
=== <tt>!SpawnFakeHealthCrate(x, y, explode, poison) </tt> === |
|
1241
50cb37fde767
LuaAPI: Simplify SpawnFakeHealthCrate and SpawnFakeUtilityCrate
Wuzzy
parents:
1240
diff
changeset
|
487 |
Same as `SpawnFakeAmmoCrate`, except the crate will look like a health crate. |
400 | 488 |
|
489 |
=== <tt>!SpawnFakeUtilityCrate(x, y, explode, poison) </tt> === |
|
1241
50cb37fde767
LuaAPI: Simplify SpawnFakeHealthCrate and SpawnFakeUtilityCrate
Wuzzy
parents:
1240
diff
changeset
|
490 |
Same as `SpawnFakeAmmoCrate`, except the crate will look like an utility crate. |
400 | 491 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
492 |
=== <tt>!AddHog(hogname, botlevel, health, hat)</tt> === |
1578 | 493 |
Adds a new hedgehog for current team (last created one with the `AddTeam` function), with a bot level, an initial health and a hat. |
494 |
||
1577
f1af9c28ce70
LuaAPI: Mention that you are not allowed to mix computer and human hogs in the same team
Wuzzy
parents:
1574
diff
changeset
|
495 |
`botlevel` ranges from `0` to `5`, where `0` denotes a human player and `1` to `5` denote the skill level of a bot, where `1` is strongest and `5` is the weakest. Note that this is the reverse order of how the bot level is displayed in the game. Note that mixing human-controlled and computer-controlled hedgehogs in the same team is not permitted, but it is permitted to use different computer difficulty levels in the same team. |
413
6d90d6994e95
Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents:
412
diff
changeset
|
496 |
|
1694 | 497 |
Returns the gear ID. |
498 |
||
499 |
*Warning*: This only works in singleplayer mode (e.g. missions). Also, Hedgewars only supports up to 64 hedgehogs in a game. |
|
12
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 |
Example: |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
502 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
503 |
<code language="lua"> local player = AddHog("HH 1", 0, 100, "NoHat") -- botlevel 0 means human player |
1694 | 504 |
SetGearPosition(player, 1500, 1000) |
505 |
-- hint: If you don't call `SetGearPosition`, the hog spawns randomly</code> |
|
506 |
||
507 |
=== <tt>!AddMissionHog(health)</tt> (0.9.25) === |
|
508 |
Add a hedgehog for the current team, using the player-chosen team identity when playing in singleplayer missions. The “current team” is the last team that was added with `AddMissionTeam` or `AddTeam`. |
|
509 |
||
510 |
The name and hat match the player's team definition. The hog is also always player-controlled. |
|
511 |
||
1697 | 512 |
Examples: |
1694 | 513 |
<code language="lua">-- Add player team with 3 hogs |
514 |
AddMissionTeam(-1) |
|
515 |
AddMissionHog(100) |
|
516 |
AddMissionHog(100) |
|
517 |
AddMissionHog(100)</code> |
|
518 |
||
519 |
<code language="lua">-- You can also mix mission hogs with “hardcoded” hogs. |
|
520 |
-- This adds a player team with 2 hogs taken from the player team and 1 hog with a hardcoded name, botlevel and hat. |
|
521 |
AddMissionTeam(-2) |
|
522 |
AddMissionHog(100) |
|
523 |
AddMissionHog(100) |
|
524 |
AddHog("My Hardcoded Hog", 0, 100, "NoHat") |
|
525 |
</code> |
|
526 |
||
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
527 |
== Functions to get gear properties == |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
528 |
|
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
529 |
=== <tt>!GetGearType(gearUid)</tt> === |
1513 | 530 |
This function returns the [GearTypes gear type] for the specified gear, if it exists. If it doesn't exist, `nil` is returned. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
531 |
|
916
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
532 |
=== <tt>!GetVisualGearType(vgUid)</tt> (0.9.23) === |
1513 | 533 |
This function returns the [VisualGearTypes visual gear type] for the specified visual gear, if it exists. If it doesn't exist, `nil` is returned. |
916
a01743eb08f1
LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents:
913
diff
changeset
|
534 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
535 |
=== <tt>!GetGearPosition(gearUid)</tt> === |
891 | 536 |
Returns x,y coordinates for the specified gear. Not to be confused with `GetGearPos`. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
537 |
|
1656 | 538 |
=== <tt>GetGearCollisionMask(gearUid)</tt> === |
1244 | 539 |
Returns the current collision mask of the given gear. See `SetGearCollisionMask` for an explanation of the mask. |
540 |
||
181 | 541 |
=== <tt>!GetGearRadius(gearUid)</tt> === |
1409 | 542 |
Returns the `Radius` value for the specified gear. For most [GearTypes gear types] for “projectile” gears (like `gtShell` or `gtGrenade`), the radius refers to the gear's collision radius. This is an invisible circle around the center of the gear which is used for the collision checks. For a few gear types, its radius means something different, see [GearTypes] for a full list. |
892 | 543 |
|
544 |
To set the `Radius` value, use `SetGearValues`. |
|
148
f343b50d5619
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
147
diff
changeset
|
545 |
|
181 | 546 |
=== <tt>!GetGearVelocity(gearUid)</tt> === |
555 | 547 |
Returns a tuple of dx,dy values for the specified gear. |
548 |
||
549 |
=== <tt>!GetFlightTime(gearUid)</tt> === |
|
550 |
Returns the `FlightTime` of the specified gear. The `FlightTime` is a gear varialbe used to store a general time interval. The precise meaning of the `FlightTime` depends on the gear type. |
|
551 |
||
552 |
For example: The `FlightTime` of a hedgehog (`gtHedgehog`) is the time since they last have stood on solid ground. For most projectile gear types (i.e. `gtShell`), it stores the time after it has been launched. |
|
71
2dcbebb06088
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
70
diff
changeset
|
553 |
|
181 | 554 |
=== <tt>!GetGearElasticity(gearUid) </tt> === |
611 | 555 |
Returns the elasticity of the specified gear. The elasticity normally determines how strong the gear will bounce after collisions, where higher elasticity is for stronger bounces. |
556 |
||
1514 | 557 |
This is also useful for determining if a hog is on a rope or not. If a hog is attached to a rope, or is busy firing one, the elasticity of the rope will be a non-zero number. |
611 | 558 |
|
559 |
=== <tt>!GetGearFriction(gearUid) </tt> === |
|
560 |
Returns the friction of the specified gear. The friction normally determines how well the gear will slide on terrain. Higher values are for increased sliding properties. |
|
74 | 561 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
562 |
=== <tt>!GetHogClan(gearUid)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
563 |
Returns the clan ID of the specified hedgehog gear. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
564 |
|
28
026591d95ac6
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
24
diff
changeset
|
565 |
=== <tt>!GetHogTeamName(gearUid)</tt> === |
1039 | 566 |
Returns the name of the specified gear’s team. `gearUid` can be a hedgehog or a grave. |
28
026591d95ac6
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
24
diff
changeset
|
567 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
568 |
=== <tt>!GetHogName(gearUid)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
569 |
Returns the name of the specified hedgehog gear. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
570 |
|
1498 | 571 |
=== <tt>!IsHogHidden(gearUid)</tt> (0.9.25) === |
1499 | 572 |
Returns true if hedgehog gear is hidden (e.g. via `HideHog` or the !TimeBox), false if it isn't, nil if that hedgehog never existed. |
1498 | 573 |
|
140
04d82b673bc4
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
139
diff
changeset
|
574 |
=== <tt>!GetEffect(gearUid, effect)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
575 |
Returns the state of given effect for the given hedgehog gear. |
140
04d82b673bc4
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
139
diff
changeset
|
576 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
577 |
See `SetEffect` for further details. |
373 | 578 |
|
133
b737ccb5b49a
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
132
diff
changeset
|
579 |
=== <tt>!GetHogHat(gearUid)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
580 |
Returns the hat of the specified hedgehog gear. |
133
b737ccb5b49a
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
132
diff
changeset
|
581 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
582 |
=== <tt>!GetHogFlag(gearUid)</tt> === |
610 | 583 |
Returns the name of the flag of the team of the specified hedgehog gear. |
584 |
||
932 | 585 |
=== <tt>!GetHogFort(gearUid)</tt> (0.9.23) === |
586 |
Returns the name of the fort of the team of the specified hedgehog gear. |
|
587 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
588 |
=== <tt>!GetHogGrave(gearUid)</tt> === |
610 | 589 |
Returns the name of the grave of the team of the specified hedgehog gear. |
590 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
591 |
=== <tt>!GetHogVoicepack(gearUid)</tt> === |
610 | 592 |
Returns the name of the voicepack of the team of the specified hedgehog gear. |
593 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
594 |
=== <tt>!GetAmmoCount(gearUid, ammoType)</tt> === |
1658 | 595 |
Returns the ammo count of the specified ammo type for the specified hedgehog gear. If infinite, returns `AMMO_INFINITE`. |
133
b737ccb5b49a
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
132
diff
changeset
|
596 |
|
1410 | 597 |
=== <tt>!GetAmmoTimer(gearUid, ammoType)</tt> (0.9.25) === |
598 |
Returns the currently configured ammo timer (in milliseconds) for the given hedgehog gear and specified ammo type. This is the timer which is set by the player by using the timer keys (1-5). For ammo types for which the timer cannot be changed, `nil` is returned. |
|
599 |
||
600 |
Example: |
|
601 |
<code lang="lua">GetAmmoTimer(CurrentHedgehog, amGrenade) |
|
602 |
-- May return 1000, 2000, 3000, 4000 or 5000</code> |
|
603 |
||
913 | 604 |
=== <tt>!IsHogLocal(gearUid)</tt> (0.9.23) === |
1190 | 605 |
Returns `true` if the specified hedgehog gear is controlled by a human player on the computer on which Hedgewars runs on (i.e. not over a computer over the network). Also returns `true` if the hog is a member of any of the local clans. Returns `false` otherwise. Returns `nil` if `gearUid` is invalid. |
606 |
||
607 |
This is perfect to hide certain captions like weapon messages from enemy eyes. |
|
913 | 608 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
609 |
=== <tt>!GetGearTarget(gearUid, x, y) </tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
610 |
Returns the x and y coordinate of target-based weapons/utilities. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
611 |
<b>Note:</b>: This can’t be used in `onGearAdd()` but must be called after gear creation. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
612 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
613 |
=== <tt>GetX(gearUid)</tt> === |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
614 |
Returns x coordinate of the gear. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
615 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
616 |
=== <tt>GetY(gearUid)</tt> === |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
617 |
Returns y coordinate of the gear. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
618 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
619 |
=== <tt>!GetState(gearUid)</tt> === |
415
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
620 |
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
|
621 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
622 |
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
|
623 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
624 |
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
|
625 |
<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
|
626 |
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
|
627 |
--[[ 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
|
628 |
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
|
629 |
</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
|
630 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
631 |
<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
|
632 |
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
|
633 |
--[[ 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
|
634 |
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
|
635 |
“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
|
636 |
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
|
637 |
</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
|
638 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
639 |
<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
|
640 |
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
|
641 |
--[[ 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
|
642 |
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
|
643 |
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
|
644 |
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
|
645 |
</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
|
646 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
647 |
|
114
e311af715b57
Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents:
107
diff
changeset
|
648 |
=== <tt>!GetGearMessage(gearUid)</tt> === |
625 | 649 |
Returns the message of the gear. This is a bitmask built out of flags seen in [GearMessages]. |
419 | 650 |
|
651 |
=== <tt>!GetTag(gearUid)</tt> === |
|
652 |
Returns the tag of the specified gear (by `gearUid`). |
|
653 |
||
891 | 654 |
The `Tag` of a gear is just another arbitrary variable to hold the gear's state. 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. See [GearTypes] for a full list. The returned value will be an integer. |
419 | 655 |
|
656 |
Note that the word “tag” here does _not_ refer to the name and health tags you see above hedgehogs, this is something different. |
|
657 |
||
658 |
<code language="lua"> |
|
659 |
-- This adds a ball (the one from the ballgun) at (123, 456): |
|
660 |
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0) |
|
661 |
-- The tag of a ball defines its color. It will automatically chosen at random when created. |
|
662 |
colorTag = GetTag(ball) |
|
663 |
-- Now colorTag stores the tag of ball (in this case a number denoting its color) |
|
664 |
</code> |
|
665 |
||
421
d584704354ad
Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents:
419
diff
changeset
|
666 |
The meaning of tags are described in [GearTypes]. |
419 | 667 |
|
209
26805ae2a319
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
203
diff
changeset
|
668 |
=== <tt>!GetFollowGear()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
669 |
Returns the uid of the gear that is currently being followed. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
670 |
|
181 | 671 |
=== <tt>!GetTimer(gearUid)</tt> === |
891 | 672 |
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 RC plane time. See [GearTypes] for a full list. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
673 |
|
181 | 674 |
=== <tt>!GetHealth(gearUid)</tt> === |
891 | 675 |
Returns the health of the gear. Depending on the gear type, the gear's “health” can also refer to other things, see [GearTypes] for a full list. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
676 |
|
181 | 677 |
=== <tt>!GetHogLevel(gearUid)</tt> === |
1243 | 678 |
Returns the bot level ranging from `0` to `5`. `1` is the strongest bot level and `5` is the weakest one (this is the reverse of what players see). `0` is for human player. |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
679 |
|
503 | 680 |
=== <tt>!GetGearPos(gearUid)</tt> === |
891 | 681 |
Get the `Pos` value of the specified gear. `Pos` is just another arbitrary value to hold the state of the gear, such as `Tag` and `Health`, the meaning depends on the gear type. See [GearTypes] for the conrete meaning of a gear's `Pos` value. |
682 |
||
683 |
*Important*: Pos is *not* related to the gear's position, use `GetGearPosition` for that. |
|
503 | 684 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
685 |
=== <tt>!GetGearValues(gearUid)</tt> === |
616 | 686 |
This returns a bunch of values associated with the gear, their meaning is often depending on the gear type and many values might be unused for certain gear types. |
612 | 687 |
|
688 |
This is returned (all variables are integers): |
|
689 |
||
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
690 |
`Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, nImpactSounds, Tint, Damage, Boom` |
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
691 |
|
612 | 692 |
A rough description of some of the parameters: |
615 | 693 |
|
694 |
* `Radius`: Effect or collision radius, most of the time |
|
625 | 695 |
* `ImpactSound`: Sound it makes on a collision (see [Sounds]) |
615 | 696 |
* `Tint`: Used by some gear types to determine its colorization. The color is in RGBA format. |
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
697 |
* `Boom`: Used by most gears to determine the damage dealt. |
612 | 698 |
|
699 |
Example: |
|
700 |
<code language="lua"> |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
701 |
-- Get all values in a single line of code: |
1703 | 702 |
local Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, nImpactSounds, Tint, Damage, Boom, Scale = GetGearValues(myGear) |
612 | 703 |
</code> |
704 |
||
181 | 705 |
=== <tt>!GetVisualGearValues(vgUid)</tt> === |
1518 | 706 |
This returns the typically set visual gear values for the specified visual gear `vgUid`, useful if manipulating things like smoke, bubbles or circles. On success, it returns the following values: |
614 | 707 |
|
1703 | 708 |
`X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint, Scale` |
614 | 709 |
|
1703 | 710 |
The meaning of these values is the same as in `SetVisualGearValues`. |
614 | 711 |
|
1521 | 712 |
If the visual gear does not exist, `nil` is returned. Always check the result for `nil` before you plug in the values anywhere. |
1520 | 713 |
|
714 |
Most visual gears require little to no modification of parameters. |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
715 |
|
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
716 |
Example: |
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
717 |
|
1522 | 718 |
<code language="lua">-- Return visual gear values |
1703 | 719 |
local X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint, Scale = GetVisualGearValues(vgUid) |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
720 |
</code> |
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
721 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
722 |
== Functions to modify gears == |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
723 |
|
243
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
724 |
=== <tt>!HideHog(gearUid)</tt> === |
1004 | 725 |
Removes a hedgehog from the map. The hidden hedgehog can be restored with `RestoreHog(gearUid)`. Since 0.9.23, returns `true` on success and `false` on failure (if gear does not exist / hog is already hidden). |
243
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
726 |
|
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
727 |
Example: |
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
728 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
729 |
<code language="lua"> gear = AddGear(...) |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
730 |
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
|
731 |
|
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
732 |
=== <tt>!RestoreHog(gearUid)</tt> === |
1513 | 733 |
Restores a previously hidden hedgehog. Nothing happens if the hedgehog does not exist or is not hidden. |
243
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
734 |
|
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
735 |
Example: |
ac34d3763a17
Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents:
209
diff
changeset
|
736 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
737 |
<code language="lua"> gear = AddGear(...) |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
738 |
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
|
739 |
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
|
740 |
|
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
741 |
=== <tt>!DeleteGear(gearUid)</tt> === |
1513 | 742 |
Deletes a gear. If the specified gear did not exist, nothing happens. |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
743 |
|
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
744 |
Example: |
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
745 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
746 |
<code language="lua"> gear = AddGear(...) |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
747 |
DeleteGear(gear) -- Delete the newly created gear.</code> |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
748 |
|
181 | 749 |
=== <tt>!DeleteVisualGear(vgUid)</tt> === |
1513 | 750 |
Deletes a visual gear. If it does not exist, nothing happens. |
751 |
||
752 |
Note, most visual gears delete themselves after a while. |
|
753 |
||
754 |
||
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
755 |
|
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
756 |
Example: |
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
757 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
758 |
<code language="lua"> vgear = AddVisualGear(...) |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
759 |
DeleteVisualGear(vgear) -- Delete the newly created visual gear.</code> |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
760 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
761 |
=== <tt>!SetGearValues(gearUid, Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, ImpactSounds, Tint, Damage, Boom)</tt> === |
1512 | 762 |
Sets various gear value for the specified gear (`gearUid`). The meaining of each value often depends on the gear type. See the documentation on !GetGearValues for a brief description of the gear values. If `gearUid` is invalid or the gear does not exist, nothing happens. |
612 | 763 |
|
764 |
Set `nil` for each value you do not want to change. |
|
765 |
||
766 |
Example: |
|
767 |
<code language="lua"> |
|
768 |
-- Paints all RC planes into a white color |
|
769 |
function onGearAdd(gear) |
|
770 |
if GetGearType(gear) == gtRCPlane then |
|
771 |
SetGearValues(gear, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xFFFFFFFF) |
|
772 |
end |
|
773 |
end |
|
774 |
</code> |
|
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
775 |
|
1703 | 776 |
=== <tt>!SetVisualGearValues(vgUid, X, Y, dX, dY, Angle, Frame, !FrameTicks, State, Timer, Tint, Scale)</tt> === |
1518 | 777 |
This allows manipulation of the internal state of the visual gear `vgUid`. If `vgUid` is invalid or the `vgUid` does not refer to an existing visual gear, the function does nothing. Thus, you can safely call this function even if you are not sure if the visual gear actually exists. |
1510 | 778 |
|
779 |
All visual gear values are numbers. Each visual gear may be using these parameters differently, but the *usual* meaning of these is the following: |
|
613 | 780 |
|
615 | 781 |
* `X`, `Y`: Position |
1188 | 782 |
* `dX`, `dY`: Speed along the X and Y axis |
783 |
* `Angle`: Current rotation |
|
784 |
* `Frame`: Image frame, if using a sprite sheet |
|
1703 | 785 |
* `FrameTicks` is usually an animation counter |
1188 | 786 |
* `State`: Helper value to save some internal state |
787 |
* `Timer`: Time in milliseconds until it expires |
|
615 | 788 |
* `Tint`: RGBA color |
1703 | 789 |
* `Scale` is a scale factor (not used by all visual gears) |
613 | 790 |
|
1510 | 791 |
Some visual gears interpret these values differently, just like normal gears. See [VisualGearTypes] for details. Also, most visual gears are not using all possible values, while some values are just ignored. |
1188 | 792 |
|
793 |
Note that most visual gears require little to no modification of their values. |
|
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
794 |
|
1704 | 795 |
*NOTE*: *Never* use the visual gear's internal state to manipulate/store anything gameplay-related. Visual gears are not safe for reliable storage and using them as that would lead to strange bugs. |
1518 | 796 |
|
613 | 797 |
Example 1: |
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
798 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
799 |
<code language="lua"> -- set a circle to position 1000,1000 pulsing from opacity 20 to 200 (8%-78%), radius of 50, 3px thickness, bright red. |
552 | 800 |
SetVisualGearValues(circleUid, 1000,1000, 20, 200, 0, 0, 100, 50, 3, 0xff0000ff)</code> |
801 |
||
1188 | 802 |
Only the first argument is required. Everything else is optional. Any such argument which is declared as `nil` will not overwrite the corresponding value of the visual gear. |
552 | 803 |
|
613 | 804 |
Example 2: |
552 | 805 |
|
1188 | 806 |
<code language="lua"> -- set a visual gear to position 1000,1000 |
552 | 807 |
SetVisualGearValues(circleUid, 1000, 1000)</code> |
1188 | 808 |
<code language="lua"> -- set the tint of a visual gear to bright red. |
552 | 809 |
SetVisualGearValues(circleUid, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xff0000ff)</code> |
810 |
||
39
45a576e56425
Updating with visual gear functions and delete gear
kyberneticist
parents:
38
diff
changeset
|
811 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
812 |
=== <tt>!FindPlace(gearUid, fall, left, right[, tryHarder])</tt> === |
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
813 |
Finds a place for the specified gear between x=`left` and x=`right` and places it there. `tryHarder` is optional, setting it 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
|
814 |
|
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
815 |
Example: |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
816 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
817 |
<code language="lua"> gear = AddGear(...) |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
818 |
FindPlace(gear, true, 0, LAND_WIDTH) -- places the gear randomly between 0 and LAND_WIDTH</code> |
1656 | 819 |
=== <tt>HogSay(gearUid, text, manner [,vgState])</tt> === |
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
820 |
Makes the specified gear say, think, or shout some text in a comic-style speech or thought bubble. `gearUid` is _not_ limited to hedgehogs, altough the function name suggests otherwise. |
533 | 821 |
|
822 |
The `manner` parameter specifies the type of the bubble and can have one of these values: |
|
59
233360620ae2
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
58
diff
changeset
|
823 |
|
533 | 824 |
|| *Value of `manner`* || *Looks* || |
825 |
|| `SAY_THINK` || Thought bubble || |
|
826 |
|| `SAY_SAY` || Speech bubble || |
|
827 |
|| `SAY_SHOUT` || Exclamatory bubble (denotes shouting) || |
|
59
233360620ae2
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
58
diff
changeset
|
828 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
829 |
There is a optional 4th parameter `vgState`, it defines wheather the speechbubble is drawn fully opaque or semi-transparent. The value `0` is the default value. |
533 | 830 |
|
831 |
|| *Value of `vgState`* || *Effect* || |
|
832 |
|| `0` || If the specified gear is a hedgehog, and it’s the turn of the hedgehog’s team, the bubble is drawn fully opaque.<br>If the gear is a hedgehog, and it’s another team’s turn, the bubble is drawn translucent.<br>If the gear is not a hedgehog, the bubble is drawn fully opaque. || |
|
833 |
|| `1` || The bubble is drawn translucent. || |
|
834 |
|| `2` || The bubble is drawn fully opaque. || |
|
835 |
||
836 |
Examples: |
|
837 |
||
838 |
<code language="lua">HogSay(CurrentHedgehog, "I wonder what to do …", SAY_THINK) -- thought bubble with text “I wonder what to do …”</code> |
|
839 |
<code language="lua">HogSay(CurrentHedgehog, "I'm hungry.", SAY_SAY) -- speech bubble with text “I’m hungry.”</code> |
|
840 |
<code language="lua">HogSay(CurrentHedgehog, "I smell CAKE!", SAY_SHOUT) -- exclamatory bubble with text “I smell CAKE!”</code> |
|
52
714b56de5ea1
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
51
diff
changeset
|
841 |
=== <tt>!HogTurnLeft(gearUid, boolean)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
842 |
Faces the specified hog left or right. |
52
714b56de5ea1
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
51
diff
changeset
|
843 |
|
714b56de5ea1
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
51
diff
changeset
|
844 |
Example: |
714b56de5ea1
Edited wiki page LuaAPI through web user interface.
RedGrinner
parents:
51
diff
changeset
|
845 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
846 |
<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
|
847 |
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
|
848 |
=== <tt>!SetGearPosition(gearUid, x, y)</tt> === |
891 | 849 |
Places the specified gear exactly at the position (`x`,`y`). Not to be confused with `SetGearPos`. |
71
2dcbebb06088
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
70
diff
changeset
|
850 |
|
1656 | 851 |
=== <tt>SetGearCollisionMask(gearUid, mask)</tt> === |
1227
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
852 |
Set the collision mask of the given gear with `gearUid`. |
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
853 |
The collision mask defines with which gears and terrain types the gear can collide. |
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
854 |
|
1302 | 855 |
`mask` is a number between `0x0000` and `0xFFFF` and used as a bitfield, which means you can combine these flags with `bor`. These are the available flags: |
1227
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
856 |
|
1303 | 857 |
|| *Identifier* || *Collision with …* || |
858 |
|| `lfLandMask` || Terrain || |
|
1637 | 859 |
|| `lfCurHogCrate` || Current hedgehog, and crates || |
1303 | 860 |
|| `lfHHMask` || Any hedgehogs || |
861 |
|| `lfNotHHObjMask` || Objects, not hogs (e.g. mines, explosives) || |
|
862 |
|| `lfAllObjMask` || Hedgehogs and objects || |
|
1227
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
863 |
|
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
864 |
Beware, the collision mask is often set by the engine as well. |
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
865 |
|
1228 | 866 |
Examples: |
1637 | 867 |
<code language="lua">SetGearCollisionMask(gear, bnot(lfCurHogCrate)) |
1231 | 868 |
-- Ignore collision with current hedgehog</code> |
1227
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
869 |
|
1231 | 870 |
<code language="lua">SetGearCollisionMask(gear, 0xFFFF) |
871 |
-- Collide with everything</code> |
|
1228 | 872 |
|
1302 | 873 |
<code language="lua">SetGearCollisionMask(gear, lfAllObjMask) |
1231 | 874 |
-- Collide with hedgehogs and objects</code> |
1228 | 875 |
|
1231 | 876 |
<code language="lua">SetGearCollisionMask(gear, 0x0000) |
877 |
-- Collide with nothing</code> |
|
1228 | 878 |
|
1304 | 879 |
There are actual more flags availbable, but they are not as useful for use in Lua and their constants have not been exposed to Lua. You can find the full range of flags in the engine source code (in Pascal): |
880 |
||
881 |
[https://hg.hedgewars.org/hedgewars/file/default/hedgewars/uConsts.pas#l112] |
|
1227
edda2e2b973f
LuaAPI: Add SetGearCollisionMask and GetGearCollisionMask
Wuzzy
parents:
1226
diff
changeset
|
882 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
883 |
=== <tt>!SetGearVelocity(gearUid, dx, dy)</tt> === |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
884 |
Gives the specified gear the velocity of `dx`, `dy`. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
885 |
|
555 | 886 |
=== <tt>!SetFlightTime(gearUid, flighttime)</tt> === |
887 |
Sets the `FlightTime` of the given gear to `flighttime`. The meaning of `FlightTime` is explained in the section `GetFlightTime`. |
|
888 |
||
611 | 889 |
=== <tt>!SetGearElasticity(gearUid, Elasticity) </tt> === |
890 |
Sets the elasticity of the specified gear. For most gears, the elasticity determines how strong the gear will bounce after collisions, where higher elasticity is for stronger bounces. Recommended are values between `0` and `9999`. |
|
891 |
||
892 |
=== <tt>!SetGearFriction(gearUid, Friction) </tt> === |
|
893 |
Sets the friction of the specified gear. The friction normally determines how well the gear will slide on terrain. Higher values are for increased sliding properties. `0` is for no sliding whatsoever, where `9999` is for very long slides, greater values are not recommended. |
|
894 |
||
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
895 |
=== <tt>!SetHealth(gearUid, health)</tt> === |
891 | 896 |
Sets the health of the specified gear. The “health” of a gear can refer to many things, depending on the gear type. |
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
897 |
|
1381 | 898 |
*Hint*: If you like to increase the health of a hedgehog with nice visual effects, consider using `HealHog` instead. |
899 |
||
891 | 900 |
Use cases: |
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
901 |
|
891 | 902 |
* Setting the health of a hedgehog (`gtHedgehog`) to 99 |
903 |
* Starting the RC Plane (`gtRCPlane`) with 10 bombs |
|
904 |
* Starting flying saucer (`gtJetpack`) with only 50% fuel |
|
905 |
* Setting all the mines (`gtMine`) to duds |
|
906 |
* And more! |
|
907 |
||
908 |
See [GearTypes] for a full description. |
|
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
909 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
910 |
<code language="lua"> function onGearAdd(gear) |
891 | 911 |
if (GetGearType(gear) == gtHedgehog) then |
912 |
-- Set hedgehog health to 99 |
|
913 |
SetHealth(gear, 99) |
|
914 |
end |
|
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
915 |
if (GetGearType(gear) == gtRCPlaane) then |
891 | 916 |
-- Give the plane 10 bombs |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
917 |
SetHealth(gear, 10) |
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
918 |
end |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
919 |
if (GetGearType(gear) == gtJetpack) then |
891 | 920 |
-- Set fuel to 50% only |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
921 |
SetHealth(gear, 1000) |
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
922 |
end |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
923 |
if (GetGearType(gear) == gtMine) then |
891 | 924 |
-- Turn mine into dud |
361
315e9db1f458
no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents:
360
diff
changeset
|
925 |
SetHealth(gear, 0) |
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
926 |
end |
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
927 |
end</code> |
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
928 |
|
1656 | 929 |
=== <tt>HealHog(gearUid, healthBoost[, showMessage[, tint]])</tt> (0.9.24) === |
1381 | 930 |
Convenience function to increase the health of a hedgehog with default visual effects. |
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
931 |
|
1381 | 932 |
Specifically, this increases the health of the hedgehog gear with the given ID `gearUid` by `healthBoost`, displays some healing particles at the hedgehog and shows the health increae as a message. This is similar to the behavour after taking a health crate, or getting a health boost from vampirism. |
1189 | 933 |
|
934 |
If `showMessage` is false, no message is shown. With `tint` you can set the RGBA color of the particles (default: `0x00FF00FF`). |
|
99
983ec9ac63c7
Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents:
98
diff
changeset
|
935 |
|
1191 | 936 |
This function does not affect the poison state, however (see `SetEffect`). |
937 |
||
373 | 938 |
=== <tt>!SetEffect(gearUid, effect, effectState)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
939 |
Sets the state for one of the effects <tt>heInvulnerable, heResurrectable, hePoisoned, heResurrected, heFrozen</tt> for the specified hedgehog gear. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
940 |
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
|
941 |
|
824 | 942 |
|| *`effect`* || *Description* || *`effectState`* || |
823 | 943 |
|| `heInvulnerable` || Wether hog is invulnerable || Any non-zero value turns on invulnerability. `0` turns it off. || |
944 |
|| `hePoisoned` || Poison damage, damages hog each turn. || Amount of damage per turn. Use `0` to disable poisoning. || |
|
945 |
|| `heResurrectable` || Whether to resurrect the hog on death || With a non-zero value, the hedgehog will be resurrected and teleported to a random location on death. `0` disables this. || |
|
824 | 946 |
|| `heResurrected` || Whether the hedgehog has been resurrected once. This is only a subtle graphical effect. || With a non-zero value, the hedgehog was resurrected, `0` otherwise. || |
1216 | 947 |
|| `heFrozen` || Freeze level. Frozen hedgehogs skip turn, are heavy and take half damage || The hog is considered frozen if the value is `256` or higher, otherwise not. A number of `256` or higher denotes “how frozen” the hedgehog is, i.e. how long it takes to melt. The freezer sets this to `199999` initially. The value will be reduced by `50000` each round. Being hit by a flame reduces this number by `1000`. The values `0` to `255` are used for the freeze/melt animations. || |
1299 | 948 |
|| `heArtillery` || If enabled, the hedgehog can't walk (since 0.9.24). || `0` = disabled. `1` = permanently enabled. `2` = temporarily enabled (used by sniper rifle between shots) || |
823 | 949 |
|
950 |
Example (sets all bots poisoned with poison damage of 1): |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
951 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
952 |
<code language="lua"> function onGearAdd(gear) |
558 | 953 |
if (GetGearType(gear) == gtHedgehog) and (GetHogLevel(gear) > 0) then |
373 | 954 |
SetEffect(gear, hePoisoned, 1) |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
955 |
end |
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
956 |
end</code> |
181 | 957 |
|
17 | 958 |
=== <tt>CopyPV(gearUid, gearUid)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
959 |
This sets the position and velocity of the second gear to the first one. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
960 |
|
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
961 |
=== <tt>!FollowGear(gearUid)</tt> === |
1515 | 962 |
Makes the game client follow the specifiec gear (if it exists). Does not work for visual gears. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
963 |
|
139
6bf231a611a7
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
138
diff
changeset
|
964 |
=== <tt>!SetHogName(gearUid, name)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
965 |
Sets the name of the specified hedgehog gear. |
139
6bf231a611a7
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
138
diff
changeset
|
966 |
|
398
1f9f7fb00be3
Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents:
394
diff
changeset
|
967 |
=== <tt>!SetHogTeamName(gearUid, name)</tt> === |
1039 | 968 |
Sets the team name of the specified gear. The gear can be a hedgehog or grave. |
398
1f9f7fb00be3
Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents:
394
diff
changeset
|
969 |
|
139
6bf231a611a7
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
138
diff
changeset
|
970 |
=== <tt>!SetHogHat(gearUid, hat)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
971 |
Sets the hat of the specified hedgehog gear. |
139
6bf231a611a7
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
138
diff
changeset
|
972 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
973 |
=== <tt>!SetGearTarget(gearUid, x, y)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
974 |
Sets the x and y coordinate of target-based weapons/utilities. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
975 |
*Note*: This can’t be used in onGearAdd() but must be called after gear creation. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
976 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
977 |
=== <tt>!SetState(gearUid, state)</tt> === |
415
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
978 |
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
|
979 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
980 |
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
|
981 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
982 |
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
|
983 |
<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
|
984 |
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
|
985 |
--[[ 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
|
986 |
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
|
987 |
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
|
988 |
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
|
989 |
</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
|
990 |
|
70961d4eef05
Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents:
414
diff
changeset
|
991 |
<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
|
992 |
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
|
993 |
--[[ 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
|
994 |
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
|
995 |
</code> |
28
026591d95ac6
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
24
diff
changeset
|
996 |
|
114
e311af715b57
Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents:
107
diff
changeset
|
997 |
=== <tt>!SetGearMessage(gearUid, message)</tt> === |
625 | 998 |
Sets the gear messages of the specified gear. `message` is a bitmask built out of flags seen in [GearMessages]. |
114
e311af715b57
Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents:
107
diff
changeset
|
999 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
1000 |
=== <tt>!SetTag(gearUid, tag)</tt> === |
891 | 1001 |
Sets the `Tag` value of the specified gear (by `gearUid`). The `Tag` value 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. See [GearTypes] for a full list. `tag` has to be an integer. |
419 | 1002 |
|
1003 |
Note that the word “tag” here does _not_ refer to the name and health tags you see above hedgehogs, this is something different. |
|
1004 |
||
1005 |
<code language="lua"> |
|
1006 |
-- This adds a ball (the one from the ballgun) at (123, 456): |
|
1007 |
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0) |
|
1008 |
-- This sets the tag of the gear. For gtBall, the tag specified the color. “8” is the color white. |
|
1009 |
SetTag(ball, 8) -- |
|
1010 |
</code> |
|
1011 |
||
421
d584704354ad
Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents:
419
diff
changeset
|
1012 |
The meaning of tags are described in [GearTypes]. |
28
026591d95ac6
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
24
diff
changeset
|
1013 |
|
181 | 1014 |
=== <tt>!SetTimer(gearUid, timer)</tt> === |
891 | 1015 |
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
|
1016 |
|
360 | 1017 |
=== <tt>!SetHogLevel(gearUid, level)</tt> === |
1243 | 1018 |
Sets the bot level from 0 to 5. `1` is the strongest bot level and `5` is the weakest one (this is the reverse of what players see). `0` means human player. |
69
48f6e6c0076d
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
68
diff
changeset
|
1019 |
|
1656 | 1020 |
=== <tt>SetGearAIHints(gearUid, aiHint)</tt> === |
1224 | 1021 |
Set some behaviour hints for computer-controlled hedgehogs for any given gear with `gearUid`. |
1022 |
||
1023 |
Set `aiHint` to either of: |
|
1024 |
||
1025 |
* `aihUsualProcessing`: AI hogs treat this gear the usual way. This is the default. |
|
1026 |
* `aihDoesntMatter`: AI hogs don't bother attacking this gear intentionally. |
|
1027 |
||
1028 |
Example: |
|
1029 |
||
1231 | 1030 |
<code language="lua"> |
1224 | 1031 |
SetGearAIHints(uselessHog, aihDoesntMatter) |
1231 | 1032 |
-- This makes AI hogs stop caring about attacking uselessHog</code> |
1224 | 1033 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1034 |
=== <tt>!SetGearPos(gearUid, value)</tt> === |
891 | 1035 |
Sets the `Pos` value (not the position!) of the specified gear to specified value. See `GetGearPos` for more information. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1036 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1037 |
== Gameplay functions == |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
1038 |
|
549 | 1039 |
=== `GameFlags` functions === |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1040 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1041 |
==== <tt>!ClearGameFlags()</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1042 |
Disables *all* !GameFlags. |
380 | 1043 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1044 |
==== <tt>!DisableGameFlags(gameflag, ...)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1045 |
Disables the listed !GameFlags, without changing the status of other !GameFlags. |
380 | 1046 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1047 |
==== <tt>!EnableGameFlags(gameflag, ...)</tt> ==== |
1253 | 1048 |
Enables the listed !GameFlags, without changing the status of other !GameFlags. In missions, no !GameFlags are set initially. |
380 | 1049 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1050 |
==== <tt>!GetGameFlag(gameflag)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1051 |
Returns `true` if the specified gameflag is enabled, otherwise `false`. |
380 | 1052 |
|
1568 | 1053 |
=== Turns === |
1656 | 1054 |
==== <tt>SkipTurn()</tt> (0.9.24) ==== |
1568 | 1055 |
Forces the current hedgehog to skip its turn. |
1056 |
||
1656 | 1057 |
==== <tt>EndTurn([noTaunts])</tt> (0.9.23) ==== |
1568 | 1058 |
Ends the current turn immediately. |
1059 |
||
1060 |
Normally, a “Coward” taunt may be played and an announcer message may be shown (depending on the situation). Set the optional `noTaunts` parameter to `true` to force the engine to never play a taunt or show a message. `noTaunts` is `false` by default. |
|
1061 |
||
1656 | 1062 |
==== <tt>Retreat(time [, respectGetAwayTimeFactor)</tt> (0.9.25) ==== |
1568 | 1063 |
Forces the current turn into the retreating phase, as if the hog made an attack. That is, the current hedgehog is unable to attack or select a weapon, only movement is possible until the retreat time is up. |
1064 |
||
1065 |
The retreat time must be set with `time` in milliseconds. By default, this time is automatically multiplied with get-away time percentage from the game scheme for seamless integration with schemes. If you want to ignore the game scheme for some reason and set the retreat time no matter what, set `respectGetAwayTimeFactor` to `false`. |
|
1066 |
||
1067 |
If the current hedgehog was busy doing an attack, the attack is aborted, no shot is made. If this function is called in the ready phase of af a turn, the ready phase continues normally, but the turn will begin in the retreat phase instead. |
|
1068 |
||
1069 |
Note: If you want the turn to end instantly, it is recommended to use `EndTurn` instead. |
|
1070 |
||
1071 |
==== <tt>!SetTurnTimeLeft(newTurnTimeLeft)</tt> (0.9.25) ==== |
|
1072 |
Set the remaining turn time in milliseconds. The current remaining turn time can be read from the variable `TurnTimeLeft`. |
|
1073 |
||
1569 | 1074 |
==== <tt>!SetReadyTimeLeft(newReadyTimeLeft)</tt> (0.9.25) ==== |
1570 | 1075 |
Set the remaining ready time in milliseconds. This function should only be called in onNewTurn. The current remaining ready time can be read from the variable `ReadyTimeLeft`. |
1568 | 1076 |
|
1693 | 1077 |
==== <tt>!SetTurnTimePaused(isPaused)</tt> (0.9.25) ==== |
1078 |
Pauses the turn time indefinitely if `isPaused` is set to `true`, disabled the turn time pause if `isPaused` is set to `false`. |
|
1079 |
||
1080 |
==== <tt>!GetTurnTimePaused()</tt> (0.9.25) ==== |
|
1081 |
Returns `true` if the turn time is currently paused by `SetTurnTimePaused`, otherwise returns `false`. |
|
1082 |
||
1568 | 1083 |
==== <tt>!EndGame()</tt> ==== |
1084 |
Makes the game end. |
|
1085 |
||
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1086 |
=== Environment === |
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1087 |
==== <tt>!SetGravity(percent)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1088 |
Changes the current gravity of the game in percent (relative to default, integer value). |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1089 |
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
|
1090 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1091 |
==== <tt>!GetGravity()</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1092 |
Returns the current gravity in percent. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1093 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1094 |
==== <tt>!SetWaterLine(waterline)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1095 |
Sets the water level (`WaterLine`) to the specified y-coordinate. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1096 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1097 |
==== <tt>!SetWind(windSpeed)</tt> ==== |
1189 | 1098 |
Sets the current wind in the range of -100 to 100 inclusive. Use together with `gfDisableWind` for full control. |
1099 |
||
1100 |
==== <tt>!GetWind()</tt> (0.9.24) ==== |
|
1101 |
Returns current wind, expressed as a floating point number between -100 to 100 inclusive. Note there may be rounding errors. |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1102 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1103 |
==== <tt>!SetMaxBuildDistance(distInPx)</tt> ==== |
790 | 1104 |
Sets the maximum building distance for of girders and rubber bands in pixels to `distInPx`. If `distInPx` is `0`, the limit is disabled. If called without arguments, the distance will be reset to the default value. |
608 | 1105 |
|
1655 | 1106 |
==== <tt>Explode(x, y, radius[, options])</tt> (0.9.24) ==== |
1270 | 1107 |
Cause an explosion or erase land, push or damage gears. |
1108 |
||
1271 | 1109 |
By default, an explosion destroys a circular piece of land and damages and pushes gears in its radius. |
1110 |
||
1111 |
The explosion occours at coordinates `(x, y)` with the given `radius`. Assuming 100% damage, the explosion damage at the center equals the explosion radius. |
|
1270 | 1112 |
|
1272 | 1113 |
The explosion will also have a visual effect (by spawning an explosion visual gear), unless the radius is very small. |
1114 |
||
1270 | 1115 |
`options` is a bitmask which can be used to tweak how the explosion behaves: |
1116 |
||
1117 |
|| *Flag* || *Meaning* || |
|
1118 |
|| `EXPLAutoSound` || Plays an appropriate sound || |
|
1119 |
|| `EXPLNoDamage` || Deal no damage to gears || |
|
1120 |
|| `EXPLDoNotTouchHH` || Do not push hedgehogs || |
|
1121 |
|| `EXPLDoNotTouchAny` || Do not push any gears || |
|
1122 |
|| `EXPLDontDraw` || Do not destroy land || |
|
1649 | 1123 |
|| `EXPLForceDraw` || Destroy land, even if `gfSolidLand` is active || |
1270 | 1124 |
|| `EXPLNoGfx` || Do not show an explosion animation and do not shake the screen || |
1125 |
|| `EXPLPoisoned` || Poison all hedgehogs in explosion radius || |
|
1126 |
||
1127 |
`options` is assumed to be `EXPLAutoSound` by default. Set `options` to 0 to disable all flags. |
|
1128 |
||
1129 |
Examples: |
|
1130 |
<code language="lua"> |
|
1131 |
-- Simple explosion at (100, 50) with radius 50 |
|
1132 |
Explode(100, 50, 50) |
|
1133 |
||
1539 | 1134 |
-- Simple explosion without sound |
1270 | 1135 |
Explode(100, 50, 50, 0) |
1136 |
||
1271 | 1137 |
-- Fake explosion which only pushes gears but deals no damage to gears and terrain |
1270 | 1138 |
Explode(500, 1000, 50, EXPLAutoSound + EXPLNoDamage + EXPLDontDraw) |
1139 |
||
1271 | 1140 |
-- Erase a circle of land without side effects |
1270 | 1141 |
Explode(500, 100, 100, EXPLNoDamage + EXPLDoNotTouchAny + EXPLNoGfx) |
1142 |
</code> |
|
1143 |
||
912
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1144 |
=== Ammo === |
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1145 |
==== <tt>!SetAmmo(ammoType, count, probability, delay, numberInCrate)</tt> ==== |
1425 | 1146 |
This updates the settings (initial ammo, crate probability, etc.) for a specified [AmmoTypes ammo type]. This must only be used in the `onAmmoStoreInit()` event handler. In other places, this function will not work. |
912
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1147 |
|
1032 | 1148 |
In Lua missions, for *all* ammo types, the ammo count, probability, delay and number in crates is set to 0 initially. Note: This also includes skip! |
1031
637ad254daf9
LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents:
1030
diff
changeset
|
1149 |
|
1425 | 1150 |
Parameters: |
1151 |
||
1426 | 1152 |
* `ammoType`: Ammo type to be set |
1153 |
* `count`: Initial ammo count. 9 = infinite |
|
1154 |
* `probability`: Crate probability. Max. value is 9. 0 = never |
|
1155 |
* `delay`: Number of rounds this ammo is delayed |
|
1156 |
* `numberInCrate`: Amount of ammo in a crate |
|
1425 | 1157 |
|
912
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1158 |
Example: |
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1159 |
|
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1160 |
<code language="lua"> SetAmmo(amShotgun, 9, 0, 0, 0) -- unlimited amount of shotgun ammo for players |
1031
637ad254daf9
LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents:
1030
diff
changeset
|
1161 |
SetAmmo(amGrenade, 0, 0, 0, 3) -- crates should contain always three grenade |
637ad254daf9
LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents:
1030
diff
changeset
|
1162 |
SetAmmo(amSkip, 9, 0, 0, 0) -- enable skip</code> |
637ad254daf9
LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents:
1030
diff
changeset
|
1163 |
|
637ad254daf9
LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents:
1030
diff
changeset
|
1164 |
Hint: It is recommended to always enable skip in missions. Only in exceptional circumstances you should choose to not enable skip. |
912
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1165 |
|
1427 | 1166 |
==== <tt>!GetAmmo(ammoType)</tt> ==== |
1167 |
Returns ammo settings (initial ammo, crate probability, etc.) for a specified [AmmoTypes ammo type]. This function is analogue to `SetAmmo`. |
|
1168 |
||
1169 |
This function returns four numbers, in this order: initial ammo count, probability, delay and number in crate. These values correspond to the parameters 2-5 provided in `SetAmmo` and have the same meaning. |
|
1170 |
||
1171 |
Example: |
|
1172 |
||
1173 |
<code language="lua">count, prob, delay, numberInCrate = GetAmmo(amGrenade) -- Get ammo settings of amGrenade</code> |
|
1174 |
||
912
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1175 |
==== <tt>!SetAmmoDelay(ammoType, delay)</tt> ==== |
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1176 |
Changes the delay of a specified [AmmoTypes Ammo Type]. |
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1177 |
|
1643 | 1178 |
==== <tt>!SetAmmoTexts(ammoType, name, caption, description [, showExtra])</tt> (0.9.23) ==== |
1006
160112dc2fcf
LuaAPI: Clarify SetAmmoTexts usage: Must not be called before onGameStart was fired
Wuzzy
parents:
1004
diff
changeset
|
1179 |
Allows you to overwrite the displayed name and tooltip descriptions of a given ammo type. This function must only be called either inside the `onGameStart` callback function, or after the engine has called `onGameStart`. |
918
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1180 |
|
919 | 1181 |
* `ammoType`: The ammo type to set the text for |
1182 |
* `name`: Name of the ammo type (e.g. “Grenade” for `amGrenade`), affects both name in ammo menu and in the “ticker” message on the screen top. |
|
1183 |
* `caption`: The second line in the ammo menu (below the title). E.g. “Timed grenade” for `amGrenade`. |
|
1184 |
* `description`: Description text in ammo menu, below the caption. |
|
1643 | 1185 |
* `showExtra`: If `false` the special “extra” text line like “Weapon is not yet available” or “Weapon does not end turn” will be suppressed |
918
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1186 |
|
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1187 |
`title`, `caption`, `description` can be `nil`, in which case they will be reverted to the engine default value. This function returns `nil`. |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1188 |
|
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1189 |
Example: |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1190 |
<code language="lua"> |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1191 |
-- Overwrites bazooka name and description |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1192 |
SetAmmoTexts(amBazooka, "Spoon Missile", "Crazy weapon", "This crazy weapon looks like a spoon and explodes on impact.|Attack: Hold to launch with more power")</code> |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1193 |
|
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1194 |
==== <tt>!SetAmmoDescriptionAppendix(ammoType, descAppend)</tt> (0.9.23) ==== |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1195 |
Will set a string `descAppend` to be appended below the “core” description (ammo tooltip) of the specified `ammoType`, without changing the ordinary description. |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1196 |
Note that calling this function always sets the complete appended string, you can't use this function to append multiple texts in row. |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1197 |
|
920 | 1198 |
This function is recommended if you have tweaked an existing ammo type only a little and want to keep the original description intact as much as possible. |
918
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1199 |
|
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1200 |
Example: |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1201 |
<code language="lua"> |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1202 |
-- Appends a text to the ammo tooltip of the bazooka but leaves name and main description intact |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1203 |
SetAmmoTexts(amBazooka, "This weapon deals double the damage than usually.")</code> |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1204 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1205 |
==== <tt>!AddAmmo(gearUid, ammoType, ammoCount)</tt> ==== |
1704 | 1206 |
Adds `ammoType` to the specified gear. The amount added is determined by the arguments passed via `SetAmmo()` in the `onAmmoStoreInit()` event handler. `ammoCount` is an optional parameter. If this is set, the ammo will *not* be added, but instead set to `ammoCount`. A value of `0` will remove the weapon, a value of `AMMO_INFINITE` will give infinite ammo. |
912
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1207 |
|
1700 | 1208 |
Note: By default, ammo is per-team, so calling `AddAmmo` for a hedgehog will give the ammo for the whole team. The game flags `gfPerHogAmmo` and `gfSharedAmmo` change how ammo is managed in the game, so these game flags also affect `AddAmmo`. |
1209 |
||
918
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1210 |
==== <tt>!GetAmmoName(ammoType [, ignoreOverwrite ])</tt> (0.9.23) ==== |
87e1d0a11e99
LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents:
917
diff
changeset
|
1211 |
Returns the localized name for the specified `ammoType`, taking an ammo name overwritten by `SetAmmoTexts` into account. If `ignoreOverwrite` is `true`, this function will always return the original ammo name of the weapon and ignores names which may have been overwritten by `SetAmmoTexts`. |
912
ea13b02292c5
LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents:
911
diff
changeset
|
1212 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1213 |
=== Map === |
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1214 |
==== <tt>!MapHasBorder()</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1215 |
Returns `true`/`false` if the map has a border or not. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1216 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1217 |
==== <tt>!TestRectForObstacle(x1, y1, x2, y2, landOnly)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1218 |
Checks the rectangle between the given coordinates for possible collisions. Set `landOnly` to `true` if you don’t want to check for collisions with gears (hedgehogs, etc.). |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1219 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1220 |
==== <tt>!PlaceGirder(x, y, frameIdx)</tt> ==== |
940 | 1221 |
Attempts to place a girder with centre points `x`, `y` and a certain length and orientation, specified by `frameIdx`. The girder can only be placed in open space and must not collide with anything so this function may fail. It will return `true` on successful placement and `false` on failure. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1222 |
|
940 | 1223 |
These are the accepted values for `frameIdx`: |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1224 |
|
940 | 1225 |
|| *`frameIdx`* || *Length* || *Orientation* || |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1226 |
|| 0 || short || horizontal || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1227 |
|| 1 || short || decreasing right || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1228 |
|| 2 || short || vertical || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1229 |
|| 3 || short || increasing right || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1230 |
|| 4 || long || horizontal || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1231 |
|| 5 || long || decreasing right || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1232 |
|| 6 || long || vertical || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1233 |
|| 7 || long || increasing right || |
412 | 1234 |
|
940 | 1235 |
==== <tt>!PlaceRubber(x, y, frameIdx)</tt> (0.9.23) ==== |
1236 |
Attempts to place a rubber with centre points `x`, `y` and a certain orientation, specified by `frameIdx`. The rubber can only be placed in open space and must not collide with anything so this function may fail. It will return `true` on successful placement and `false` on failure. |
|
1237 |
||
1238 |
These are the accepted values for `frameIdx`: |
|
1239 |
||
1240 |
|| *`frameIdx`* || *Orientation* || |
|
1241 |
|| 0 || horizontal || |
|
1242 |
|| 1 || decreasing right || |
|
1243 |
|| 2 || vertical || |
|
1244 |
|| 3 || increasing right || |
|
1245 |
||
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1246 |
==== <tt>!PlaceSprite(x, y, sprite, frameIdx, tint, behind, flipHoriz, flipVert, [, landFlag, ...])</tt> ==== |
869 | 1247 |
Places a [Sprites sprite] at the specified position (`x`, `y`) on the map, it behaves like terrain then. Unlike `PlaceGirder`, this function does not check for collisions, so the sprite can be placed anywhere within map boundaries. The function returns `true` if the placement was successful, `false` otherwise. `frameIdx` is the frame index starting by 0. `frameIdx` is used if the sprite consists of several sub-images. Only a subset of the sprites is currently supported by this function: |
539 | 1248 |
|
1249 |
* `sprAmGirder` |
|
1250 |
* `sprAmRubber` |
|
1251 |
* `sprAMSlot` |
|
1252 |
* `sprAMAmmos` |
|
1253 |
* `sprAMAmmosBW` |
|
1254 |
* `sprAMCorners` |
|
1255 |
* `sprHHTelepMask` |
|
1256 |
* `sprTurnsLeft` |
|
1257 |
* `sprSpeechCorner` |
|
1258 |
* `sprSpeechEdge` |
|
1259 |
* `sprSpeechTail` |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1260 |
* `sprTargetBee` |
539 | 1261 |
* `sprThoughtCorner` |
1262 |
* `sprThoughtEdge` |
|
1263 |
* `sprThoughtTail` |
|
1264 |
* `sprShoutCorner` |
|
1265 |
* `sprShoutEdge` |
|
1266 |
* `sprShoutTail` |
|
1267 |
* `sprBotlevels` |
|
1268 |
* `sprIceTexture` |
|
1269 |
* `sprCustom1` |
|
1270 |
* `sprCustom2` |
|
1271 |
||
1506 | 1272 |
`tint` is for an RGBA colouring to apply, this works about the same as `Tint` in gears. If `nil`, the original color is used. |
1273 |
||
1274 |
`behind` indicates the sprite should not replace existing land. |
|
1275 |
||
1276 |
`flipHoriz` and `flipVert` are for mirroring the sprite vertically and horizontally before placing, respectively. |
|
1277 |
||
1278 |
The 9th and later arguments specify land flags (see the constants section) to be used for the newly created terrain. If omitted, `lfNormal` is assumed. |
|
539 | 1279 |
|
1280 |
Example: |
|
1281 |
||
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1282 |
<code language="lua">PlaceSprite(2836, 634, sprAmGirder, 5) |
539 | 1283 |
-- Places the girder sprite as normal terrain at (2836, 634). The `frameIdx` 5 is for the long decreasing right girder.</code> |
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1284 |
<code language="lua">PlaceSprite(1411, 625, sprAmRubber, 1, nil, nil, nil, nil, lfBouncy) |
539 | 1285 |
-- Places the rubber band sprite as bouncy terrain at (2836, 634). The `frameIdx` 1 is for the decreasing right rubber band.</code> |
1286 |
||
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1287 |
==== <tt>!EraseSprite(x, y, sprite, frameIdx, eraseOnLFMatch, onlyEraseLF, flipHoriz, flipVert, [, landFlag, ...])</tt> ==== |
692
111f39408390
Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents:
691
diff
changeset
|
1288 |
Erases a [Sprites sprite] at the specified position (`x`, `y`) on the map. `frameIdx` is the frame index starting by 0. `sprite`, `frameIdx`, `flipHoriz` and `flipVert` behave the same as in `PlaceSprite`. For `sprite`, the same subset of sprites is permitted. |
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1289 |
|
692
111f39408390
Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents:
691
diff
changeset
|
1290 |
Set `eraseOnLFMatch` to `true` to erase all land for a pixel that matches any of the passed in land flags. This is useful if, for example, an `lfBouncy` sprite was placed “behind” land using `PlaceSprite` and you want to remove it without destroying the non-bouncy terrain. |
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1291 |
|
692
111f39408390
Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents:
691
diff
changeset
|
1292 |
Set `onlyEraseLF` to `true` to only remove specific land flags. If for example a sprite consists of `lfIndestructible` and `lfBouncy`, and you call `EraseSprite` with `onlyEraseLF` and `lfIndestructible` set, the sprite will remain bouncy but can be destroyed. You can use this to entirely remove all land flags from a sprite—at this point the sprite will be visual only, painted on the map but with no collision. |
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1293 |
|
692
111f39408390
Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents:
691
diff
changeset
|
1294 |
Examples: |
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1295 |
|
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1296 |
<code language="lua">EraseSprite(2836, 634, sprAmGirder, 5) |
692
111f39408390
Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents:
691
diff
changeset
|
1297 |
-- Removes the girder sprite at (2836, 634). The frameIdx 5 is for the long decreasing right girder.</code> |
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1298 |
<code language="lua">EraseSprite(1411, 625, sprAmRubber, 1, true, true, nil, nil, lfIndestructible) |
692
111f39408390
Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents:
691
diff
changeset
|
1299 |
-- Removes indestructibility from a rubber band sprite at (2836, 634). The frameIdx 1 is for the decreasing right rubber band.</code> |
688
d9fc58ac04f2
Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents:
685
diff
changeset
|
1300 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1301 |
==== <tt>!AddPoint(x, y [, width [, erase] ])</tt> ==== |
412 | 1302 |
This function is used to draw your own maps using Lua. The maps drawn with this are of type “hand-drawn”. |
1303 |
||
1304 |
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). |
|
1305 |
||
1306 |
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. |
|
1307 |
||
1391 | 1308 |
See [LuaDrawning] for some examples. |
1309 |
||
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1310 |
==== <tt>!FlushPoints()</tt> ==== |
412 | 1311 |
Makes sure that all the points/lines specified using `AddPoint` are actually applied to the map. This function must be called within `onGameInit`. |
1312 |
||
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1313 |
=== Current hedgehog === |
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1314 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1315 |
==== <tt>!GetCurAmmoType()</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1316 |
Returns the currently selected [AmmoTypes Ammo Type]. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1317 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1318 |
==== <tt>!SwitchHog(gearUid)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1319 |
This function will switch to the hedgehog with the specifiedd `gearUid`. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1320 |
|
1246 | 1321 |
==== <tt>!SetWeapon(ammoType)</tt> ==== |
1245 | 1322 |
Sets the selected weapon of `CurrentHedgehog` to one of the [AmmoTypes Ammo Type]. |
1323 |
||
1299 | 1324 |
Examples: |
1245 | 1325 |
|
1326 |
<code language="lua"> |
|
1299 | 1327 |
SetWeapon(amBazooka) -- select the bazooka (if hog has one) |
1328 |
</code> |
|
1329 |
<code language="lua"> |
|
1330 |
SetWeapon(amNothing) -- unselects the weapon. |
|
1331 |
</code> |
|
1245 | 1332 |
|
1246 | 1333 |
==== <tt>!SetNextWeapon()</tt> ==== |
1245 | 1334 |
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. |
1335 |
||
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1336 |
==== <tt>!SetInputMask(mask)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1337 |
Masks specified player input. This means that Hedgewars ignores certain player inputs, such as walking or jumping. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1338 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1339 |
Example: |
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
1340 |
<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
|
1341 |
SetInputMask(band(0xFFFFFFFF, bnot(gmLJump + gmHJump))) |
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1342 |
-- 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
|
1343 |
SetInputMask(0xFFFFFFFF) |
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1344 |
</code> |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1345 |
*Note*: Using the input mask is an effective way to script uninterrupted cinematics, or create modes such as No Jumping. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1346 |
|
936 | 1347 |
*Note*: This function is used internally in the Animate [LuaLibraries library]. |
1348 |
||
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1349 |
See also [GearMessages]. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1350 |
|
405 | 1351 |
==== <tt>!GetInputMask()</tt> ==== |
1352 |
Returns the current input mask of the player. |
|
1353 |
||
1656 | 1354 |
==== <tt>!SetVampiric(bool)</tt> (0.9.24) ==== |
1189 | 1355 |
Toggles vampirism mode for this turn. Set `bool` to `true` to enable (same effect as if the hedgehog has used Vampirism), `false` to disable. |
1356 |
||
1656 | 1357 |
==== <tt>!GetVampiric()</tt> (0.9.25) ==== |
1498 | 1358 |
Returns true if vampirism mode is currently active. |
1359 |
||
1656 | 1360 |
==== <tt>!SetLaserSight(bool)</tt> (0.9.24) ==== |
1189 | 1361 |
Toggles laser sight for this turn. Set `bool` to `true` to enable (same effect as if the hedgehog has used Laser Sight), `false` to disable. |
1362 |
||
1656 | 1363 |
==== <tt>!GetLaserSight()</tt> (0.9.25) ==== |
1498 | 1364 |
Returns true if laser sight (as utility) is currently active. The sniper rifle's built-in laser sight does not count. |
1365 |
||
1656 | 1366 |
==== <tt>!EnableSwitchHog()</tt> (0.9.25) ==== |
1411 | 1367 |
Enable hog switching mode for the current hedgehog. This function should be called while the hedgehog is standing on solid ground (`GetFlightTime` returns 0). |
1368 |
||
1369 |
Internally, this tries to spawn a `gtSwitcher` gear which, as long it exists, handles the hog switching. You can delete this gear to stop the hog switching prematurely. If there already is a `gtSwitcher` gear, no additional gear is spawned. |
|
1370 |
||
1371 |
On success, returns the `gtSwitcher` gear being spawned or, if hog switching mode is already active, returns the exsting gear. On failure, returns `nil`. |
|
1372 |
||
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1373 |
=== Randomness === |
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1374 |
==== <tt>!GetRandom(number)</tt> ==== |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1375 |
Returns a randomly generated number in the range of 0 to number - 1. This random number uses the game seed, so is synchronised, and thus safe for multiplayer and saved games. Use `GetRandom` for anything that could impact the engine state. For example, a visual gear could simply use Lua’s `math.random`, but adding a regular gear should use `GetRandom`. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1376 |
|
413
6d90d6994e95
Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents:
412
diff
changeset
|
1377 |
=== Clans and teams === |
6d90d6994e95
Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents:
412
diff
changeset
|
1378 |
==== <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
|
1379 |
|
1640 | 1380 |
Adds a new team. |
1381 |
||
1382 |
You *must* call it only in `onGameInit`. |
|
476
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1383 |
You *must* add at least one hedgehog with `AddHog` after calling this. The engine does not support empty teams. |
1640 | 1384 |
`AddTeam` is only supported for singleplayer missions. You *must not* call this function in multiplayer. |
476
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1385 |
|
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1386 |
Arguments: |
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1387 |
|
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1388 |
* `teamname`: The name of the team. |
1638 | 1389 |
* `color`: Team color, usually a number from -9 to -1 (see below) |
476
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1390 |
* `grave`: The name of the team’s grave (equals file name without the suffix) |
638 | 1391 |
* `fort`: The name of the team’s fort (equals file name without the suffix and without the letter “L” or “R” before that suffix) |
476
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1392 |
* `voicepack`: The name of the team’s voice pack (equals the directory name) |
638 | 1393 |
* `flag`: Optional argument for the name of the team’s flag (equals file name without the suffix). If set to `nil`, the flag “hedgewars” is used. |
476
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1394 |
|
1638 | 1395 |
===== Clan color ===== |
1396 |
Each team must have a color. The color also determines clan membership: Teams with equal color are in the same clan. |
|
1397 |
||
1398 |
The team color is specified as a number from -9 to -1. This will select one of the 9 possible team colors as specified in the player's settings. As the actual colors are set by the player, you can't predict them, but you can usually trust these defaults: |
|
413
6d90d6994e95
Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents:
412
diff
changeset
|
1399 |
|
1638 | 1400 |
* `-1`: red |
1401 |
* `-2`: blue |
|
1402 |
* `-3`: cyan |
|
1403 |
* `-4`: purple |
|
1404 |
* `-5`: magenta |
|
1405 |
* `-6`: green |
|
1406 |
* `-7`: orange |
|
1407 |
* `-8`: brown |
|
1408 |
* `-9`: yellow |
|
1409 |
||
1410 |
An older (and now discouraged) method of specifying the color is by hardcoding it as an RGB color (i.e. `0xDD0000`). This practice is now strongly discouraged because it will ignore the player-chosen color (which is *bad* for players with color blindness) and in 99% of cases you don't need it anyway. It should be only used for testing and debugging. |
|
1411 |
||
1412 |
===== Example ===== |
|
1413 |
||
1414 |
<code language="lua">AddTeam("team 1", -1, "Simple", "Tank", "Default", "hedgewars") |
|
1415 |
--[[ Adds a new team with name “team 1”, the first default color (usually red), the grave “Simple”, |
|
476
dd4470df66ad
Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents:
461
diff
changeset
|
1416 |
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
|
1417 |
|
1696 | 1418 |
==== <tt>!AddMissionTeam(color)</tt> (0.9.25) ==== |
1695 | 1419 |
Adds a new team using the player-chosen team identity when playing a singleplayer mission. Does not work in multiplayer. |
1694 | 1420 |
|
1695 | 1421 |
This function is very similar to `AddTeam`. Team settings like team name and flag will be taken from the player-chosen team. |
1422 |
You only need to specify the clan color, which has the same meaning as in `AddTeam`. |
|
1694 | 1423 |
|
1424 |
Use `AddMissionHog` or `AddHog` afterwards to add hedgehogs for this team. You can mix `AddMissionHog` and `AddHog` as you wish. |
|
1425 |
||
1426 |
Example: |
|
1427 |
<code language="lua">-- Add mission team with default clan color |
|
1428 |
AddMissionTeam(-1)</code> |
|
1429 |
||
1189 | 1430 |
==== <tt>!GetTeamName(teamIdx)</tt> (0.9.24) ==== |
1431 |
Returns the name of the team with the index `teamIdx`. `teamIdx` is a number between 0 and `TeamsCount-1`. |
|
1432 |
||
1218 | 1433 |
==== <tt>!GetTeamIndex(teamname)</tt> (0.9.24) ==== |
1217 | 1434 |
Returns the team index (number between 0 and `TeamsCount-1`) of the team with the name `teamName`. |
1435 |
||
1436 |
==== <tt>!GetTeamClan(teamname)</tt> (0.9.24) ==== |
|
1437 |
Returns the clan ID of the team with the given `teamName`. |
|
1438 |
||
413
6d90d6994e95
Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents:
412
diff
changeset
|
1439 |
==== <tt>!DismissTeam(teamname)</tt> ==== |
1217 | 1440 |
Vaporizes all the hogs of the team with the given team name in a puff of smoke. |
1441 |
||
1442 |
This function must not be called while it's the team's turn. |
|
1443 |
||
1656 | 1444 |
==== <tt>!SetTeamLabel(teamname[, label])</tt> (0.9.24) ==== |
1217 | 1445 |
Set or remove a label for the team with the given team name. The label is a string and will be displayed next to the team's health bar. |
1446 |
||
1447 |
If `label` is `nil`, the label will be removed. |
|
1448 |
||
1449 |
There's a special case: If the AI Survival game modifier is active, the AI kill counter will be replaced by the custom team label if it has been set. If `label` is set to `nil`, the default AI counter is shown again. |
|
1450 |
||
1451 |
Use this to display a score, power value or another important team attribute. There's no hard length limit, but please try to keep it as short as possible to avoid visual clutter. |
|
413
6d90d6994e95
Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents:
412
diff
changeset
|
1452 |
|
1725 | 1453 |
=== <tt>SetTeamPassive(teamname, isPassive)</tt> (1.0.0) === |
1454 |
Mark a team as passive if `isPassive` is `true`. Passive teams do not participate in the game and are treated like frozen teams. When determining the team order, passive teams are completely ignored. |
|
1455 |
||
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1456 |
==== <tt>!GetClanColor(clan)</tt> ==== |
858
2a562faa73fb
LuaAPI: GetClanColor, SetClanColor: They use RGBA instead of RGB
Wuzzy
parents:
826
diff
changeset
|
1457 |
Returns the RGBA color of the chosen clan by its number. The color data type is described in [LuaAPI#Color]. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1458 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1459 |
==== <tt>!SetClanColor(clan, color)</tt> ==== |
1711 | 1460 |
Sets the RGBA color of the chosen clan by its number. The color data type is described in [LuaAPI#Color]. The new clan color *must* be different from the color of all clans (you can't use this function to change clan memberships of teams). |
1461 |
||
1462 |
Note: The stats graph does not support changing clan colors. If the clan colors change in mid-game, the graph might get confused and shows weird stuff. You may want to turn off the graph with if this is the case (see `SendHealthStatsOff`). |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1463 |
|
577 | 1464 |
=== Campaign management === |
1465 |
==== <tt>!SaveCampaignVar(varname, value)</tt> ==== |
|
1466 |
Stores the value `value` (a string) into the campaign variable `varname` (also a string). Campaign variables allow you to save progress of a team in a certain campaign. Campaign variables are saved on a per-team per-campaign basis. They are written into the team file (see [ConfigurationFiles#TeamName.hwt]). |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1467 |
|
579
9895045e9963
Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents:
577
diff
changeset
|
1468 |
There are some special campaign variables which are used by Hedgewars to determine which missions to display in the campaign menu. This is described [ConfigurationFiles#%5BCampaign%20%3CCAMPAIGN_NAME%3E%5D here]. |
9895045e9963
Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents:
577
diff
changeset
|
1469 |
|
577 | 1470 |
==== <tt>!GetCampaignVar(varname)</tt> ==== |
579
9895045e9963
Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents:
577
diff
changeset
|
1471 |
Returns the value of the campaign variable `varname` as a string. See also `SaveCampaignVar`. |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1472 |
|
1693 | 1473 |
==== <tt>!SaveMissionVar(varname, value)</tt> (0.9.25) ==== |
1474 |
Stores the value `value` (a string) into the mission variable `varname` (also a string). A mission variable is like a campaign variable, but it applies for singleplayer missions only (Training/Challenge/Scenario), excluding campaign missions. |
|
1475 |
||
1476 |
==== <tt>!GetMissionVar(varname)</tt> (0.9.25) ==== |
|
1477 |
Returns the value of the mission variable `varname` as a string. See also `SaveMissionVar`. |
|
1478 |
||
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1479 |
== Functions affecting the GUI == |
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1480 |
|
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1481 |
=== <tt>!AddCaption(text)</tt> === |
561 | 1482 |
Display an event text in the upper part of the screen. The text will be white and the caption group will be `capgrpMessage`. |
1483 |
||
583
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1484 |
Example: |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1485 |
<code language="lua"> |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1486 |
AddCaption("Hello, world!") |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1487 |
</code> |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1488 |
|
561 | 1489 |
=== <tt>!AddCaption(text, color, captiongroup)</tt> === |
1649 | 1490 |
Display an event text in the upper part of the screen with the specified RGBA text [LuaAPI#Color color] and caption group. Although an RBGA color is used, Hedgewars does not actually support transparent or semi-transparent captions, so the fourth byte is ignored. We recommend you to always specify a full opacity (`FF` in hexadecimal) for the caption. |
561 | 1491 |
|
1492 |
|| *`captiongroup`* || *Meaning* || |
|
1493 |
|| `capgrpGameState` || Used for important global game events, like Sudden Death || |
|
1494 |
|| `capgrpAmmoinfo` || Used for new weapon crates and some other events || |
|
1502 | 1495 |
|| `capgrpVolume` || Used for “local” changes of client settings that don't affect gameplay, like volume change, auto camera on/off, etc. || |
561 | 1496 |
|| `capgrpMessage` || Generic message || |
1497 |
|| `capgrpMessage2` || Generic message || |
|
1498 |
|| `capgrpAmmostate` || Used to show information about weapon state, i.e. bounce level, timer, remaining shots, etc. || |
|
1499 |
||
1649 | 1500 |
The color can be specified in RGBA format, but you can (but don't have to) use one of the following built-in text color. |
1501 |
||
1502 |
|| *Built-in color* || *Meaning* || |
|
1503 |
|| `capcolDefault` || Default caption color || |
|
1504 |
|| `capcolSetting` || Notification related to a local client setting (audio volume, auto camera on/off) || |
|
1505 |
||
583
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1506 |
Example: |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1507 |
<code language="lua"> |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1508 |
AddCaption("Melon bomb rain in 2 rounds!", 0xFF0000FF, capgrpGameState) |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1509 |
-- Green example message. |
0818d57c392f
Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents:
579
diff
changeset
|
1510 |
</code> |
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1511 |
|
1644 | 1512 |
=== <tt>!ShowMission(caption, subcaption, text, icon, time [, forceDisplay])</tt> === |
894 | 1513 |
This function will open the mission panel and set the texts in it. |
1514 |
||
1515 |
Use to tell the player what he/she is supposed to do. If you use this function, a mission panel is shown for the amount of time specified in `time` (in milliseconds). If `time` is set to 0, it will be displayed for a default amount of time. |
|
1516 |
This function replaces the *entire* text of the mission panel. Compare this to the global `Goals` variable, which *adds* to the default text without replacing it. |
|
645 | 1517 |
|
1518 |
`caption` is the text displayed in the first line, `subcaption` is displayed in the second line and `text` is the text displayed in the third and following lines. |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
1519 |
|
1718 | 1520 |
By convention, `caption` should *normally* contain the name of the game style or mission and `subcaption` should *normally* contain the type of game style or mission, or a witty tagline. But this is only a loose convention which you don't have to follow all the time. |
1521 |
||
1715
5cac9aadcc27
LuaAPI: Update special escape characters for ShowMission
Wuzzy
parents:
1711
diff
changeset
|
1522 |
`text` uses some special characters for formatting: |
5cac9aadcc27
LuaAPI: Update special escape characters for ShowMission
Wuzzy
parents:
1711
diff
changeset
|
1523 |
|
1716 | 1524 |
|| *Special character* || *Meaning* || |
1715
5cac9aadcc27
LuaAPI: Update special escape characters for ShowMission
Wuzzy
parents:
1711
diff
changeset
|
1525 |
|| `|` || Line break || |
5cac9aadcc27
LuaAPI: Update special escape characters for ShowMission
Wuzzy
parents:
1711
diff
changeset
|
1526 |
|| `:` || Highlight itself and all text before that character in this line. The colon itself will be written. || |
5cac9aadcc27
LuaAPI: Update special escape characters for ShowMission
Wuzzy
parents:
1711
diff
changeset
|
1527 |
|| `::` || Like above, except the two colons will not be written. || |
1717 | 1528 |
|| `\|` || Will be replaced with “|” without triggering a line break (escape sequence) || |
1529 |
|| `\:` || Will be replaced with “:” without triggering highlighting (escape sequence) || |
|
645 | 1530 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1531 |
`icon` accepts the following values: |
79 | 1532 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1533 |
|| *`icon`* || *What is shown* || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1534 |
|| _negative number_ || Icon of an ammo type. It is specified as the negative of an ammo type constant (see [AmmoTypes]), i.e. `-amBazooka` for the bazooka icon. || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1535 |
|| `0` || Golden crown || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1536 |
|| `1` || Target || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1537 |
|| `2` || Exclamation mark || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1538 |
|| `3` || Question mark || |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1539 |
|| `4` || Golden star || |
636 | 1540 |
|| `5` || Utility crate || |
1541 |
|| `6` || Health crate || |
|
1542 |
|| `7` || Ammo crate || |
|
1543 |
|| `8` || Barrel || |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1544 |
|| `9` || Dud mine || |
28
026591d95ac6
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
24
diff
changeset
|
1545 |
|
1644 | 1546 |
If the optional parameter `forceDisplay` is `true`, this mission panel cannot be removed manually by the player. It's `false` by default. |
1547 |
||
645 | 1548 |
Example: |
1549 |
<code language="lua"> |
|
1550 |
ShowMission(loc("Nobody Laugh"), loc("User Challenge"), loc("Eliminate the enemy before the time runs out"), 0, 0) |
|
1551 |
</code> |
|
1552 |
||
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
1553 |
=== <tt>!HideMission()</tt> === |
894 | 1554 |
Hides the mission panel if it is currently displayed, otherwise, this function does nothing. |
28
026591d95ac6
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
24
diff
changeset
|
1555 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1556 |
=== <tt>!SetZoom(zoomLevel)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1557 |
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
|
1558 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1559 |
=== <tt>!GetZoom()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1560 |
Returns the current zoom level. |
147
379d7931ffc7
Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents:
146
diff
changeset
|
1561 |
|
1656 | 1562 |
=== <tt>!SetCinematicMode(enable)</tt> (0.9.23) === |
775 | 1563 |
Turns on or off cinematic mode. Cinematic mode can be used for cutscenes etc. |
1564 |
If `enable` is set to `true`, cinematic mode is enabled, |
|
1565 |
if it is `false`, cinematic mode is disabled. |
|
1566 |
||
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1567 |
== Sound functions == |
1724 | 1568 |
=== `PlaySound(soundId, [gearUid [, instaVoice]])` === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1569 |
Plays the specified sound. Possible values for `soundId` are listed on the [Sounds] page. |
28
026591d95ac6
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
24
diff
changeset
|
1570 |
|
1258 | 1571 |
To play a voice (see [Taunts] for a list), you must also set `gearUid`. `gearUid` is the hedgehog gear which is used to “talk”. |
1256 | 1572 |
|
1257 | 1573 |
If you play a voice, by default the voice will respect an internal queue and might be played with an delay in order to prevent annoying voice overlapping. Since version 0.9.24, you can disable this behaviour and force Hedgewars to instantly play the voice by also setting `instaVoice` to `true`. Only use `instaVoice` when you really need it. |
1256 | 1574 |
|
1724 | 1575 |
=== `PlayMusicSound(soundId)` (0.9.25) === |
1592 | 1576 |
Plays a sound as replacement for the background music. The sound is played once. The main music is paused and the sound is played instead. The main background music does not resume automatically, so you should call `StopMusicSound` after a while. |
1577 |
||
1578 |
Example: |
|
1579 |
<code language="lua"> |
|
1580 |
PlayMusicSound(sndRideOfTheValkyries) -- Replace the background music the Ride of the Valkyries |
|
1581 |
</code> |
|
1582 |
||
1724 | 1583 |
=== `StopMusicSound(soundId)` (0.9.25) === |
1592 | 1584 |
Stops the specified “music sound” (if it was still playing) and resumes the main background music. |
1585 |
||
1724 | 1586 |
=== `SetSoundMask(soundId, isMasked)` (0.9.24) === |
1256 | 1587 |
Disables a given sound (including taunts) from being played by the engine. `soundId` is a valid sound ID on [Sounds] or [Taunts]. `isMasked` is a boolean. If `true`, the sound will not be played by the engine anymore. If `false`, playing this sound is allowed again. |
70
ff7d4c176303
Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents:
69
diff
changeset
|
1588 |
|
1256 | 1589 |
Sounds played by the Lua function `PlaySound` will always work, however, and ignore the sound mask. |
1590 |
||
1591 |
Note: Due to the way the voices work internally in Hedgewars, if you want to play a masked voice, you have to set `instaVoice` to `true` when you call `PlaySound`. Otherwise, it won't work. |
|
1592 |
||
1593 |
Example: |
|
1594 |
||
1595 |
<code language="lua">SetSoundMask(sndIncoming, true) |
|
1596 |
-- Disable the “Incoming” sound from being played</code> |
|
77 | 1597 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1598 |
== File system functions == |
1699 | 1599 |
=== <tt>!HedgewarsScriptLoad(scriptPath [, mustExist])</tt> === |
1641 | 1600 |
Loads a script (i.e. a [LuaLibraries library]) from the specified `scriptPath`. The root directory is here Hedgewars’ data directory. There will be a Lua error if the script does not exist. |
1601 |
||
1602 |
If `mustExist` is `false`, no Lua error will happen even when the script does not exist. |
|
1603 |
||
1604 |
Returns `true` if the script was loaded successfully, `false` otherwise. |
|
407 | 1605 |
|
1606 |
Example: |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
1607 |
<code language="lua"> |
407 | 1608 |
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
|
1609 |
</code> |
407 | 1610 |
|
404
37d44392ad2b
Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents:
403
diff
changeset
|
1611 |
== Stats functions == |
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1612 |
=== <tt>!SendStat(TStatInfoType, statMessage[, teamName])</tt> === |
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1613 |
|
893 | 1614 |
This function allows to change the details of the stats screen seen after the end of a game. |
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
|
1615 |
|
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
|
1616 |
`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
|
1617 |
|
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
|
1618 |
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
|
1619 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1620 |
|| *`TStatInfoType`* || *Meaning of `statMessage`* || *Team parameter used?* || |
418
a7d34a3e5786
Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents:
417
diff
changeset
|
1621 |
|| `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
|
1622 |
|| `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
|
1623 |
|| `siCustomAchievement` || A freeform text for a single “bullet point” in the “bullet point” list in the details section. For each time you call `SendStat` with this `TStatInfoType`, a new “bullet point” gets added to the list. || No || |
685 | 1624 |
|| `siPointType` || Replaces the word “kills” in the ranking list. You have to call this each time before you report the score or kills of a team with `siPlayerKills`. Sadly, grammatical number is currently not respected at all here. || No || |
1538 | 1625 |
|| `siPlayerKills` || Adds a team into the ranking with the given number of kills. The order in which this is called for each team matters. Unless the word “kills” has been replaced by `siPointType`, then that word is used instead. Only integers (converted to string) are possible. || Yes || |
1265 | 1626 |
|| `siClanHealth` || Value of a data point. This sets a single data point on the graph for the specified team. All teams will be converted to clans prior to drawing, there can only be one chart per clan. Subsequent calls will draw the next point along the horizontal axis; the frontend will then simply connect the dots in the final chart. Only whole numbers are supported. There must be at least 2 data points for any given clan, otherwise there won't be much to look at. ;-) You also should have called `SendHealthStatsOff` if to prevent the default health graphs to be drawn. || Yes || |
1534 | 1627 |
|| `siMaxStepKills` || Most hedgehogs killed in a round. `statMessage` must be in format “`<kills> <name of killer hedgehog> (<team name of killer>)`”. || No || |
1628 |
|| `siMaxTeamDamage` || Team with most damage inflicted to self. `statMessage` must be in the format “`<damage> <team name>`”. || No || |
|
418
a7d34a3e5786
Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents:
417
diff
changeset
|
1629 |
|| `siKilledHHs` || Total number of killed hedgehogs (converted to string). || No || |
1537 | 1630 |
|| `siTeamStats` || This does not have an effect. || No || |
1534 | 1631 |
|| `siMaxStepDamage` || Most damage in one turn for the “best shot award”. `statMessage` must be in format “`<damage> <hedgehog name> (<team name>)`”. || No || |
1632 |
|| `siMaxTurnSkips` || Team with most skips. `statMessage` must be of format “`<number> <teamName>`”. || No || |
|
1702 | 1633 |
|| `siTeamRank` || Overwrite rank of team. `statMessage` is the rank of your choice. Must be sent before `siPlayerKills` of the team in question. || No || |
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1634 |
|
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1635 |
<b>Examples:</b> |
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1636 |
|
416
5aa55bbe4b73
Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents:
415
diff
changeset
|
1637 |
<code language="lua"> |
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1638 |
-- will automatically change the health icon to a star |
347
edc8d322d02d
Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents:
346
diff
changeset
|
1639 |
SendStat(siGraphTitle,'Custom Graph Title') |
1533 | 1640 |
|
347
edc8d322d02d
Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents:
346
diff
changeset
|
1641 |
SendStat(siGameResult,'Winner is Team A!') |
1533 | 1642 |
|
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
|
1643 |
SendStat(siCustomAchievement,'This is a custom message posted in the Details section!') |
1533 | 1644 |
|
1538 | 1645 |
-- Adds 3 teams into the ranking: First, Team A (with 3 kills), then Team B (1 kill) and then Team C (5 kills). |
1646 |
SendStat(siPlayerKills, "3", 'Team A') |
|
1647 |
SendStat(siPlayerKills, "1", 'Team B') |
|
1648 |
SendStat(siPlayerKills, "5", 'Team C') |
|
1533 | 1649 |
|
1538 | 1650 |
-- In the next ranking, this changes the word “kills” to “points”, |
1651 |
-- call it just before sending kills/score for each team |
|
1652 |
-- in case you want to change the word i.e. print “point” or “points” |
|
1653 |
SendStat(siPointType, "points") |
|
1654 |
||
1655 |
-- this will add Team D to the ranking and show “3 points“ in brackets (because of the siPointType above) |
|
1656 |
SendStat(siPlayerKills, "3", "Team D") |
|
1533 | 1657 |
|
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1658 |
-- 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
|
1659 |
-- 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
|
1660 |
-- in normal mode "value" represents clan health |
1538 | 1661 |
SendStat(siClanHealth, "100", "teamName") |
1533 | 1662 |
|
1663 |
-- most hedgehogs killed in a round (hedgehogName is who killed them) |
|
1664 |
SendStat(siMaxStepKills, "1 hedgehogName (teamName)") |
|
1665 |
||
1666 |
-- team with most damage inflicted to self |
|
1667 |
SendStat(siMaxTeamDamage, "100 teamName") |
|
1668 |
||
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1669 |
-- total number of killed hedgehogs |
347
edc8d322d02d
Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents:
346
diff
changeset
|
1670 |
SendStat(siKilledHHs, "1") |
1533 | 1671 |
|
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1672 |
-- best shot award |
1533 | 1673 |
SendStat(siMaxStepDamage, "30 hedgehogName (teamName)") |
1674 |
||
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1675 |
-- team with most kills of own hedgehogs |
347
edc8d322d02d
Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents:
346
diff
changeset
|
1676 |
SendStat(siMaxStepDamage, "2 teamName") |
1533 | 1677 |
|
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1678 |
-- team with most skips |
347
edc8d322d02d
Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents:
346
diff
changeset
|
1679 |
SendStat(siMaxTurnSkips, "3 teamName") |
1533 | 1680 |
|
1645 | 1681 |
-- set 15 kills for team "MyTeam" and overwrite its rank to 3 |
1682 |
SendStat(siPlayerKills, "15", "MyTeam") |
|
1683 |
SendStat(siTeamRank, "3") |
|
1684 |
||
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1685 |
</code> |
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1686 |
|
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1687 |
<b>Important:</b> |
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1688 |
|
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1689 |
* As the game engine send stats to the frontend at the end of the game one should send her stats when the game is going to finish and right before the call of `EndGame()`. (Note: Stats are sent from the engine in `CheckForWin`. If conditions are met (win or draw) then `SendStats(uStats)` is called.) |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1690 |
* Calling just `EndGame()` won’t produce any stats. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1691 |
* If one would like to produce a custom graph see also `SendHealthStatsOff()`. |
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1692 |
|
1232
4ac63a5c0184
LuaAPI: Remove most pre-0.9.23 version number mentions as very old
Wuzzy
parents:
1231
diff
changeset
|
1693 |
=== <tt>!SendHealthStatsOff()</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1694 |
Prevents the engine of sending health stats to the frontend. |
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1695 |
|
996
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1696 |
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()` function. |
1535
9f33e3eb9798
LuaAPI: Fix very misleading description of siTeamStats
Wuzzy
parents:
1534
diff
changeset
|
1697 |
f |
996
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1698 |
=== <tt>!SendAchievementsStatsOff()</tt> (0.9.23) === |
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1699 |
Prevents the engine of populating the snarky comments in the “Details” section (internally known as “achievements”) of the stats screen, such as “best shot award”, etc. So you can start with a clean list when the game ends normally. This function needs to be called inside `onGameStart()`. |
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1700 |
|
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1701 |
=== <tt>!SendRankingStatsOff()</tt> (0.9.23) === |
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1702 |
Prevents the engine of populating the team rankings in the stats screen, so you can start with a clean list when the game ends normally. This function needs to be called inside `onGameStart()`. |
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1703 |
|
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1704 |
=== <tt>!SendGameResultOff()</tt> (0.9.23) === |
9d49deef533c
LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents:
993
diff
changeset
|
1705 |
Prevents the engine of setting the game result text at the top of the stats screen, e.g. “Team 1 wins!” when the game ends normally. This function needs to be called inside `onGameStart()`. |
328
fdc71ac8db83
Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents:
313
diff
changeset
|
1706 |
|
1040 | 1707 |
=== <tt>!GetTeamStats(teamname)</tt> (0.9.23) === |
1708 |
Returns a table of internal stats of a team. This table has the following fields: |
|
1709 |
||
1211 | 1710 |
* `Kills`: Number of kills |
1711 |
* `Suicides`: Number of suicides (not yet working) |
|
1712 |
* `AIKills`: Number of AI kills |
|
1713 |
* `TeamKills`: Number of hedgehogs killes in own team (excluding current hedghog) |
|
1714 |
* `TurnSkips`: Number of skipped turns |
|
1715 |
* `TeamDamage`: Damage inflicted to own team (excluding current hedgehog) |
|
1040 | 1716 |
|
382 | 1717 |
== Math Functions == |
1718 |
||
383
6679b75048c0
I really have to get used to using preview on google code wiki...
sheepyluva@gmail.com
parents:
382
diff
changeset
|
1719 |
=== <tt>div(dividend, divisor)</tt> === |
515
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1720 |
Performs an integer division and returns the result. |
8e9d86efc07b
Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents:
505
diff
changeset
|
1721 |
The result is an integer and has the value of the first parameter (an integer) divided by the second parameter (another integer), rounded towards zero. |
382 | 1722 |
|
401
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1723 |
=== <tt>band(value1, value2)</tt> === |
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1724 |
Returns the bitwise logical AND of `value1` and `value2`. |
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1725 |
|
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1726 |
=== <tt>bor(value1, value2)</tt> === |
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1727 |
Returns the bitwise logical OR of `value1` and `value2`. |
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1728 |
|
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1729 |
=== <tt>bnot(value)</tt> === |
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1730 |
Returns the bitwise logical NOT of `value`. |
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1731 |
|
aee281298267
Documented the following functions: band, bnot, bor.
almikes@aol.com
parents:
400
diff
changeset
|
1732 |
|
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
1733 |
== Debugging Functions == |
1656 | 1734 |
=== <tt>WriteLnToConsole(string)</tt> === |
820 | 1735 |
Writes `string` to `Logs/game0.log`, found in the user data directory. |
1736 |
||
1656 | 1737 |
=== <tt>WriteLnToChat(string)</tt> (0.9.24) === |
1189 | 1738 |
Writes `string` into the chat. |
1739 |
||
1656 | 1740 |
=== <tt>DumpPoint(x, y)</tt> (0.9.23) === |
821 | 1741 |
Converts the whole numbers `x` and `y` to strings and writes them to `Logs/game0.log`, one line each. |
12
74ead59b6c64
LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff
changeset
|
1742 |
|
1656 | 1743 |
=== <tt>StartGhostPoints(count)</tt> === |
1221 | 1744 |
Just prints out “GHOST_POINTS” and the argument on the console. This function might change in later versions. |
1745 |
||
1656 | 1746 |
=== <tt>DeclareAchievement(id, teamname, location, value)</tt> === |
1225
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1747 |
Declares an achievement with the identifier `id` achieved by the team `teamname` on the map `location` with an achievement value (e.g. score) of `value`. `value` must be an integer. You are supposed to call this function inside an `onAchievementsDeclaration` callback. |
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1748 |
|
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1749 |
Currently, this actually just triggers a console output, but it might be changed later. The idea is to track multiplayer records. |
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1750 |
|
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1751 |
Example: |
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1752 |
|
1231 | 1753 |
<code language="lua">DeclareAchievement("height reached", teamname, "ClimbHome", -score)</code> |
1225
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1754 |
Records a team's best height in !ClimbHome. |
64b95a681971
LuaAPI: Add onAchievementsDeclaration and DeclareAchievement
Wuzzy
parents:
1224
diff
changeset
|
1755 |
|
394
b2742eb19396
Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents:
384
diff
changeset
|
1756 |
=== <tt>!ParseCommand(string)</tt> === |
1046 | 1757 |
Makes the game client parse and execute the specified internal game engine command. |
1758 |
||
1759 |
The available commands depend on the current engine protocol version. The *engine protocol can (and will) change* between releases. |
|
1044 | 1760 |
|
1704 | 1761 |
*Important*: If you use `ParseCommand` to overcome a shortcoming in our Lua API (e.g. a missing function), please make sure to [https://issues.hedgewars.org/enter_bug.cgi report the issue]. |
394
b2742eb19396
Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents:
384
diff
changeset
|
1762 |
|
1046 | 1763 |
With your report we can fix the shortcoming in future releases. We will try to remove the reliance on `ParseCommand` as good as possible. This will allow scripts to use the previously missing feature in a way that won’t break! |
1764 |
||
1398 | 1765 |
There are many available commands, but actual use in scripting is rare, and even then it's discouraged for long-term use. As of 0.9.24, the only command used in official scripts is: |
394
b2742eb19396
Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents:
384
diff
changeset
|
1766 |
|
1074 | 1767 |
* `"draw <map>"`: Draws a hand-drawn map. `MapGen` must be `mgDrawn` for this to work. `<map>` is a string which must follow the format specified in [DrawnMapFormat] |
1044 | 1768 |
|
1057 | 1769 |
Moreover, the control action names as listed in [ConfigurationFiles] (under “Binds”) can be used. Note we will eventually try to remove all `ParseCommand`s in the official scripts. |
1054 | 1770 |
|
1771 |
=== <tt>!EndLuaTest(success)</tt> === |
|
1772 |
This function is used by the Hedgewars developers in testing scripts in order to test the game engine. The testing scripts can be found in the Hedgewars source code under `tests/lua`. This function is useless for anything else. |
|
1773 |
||
1774 |
Calling this function ends an engine test and reports a test result. |
|
1775 |
||
1055
754e0a7bdd44
Explain briefly how engine testing works
Wuzzy <almikes@aol.com>
parents:
1054
diff
changeset
|
1776 |
`success` is either one of `TEST_SUCCESSFUL` to report a successful test or `TEST_FAILED` for a failed test. |
754e0a7bdd44
Explain briefly how engine testing works
Wuzzy <almikes@aol.com>
parents:
1054
diff
changeset
|
1777 |
|
754e0a7bdd44
Explain briefly how engine testing works
Wuzzy <almikes@aol.com>
parents:
1054
diff
changeset
|
1778 |
See [EngineTestCases] to learn more about testing the engine. |