Wire Expression2

Last-modified: 2012-09-09 (日) 13:33:59

これらの文法及び文章は wiki.garrysmod.com より意訳及び直訳翻訳したものです。
日本語が変であれば編集をよろしくお願いします(´・ω・`)ノ
('A`)多分間違ってると思うけど確実に。

オワタにPropCoreが入ったようです。やったね!

 
 

Features[特徴]

Syntax[構文]

Wire Expression2に慣れるには、多少時間が掛かります。そして、
これらのWire Expression2は君の表現力と技術力を取得できます。
発想次第で様々なタスクが実行出来ます。
一部の記号はwikiの仕様上の理由や見やすくするために全角で書いてありますが、実際に書くときは半角で書かないといけません。
それ以前にゲーム内のエディタは半角以外入力できませんが・・・。

 
構文使用例説明
##This is a comment#の後に書いたものがコメントになる。注釈等を書く際に使える。
if () {}if (A) {B = C}()の中の条件(この場合はA)を満たしているとき、{}内の処理が実行される。
else {}else {A = B}ifの条件を満たさなかった場合に実行する処理。これが無くてもifは使えるが、これそのものを単体で使うことはできないので注意。
elseif (){}elseif (A) {B = C}elseにさらに条件をつけたもの。基本はifと同じだが、単体では使えない。
( ? : )D = (A ? B : C)ifを簡略化したもの。ifと同じように使える。 Note: [A ?: B] と [A ? A : B]は同じ
&if (A & B) {C = 1}条件Aと条件Bの両方を満たしている場合1を返す。
if(A|B) {C = 1}条件Aか条件Bのどちらかを満たしている場合1を返す。
if(!A) {C = 1}条件Aを満たしていなかった場合1を返す。
++A++Aに一を足す。よく使われるので覚えておくといいかも。
--A--Aから一を引く。上と同じくよく使われるので覚えておくといいかも。
 

Variables[変数]

例:Wire Exprresion2では、すべての変数が大文字で始まる必要があります。

    @inputs      外部からの入力に使う変数を宣言する場合に使う。
    @outputs    外部への出力に使う変数を宣言する場合に使う。
    @persist     内部での処理にのみ使う変数を宣言する場合に使う。

@trigger-directive[トリガディレクティブ]

トリガディレクティブは実行をすることができますトリガを選択入力から無効にするか有効にします。使用可能な値は、ですが、すべての/なし、リストの入力も

    @trigger all         # old behaviour, inputs always trigger executions
    @trigger none        # will never trigger from inputs, only timers, etc
    @trigger Time Button # will only trigger if Time or Button has changed

@model-directive[モデルディレクティブ]

モデルのパス(models/props_phx/construct/metal_plate1.mdl等)を入力することで、Exp2のチップを任意のモデルへ変えることができる。

    @model *model path*
 

Loops[ループ]

Wire Exprresion2は、ループの1つのタイプ:whileループを備えています。
Tこれらの手順は、1つの実行ではなく、
複数の執行の繰り返しタスクを実行するに頼るよりも何度も繰り返されることができます。

 
SyntaxExample説明
while () {}while (A) {B++}条件Aがtrueの間、{}内の処理を実行する。条件を満たさなかった場合、ループから抜ける。
for () {}for (I = A, B, C) {D++}Iが条件Bを満たしている間、{}の処理を実行する。AはIの初期値。CはIに変化を加えるためのものなので、省略可能。省略した場合、自動的に一を足す処理になる。
continueif (A) {continue}ループ内でのみ使用可能。条件の正否にかかわらず、ループを実行する。
breakif (A) {break}ループ内でのみ使用可能。条件の成否にかかわらず、ループを中断する。
 

Performance[パフォーマンス]

Garry's Modのモジュールでいくつかのパフォーマンステストを確認:

 

3.000.000/s arithmetic operations (+-*/) on numbers, 2000 ops, 200 executions in 0.13s

850.000/s arithmetic operations (+-*/) on vectors, 2000 ops, 100 executions in 0.23s

 

Wire Exprresion2は、多くのことができますが、クォータの遅れからサーバーを防ぐためにしています。
オプスダニの使用量は ティッククォータを超える場合、式はシャットダウンします。
すべての目盛りは、オプスはsofマイナスカウンタには、
その場合、カウンタ ハードクォータを超える追加されて使用し、式はシャットダウンします。
このような変数で一般的に使用される値を格納するようにコーディングを学ぶお勧めします。

 
ショートカット説明
Ctrl-Space検証(エラー箇所にカーソルを移動)
Ctrl-S保存
Ctrl-Q閉じる
Ctrl-Z元に戻す
Ctrl-Yやり直す
Ctrl-X切り取り
Ctrl-Cコピー
Ctrl-V貼り付け
Ctrl-A全て選択
Ctrl-I/Tabインデント
Ctrl-O/Shift-Tabアウトデント
Ctrl-K選択したブロックをコメントアウト
Ctrl-Shift-K選択したブロックをアンコメント
Ctrl-F検索
Ctrl-H置換
Ctrl-Upスクロール アップ
Ctrl-Downスクロール ダウン
Ctrl-Left左の行に移動
Ctrl-Right右の行に移動
Ctrl-Home最初の行に移動
Ctrl-End最後の行に移動
 

