【StoneStoryRPG】4.コマンド

ゲームに特定のアクションを指示するために使います。


持ち物

activate [発動箇所] (能力発動)

持ち物の能力を発動させます。画面左上の能力発動ボタンを押すのと同じ効果です。発動箇所には以下を指定できます。
potion / P ポーション
left / L 左の装備品
right /R 右の装備品

activate R

R(右)の持ち物の能力をactivateする

brew [材料] (ポーション醸造)

指定された材料でポーションを補充します。実行はloc.begin(ゲーム開始時検知)がtrueの時にのみ行えます。材料には以下を指定でき、2つを組み合わせる場合はその間に+をつけます。
stone 石
wood 木
tar タール
bronze 銅

?loc.begin
  brew bronze + tar

もしlocがbeginしたら?
 ┗ bronzeとtarでポーションをbrewする

equip [装備品] (持ち物装備)

持ち物を装備します。装備品を入力する際は、7種類まで特徴を指定できます。両手武器はこのコマンドで装備します。片手武器の場合、右に装備します。

equip vigor crossbow *8 +5

vigor属性でcrossbowで星8でエンチャント+5の持ち物を装備する

equipL [装備品] (左の持ち物装備)

equipR [装備品] (右の持ち物装備)

左・右に持ち物を装備します。

equipL poison d_sword
equipR vigor shield

Lにpoison属性のd_swordをequipする
Rにvigor属性のshieldをequipする

equip @[文字列]@ (持ち物装備/マイナス検索可)

マイナス検索(除外検索)を使う場合はこちらを使います。

var weaponName = "poison sword *10 -big"
equipR @weaponName@

変数weaponNameを宣言し、「poison sword *10 -big」を格納する。※
Rに[weaponName]に合致する持ち物をequipする

※ 「big」とつくものを除外しています。

loadout [番号] (編成から装備)

指定された番号に編成された持ち物を装備します。

?loc = caves
  loadout 1
?loc = deadwood
  loadout 2

もしlocがcavesなら?
 ┗ loadoutの1にする
そうでないなら?
 ┗ loadoutの2にする

文字列表示

>[文字列] (左上に文字列表示)

画面の左上に文字列を表示します。

>Hello World!

画面の左上に「Hello World!」と表示する

>[変数] (左上に変数表示)

変数の中身を表示したい場合は、変数を@と@で挟みます。それぞれを@で挟むことで複数の変数を表示させることもできます。@の中で計算することも可能です。

var foeInfo
foeInfo = foe
>敵の情報 = @foeInfo@

変数foeInfoを宣言する
foeinfoにfoeの基本情報を格納する
画面左上に「敵の情報 = [foeInfo]」と表示する

var loopCount = 0
?loc.loop
  loopCount++ 
>`0,1,@loopCount + 1@周目

変数loopCountを宣言し、0を格納する
もしlocがloopしたら?
 ┗ loopCountに+1した値を格納する
画面上の座標(0,1)に「[loopCount + 1]周目」と表示する

>([4文字] (表情変更)

顔が大きくなった状態での表情を指定できます。5文字目以降を設定しても反映されません。

>( OwO

/*
↓こんな感じになります

 .-.
( OwO
 `・´
 /|\
  |>

*/

>o[x座標],[y座標],<#カラーコード>,[文字列] (頭を原点として文字列を表示)

プレーヤーの頭の位置を座標(0,0)として、指定された座標に文字列を表示します。カラーコードを指定しない場合、デフォルトで白色になります。また、16進数のカラーコードの代わりに以下を利用することもできます。
#white 白
#cyan シアン
#yellow 黄
#green 緑
#blue 青
#red 赤
#magenta マゼンタ
#rainFF 虹 (「FF」の部分は16進数で明るさを指定しています)

>o-6,3,#red,Let's go!

頭の位置を原点として座標(-6,3)にredで「Let's go!」と表示する

補足:StoneStoryRPGでは、右に行くほどx座標は大きくなり、下に行くほどy座標は大きくなります。

図で表すとこんな感じ。矢印が正の方向。

         |
         |
         |
ーーーー(0,0)ーーー> X
         |
         |
         |
         V

         Y


>h[x座標],[y座標],<#カラーコード>,[文字列] (頭を原点として文字列を表示)

先程の「>o」で始まるものとほぼ同じものですが、「>o」よりも「≻h」のほうが下のレイヤーで表示されます。(細かく言うと、oはプレーヤーの上に重ねて表示され、hはプレーヤー自体を書き換えて表示されます。)
プレーヤー自身をを装飾するときに使います。

//プレーヤーに黄色のハットを被らせます。(大きい頭の時用)
>h-2,-3,#yellow,ascii
##_
#| |
_|_|_
asciiend

頭の位置を原点として座標(-2,-3)にyellowで以下のasciiアートを表示する
[アスキーアート]
(asciiアートend)

>`[x座標],[y座標],<#カラーコード>,[文字列] (画面左上を原点として文字列を表示)

画面左上を座標(0,0)として、指定された座標に文字列を表示します。

var posX = 10
var posY = 5
var color = rainE1
>`@posX@,@posY@,#@color@,Hello World!

変数posXを宣言し、10を格納する
変数posYを宣言し、5を格納する
変数colorを宣言し、rainE1を格納する
画面上の座標([posX],[posY])に[color]で「Hello World!」と表示する

