コマンド/gi

Last-modified: 2024-01-02 (火) 23:24:10

What is This?

ダンジョンでギミックを作成するためのコマンドです。

How To Use

gi straight:対象のプレイヤーに対して直線攻撃を行う

構文/gi straight <開始地点> <終了地点> <ダメージ> <速さ> <particleシートのid>
説明開始地点から終了地点にパーティクルを飛ばして、ダメージを与える。

それぞれの引数は以下の通り指定可能。

引数名説明
<開始地点>
<終了地点>
・プレイヤーを指定する場合:@aや@pなどセレクターで指定する。
・座標を指定する場合:world:x,y,z形式で指定する。相対座標を指定可能。
<ダメージ>・固定ダメージを与える場合:ダメージを数値で指定する。
・mobspellを発動する場合:「spell:mobspellId」を設定する
・固定ダメージもmagicspellも実行したい場合:「spell:mobspellId,damage:ダメージ値」を設定する

 

gi executeExist:指定したEntityが存在する場合にコマンドを実行

構文/gi executeExist <セレクター(@は省略)> command
説明セレクターで指定したEntityが存在する場合のみコマンドを実行する。セレクターは@を省略する。
/gi executeExist a[r=20,m=a,x=100,y=20,z=100] say 1234
@a[r=20,m=a,x=100,y=20,z=100]に対応するプレイヤーが存在する場合のみ「say 1234」を実行する。

 

gi executeNotExist:指定したEntityが存在しない場合にコマンドを実行

構文/gi executeNotExist <セレクター(@は省略)> command
説明セレクターで指定したEntityが存在しない場合のみコマンドを実行する。セレクターは@を省略する。
/gi executeNotExist a[r=20,m=a,x=100,y=20,z=100] say 1234
@a[r=20,m=a,x=100,y=20,z=100]に対応するプレイヤーが存在しない場合のみ「say 1234」を実行する。

 

gi changeMobData:指定したEntityのステータスを変更する

構文/gi changeMobData <セレクター(@は省略)> <変更項目> <変更値>
説明指定したEntityのステータスを変更する。変更項目と変更値は下記参照。

変更項目と変更値は以下の通り。

変更項目名説明設定値
noDelayノーディレイの切り替えを行う。trueの場合ノーディレイとなる。falseの場合通常ディレイとなる。true or false
swordResistance剣耐性を変更する。0だと剣耐性なし、100だと剣を無効にする。マイナス値を設定すると剣のダメージを増やす数値
bowResistance弓耐性を変更する。0だと弓耐性なし、100だと弓を無効にする。マイナス値を設定すると弓のダメージを増やす数値
magicResistance魔法耐性を変更する。0だと魔法耐性なし、100だと魔法を無効にする。マイナス値を設定すると魔法のダメージを増やす数値
attackDamagemobのダメージを変更する。数値
maxDamage最大ダメージを変更する。数値
tpsモブの1秒間の攻撃頻度を設定する。5と設定すれば1秒間に5回攻撃する。デフォルトは1秒に一回。数値
attackRangeモブの攻撃範囲(腕の長さ)を設定する。数値

【例】

■testというaliasのmobの剣耐性を20にする
/gi changeMobData e[mob=test] swordResistance 20

 

gi executeExistIf:指定したEntityが指定数存在する場合にコマンドを実行

構文/gi executeExistIf <操作> 基準値 <セレクター(@は省略)> command
操作には以下を指定可能。
・over:基準値よりもEntity数が大きい場合にコマンドを実行
・under:基準値よりもEntity数が少ない場合にコマンドを実行
・equals:基準値とEntity数が同じ場合にコマンドを実行
・within:Entity数が基準値の範囲内の場合にコマンドを実行。基準値は「数値1~数値2」で範囲指定する。
説明セレクターで指定したEntityが指定数存在する場合のみコマンドを実行する。セレクターは@を省略する。
基準値はwithin以外は数値を指定し、withinの場合は「数値1~数値2」と範囲指定する。

【例】

■半径20マス以内にゾンビが5体以上の場合にコマンド「say 123」を実行
/gi executeExistIf over 5 e[type=Zombie,r=20] say 123
■半径20マス以内にゾンビが2体以下の場合にコマンド「say 123」を実行
/gi executeExistIf under 2 e[type=Zombie,r=20] say 123
■半径20マス以内にゾンビが5体の場合にコマンド「say 123」を実行
/gi executeExistIf equals 5 e[type=Zombie,r=20] say 123
■半径20マス以内にゾンビが2体~5体の場合にコマンド「say 123」を実行
/gi executeExistIf within 2~5 e[type=Zombie,r=20] say 123