Console Commands[コンソールコマンド]

コマンド説明
wire_expression2_model <model>手動でモデルを変更します。
wire_expression2_reload独自の拡張機能をデバッグするためリロードすべてのE2の拡張子、便利です。 Keep in mind that client-side files will be taken from gmod's cache in multi-player mode.念頭に置いてクライアント側のファイルは、マルチプレイヤーモードのgmodのキャッシュから取得されることをしてください。
wire_expression2_debug 0/1便利な開発者のためかもしれない情報を示しています切り替えますデバッグモードでは、この場合、変更後に"wire_expression2_reload"を行うには何の効果を持っている必要があります。

Datatypes(データ型)

Wire Exprresion2は、いくつかのデータ型を使用して我々はこれらのデータ型の省略形を使用して合理的なサイズでwikiを保つために、ここではすべて省略表記を使用のリストとそれが表すデータ型です。

Shorthandデータ型
Type-Number.png
番号
Type-Vector2.png
2D / 3D / 4D Vector(ベクトル)
Type-Angle.png
角度
Type-String.png
文字列
Type-Entity.png
エンティティ
Type-Array.png
配列
Type-Table.png
テーブル
Type-RangerData.png
レンジャーデータ
Type-Bone.png
Type-Matrix2.png
2x2 / 3x3 / 4x4 Matrix(行列)
Type-WireLink.png
ワイヤーリンク
Type-ComplexNumber.png
複素数
Type-Quaternion.png
四元数

Number

説明

多くの番号の..

命令

