【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する
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]」と表示する
func [関数] (関数を宣言)
新たな関数を宣言するときに使います。
func Print(message)
>@message@
Print(Hello World!)
変数messageを引数とする関数Printを定義する。内容は以下
┗ 「[message]」と表示する
関数Printのmessageに「Hello World!」を代入して実行する
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]で再生する