ロジックメモ

  • printコマンドはコメント代わりに使える。jump先にも指定できるのでぜひ使おう。
  • Controlコマンドの工場の稼働/非稼働はconfigureじゃなくてenabled?
    set (enabled) of (buildings) to (@dagger)
    →control enabled building @dagger 0 0 0
  • コピペ時jumpコマンドの数字がずれるのでゲーム内貼り付け後、もしくはメモ帳編集時に要修正。
  • GetLinkを使う際はプロセッサを建築後にリンク指定する順番にも注意すること。
    GetLinkを使うと細かい指定はできない(たぶん)ので、面倒でも直接指定した方が動作は確実。

ロジックサンプル

MindustryWikiのサンプル

スイッチを使用した工場の稼働/停止ロジック

Wikiはconfigureになってるけど、サンドボックスだとなぜかenabledに(@dagger)を突っ込むと動いた
上記にもあるけどGetLinkを使うので、プロセッサー建築後のリンク指定の順番に注意する
(具体的にはスイッチ→工場x8までの順番で指定する)
Reconstructor(上位加工)は指定しない(大元を止めればよいため)
工場自体を止めなくても、素材供給ラインの根元にソーターを仕込んでそこでオンオフでもいい気がする

 set seisan @dagger
 sensor flg switch1 @enabled
 jump 11 equal flg 1
 print "工場停止"
 printflush message1
 set i 1
 getlink Link i
 control enabled Link 0 0 0 0
 op add i i 1
 jump 6 lessThanEq i 8
 end
 print "工場稼働"
 printflush message1
 set y 1
 getlink Link y
 control enabled Link @dagger 0 0 0
 op add y y 1
 jump 14 lessThanEq y 8
 end

コアからコンテナに物資を運ぶ

冒頭3行のflag、ユニットタイプ、アイテムを設定すること

+  単体稼働・要フラグ手動設定
+  複数バインド・フラグ自動設定

トリウムリアクターの冷却水/温度表示

 draw clear 0 0 0 0 0 0
 sensor cf reactor1 @cryofluid
 op mul res cf 2.66
 draw color 0 255 255 255 0 0
 draw rect 0 0 40 res 0 0
 sensor he reactor1 @heat
 op mul heat 80 he
 draw color 255 00 00 255 0 0
 draw rect 40 0 80 heat 0 0
 drawflush display1

メモ: draw rectのx.yは0〜80/179、sensorの結果をそのまま投げるとまずいので補正してやる
heatの実数値は百分率

コピペ用

スイッチのON/OFFで工場の稼働停止

 set seisan @dagger
 sensor flg switch1 @enabled
 jump 11 equal flg 1
 print "工場停止"
 printflush message1
 control enabled factory1 0 0 0 0
 control enabled factory2 0 0 0 0
 control enabled factory3 0 0 0 0
 control enabled factory4 0 0 0 0
 end
 print "工場稼働"
 printflush message1
 control enabled factory1 seisan 0 0 0
 control enabled factory2 seisan 0 0 0
 control enabled factory3 seisan 0 0 0
 control enabled factory4 seisan 0 0 0
 end

上記のスイッチ状態をfoundation1の在庫で決める

 set value 1000
 sensor silicon foundation1 @silicon
 jump 6 lessThan silicon value
 sensor graphite foundation1 @graphite
 jump 6 lessThan graphite value
 end
 control enabled switch1 0 0 0 0

液体タンク残量グラフ

+  液体タンク残量グラフ

PowerDisplayロジックコード解析

+  PowerDisplay