FunctionReturnsDescription
N + N
Type-Number.png
加算(足し算)
N - N
Type-Number.png
減算(引き算)
N * N
Type-Number.png
乗算(かけ算)
N / N
Type-Number.png
除算(割り算)
N ^ N
Type-Number.png
べき乗(累乗)
N % N
Type-Number.png
剰余(余り)
mod(N, N)
Type-Number.png
上と同じ
sqrt(N)
Type-Number.png
Nの平方根を返す
cbrt(N)
Type-Number.png
Nの立方根を返す
root(N, N)
Type-Number.png
1番目の引数のN乗根を返す
e()
Type-Number.png
オイラーの定数を返す
exp(N)
Type-Number.png
e()^Nを返す (e()^Nと直接書いても結果は同じだけど、こっちのほうが処理が早い)
ln(N)
Type-Number.png
e()を底とするNの対数を返す
log2(N)
Type-Number.png
2を底とするNの対数を返す
log10(N)
Type-Number.png
10を底とするNの対数を返す
log(N,N)
Type-Number.png
[引数2]を底とする[引数1]の対数を返す
abs(N)
Type-Number.png
Nの絶対値を返す
ceil(N)
Type-Number.png
Nを切り上げた整数を返す
ceil(N,N)
Type-Number.png
[引数1]を小数点第[引数2]位で切り上げた数値を返す
floor(N)
Type-Number.png
Nを切り捨てた整数を返す
floor(N,N)
Type-Number.png
[引数1]を小数点第[引数2]位で切り捨てた数値を返す
round(N)
Type-Number.png
引数を四捨五入した整数を返す
round(N,N)
Type-Number.png
[引数1]を小数点第[引数2]位で四捨五入した数値を返す
int(N)
Type-Number.png
Nの整数部を返す (floor(N)と同じ)
frac(N)
Type-Number.png
Nの小数部を返す (N - floor(N)と同じ)
clamp(N,N,N)
Type-Number.png
[引数1]の値を[引数2]~[引数3]の範囲に丸め込む
If Arg1 <= Arg2 (min) returns Arg2; If Arg1 >= Arg3 (max) returns Arg3; otherwise returns Arg1.
inrange(N,N2,N3)
Type-Number.png
Nの値がN2~N3の間だったら1を返す。 それ以外は0。((N2 <= N) & (N <= N3)とだいたい同じ)
Returns 1 if N is in the interval [N2; N3], 0 otherwise. This means it is equivalent to ((N2 <= N) & (N <= N3))
sign(N)
Type-Number.png
Nの符号部(-1,0,1)を返す (sign(N) = N / abs(N)と同じ)
min(N,N)
Type-Number.png
Returns the lowest value Argument
min(N,N,N)
Type-Number.png
Returns the lowest value Argument
min(N,N,N,N)
Type-Number.png
Returns the lowest value Argument
max(N,N)
Type-Number.png
Returns the highest value Argument
max(N,N,N)
Type-Number.png
Returns the highest value Argument
max(N,N,N,N)
Type-Number.png
Returns the highest value Argument
random()
Type-Number.png
Returns a random floating-point number between 0 and 1 [0 <= x < 1 ]
random(N)
Type-Number.png
Returns a random floating-point number between 0 and the specified value [0 <= x < a ]
random(N,N)
Type-Number.png
Returns a random floating-point number between the specified interval [a <= x < b ]
randint(N)
Type-Number.png
Returns a random integer from 1 to the specified value [1 <= x <= a ]
randint(N,N)
Type-Number.png
Returns a random integer in the specified interval [a <= x <= b ]
pi()
Type-Number.png
Returns the constant PI
toRad(N)
Type-Number.png
Converts Degree angles to Radian angles
toDeg(N)
Type-Number.png
Converts Radian angles to Degree angles
sin(N)
Type-Number.png
Returns the sine of N degrees
cos(N)
Type-Number.png
Returns the cosine of N degrees
tan(N)
Type-Number.png
Returns the tangent of N degrees
cot(N)
Type-Number.png
Returns the cotangent of N degrees
sec(N)
Type-Number.png
Returns the secant of N degrees
csc(N)
Type-Number.png
Returns the cosecant of N degrees
asin(N)
Type-Number.png
Returns the inverse sine of the argument, in degrees
acos(N)
Type-Number.png
Returns the inverse cosine of the argument, in degrees
atan(N)
Type-Number.png
Returns the inverse tangent of the argument, in degrees
sinh(N)
Type-Number.png
Returns the hyperbolic sine of N
cosh(N)
Type-Number.png
Returns the hyperbolic cosine of N
tanh(N)
Type-Number.png
Returns the hyperbolic tangent of N
coth(N)
Type-Number.png
Returns the hyperbolic cotangent of N
sech(N)
Type-Number.png
Returns the hyperbolic secant of N
csch(N)
Type-Number.png
Returns the hyperbolic cosecant of N
sinr(N)
Type-Number.png
Returns the sine of N radians
cosr(N)
Type-Number.png
Returns the cosine of N radians
tanr(N)
Type-Number.png
Returns the tangent of N radians
cotr(N)
Type-Number.png
Returns the cotangent of N radians
secr(N)
Type-Number.png
Returns the secant of N radians
cscr(N)
Type-Number.png
Returns the cosecant of N radians
asinr(N)
Type-Number.png
Returns the inverse sine of the argument, in radians
acosr(N)
Type-Number.png
Returns the inverse cosine of the argument, in radians
atanr(N)
Type-Number.png
Returns the inverse tangent of the argument, in radians
atanr(N,N)
Type-Number.png
Returns the inverse tangent of the arguments (arg1 / arg2), in radians. This function accounts for positive/negative arguments, and arguments at or close to 0
A = B
Type-Number.png
代入 (Bの値をAにセット)
A++
Type-Number.png
1を加算 (Aに1を加える, "A = (A + 1)"と同じ)
A--
Type-Number.png
1を減算 (Aから1を引く, "A = (A - 1)"と同じ)
A += B
Type-Number.png
加算代入 (AにBを加える, "A = (A + B)"と同じ)
A -= B
Type-Number.png
減算代入 (AからBを引く, "A = (A - B)"と同じ)
A /= B
Type-Number.png
除算代入 (AをBで割る, "A = (A / B)"と同じ)
A %= B
Type-Number.png
Assignment using modulo
A ^= B
Type-Number.png
Assignment using exponentiation
A == B
Type-Number.png
等価 (AがBと等しければ1 それ以外は0を返す =との混同に注意)
A != B
Type-Number.png
不等価 (AがBと等しくなければ1 それ以外は0を返す)
A > B
Type-Number.png
Returns 1 if A is greater than B
A < B
Type-Number.png
Returns 1 if A is less than B
A >= B
Type-Number.png
Returns 1 if A is greater or equal to B
A <= B
Type-Number.png
Returns 1 if A is less than or equal to B

文字列(String)

説明

命令

エンティティ(Entity)

説明

命令

ベクトル(Vector)

説明

2次元ベクトルの命令

3次元ベクトルの命令

4次元ベクトルの命令

共通の命令

行列(Matrix)

説明

2x2行列の命令

3x3行列の命令

4x4行列の命令

共通の命令

角度(Angle)

説明

命令

テーブル(Table)

説明

命令

配列(Array)

説明

命令

骨(Bone)

説明

命令

ワイヤーリンク(Wirelink)

説明

命令

複素数(Complex)

説明

命令

クォータニオン(Quaternion)

説明

命令