>c[x座標],[y座標],<#カラーコード>,[文字列] (画面中央を原点として文字列を表示)

画面中央を座標(0,0)として、指定された座標に文字列を表示します。

>c0,0,Hello World!

画面中央を原点として座標(0,0)に(whiteで)「Hello World!」と表示する

>f[x座標],[y座標],<#カラーコード>,[文字列] (ターゲット中の敵の頭を原点として文字列を表示)

ターゲット中の敵の頭の位置を座標(0,0)として、指定された座標に文字列を表示します。

//ターゲット中の敵の頭に赤いクロスヘアを表示する
>f-2,0,#ff0000,ascii
##!
-#·#-
##¡
asciiend

ターゲット中の敵の頭の位置を原点として座標(-2,0)に色コード#ff0000で以下のasciiアートを表示する
[アスキーアート]
(asciiアートend)

スクリプトの基本要素

var [変数] (変数を宣言)

新たな変数を宣言するときに使います。変数内には数値、文字列、true/falseなどを格納できます。詳しくは後の章で解説します。

var message = Hello World!
>@message@

変数messageを宣言し、文字列「Hello World!」を格納する
「[message]」と表示する

※varは「variable(変数)」の略です。

func [関数] (関数を宣言)

新たな関数を宣言するときに使います。

func Print(message)
  >@message@

Print(Hello World!)

変数messageを引数とする関数Printを定義する。内容は以下
 ┗ 「[message]」と表示する

関数Printのmessageに「Hello World!」を代入して実行する

※funcは「function(関数)」の略です。

for [変数] = [数値]..[数値] (ループ変数)

次行からのインデントされた処理内に、指定された2つの整数の間の数値を、変数に順番に適用して処理します。この処理は、毎フレーム実行されます。

var a
a = 0
for i = 1..5
  a = a + i
>a = @a@

変数aを宣言する
aに0を格納する
ループ変数iを定義し、以下の処理を1~4までを順に格納して実行する。
 ┗ aに、a+iの結果を格納する (補足:1フレームごとにaは10増える)
「a = [a]」と表示する

import [スクリプト名] (外部スクリプトインポート)

スクリプトは、明瞭の石に直接書き込むだけでなく、外部ファイルにtxt形式で保存し、それを読み込むことでも使用できます。
例えば、(セーブファイルのフォルダ)/Stonescript/Fishing.txt (魚釣りミニゲームを導入するスクリプト)を読み込むには、以下を使います。

import Fishing

Fishingという名前のスクリプトをimportする

new [スクリプト名] (外部スクリプトインポート)

外部スクリプトを読み込みます。importと似ていますが、こちらはインポートしたスクリプトの中身は1度しか実行されません。

外部スクリプト読み込みに関する詳しいことは、後の章で解説します。

画面表示有効化・無効化

disable abilities (能力発動無効化)

enable abilities (能力発動再有効化)

全ての持ち物の能力発動を無効化・再有効化します。無効化中は左上のボタンも灰色に変化します。

disable banner (地名バナー無効化)

enable banner (地名バナー再有効化)

最初と最後に表示される、地名が表記されている横長のバナーを非表示・再表示します。

disable hud <該当箇所> (ユーザーインターフェース非表示)

enable hud <該当箇所> (ユーザーインターフェース再表示)

プレイ中の各種インターフェースを非表示/無効化・再表示/再有効化できます。コマンドに続けて以下を入力することで、個別に適用できます。
p プレーヤーのHPとデバフ
f ターゲット中の敵のHPとデバフ
a 能力発動ボタン
r 資源所持数
b バナー
u 持ち物ベルト(編成切替)

disable hud ru

資源所持数と持ち物ベルトを非表示にする

disable loadout input (持ち物編成の保存・呼び出し無効化)

enable loadout input (持ち物編成の保存・呼び出し再有効化)

キー入力での持ち物編成の保存・呼び出しを無効化・再有効化します。

disable loadout print (持ち物編成切り替え時のメッセージ非表示)

enable loadout print (持ち物編成切り替え時のメッセージ非表示)

持ち物編成を切り替えた時に左上に表示されるメッセージを非表示・再表示できます。

disable pause (一時停止無効化)

enable pause (一時停止再有効化)

画面上の一時停止ボタンを無効化・再有効化できます。キー入力でのショートカット(P)での一時停止には適用されません。

disable player (プレーヤ非表示)

enable player (プレーヤー再表示)

プレーヤーの姿を非表示・再表示できます。これは見た目だけの効果なので、敵からのターゲットにならない、とかにはなりません。

効果音

play [音の名前] <ピッチの値> (効果音再生)

指定された効果音を鳴らします。ピッチ値のデフォルトは100です。

?key = primary
  play buy
?key = up
  play buy 200

もし入力されたkeyがprimary(エンター)なら?
 ┗ 効果音buyを再生する
もし入力されたkeyがupなら?
 ┗ 効果音buyをピッチ値200で再生する

var pitch
?time%30 = 0
  pitch = rng/100 + 50
  >@pitch@
  play buy @pitch@

変数pitchを宣言する
もしtimeを30で割った余りが0なら?
 ┣pitchに[1~9999までの乱数]÷100+50の答えを格納する
 ┣「[pitch]」と表示する
 ┗ 効果音buyをピッチ値[pitch]で再生する

この記事が気に入ったらサポートをしてみませんか?