また、コマンド内の$entitycountという文字はEntity数に置き換わります。
【例】

/gi executeExistIf over 5 e[type=Zombie,r=20] say ゾンビが$entitycount体います
ゾンビが20体いる場合 -> 「say ゾンビが20体います」が実行される。

gi canon:キャノン砲を召喚する。

構文/gi canon <召喚座標> <ダメージ> <種別(闇、火、氷、草)> [パラメータ] [パラメータ]....
種族には「闇」「火」「氷」「草」のいずれかを指定する。
パラメータはkey=valueの形式で指定する。keyとvalueの内容は下記参照。パラメータは複数指定可能。複数指定する場合はスペース区切りで指定する。
説明キャノン砲を召喚しプレイヤーを攻撃する。

■パラメータ一覧
パラメータを指定することでキャノン砲をカスタマイズすることができます。指定しなかった項目については「指定しなかった場合の設定値」の値が適用されます。
パラメータは「パラメータ名=値」の形式で指定します。

パラメータ名(key)指定値(value)指定しなかった場合の設定値
hpキャノン砲の体力。3を指定した場合は3回プレイヤーからの攻撃が当たると消える。整数を指定する3
fireTermキャノン砲が球を発射する間隔(秒)。数値で指定。1.5
speed玉の速度。1tickあたりに進む距離を指定する。数値で指定。0.6
targetRangeキャノン砲が攻撃対象とするプレイヤーの範囲。30と指定した場合、キャノン砲から30マス以内のプレイヤーに向けて攻撃をする。30
aliveTimeキャノン砲の生存時間(秒)。数値で指定。20

■例

/gi canon thelow:~,~8,~ 2 闇 speed=1 aliveTime=15 hp=100
>闇属性でスピードが1、生存時間が15秒、体力が15のキャノン砲を召喚

gi spawnArmorStand:アマスタを召喚する

構文/gi spawnArmorStand <召喚座標(w:x,y,z)> [パラメータ] [パラメータ]....
パラメータはkey valueの形式で指定する。keyとvalueの内容は下記参照。パラメータは複数指定可能。複数指定する場合はスペース区切りで指定する。
説明アマスタを召喚する。このアマスタはチャンクunload時に消えます。パラメータを指定しない場合、召喚したアマスタは透明で子供になります。

■パラメータ一覧
パラメータは「パラメータ名 値」または「パラメータ」の形式で指定します。

パラメータ名(key)説明指定値(value)指定しなかった場合の設定値
adult大人のアマスタを召喚する。指定しない場合は子供のアマスタを召喚する。なしなし
noclip壁を貫通する。指定しない場合は正常通りに壁を貫通しない。なしなし
tagアマスタに召喚するタグを指定する。タグ名なし
visibleアマスタを見ることができるようにする。指定しない場合は透明になる。なしなし
nogravity重力を無視するなしなし

■例

/gi spawnArmorStand dungeon:10,11,22 -noclip -tag test1234

gi meteo:隕石を召喚する。

構文/gi meteo <開始地点> <終了地点> <ダメージ> <スピード> <種別(闇、火、氷、草)> <ダメージ範囲>
種族には「闇」「火」「氷」「草」のいずれかを指定する。
ダメージ範囲は隕石が爆発した際周囲何マスのプレイヤーにダメージを与えるかを指定する。
説明隕石を召喚する。隕石は終了地点につく前にプレイヤーと衝突しても爆発しません。

コマンドの最後に「-noKnockback」を付けると命中した際にノックバックしなくなります。

gi meteoSmall:小さな隕石を召喚する。

構文/gi meteoSmall <開始地点> <終了地点> <ダメージ> <スピード> <種別(闇、火、氷、草)> <ダメージ範囲>
種族には「闇」「火」「氷」「草」のいずれかを指定する。
ダメージ範囲は隕石が爆発した際周囲何マスのプレイヤーにダメージを与えるかを指定する。
説明隕石を召喚する。隕石は終了地点につく前にプレイヤーと衝突しても爆発しません。処理軽減のため、多数の隕石を落としたい場合はこのコマンドを使ってください。

コマンドの最後に「-noKnockback」を付けると命中した際にノックバックしなくなります。