組み込み変数

 ユニット
 @dagger : ダガー
 @mace : メイス
 @fortress : フォートレス
 @scepter : セプター
 @reign : レイン
 @nova : ノヴァ
 @pulsar : パルサー
 @quasar : クエーサー
 @vela : ヴェラ
 @corvus : コーバス
 @crawler : クローラー
 @atrax : アトラックス
 @spiroct : スパイロクト
 @arkyid : アーキッド
 @toxopid : トキソピッド
 @flare : フレア
 @horizon : ホライゾン
 @zenith : ゼニス
 @antumbra : アンタンブラ
 @eclipse : エクリプス
 @mono : モノ
 @poly : ポリ
 @mega : メガ
 @quad : クアッド
 @oct : オクト
 @risso : リッソ
 @minke : ミンク
 @bryde : ブライド
 @sei : セイ
 @omura : オムラ
 @alpha : アルファ
 @beta : ベータ
 @gamma : ガンマ
 アイテム
 @copper : 銅
 @lead : 鉛
 @coal : 石炭
 @graphite : 黒鉛
 @sand : 砂
 @silicon : シリコン
 @metaglass : メタガラス
 @scrap : スクラップ
 @titanium : チタニウム
 @plastanium : プラスタニウム
 @thorium : トリウム
 @phase-fabric : フェーズファイバー
 @surge-alloy : サージ合金
 @spore-pod : 胞子ポッド
 @pyratite : ピラタイト
 @blast-compound : 爆発性化合物
 液体
 @water : 水
 @slag : スラグ
 @oil : 石油
 @cryofluid : 冷却水
 センサー情報(意訳)
 ブロックやユニット内のオブジェクト数量を取得
 @totalItems : 保有アイテム数
 @itemCapacity : アイテム保有上限数
 @totalLiquids : 液体総数
 @liquidCapacity : 液体保有上限数
 @totalPower : 電力量(ブロック単体)
 @powerCapacity : 電力上限量(ブロック単体)
 @powerNetStored : 電力量(接続しているブロック間)
 @powerNetCapacity : 電力上限量(接続しているブロック間)
 @powerNetIn : 入力電力量
 @powerNetOut : 出力電力量
 @ammo : 保有弾薬数
 @ammoCapacity : 弾薬保有上限
 @payloadCount : 積載量
 ブロックやユニット内のオブジェクト情報を取得
 @firstItem : 最初(先頭?)のアイテム
 ブロックやユニットの情報を取得
 @health : 耐久値
 @maxHealth : 最大耐久値
 @heat : 温度
 @efficiency : 効率
 @rotation : 角度(設置した向き?)
 @team : チーム(対戦の場合?)
 @type : タイプ(?)
 @flag : フラグ(ブロックやユニットの固有IDとして使用)
 @name : 機体を操作中のプレイヤー名 初期値:null
 @config : 設定(?)
 @payloadType : 積載タイプ(ブロックかユニット?)
 位置や角度の情報を取得
 @x : 横座標
 @y : 縦座標
 @shootX : 砲撃目標 横座標
 @shootY : 砲撃目標 縦座標
 @mineX : 採掘位置 横座標
 @mineY : 採掘位置 縦座標
 ブロックやユニットの状態を取得(true または false)
 @shooting : 砲撃しているか
 @mining : 採掘しているか
 @controlled : ロジックのUnitControlによって行動中か 0=no 1=yes
 @commanded : プレイヤー操作機に率いられているか 0=no 1=yes
 計算結果を返す
 + (add) : 足し算
 - (sub) : 引き算
 * (mul) : 掛け算
 / (div) : 割り算(小数点まで算出)
 // (idiv) : 割り算(小数点切り捨て)
 % (mod) : 剰余(割り算の余りのみ出力)
 ^ (pow) : 累乗(3の5乗といった計算)
 Yesなら1、Noなら0を返す
 == (equal) : 等しい
 not (notEqual) : 等しくない
 and (land) : 両方の条件を満たす
 < (lessThan) : 少ない
 <= (lessThanEq) : 少ないまたは等しい
 > (greaterThan) : 多い
 >= (greaterThanEq) : 多いまたは等しい
 バイナリ系の演算結果を返す
 << (sh1) : 左シフト演算
 >> (shr) : 右シフト演算
 or : ビットOR(ビット演算)
 b-and (and) : ビットAND(ビット演算)
 xor : ビットXOR(ビット演算)
 flip (not) : ビットNOT(ビット演算)
 計算結果を返す
 max : 大きい方の値を返す
 min : 小さい方の値を返す
 atan2 : 座標上の2つの点の角度(Mathf.atan2)
 dst : 座標の射程?(Mathf.dst)
 noise : ノイズ?
 abs : 絶対値(-1や1なら1)
 log : 対数(底がe)
 log10 : 対数(底が10)
 sin : サイン
 cos : コサイン
 tan : タンジェント
 floor : 割り算(小数点切り捨て、idivと同じだが浮動小数点(float)型を経由するので結果がfloat型の精度を超えると誤差が出る)
 ceil : 小数点切り上げ(引数として与えた数以上の最小の整数を返す、0.001なら1)
 sqrt : 平方根
 rand : ランダム

トップ 凍結   複製名前変更   添付   最終更新のRSS
Last-modified: 2022-05-04 (水) 21:47:39 (20d)