トリガ

これらはスクリプトがAlephOneが特定の時や出来事で呼ぶように定義できる関数である。以下は、HPを回復させるコード:

Triggers = {}
function Triggers.idle()
  for p in Players() do
    if p.life < 150 and not p.dead then
      p.life = p.life + 1
    end
  end
end

スクリプト開始時にTriggers = {}を呼び出す理由は、スクリプトの起動を早くするため。

init(restoring_game)
レベルの最初。
restoring_game
保存されたゲームから再開するときはtrue
cleanup()
レベルの最後。
主にこれはゲーム後の虐殺レポートの前にネットゲームの点を変える最後のチャンスを意図している
idle()
ティック(1/30秒)ごとに、物理などの前
postidle()
ティックごとに、物理などの後で、描画の前
start_refuel(type, player_index, side_index)
プレーヤーが回復パネルを使い始める前
end_refuel(type, player_index, side_index)
プレーヤーが回復パネルを使い終わった後
tag_switch(tag, player)
プレーヤーがタグ・スイッチを使うとき
武器(拳骨など)でスイッチを操作したときは呼ばれない
light_switch(light, player)
プレーヤーがライト・スイッチを使うとき
武器(拳骨など)でスイッチを操作したときは呼ばれない
platform_switch(platform, player)
プレーヤーがプラットフォーム・スイッチを使うとき
武器(拳骨など)でスイッチを操作したときは呼ばれない
terminal_enter(terminal_id, player)
プレーヤーがターミナルを使い始めたとき
terminal_exit(terminal_id, player)
プレーヤーがターミナルを使い終えたとき
pattern_buffer(buffer_id, player)
プレーヤーがパターンバッファを使うとき
got_item(type, player)
プレーヤーがアイテムを拾ったとき
さらにスクリプトが.items.add()を使ってアイテムを得たときも
light_activated(index)
ライトがオンになったかオフになったとき
platform_activated(index)
プラットフォームが起動したか停止したとき
player_revived(player)
プレーヤーが生き返ったとき(ネットワークゲームでしか起こらない)
player_killed(player, aggressor_player, action, projectile)
プレーヤーが死んだとき
aggressor_player
プレーヤーを殺したプレーヤー、自分もありうる(自殺)、プレーヤー以外の時は-1
action
現時点はニューモニックがないため使用は困難
projectile
最後の一撃を加えたショット、ないときは-1
player_damaged(victim_player_index, aggressor_player_index, aggressor_monster_index, damage_type, damage_amount, projectile)
プレーヤーがダメージを受けた時で、適用可能なら死ぬ前。プレーヤーのスーツのエネルギーか酸素はこのトリガーが呼ばれたときには負でもよい。もしトリガがリターンしたときにまだ負の時は、0にセットされる。プレーヤーのスーツのエネルギーはこのトリガが返った後再評価されるため、スクリプトはプレーヤーの死を防ぐことができる。
victim_player_index
犠牲者がプレーヤー以外からダメージを受けたときは-1
aggressor_monster_index
犠牲者がプレーヤーでもモンスターでもないものからダメージを受けたときは-1
damage_type
ダメージ型の一つ。例: _damage_fusion
damage_amount
最近プレーヤーから減らされた量。もし_damage_oxygen_drainの時は、damage_amountはプレーヤーの酸素に対して評価される。さもなければスーツエネルギーに対して評価される,
projectile
ダメージをもたらしたショット、ないときは-1
monster_killed(monster, aggressor_player, projectile)
モンスターが死んだとき
aggressor_player
殺したプレーヤーのインデックス、プレーヤー以外に殺されたときは-1
projectile
最後の一撃を加えたショット、ないときは-1
これはモンスターが致死のダメージを受けた後だが、モンスターリストから削除される前に呼ばれる。これをいつnew_monsterが作られたモンスターが死んだかを見つけるために使うことができるが、select_monsterによって発見されたモンスターはすでに致死ダメージを受けているかもしれないので、 select_monsterを使うときはそのような場合を検査する必要があるかもしれない。
item_created(item_index)
アイテムが作られてどこか地面に置かれてら(か浮いてる)とき
現在、初期配置はLuaが初期化される前に行われるため、初期配置に対してはトリガーしない。
projectile_detonated(type, owner, polygon, x, y, z)
ショットが命中し、効果ダメージをエリアに行った後