gi changeEntity:ボスのEntityを別のEntityに変更する。

構文/gi changeEntity <bossのセレクター、@は除外> <summonコマンド>
説明BossのEntityを別のものに変更する。例えばaliasがtestbossのBossがゾンビだった場合、/gi changeEntity e[r=100,boss=testboss] summon Skeletonとすることでスケルトンに変更することができる。
HPなどは引き継がれるがAIなどは引き継がれないため。細かいバグがあるかも

gi rotation:Entityの方向を変える

注意:<Entity1セレクター>が「Player」、「アーマースタンド」、「NO AIのEntity」以外の場合は、正しく動かないことがあります。

direction:特定のEntityがいる方向に変更

構文/gi rotation <Entity1セレクター> direction <Entity2セレクター>
説明<Entity1セレクター>の方向を、<Entity2セレクター>のがいる方向に変更する。

direction:特定のEntityがいる方向と逆の方向に変更

構文/gi rotation <Entity1セレクター> reverseDirection <Entity2セレクター>
説明<Entity1セレクター>の方向を、<Entity2セレクター>のがいる方向と逆の方向に変更する。

face:特定のEntityが向いている方向に変更

構文/gi rotation <Entity1セレクター> face <Entity2セレクター>
説明<Entity1セレクター>の方向を、<Entity2セレクター>が向いている方向に変更する。
注意<Entity2セレクター>のEntityがPlayer以外の場合、描画されている方向通りにならないことがあります。Player以外の方向はクライアントで補足されていることが多く、サーバー側では最新の方向を保持していないことがあるからです。

reverseFace:特定のEntityが向いている方向と逆の方向に変更

構文/gi rotation <Entity1セレクター> reverseFace <Entity2セレクター>
説明<Entity1セレクター>の方向を、<Entity2セレクター>が向いている方向と逆の方向に変更する。
注意<Entity2セレクター>のEntityがPlayer以外の場合、描画されている方向通りにならないことがあります。Player以外の方向はクライアントで補足されていることが多く、サーバー側では最新の方向を保持していないことがあるからです。

gi changestatus :プレイヤーのステータスを変更する。

構文/gi changestatus <プレイヤー> <ステータス> <値> <時間(秒)>
<ステータス>は以下を参照。
説明プレイヤーのステータスを指定秒数変更する。ワールド移動をした場合は効果が消える。

■ステータス一覧

項目名効果
maxFixHp最大HPを指定した設定値に固定する。
maxFixMp最大MPを指定した設定値に固定する。
swordDamageプレイヤーの剣によるダメージを指定割合だけ増加させる。例えば0.1を設定した場合は10%増加する。-0.25を設定した場合は25%減少する。
bowDamageプレイヤーの弓によるダメージを指定割合だけ増加させる。例えば0.1を設定した場合は10%増加する。-0.25を設定した場合は25%減少する。
magicDamageプレイヤーの魔法によるダメージを指定割合だけ増加させる。例えば0.1を設定した場合は10%増加する。-0.25を設定した場合は25%減少する。
fireRegistance火のダメージ軽減率を設定する。例えば0.1を指定した場合は、火のダメージが10%になる。1.2を指定した場合は、火のダメージが20%増加する。マイナスを指定すると回復します。マグマ内では火のダメージとマグマのダメージを両方受けます。
lavaRegistanceマグマのダメージ軽減率を設定する。例えば0.1を指定した場合は、マグマのダメージが10%になる。1.2を指定した場合は、マグマのダメージが20%増加する。マイナスを指定すると回復します
allDamageRegistance全てのダメージ軽減率を設定する。例えば0.1を指定した場合は、全てのダメージが10%になる。1.2を指定した場合は、全てのダメージが20%増加する。マイナスを指定すると回復します
maxHp最大HPを設定値だけ増加させる。20を指定した場合は20増加する。-10を指定した場合は10減少する。プレイヤーの最大HPが0.5を下回ることはない。
maxMp最大MPを設定値だけ増加させる。20を指定した場合は20増加する。-10を指定した場合は10減少する。

■コマンドで付与したステータス変更を消したい場合

/gi changestatus <プレイヤー> <ステータス> 0 0

で削除可能。<ステータス>は上記の表を参照。

■効果を重複させたい場合

構文/gi changestatus <プレイヤー> <ステータス> <値> <時間(秒)> <id>
説明idが異なる場合は効果が重複する。<id>にrandomと記載することでランダムなIDを生成する。(生成後のIDは参照不可)

例1:以下のコマンドを実行
/gi changestatus @p maxHP 6 10
/gi changestatus @p maxHP 10 10 testid
結果: 最大体力が16増加

例2:以下のコマンドを実行
/gi changestatus @p maxHP 10 10 random
/gi changestatus @p maxHP 2 10 random
結果: 最大体力が12増加

例2:以下のコマンドを実行
/gi changestatus @p maxHP 12 10 random
/gi changestatus @p maxHP 2 10 random
結果: 最大体力が2増加

gi sequenceLoopExec:指定した回数、指定したコマンドを実行する。

構文/gi sequenceLoopExec <second> <回数> command1 ? command2 ? ...
説明指定した回数指定したコマンドを実行する。重複なしで順番に実行した後、回数に達していない場合は2週目、3週目を実行する。
/gi sequenceLoopExec 1 5 say 1 ? say 2 ? say 3 ?say 4
say 1 -> say 2 -> say 3 -> say 4 -> say 1 と実行される。
構文/gi sequenceLoopExec <second> <回数> -random command1 ? command2 ? ...
説明指定した回数指定したコマンドを実行する。重複なしでランダムな順番に実行した後、回数に達していない場合は2週目、3週目を実行する。
/gi sequenceLoopExec 1 5 -random say 1 ? say 2 ? say 3 ?say 4
say 3 -> say 2 -> say 4 -> say 1 -> say 2 と実行される。
※say 3 -> say 2 -> say 4 -> say 1はランダムな順番。
構文/gi sequenceLoopExec stop <座標(w:x,y,z)>
説明指定した座標で実行したコマンドをストップする。

gi dungeonDamage:addDungeonDamageの効果を変更する

構文/gi dungeonDamage <add or set> <セレクター> <武器の種類> <設定値>
説明第2引数にaddを指定した場合:セレクターで指定したEntityに対して、addDungeonDamageの効果に対して攻撃力の増加値を加算する。<武器の種類> に指定する値は下記参照。
第2引数にsetを指定した場合:セレクターで指定したEntityに対して、addDungeonDamageの効果に対して攻撃力の増加値を設定値に固定する。
<武器の種類> に指定する値は下記参照。
例1/gi dungeonDamage add @e[r=20] s 0.2
半径20マス以内にaddDungeonDamageNameが設定されているモブに対して、同一DungeonName特攻が指定されている武器に対する剣のダメージを20%増加させる。
例2/gi dungeonDamage add @e[r=20] a 0.2
半径20マス以内にaddDungeonDamageNameが設定されているモブに対して、同一DungeonName特攻が指定されている武器に対する全ての武器のダメージの増加率を20%に固定する。

同一モブに複数指定した場合、最後に実行したものが有効になります。

構文/gi dungeonDamage clear <セレクター>
説明gi dungeonDamageコマンドでの設定を削除する。
例1/gi dungeonDamage clear @e[r=20] s 0.2

武器の種類は以下を指定可能

  • s:剣
  • m:魔法
  • b:弓
  • a:全ての武器種


詳細な解説
このコマンドはaddDungeonDamageの効果に干渉するためのコマンドです。
モブに「addDungeonDamageName:テスト」が付与され、武器に「addDungeonDamage:テスト@0.2」が指定されている場合、ダメージは常に+20%となります。
上記の場合に

  • /gi dungeonDamage add @e[r=20] 0.1を実行すると、ダメージは+30%
  • /gi dungeonDamage set @e[r=20] -0.15を実行すると、ダメージは-15%
    となります。

一方で、モブに「addDungeonDamageName」が設定されておらず、武器に「addDungeonDamage:テスト@0.2」が指定されている場合、ダメージは常に+0%となります。
上記の場合に、

  • /gi dungeonDamage add @e[r=20] 0.1を実行すると、ダメージは+0%
  • /gi dungeonDamage set @e[r=20] -0.15を実行すると、ダメージは+0%
    となります。

つまり、このコマンドはaddDungeonDamageのダメージが存在する場合のみに有効となるコマンドです。

gi shotMagicBlock:特定のEntityがプレイヤーに当たり判定のあるブロックを飛ばす。

構文/gi shotMagicBlock <Entity> <blockid:data> <vector> <damage> [option...]
説明<Entity>がプレイヤーに当たり判定のあるブロックを発射する。
引数<Entity>:発射元のEntity。セレクター(@は不要)で指定する。セレクターに合致したすべてのEntityが発射する。
<blockid:data>:発射するブロックのIDとDataをそれぞれ数値で指定する。5:2や1など
<vector>:ブロックの方向を指定する。コマンド/entityEffectの「方向」参照。
<damage>:命中時のダメージを指定する。
option:ブロック発射に伴うオプション。下記参照

optionについて
optionは「-オプション名=値」または、「-オプション名」で指定する。必ずオプション名の前に「-」をつけること。

オプション名未設定の場合の値効果
aliveTime数値で指定1.5発射したブロックが命中しなかった場合に何秒後に消えるかを秒数で指定する。
hitRange数値で指定0.4当たり判定の大きさを指定する。
noSlowなしなしこのオプションを指定した場合、発射されたブロックは減速しない。
power数値で指定1ブロックの速さを指定する。



使用例

/gi shotMagicBlock e[r=20,alias=mob1] 5:1 vec:1,10,20 20 -noSlow -aliveTime=3
Entity(e[r=20,alias=mob1])全員が、原木ブロック(dataが1)を(1,10,20)の方向へ、減速なしで飛ばす。命中した場合プレイヤーに20ダメージ与え、床にもプレイヤーにも命中しなかった場合は3秒後に消滅する。

その他

/gi sequence_redstone <second> x y z & x y z & ... : 指定した場所にレッドストーンを一瞬出す。

/gi changestatus <プレイヤー> <status> <値> <時間(秒)> : プレイヤーのステータスを変更する。

/gi underblock <player> damage blockId:data [ジャンプで回避可能ならtrue。回避不可ならfalse] : 指定したブロックの上にいるプレイヤーにダメージを与える。

/gi sequence_aec <second> <particleシートのid> x y z & x y z & ... : 指定した場所にパーティクルを出す。

/gi notuseskill <プレイヤー> スキルID 時間(秒) : 指定したスキルを使用不可にする。スキルIDにclearを指定するとすべてのスキルが使用可能になる。

/gi sequence_setmultiblock 移動ブロック開始<world:x,y,z> 移動ブロック終了<world:x,y,z> id x y z & x y z & ... : 指定した場所にあるブロックを、指定した場所に移動する。

/gi sequence_daec <second> <particleシートのid> <ダメージ> <ダメージの範囲> x y z & x y z & ... : 指定した場所にダメージ判定とパーティクルを出す。

/gi equalblock world:x,y,z world:x,y,z 同じ場合のコマンド & 異なる場合のコマンド : 2地点のブロックが同じがどうか調べコマンドを実行

/gi target <プレイヤー> <LOW|NORMAL|HIGHT> : 指定したプレイヤーのターゲット優先度を変更する。

本コマンドで共通の特殊な書き方について

ダメージ

基本的にdamage部分には以下を指定できます。

  • 固定ダメージを与える場合:ダメージを数値で指定する。
  • mobspellを発動する場合:「spell:mobspellId」を設定する
  • 固定ダメージもmagicspellも実行したい場合:「spell:mobspellId,damage:ダメージ値」を設定する

座標

座標は以下の書き方をすることができます。

  • world:x,y,z:固定座標を指定する。相対座標可能
  • プレイヤー名:対象のプレイヤーがいる座標を指定する。
  • randomCircle[world:x,y,z&<半径>]:指定した座標(world:x,y,z)から半径以内の円の中から、ランダムな座標を指定する。相対座標可能。
  • randomArea[world:x1,y1,z1&world:x2,y2,z2]:指定した座標の範囲内(world:x1,y1,z1 ~ world:x2,y2,z2)のランダムな座標を指定する。相対座標可能。
  • e[セレクター]:セレクターに合致したEntityの座標を指定する。複数合致しても1つだけ実行する。

■例

dungeon:10,2,4から半径10マス以内のランダムな座標に隕石を落としたい場合は以下のようにする。
/gi meteo dungeon:10,2,4 randomCircle[dungeon:10,2,4&10] 20 0.2 氷 3
(dungeon:10,2,5) ~ (dungeon:10,2,15)のランダムな座標から、プレイヤーに対してエフェクトを飛ばしたい場合は以下のようにする。
/gi straight randomArea[dungeon:10,2,5~dungeon:10,2,15] @p[r=30] 2 1 particle1