English | 日本語
· ·:·: Stonescript :·:· ·
v4.11.2 - 2025/02/23
入門 | マニュアル | ベータ ·:· リリースノート | よくある質問
_ ______________________ _ ,:´ \____ __.---,. `. :.! __________\_______\__`--__ \ :' \ \--------------------------.\ \ ':' · \ ·:. :'· :.:· \\ \ ':' \ \ :·' :·:. \\ \ ':' · \ .: ·:: '.:. ':'··:. \\ \ ':' \ \ · :.. \\ \ ':' · \ :·: ..': :·:. ·:: '. \\ \ ':' \ \__________________________\\ \ ':' ` . \ . ) ':' . . . \ . . . . ' . . . . \ . .; `·.;,;,;,;,;,;,;,;,;,;,;,;,;,;,:'
StonescriptはStone Story RPG内で使用されるシンプルながら強力なプログラミングであり、明瞭の石で装備の選択を自動化するために利用出来ます。 Stonescriptを使うのは初めてですか?チュートリアルから始めてみるといいでしょう。 スクリプトを使いこなせない?共同でスクリプトを作りたい?ぜひ私たちのDiscordコミュニティに参加してください! このマニュアルは、利用可能なすべてのStonescriptの機能を包括的に解説しています。ほとんどの使用例はそのまま動作するので、明瞭の石に直接コピー&ペーストして動作を学ぶことができます。 ·:·:· 目次 ·:·:· 1. 使用例 2. 基本 3. ゲームの状態 4. コマンド 5. 検索フィルター 6. 比較 7. 変数 8. 数学演算 9. 関数 10. ネイティブ関数 11. 外部スクリプトのインポート 12. アスキーアート 13. ループ 14. 配列 15. 入力のカスタマイズ 16. ユーザーインターフェース 17. ヒント 18. デフォルトスクリプト おまけ A - アイテム能力のクールダウンID おまけ B - 効果音 おまけ C - 楽曲 おまけ D - 環境音 おまけ E - インポート可能なすべてのスクリプト
·:·:· 使用例 ·:·:· // ロッキー高原ではシャベルを装備。 // 恐怖の洞窟ではロードアウト1を装備し、 // ボス戦では、代わりに鉤縄と // 7つ星のウォーハンマーを装備。 // 呪われた会館では魔法の杖を2本装備し、 // 左手には毒属性、右手には活力属性を指定。 // ただし、難易度が5つ星を超える場合は、 // エンチャントされた+13の活力の杖を装備。 // HPが10未満になった時、ポーションを使用。 ?loc=rocky equip shovel ?loc=cave loadout 1 ?foe=bolesh equip grap equip hammer *7 D ?loc=halls equipL poison wand equipR vigor wand ?loc.stars > 5 equip vigor staff +13 ?hp < 10 activate potion トップへ戻る
·:·:· 基本 ·:·:·
? 論理条件を評価する。条件が真(true)の場合、インデントされた行を実行する(if文)。
使用例:
?loc = caves
loadout 1
: 代替論理分岐(else文)。'?'の条件が偽(false)の場合に実行する。
使用例:
?loc = caves
loadout 1
:
loadout 2
:? 代替論理分岐(else-if)。条件を追加することができる。
使用例:
?loc = caves
loadout 1
:?loc = deadwood
loadout 2
:
loadout 3
// コメント。'//'の右側に記載されたテキストはスクリプト実行時に無視される。
使用例:
?loc = caves
loadout 1
//上記のスクリプトは、恐怖の洞窟でロードアウト1を装備するという意味。
/* */ ブロックコメント。この記号に囲われたテキストはスクリプト実行時に無視される。
使用例:
/*
?loc = caves
loadout 1
*/
このスクリプトは、すべてがブロックコメント内にあるため何もしない。
^ 1つ前の行と連続する。
使用例:
?loc=caves |
^loc = mine
equip repeating

//上記のスクリプトは以下のスクリプトと同じ意味である。
?loc=caves|loc=mine
equip repeating
トップへ戻る
·:·:· ゲームの状態 ·:·:· 以下の質問は、プレイヤーの前で何が起こっているのか、何が目の前にあるかを教えてくれます。
?loc 現在、プレイヤーが存在しているエリア。
使用例:
?loc = caves
loadout 1
?loc.id 現在のエリアの固有の識別子。
使用例:
var id
id = loc.id
>探検エリア @id@
?loc.gp 現在のループで使用されている総ギアパワー。
使用例:
>`0,1,1ループのGP = @loc.gp@
?loc.name ローカライズされた現在のエリア。
使用例:
>探検エリア @loc.name@
?loc.stars 現在のエリアの難易度。
使用例:
?loc = caves
?loc.stars=4
loadout 1
?loc.stars=5
loadout 2
?loc.begin エリアの最初のフレーム(time = 0)でのみ真になり、ゲームシミュレーションが開始する前を示す。ウロボロスループ以降は真にならない。変数のリセットに便利。
使用例:
var i
?loc.begin
i = 0
?loc = caves
i = -100
?loc.loop ウロボロスループ後の最初のフレームでのみ真になる。
使用例:
var loopCount = 0
?loc.loop
loopCount++
?loc.isQuest 現在のエリアが伝説のクエストやカスタムクエストといった特殊なエリアの場合、真になる。それ以外の場合は偽になる。
使用例:
?loc.isQuest
>`0,1,特殊なクエストエリアにいます
loc.averageTime 現在のエリアの平均クリアタイム。エリアの平均タイムは加重方式で計算され、最新のクリアタイムほど影響が強く、古くなる度に影響が弱くなる。
使用例:
>`0,2,平均タイム =
^ @loc.averageTime@フレーム
loc.bestTime 現在のエリアの最短クリアタイム(自己ベスト、ハイスコア)。
使用例:
>`0,1,ベストタイム =
^ @loc.bestTime@フレーム
?encounter.isElite 現在交戦中の敵がエリートかどうかを示す。
使用例:
>`0,1,エリート = @encounter.isElite@
?encounter.eliteMod 現在交戦中の敵に特殊効果がある場合、その効果を示す。
使用例:
>`0,2,特殊効果 = @encounter.eliteMod@
?foe 現在プレイヤーがターゲットにしている敵。
使用例:
?foe = boo
equip vigor staff
?foe.id プレイヤーがターゲットにしている敵の固有ID(またはタイプ)。
?foe.name プレイヤーがターゲットにしている敵のローカライズされた名前。
?foe.damage プレイヤーがターゲットにしている敵の攻撃1回あたりのダメージ。
使用例:
>`0,1,敵のダメージ = @foe.damage@
?foe.distance プレイヤーとターゲットにしている敵との距離。
?foe.z ターゲットにしている敵のZ座標。
?foe.count プレイヤーから46ユニット以内にいる敵の数。
?foe.GetCount(int) 指定されたユニット数以内にいる敵の数。
?foe.hp プレイヤーがターゲットにしている敵の現在のHP。
?foe.maxhp プレイヤーがターゲットにしている敵の最大HP。
?foe.armor プレイヤーがターゲットにしている敵の現在のアーマー値。
?foe.maxarmor プレイヤーがターゲットにしている敵の最大アーマー値。
?foe.buffs.count ターゲットにしている敵にかかっているバフ(プラス効果)の数。
?foe.buffs.string ターゲットにしている敵のバフに関する詳細な情報。
使用例:
?foe.buffs.count > 0
>`0,3,敵のバフ = @foe.buffs.string@
?foe.buffs.GetCount(str) ターゲットにしている敵の特定のバフの数。
?foe.buffs.GetTime(str) ターゲットにしている敵の特定のバフの持続時間。
?buffs.oldest プレイヤーにかかっている最も古いバフのID。
使用例:
>`0,1,最古バフ: @buffs.oldest@
?foe.debuffs.count ターゲットにしている敵にかかっているデバフ(マイナス効果)の数。
?foe.debuffs.string ターゲットにしている敵のデバフに関する詳細な情報。
使用例:
?foe.debuffs.count > 0
>`0,4,敵のデバフ = @foe.debuffs.string@
?foe.debuffs.GetCount(str) ターゲットにしている敵の特定のデバフの数。
使用例:
>`0,1,氷デバフの数 =
^ @foe.debuffs.GetCount("debuff_chill")@
?foe.debuffs.GetTime(str) ターゲットにしている敵の特定のデバフの持続時間。
使用例:
>`0,2,氷デバフの持続時間 =
^ @foe.debuffs.GetTime("debuff_chill")@
?debuffs.oldest プレイヤーにかかっている最も古いデバフのID。
使用例:
>`0,1,最古デバフ: @debuffs.oldest@
?foe.state ターゲットにしている敵の現在の状態を表す数値。
使用例:
?foe.state = 0
>`0,0,敵は寝ています
?foe.time ターゲットにしている敵が現在の状態で経過したフレーム数。
使用例:
>`0,0,敵 = @foe.name@:@foe.state@,@foe.time@
?foe.level ターゲットにしている敵のレベル。
使用例:
>`0,0,敵 = @foe.name@のレベル @foe.level@
?harvest 木や岩など、近くの収穫可能なオブジェクト。
使用例:
?harvest=Boulder
equip shovel
?harvest.distance プレイヤーと最も近い収穫可能なオブジェクトとの距離。
使用例:
?loc=Rocky & harvest.distance < 7
equip shovel
?harvest.z 最も近い収穫可能なオブジェクトのZ座標。
使用例:
?loc=Rocky & harvest.z > 5
equip shovel
?input.x 入力デバイス(マウス/タッチ)のアスキーグリッド上のX座標。
?input.y 入力デバイス(マウス/タッチ)のアスキーグリッド上のY座標。
使用例:
> (@input.x@, @input.y@)
?item.left 左手に装備されているアイテム。
使用例:
>`0,1,左装備:@item.left@
>`0,2,右装備:@item.right@
?item.right 右手に装備されているアイテム。
使用例:
?item.right = quarterstaff
activate R
?item.left.gp
?item.right.gp
左または右に装備されているアイテムのギアパワー。
使用例:
>`0,1,左装備のGP:@item.left.gp@
>`0,2,右装備のGP:@item.right.gp@
?item.left.id
?item.right.id
左または右に装備されているアイテムのID。
使用例:
>`0,1,Left ID:@item.left.id@
>`0,2,Right ID:@item.right.id@
?item.left.state
?item.left.time
?item.right.state
?item.right.time
装備されている武器の現在の状態と、その状態の経過フレーム数。
使用例:
>`0,1,@item.left.state@:@item.left.time@
>`0,2,@item.right.state@:@item.right.time@
?item.potion 現在調合されているポーション。大釜の自動補充が有効になっている場合は'auto'が含まれる。
使用例:
?item.potion ! empty & item.potion = auto
activate potion
?pickup 現在プレイヤーがターゲットにしている素材。
使用例:
?pickup
equip star stone
:
loadout 1
?pickup.distance プレイヤーとターゲットにしている素材との距離。
使用例:
?pickup.distance < 5
equipL star stone
?pickup.z ターゲットにしている素材のZ座標。
使用例:
?pickup.z > 7
equipL star stone
?armor プレイヤーの現在のアーマー値(小数点以下は切り捨て)。
例:アーマーが[2.4]の場合、?armorは2を返す。
?armor.f プレイヤーの現在のアーマー値の小数部分。
例:アーマーが[2.4]の場合、?armor.fは4を返す。
?buffs.count プレイヤーにかかっているバフ(プラス効果)の数。
?buffs.string プレイヤーのバフに関する詳細な情報。
使用例:
?buffs.count > 0
>`0,1,プレイヤーバフ = @buffs.string@
?buffs.GetCount(str) プレイヤーの特定のバフの数。
?buffs.GetTime(str) プレイヤーの特定のバフの持続時間。
?debuffs.count プレイヤーにかかっているデバフ(マイナス効果)の数。
?debuffs.string プレイヤーのデバフに関する詳細な情報。
使用例:
?debuffs.count > 0
>`0,2,プレイヤーデバフ = @debuffs.string@
?debuffs.GetCount(str) プレイヤーの特定のデバフの数。
?debuffs.GetTime(str) プレイヤーの特定のデバフの持続時間。
?hp プレイヤーの現在のHP。
?maxhp プレイヤーの最大HP。
?maxarmor プレイヤーの最大アーマー(端数切り捨て)。
?pos.x プレイヤーの現在のX座標。
?pos.y プレイヤーの現在のY座標。
?pos.z プレイヤーの現在のZ座標。
?ai.enabled AIが有効であれば真、無効であれば偽になる(イベントムービー中など)。
?ai.paused AIが一時的に停止していれば真になる(宝箱のドロップ待機中など)。
?ai.idle プレイヤーが待機状態であれば真になる(攻撃の完了待ちなど)。
?ai.walking プレイヤーが移動中であれば真になる。
?bighead プレイヤーがビッグヘッド(月時計の石)を有効にしていれば真になる。
?face プレイヤーの現在の表情。
使用例:
?face = "^^"
>ハッピー
?key カスタムゲーム入力の状態。
以下は現在の入力状態を出力する:
>@key@
?res.stone
?res.wood
?res.tar
?res.ki
?res.bronze
?res.crystals
プレイヤーのインベントリ内にある現在の素材量。
使用例1:
?loc = Deadwood
>木の枝 = @res.wood@

使用例2:
>`0,1,#magenta, ♦ @res.crystals@
?player.direction プレイヤーが向いている方向を示す。の場合は1を、の場合は-1を返す。
使用例:
?player.direction = 1
>`0,0,右に歩いています
:
>`0,0,左に歩いています
player.framesPerMove プレイヤーが一マス先に移動するのにかかるフレーム数。
>`0,1,Player Movement: @player.framesPerMove@
player.name プレイヤーが決めた名前。
以下はプレイヤーの名前を頭上に表示する例です:
var name
var x
name = player.name
x = string.Size(name) / -2
>o@x@,-2,@name@
player.GetNextLegendName() プレイヤーがまだクリアしていない、次にアンロックされる伝説のクエストの名前。
?rng 0から9999の範囲でランダムな整数を返す。
使用例1:
?rng < 5000
>表!
:
>裏!

使用例2:5から24の範囲でランダムな整数を生成:
var min = 5
var max = 24
var n = min + rng % (max - min + 1)
?rngf 0から1のランダムな浮動小数点数を返す。
使用例1:
>ランダム小数 = @rngf@

使用例2:5.0から24.0の範囲でランダムな小数を生成:
var min = 5.0
var max = 24.0
var n = min + (max - min) * rngf
?screen.i ゲーム内画面の位置をインデックスとして表す。プレイヤーが右端に到達して画面がスライドするたびに増加する。
使用例:
>`0,0,画面のインデックス = @screen.i@
?screen.x ゲーム内画面のX座標。
使用例:
>`0,0,画面のX座標 = @screen.x@
?screen.w 画面のアスキーグリッドの幅。
使用例:
var sw = screen.w
>画面の横幅 = @sw@
?screen.h 画面のアスキーグリッドの高さ。
使用例:
var sh = screen.h
>画面の高さ = @sh@
?summon.count 現在ゲーム内にいる召喚された仲間の数。
使用例:
?summon.count = 0 &
^ item.CanActivate()
equipL talisman
activate L
summon.GetId(index = 0) 指定されたインデックスの召喚された仲間のIDを返す。インデックスパラメータは省略可能で、デフォルトは0(最初の召喚)。指定したインデックスに仲間がいない場合はnullを返す。
使用例:
?summon.GetId() ! "cinderwisp" &
^ item.CanActivate()
equipR fire talisman
activate R
summon.GetName(index = 0) 指定されたインデックスの召喚された仲間のローカライズ名を返す。インデックスパラメータは省略可能で、デフォルトは0(最初の召喚)。指定したインデックスに仲間がいない場合はnullを返す。
使用例:
>`0,1,召喚:@summon.GetName()@
summon.GetVar(varName,
index = 0)
召喚された仲間のカスタム変数の値を返す。召喚の種類によって異なる変数が使用されている。インデックスパラメータは省略可能で、デフォルトは0(最初の召喚)。指定したインデックスに仲間がいない場合はnullを返す。varNameが無効な変数の場合はエラーを表示する。
使用例:
?summon.GetId() = cinderwisp &
^summon.GetVar("ignition") > 2
activate cinderwisp
summon.GetState(index = 0) 指定されたインデックスの召喚された仲間の現在の状態を表す数値を返す。インデックスパラメータは省略可能で、デフォルトは0(最初の召喚)。指定したインデックスに仲間がいない場合は-1を返す。
使用例:
>`0,1,召喚の状態:@summon.GetState()@
summon.GetTime(index = 0) 指定されたインデックスの召喚された仲間の状態の経過フレーム数を返す。インデックスパラメータは省略可能で、デフォルトは0(最初の召喚)。指定したインデックスに仲間がいない場合は-1を返す。
使用例:
>`0,1,召喚状態の経過時間:@summon.GetTime()@
?totalgp インベントリ内の"ギアパワー"の合計値。アイテムの星レベルやエンチャントボーナスから計算される。
使用例:
>ギアパワー = @totalgp@
?time 現在のエリアで経過したフレーム数。
使用例:
?time % 300 = 0
>10秒ごとにこのメッセージが表示されます
?totaltime ボスエリアを含めた、現在のエリアで経過した合計フレーム数。
使用例:
>`0,0,現在の時間 = @totaltime@フレーム
time.msbn Unix時間をミリ秒単位で表す。(1970年1月1日00:00:00 UTC以降の経過時間)うるう秒は考慮されない。BigNumber型を返す。
使用例:
>@time.msbn@
time.year, time.month, time.day, time.hour, time.minute, time.second プレイヤーのコンピュータ上のローカルシステム時間。
使用例:
>`0,0,@time.year@/@time.month@/@time.day@
^ @time.hour@:@time.minute@:@time.second@
utc.year, utc.month, utc.day, utc.hour, utc.minute, utc.second 現在のUTC時間。
使用例:
var utcZ = utc.year*356*12*24*30 +
^utc.month*12*24 + utc.day*24+utc.hour
var timeZ = time.year*356*12*24*30 +
^time.month*12*24 + time.day*24+time.hour
var timeZone = timeZ - utcZ
?timeZone < 0
>`0,0,タイムゾーン: UTC@timeZone@
:
>`0,0,タイムゾーン: UTC+@timeZone@
トップへ戻る
·:·:· コマンド ·:·:· ゲームに指示を与えることが出来ます。
activate (ability) アイテムの能力を発動する。(ability)の値として、'potion' 'P' 'left' 'L' 'right' 'R' そして能力IDを指定できる。
使用例:
activate R
(手斧など右手に装備されたアイテムの能力を発動する)
brew (ingredients) ポーションボトルに指定された調合の材料を補充する。実行の開始、time 0にのみ実行される。材料には石ころ(stone)木の枝(wood)タール(tar)銅の塊(bronze)が含まれ、+で区切る必要がある。材料名は英語または選択した言語で指定できる。
使用例:
?loc.begin
brew bronze + tar
equip (str) アイテムを装備する。(str)には7つの基準がある。両手持ちのアイテムはこの形式のequipコマンドを使わなければならない。
使用例:
equip vigor crossbow *8 +5
equipL (str) 指定された条件に最も合うアイテムを左手に装備する。
使用例:
equipL poison d_sword
equipR (str) 指定された条件に最も合うアイテムを右手に装備する。
使用例:
equipR vigor shield
equip @var@ 文字列変数からの条件に基づいてアイテムを装備する。装備やその他アイテム検索コマンドは減算条件に対応している。
使用例:
var weaponName = "poison sword *10 -big"
equipR @weaponName@
loadout (n) 特定のロードアウト番号を装備する。
使用例:
?loc = caves
loadout 1
?loc = deadwood
loadout 2
> (str) 画面の上部に文字列を表示する。
使用例:
>Hello World!
> @varName@ 変数の値を挿入した文字列を表示する。表示には複数の変数を挿入でき、変数名を'@'で囲む。
以下の例では、現在ターゲットにしている敵の情報を表示する。
var foeInfo
foeInfo = foe
>敵 = @foeInfo@
>(abcd プレイヤーの表情をカスタムして表示する。ビッグヘッドが必要。
使用例:
>( OwO
>oX,Y,[#rrggbb,](str) プレイヤーの位置を基準にした高度な表示。XとYは座標のオフセット。"#rrggbb"はテキストの色を16進数で表記したもの。色は次の定数で設定することもできる。'#white' '#cyan' '#yellow' '#green' '#blue' '#red' 虹色は'rainFF'を使用し、最後の2文字(FF)で明るさを指定する。
以下の例では、プレイヤーの位置を基準に、左に6、下に3の位置に赤文字で"Let's go!"と表示する。
>o-6,3,#red,Let's go!
>hX,Y,[#rrggbb,](str) ">o"とほぼ同じだが、ビッグヘッドと同じレイヤーに描画する。帽子などアクセサリーに最適。
以下の例では、プレイヤーに黄色の帽子を描画する。ビッグヘッドが有効だと最適。
>h-2,-3,#yellow,ascii
##_
#| |
_|_|_
asciiend
>`X,Y,[#rrggbb,](str) 画面の左上隅を基準にした高度な表示。
以下の例では、座標と色に変数を使用して"Hello World!"を表示する。
var posX = 10
var posY = 5
var color = rainE1
>`@posX@,@posY@,#@color@,Hello World!
>cX,Y,[#rrggbb,](str) 画面の中央を基準にした高度な表示。">`"と似ている。いずれも色は任意であることに注意。
以下の例で、色は任意で、デフォルトは白であることが分かる。
>c0,0,Hello World!
>fX,Y,[#rrggbb,](str) ターゲットの敵の頭の位置を基準にした高度な表示。
以下の例では、ターゲットにした敵に赤い十字線を描画する。
>f-2,0,#ff0000,ascii
##!
-#·#-
##¡
asciiend
var (variable) 数学、論理、文字列演算で使用できる変数を宣言する。変数の循環と挙動についての詳細は、他の言語と異なる可能性があるため、変数の章を参照してください。
使用例:
var message = Hello World!
>@message@
func (function) 後で呼び出せる関数を宣言する。
使用例:
func Print(message)
>@message@

Print(Hello World!)
for v = a..b 変数'v'を'a'から'b'までの値で繰り返し実行するループを作成する。ループのスコープ内に表示されるコードは複数回実行される。
使用例:
var a
a = 0
for i = 1..5
a = a + i
>a = @a@
import (script) 外部スクリプトの単一のコピーを読み込んで実行する。
以下の例では、Fishing.txtという釣りミニゲームをインポートする。
(save-fileフォルダー)/Stonescript/Fishing.txt

import Fishing
new (script) "import"と類似する外部スクリプトを読み込んで実行する。ただし、"new"で読み込まれたオブジェクトはそれぞれ個別のコピーであり、スクリプト本体は1回しか実行されない。
以下の例では、ベクトルオブジェクトを作成して表示する。
var v = new Components/Vector
v.Init(10, 5)
>Vector = @v@
disable abilities ポーションや武器の能力発動を無効化する。また、HUDボタンが灰色になる。
enable abilities "disable abilities"によって無効にされた能力の発動を有効化する。
disable banner エリアの始まりと終わりにエリア名が表示されるバナー演出を無効化する。
enable banner エリア名が表示されるバナー演出を有効化する。
disable hud (opts) ゲーム内のUI要素を非表示および無効化する。任意のパラメータを受け入れ、無効にする要素を指定できる。p = プレイヤーの体力とデバフ f = 敵の体力とデバフ a = 能力使用ボタン r = 資源 b = バナー u = 四次元ベルト
使用例1:
disable hud // すべてのhud要素を無効化
使用例2:
disable hud ru // 資源(r)と四次元ベルト(u)のみを無効化
enable hud (opts) "disable hud"コマンドによって非表示にされたUIを表示する。無効にした要素を指定できるよう、disableコマンドと同じ任意パラメータを受け入れる。
disable loadout input 武器のロードアウトをキー入力での保存や呼び出しを無効化する。
enable loadout input 武器のロードアウトをキー入力での保存や呼び出しを有効化する。
disable loadout print ロードアウトが呼び出された時に表示されるメッセージを非表示にする。
enable loadout print 非表示にされたロードアウトメッセージを表示する。
disable npcDialog NPCの吹き出しを非表示にして会話をスキップする。
enable npcDialog 非表示にされたNPCの吹き出しを表示する。
disable pause ポーズボタンのUIを非表示にする。[P]キーでのポーズは利用可能。
enable pause "disable pause"コマンドで非表示にされたポーズボタンを表示する。
disable player プレイヤーを非表示にする。戦闘には影響しない、見た目だけのもの。
enable player "disable player"コマンドで非表示にされたプレイヤーを表示する。
play (sound) (pitch) 任意のピッチ値を持つ効果音を再生する。ピッチの初期値は100で、数値が大きいほどピッチが上がり、数値が小さいほど下がる。
使用例1:
?key = primary
play buy
?key = up
play buy 200

使用例2:
var pitch
?time%30 = 0
pitch = rng/100 + 50
>@pitch@
play buy @pitch@
トップへ戻る
·:·:· 検索フィルター ·:·:· 敵、エリア、アイテムを評価する際に使用されます。 使用例: ?foe = insect | foe = poison loadout 3 poison vigor aether fire air ice arachnid serpent insect machine humanoid elemental boss phase1 phase2 phase3 spawner flying slow ranged explode swarm unpushable undamageable magic_resist magic_vulnerability immune_to_stun immune_to_ranged immune_to_debuff_damage immune_to_physical *[number] star level (location or item) +[number] enchantment bonus (item only) トップへ戻る
·:·:· 比較 ·:·:· ゲームの状態と組み合わせて意思決定を行うために使用されます。
= 等しい値か、文字列が含まれている値を比較する。
使用例:
?hp = maxhp
loadout 2
! 等しくない値か、文字列に含まれていない値を比較する。
使用例:
?foe ! poison
equipL sword
& 論理積(AND)演算子。
使用例:
?loc=caves & foe=boss
| 論理和(OR)演算子。複雑な式に'&'と'|'が混在している場合、'&'が最初に評価される。
使用例:
?foe=slow | foe.count>3
activate potion
> 値が大きいかを比較する。エリアの難易度、敵の数、体力などと組み合わせて使用できる。
使用例:
?foe.count > 10
equip shiny bardiche
< 値が小さいかを比較する。
使用例:
?hp < 6
activate potion
>= 値が大きいか、等しいかを比較する。'>'と'='を組み合わせて一つの比較とする。
The following two examples are equivalent:

?loc.stars >= 6
equipR vigor shield

?loc.stars > 6 | loc.stars = 6
equipR vigor shield
<= 値が大きいか、等しいかを比較する。'<'と'='を組み合わせて一つの比較とする。
使用例:
?hp <= 6
activate potion
トップへ戻る
·:·:· 変数 ·:·:· 変数は、値を保存して後で使用するための手段です。'var'キーワードを使用して新しい変数を宣言します。 使用例: var myVar = 10 (myVarは変数の名前で、値10で初期化されています) myVar = myVar + 5 (この時点で、myVarの値は15になります) var secondVar = 3 myVar = myVar - secondVar (複数の変数を数式で組み合わせることができます。この場合、myVarの値は12になります) 変数が宣言されると、最初に'var'が実行された時にのみ初期化されます。 使用例: var i = 0 i++ >i = @i@ この例では、変数'I'が宣言され、値が0から始まります。その後実行すると、各フレームで'i'の値が1増加し、画面に表示されます。 変数が初期値にリセットされるタイミングは、エリアを離れ、再入場して新たな実行を開始した場合のみです。ウロボロスループや、明瞭の石の開閉ではリセットされません。 文字列型変数は、任意で引用符("")で囲んで宣言できます。これにより、特殊記号や末尾のスペースを含めることができます。 使用例: var a = 10 var b = 5 var myVar = a + " x " + b + " = " + (a * b) >@myVar@ (この例では、'+'で文字列を結合する方法も示しています。) インポートされたスクリプト内の変数は、そのスクリプト内でのみ有効です。他のスクリプトの変数や関数と競合することはありません。 トップへ戻る
·:·:· 数学演算 ·:·:· 演算子は数値を操作します。変数と組み合わせたり、ゲームの状態式で直接使用できます。
+ 2つの数値や変数を加算する。
使用例:
var a = 2 + 3
(a = 5)
- 2つの数値や変数を減算する。
使用例:
?hp < maxhp - 5
equip vigor sword dL
* 2つの数値や変数を乗算する。
使用例:
var a = 2
var b = 5
a = a * b
// a = 10

使用例2:
var a = 2 * 0.4
// a = 0.8
/ 1つの数値や変数をもう1つの数値や変数で除算する。どちらも整数の場合、少数部分は切り捨てられる。
使用例:
var a = 8
a = a / 4
// a = 2

使用例2:
var a = 5.0
a = a / 2
// a = 2.5
++ 変数の値を1増加させる。
使用例:
var a = 3
a++
// a = 4
-- 変数の値を1減少させる。
使用例:
var a = 3
a--
// a = 2
% 余剰演算。割り算の余りを返す。
使用例:
var a = 5 % 4
(a = 1)

使用例2:
?time % 8 < 4
> \O)
?time % 8 > 3
> (O/
// アニメーションされた絵文字を表示する
( ) 演算の優先順位を指定できる。カッコ内を先に計算する。
使用例:
var a = 2 * (3 - 1)
// a = 4
! 否定。真偽値を反転させる。
使用例:
? !ai.enabled
>AIは有効ではありません。
トップへ戻る
·:·:· 関数 ·:·:· 関数は、スクリプトが複雑になるにつれて、重要な役割を果たします。コードの読みやすさを向上させ、重複を減らします。関数が宣言されると、その内容はすぐには実行されません。その代わり、後で関数が呼び出された時に実行されます。 次の例では、フレームごとに1ずつ増加させるカウンターが作成されています。特定のキーが入力されると、ResetCounter()が呼び出され、カウンターが0にリセットされます。 var count = 0 count++ >カウンター = @count@ func ResetCounter() count = 0 ?key=begin ResetCounter() 関数の別の特徴は、値を返すことができることです。次の例では、メインエリア(ボスエリアではないエリア)の滞在時間を計算するシンプルな関数を宣言しています。 func NonBossDuration() return totalTime - time var duration duration = NonBossDuration() >滞在時間: @duration@ また、関数は引数/パラメータを受け取ることができ、任意の入力を操作する汎用的な関数を作成できます。次の例では、範囲内のランダムな数値を生成する実用的な関数を宣言し、それを使用して5から10の間のランダムな数値を生成しています。 func RandomRange(min, max) ?min >= max return min return min + rng % (max - min + 1) var randomValue randomValue = RandomRange(5, 10) >RNG: @randomValue@ 関数内で外部スクリプトに属する変数を参照する場合は、'this'を使うことで区別できます。'this'の使用は任意であり、スクリプト変数は'this'なしで関数からアクセスできます。ただし、次の例では、変数'a'は関数の内側にも外側にも現れるので、区別のために'this.a'が使用されています。 var a = 1 func TestScope(a) >関数外変数 = @this.a@, 関数内変数 = @a@ TestScope(3) 関数が他の関数やその関数自身を呼び出すと、実行スタックが生成され、サイズが増え続けるとアプリケーションがクラッシュ可能性があります。コンピューターのリソースを保護するため、Stonescriptではスタックサイズが215に制限されており、それを超えるとエラーが発生します。 トップへ戻る
·:·:· ネイティブ関数 ·:·:· スクリプトが独自の関数を定義できる一方で、Stonescriptにはあらかじめ定義されたネイティブ関数が用意されています。これらはコマンドのように動作しますが、主題ごとに明確に分類され、パラメータを受け取ることや、値を返すことがある点で異なります。
ambient(環境音)
‾‾‾‾‾‾‾‾‾‾‾‾‾‾
?ambient
戻り値:string
再生中の環境音のIDをカンマ区切りで返す。
使用例:
>`0,0,Ambient Layers = @ambient@
ambient.Add(str)
戻り値なし
指定されたIDの環境音レイヤーを追加する。最大4レイヤーまで追加でき、5つ目を追加すると最も古いレイヤーが削除される。
使用例:
?loc.begin
ambient.Add(ambient_crypt)
ambient.Stop()
戻り値なし
再生中の環境音をすべてクリアする。
使用例:
?time = 3
ambient.Stop()
ambient.Add(ambient_mines)

BigNumber
‾‾‾‾‾‾‾‾‾

BigNumberは、32ビットを超える大きな整数を扱うための特別なオブジェクト型です。正負の整数しか保持できませんが、四則演算や比較演算は、浮動小数点数や他のBigNumberとともに使用可能です。
b.Add(num)
b.Add(BigNumber)
戻り値:itself
BigNumberに数値を加算する(+)
使用例:
var bn = math.BigNumber(12)
bn.Add(5)
>@bn@
// 17
b.Sub(num)
b.Sub(BigNumber)
戻り値:itself
BigNumberから数値を減算する(-)
使用例:
var bn = math.BigNumber(12)
bn.Sub(5)
>@bn@
// 7
b.Mul(num)
b.Mul(BigNumber)
戻り値:itself
BigNumberを数値で乗算する(*)
使用例:
var myBigNum1 = math.BigNumber(12)
var myBigNum2 = math.BigNumber(12)
myBigNum1.Mul(5)
myBigNum2.Mul(1.5)
>@myBigNum1@ @myBigNum2@
// 60 18
b.Div(num)
b.Div(BigNumber)
戻り値:itself
BigNumberを数値で除算する(/)
使用例:
var myBigNum1 = math.BigNumber(12)
var myBigNum2 = math.BigNumber(12)
myBigNum1.Div(5)
myBigNum2.Div(1.5)
>@myBigNum1@ @myBigNum2@
// 2 8
b.Eq(num)
b.Eq(BigNumber)
戻り値:bool
BigNumberが数値と等しいかを判定する(=)
使用例:
var bn = math.BigNumber(5)
>@bn.Eq(5)@ @bn.Eq(3)@
// true false
b.Gt(num)
b.Gt(BigNumber)
戻り値:bool
BigNumberが数値より大きいかを判定する(>)
使用例:
var bn = math.BigNumber(5)
>@bn.Gt(3)@ @bn.Gt(10)@
// true false
b.Ge(num)
b.Ge(BigNumber)
戻り値:bool
BigNumberが数値以上かを判定する(>=)
使用例:
var bn = math.BigNumber(5)
>@bn.Ge(3)@ @bn.Ge(5)@
// true true
b.Lt(num)
b.Lt(BigNumber)
戻り値:bool
BigNumberが数値より小さいかを判定する(<)
使用例:
var bn = math.BigNumber(5)
>@bn.Lt(3)@ @bn.Lt(10)@
// false true
b.Le(num)
b.Le(BigNumber)
戻り値:bool
BigNumberが数値以下かを判定する(<=)
使用例:
var bn = math.BigNumber(5)
>@bn.Le(10)@ @bn.Le(5)@
// true true
b.ToFloat()
戻り値:float
BigNumberを浮動小数点数に変換する。値が大きすぎたり小さすぎる場合はエラーが発生する。
E.g.
var bn = math.BigNumber(5)
var fNumber = bn.ToFloat()
>float = @fNumber@
b.ToInt()
戻り値:int
BigNumberを整数に変換する。値が大きすぎたり小さすぎる場合はエラーが発生する。
E.g.
var bn = math.BigNumber(5)
var iNumber = bn.ToInt()
>integer = @iNumber@
b.ToString()
戻り値:string
BigNumberを文字列で返す。ストレージに保存する際に使用できる。
使用例:
var myBigNum = math.BigNumber("123456789123456789")
storage.Set("myBN", myBigNum.ToString())
---
var bnStr = storage.Get("myBN")
var myBigNum = math.BigNumber(bnStr)
b.ToUI()
戻り値:string
UIで使用するための短縮された数値表現を返す。
使用例:
var myBigNum = math.BigNumber("123456789123456789")
>@myBigNum.ToUI()@
// 123.5Qa

color(色)
‾‾‾‾‾‾‾‾‾

Stonescriptでは、色は#ff0000のような16進数表記や、#redのような簡易プリセットで表現されます。
color.FromRGB(r,g,b)
戻り値:string
RGB(0~255の3つの整数)をカラーコードに変換する。
使用例:
var c = color.FromRGB(255, 0, 128)
>`0,0,@c@, @c@
color.ToRGB(string)
戻り値:int[3]
カラーコードをRGB(0~255の3つの整数)に変換する。
使用例:
var c = color.Random()
var rgb = color.ToRGB(c)
var r = rgb[0]
var g = rgb[1]
var b = rgb[2]
>`0,0,@c@, @c@ \n @r@ \n @g@ \n @b@
color.Lerp(c1,c2,t)
戻り値:string
時間t(割合)に応じて、色c1から色c2へ線形補間を行う。
使用例:
var c1 = "#ff4400"
var c2 = "#8888ff"
var t = 0.5
var c
t = math.sin(time*0.1) / 2 + 0.5
c = color.Lerp(c1, c2, t)
>`0,1,@c@,@c@\n ██████
color.Random()
戻り値:string
ランダムな色を返す。
使用例:
var c
c = color.Random()
>`0,0,@c@,@c@\n ██████
draw(描画)
‾‾‾‾‾‾‾‾‾‾
draw.Bg(x, y, color)
戻り値なし
画面上の指定した位置の背景色を設定する。
使用例:
draw.Bg(5, 4, #red)
draw.Bg(x, y, color, w, h)
戻り値なし
画面上の指定した範囲の背景色を設定する。
使用例:
draw.Bg(5, 4, #cyan, 10, 6)
draw.Box(x, y, w, h, color, style)
戻り値なし
指定した位置と範囲の四角形を描画する。四角形の境界線は色とスタイル番号で定義される。スタイル番号がマイナスになるとボックスの内側が透明になる。警告 - 現時点では、高度な表示は常にボックスの上に描画される。
次の例を使用して、左右の矢印キーさまざまなスタイルを試してみよう
var style = 1
?key = leftBegin
style--
?key = rightBegin
style++
draw.Box(10, 5, 30, 15, #333333, style)
>`12,6,#ffffff,Style = @style@
>`12,8,#888888,左右の矢印キーを押して\nスタイルを変更
draw.Clear()
戻り値なし
画面全体をクリアする。
draw.GetSymbol(x, y)
戻り値:string
指定した位置(x,y)の文字を取得する。
次の例では、画面座標を指定し、そこにあるシンボルを描画する。矢印キーを押して[ ]を動かしてみよう
var s
var x = 20
var y = 10
var drawX
?key=leftBegin
x--
?key=rightBegin
x++
?key=upBegin
y--
?key=downBegin
y++
s = draw.GetSymbol(x, y)
>`0,1,Symbol = @s@
drawX = x - 1
>`@drawX@,@y@,[#]
draw.Player()
draw.Player(x,y)
戻り値なし
指定した位置に、プレイヤーキャラクターを装備とアドオンを含めて描画する。任意でx,yのオフセット値を指定できる。絶対位置に描画する場合は、screen名前空間を参照して、プレイヤーのローカル位置から画面位置に変換するオフセットを導出する。

int(整数)
‾‾‾‾‾‾‾‾
int.Parse(str)
戻り値:integer
数値の文字列を整数に変換する。文字列が数値でない場合、エラーが発生する。
使用例:
var s = "999"
var i = int.Parse(s)
i++
event
‾‾‾‾‾
event.GetObjectiveId(int)
戻り値:string

event.GetObjectiveProgress
(int)
event.GetObjectiveGoal(int)
戻り値:int
コミュニティイベントまたはシーズンイベントの進行中の目標IDを取得する。取得したい目標のインデックスを渡す。イベント目標の数は、基本的に3つまでなので、最初のパラメータは0,1,2のいずれかになる。
使用例:
var id
var p
var g
id = event.GetObjectiveId(0)
p = event.GetObjectiveProgress(0)
g = event.GetObjectiveGoal(0)
>`0,1,@id@:@p@/@g@
item(アイテム)
‾‾‾‾‾‾‾‾‾‾‾‾‾
item.CanActivate()
戻り値:boolean
アイテムの能力を発動できる場合は真、そうでない場合は偽になる。ボス戦前や、ムービー中など、一部のプレイ状況では能力発動が無効になる場合もある。
使用例:
?item.CanActivate()
equip Bardiche
activate R
item.CanActivate(str)
戻り値:boolean
特定のアイテムが装備されているかつ、能力発動が可能な場合は真となる。アイテムによっては、特定の上限を満たさない限り発動できないものもある。これはitem.GetCooldown()の一部であり、アイテムがクールダウン中でなくても能力発動ができない場合もある。
使用例:
equip bardiche
?item.GetCooldown("skeleton_arm") <= 0
equip skeleton arm
?item.CanActivate("skeleton_arm")
activate R
item.GetCooldown(str)
戻り値:integer
指定されたアイテム能力のクールダウン時間をフレーム単位で返す。
利用可能なすべての能力IDは、こちらを参照してください。注意:能力IDが無効の場合は-1を返します。まだ実装されていない武器の一部の能力も-1を返すことがあります。
使用例:
?foe = boss & item.GetCooldown("bardiche") <= 0
equip bardiche
activate R
item.GetCount(str)
戻り値:integer
インベントリ内の指定されたアイテムの個数を返す。見つからない場合は0を返す。
使用例:
var searchCriteria = "sword *0 -big -socket"
var swordCount = item.GetCount(searchCriteria)
>I have @swordCount@ basic swords
item.GetLoadoutL(int)
item.GetLoadoutR(int)
戻り値:string
指定された装備セットのアイテムを返す。整数パラメータは、ロードアウト番号を示す。該当スロットに装備が存在しない場合は空白を返す。
使用例:
>`0,1,Left: @item.GetLoadoutL(1)@
>`0,2,Right: @item.GetLoadoutR(1)@
item.GetTreasureCount()
戻り値:integer
現在の宝箱の数を返す。
item.GetTreasureLimit()
戻り値:integer
保管可能な宝箱の上限を返す。
使用例:
var trs
var max
trs = item.GetTreasureCount()
max = item.GetTreasureLimit()
>`0,2,Treasures: @trs@/@max@
key
‾‾‾

keyの名前空間は、標準のゲーム入力およびショートカットを可能にします。このシステムは、アクション(略称"act")キーに基づいており、各アクションは入力やショートカットの種類に対応し、各キーは実際のキー入力に対応しています。アクションに割り当て可能なキーの一覧はこちらで確認できます。アクションの割り当てを変更すると、起動中は保持されます(現時点では、ストレージに保存されません)。最適化のため、毎フレームの割り当ては推奨されていません。
アクション
---------
デフォルトキー
------------
デフォルトキー2
-------------

Pause(一時停止) P Space
Leave(リタイア) L
Inventory(アイテム) I
Mindstone(明瞭の石) M
Potion(ポーション) Q
ItemLeft(左アイテム) E
ItemRight(右アイテム) R
Up(上) W UpArrow
Down(下) S DownArrow
Left(左) A LeftArrow
Right(右) D RightArrow
Primary(決定) Return KeypadEnter
Back(戻る) X
Ability1 LeftShift RightShift
Ability2 LeftControl RightControl
BumpL Z
BumpR C
Dynamic1 F
Dynamic2 T
Dynamic3 G
Dynamic4 V
Dynamic5 B
key.Bind(act, key1)
key.Bind(act, key1, key2)
戻り値なし
特定のアクションに対して新しいキーを割り当てる。別のアクションにそのキーが割り当てられている場合、元のアクションにあるそのキーの割り当ては削除される。アクションには最大2つのキーを割り当てることが可能。
使用例:
?loc.begin
key.Bind("Potion", "P")
// この例では、本来一時停止に割り当てられた"P"キーが、一時停止をせずポーションの使用に割り当てられます。さらに、ポーションの元の"Q"キーも機能せず、"Q"キーはどのアクションにも割り当てられていません。
key.GetKeyAct(key)
戻り値:string
指定されたキーに割り当てられているアクションを返す。そのキーがどのアクションにも割り振られていない場合は"None"を返す。
key.GetActKey(act)
戻り値:string
指定されたアクションに割り当てられている1つ目のキーを返す。そのアクションにキーが割り振られていない場合は"None"を返す。
key.GetActKey2(act)
戻り値:string
指定されたアクションに割り当てられている2つ目のキーを返す。そのアクションに2つ目のキーが割り振られていない場合は"None"を返す。
key.GetActLabel(act)
戻り値:string
指定されたアクションに割り当てられている1つ目のキーを示すユーザー向けのラベルを返す。現在の実装では、割り当てられたキーの最初の1文字目を返すため、"LeftShift"のようなキーの場合は分かりにくい可能性がある。
key.ResetBinds()
no return value
すべてのアクションのキー割り当てをデフォルトにリセットする。

loc(エリア)
‾‾‾‾‾‾‾‾‾‾
loc.Leave()
戻り値なし
プレイヤーが手動でリタイアボタンを押したかようにエリアを退出する。
loc.Pause()
戻り値なし
プレイヤーが手動で一時停止ボタンを押したかのようにエリアを一時停止する。

math(数学)
‾‾‾‾‾‾‾‾‾

math APIは、整数(int)と浮動小数点数(float)の両方を扱います。数値を小数点を含む形で宣言した場合はfloat型として扱われ(例:var a = 0.5)、小数点がない場合は、int型として扱われます(例:var a = 2)
math.Abs(num)
戻り値:number
指定された数値の絶対値を返す。
使用例:
var number = -2
number = math.Abs(number)
// numberの値は2になる
math.Acos(num)
戻り値:number
指定された数値の逆余弦(アークコサイン)をラジアン単位で返す。入力値は-1から1の範囲である必要があり、範囲外の場合は"NaN"を返す。
使用例:
var number = math.Acos(-1)
// numberの値はπになる
math.Asin(num)
戻り値:number
指定された数値の逆正弦(アークサイン)をラジアン単位で返す。入力値は-1から1の範囲である必要があり、範囲外の場合は"NaN"を返す。
使用例:
var number = math.Asin(1)
// numberの値はπ/2になる
math.Atan(num)
戻り値:number
指定された数値の逆正接(アークタンジェント)をラジアン単位で返す。
使用例:
var number = math.Atan(2)
// numberの値は1.107149になる
math.Atan2(y, x)
戻り値:number
原点から点(x,y)への線とx軸との間の角度をラジアン単位で返す。
使用例:
var number = math.Atan2(3, 2)
// numberの値は0.9827937になる
math.BigNumber()
math.BigNumber(number)
math.BigNumber(str)
戻り値:BigNumber
浮動小数点数または整数から新しいBigNumberオブジェクトを作成するか、文字列を数値に変換してBigNumberオブジェクトを生成する。
使用例:
var myBigNum = math.BigNumber("500")
myBigNum.Add(500).Mul(1000).Mul(1000).Mul(1000)
>@myBigNum@
// 1000000000000
math.Ceil(num)
戻り値:number
数値を切り上げ、元の数より大きい最も近い整数(小数点あり)を返す。
使用例:
var number = math.Ceil(4.2)
// numberの値は5.0になる
math.CeilToInt(num)
戻り値:integer
数値を切り上げ、元の数より大きい最も近い整数(小数点なし)を返す。
使用例:
var number = math.CeilToInt(4.2)
// numberの値は5になる
math.Clamp(num, min, max)
戻り値:number
数値を'min'から'max'の範囲内に制限する。数値がすでに範囲内にある場合、そのまま返される。
使用例:
var number = 50
number = math.Clamp(number, 0, 10)
// numberは10に制限される
math.Cos(num)
戻り値:number
指定されたラジアン角の余弦(コサイン)を返す。
使用例:
var number = math.Cos(0)
// numberの値は1になる
math.e
float
数学定数e、ネイピア数とも呼ばれる。値は約2.71828
使用例:
>E = @math.e@
// 画面にeの値が表示される
math.Exp(num)
戻り値:number
eを指定した数値のべき乗で計算した結果を返す。
使用例:
var number = math.Exp(3)
// numberの値は20.08554になる
math.Floor(num)
戻り値:number
数値を切り下げ、元の数より小さい最も近い整数(小数点あり)を返す。
使用例:
var number = math.Floor(2.7)
// numberの値は2.0になる
math.FloorToInt(num)
戻り値:integer
数値を切り下げ、元の数より小さい最も近い整数(小数点なし)を返す。
使用例:
var number = math.FloorToInt(2.7)
// numberの値は2になる
math.Lerp(a, b, t)
戻り値:number
時間t(割合)に応じて、値aからbへ線形補間を行う。
使用例:
var number = math.Lerp(0.0, 20.0, 0.75)
// numberの値は15.0になる

使用例2:
var n = 0.0
?key = Begin
n = 0.0
n = math.Lerp(n, 100, 0.02)
>n = @n@
// 変数nは100に向かって毎フレーム2%ずつ上昇する。キーが押されるとリセットされる
math.Log(num, base)
戻り値:number
指定された底(base)での数値の対数を返す。
使用例:
var number = math.Log(5, 2)
// numberの値は2.321928になる
math.Max(num1, num2)
戻り値:number
2つの数値のうち大きい方を返す。
使用例:
var number = math.Max(3, 10)
// numberは10になる
math.Min(num1, num2)
戻り値:number
2つの数値のうち小さい方を返す。
使用例:
var number = math.Min(3, 10)
// numberは3になる
math.pi
float
数学定数π、値は約3.1415926
使用例:
>PI = @math.pi@
// prints the value of π to the screen
math.Pow(num, p)
戻り値:number
指定された数値をべき乗で計算した結果を返す。
使用例:
var number = math.Pow(3, 2)
// numberの値は9
math.Round(num)
戻り値:number
数値を四捨五入して、元の数から最も近い整数(小数点あり)を返す。
使用例:
var number = math.Round(2.7)
// numberの値は3.0になる
math.RoundToInt(num)
戻り値:integer
数値を四捨五入して、元の数から最も近い整数(小数点なし)を返す。
使用例:
var number = math.RoundToInt(2.7)
// numberの値は3になる
math.Sign(num)
戻り値:number
指定された数値が負の場合は-1、それ以外の場合は1を返す。
使用例:
var sign = math.Sign(-21)
var n = 10 * sign
// nの値は-10になる
math.Sin(num)
戻り値:number
指定されたラジアン角の正弦(サイン)を返す。
使用例:
var number = math.Sin(math.pi / 2)
// numberの値は1になる
math.Sqrt(num)
戻り値:number
指定された数値の平方根を返す。
使用例:
var number = math.Sqrt(9)
// numberの値は3になる
math.Tan(num)
戻り値:number
指定されたラジアン角の正接(タンジェント)を返す。
使用例:
var number = math.Tan(2)
// numberの値は-2.18504になる
math.ToDeg(num)
戻り値:number
ラジアン単位の数値を度(°)に変換する。
使用例:
var number = math.ToDeg(2 * math.pi)
// numberの値は360になる
math.ToRad(num)
戻り値:number
度数の数値をラジアンに変換する。
使用例:
var number = math.ToRad(360)
// numberの値は2πになる
music(楽曲)
‾‾‾‾‾‾‾‾‾‾
?music
Return string
現在再生中の曲のIDを返す。
使用例:
>`0,0,再生中 = @music@
music.Play(str)
戻り値なし
指定されたサウンドIDの曲を再生する。1度に再生できる曲は1つのみ。
使用例:
?loc.begin | loc.loop
music.Play(temple_0)
music.Stop()
戻り値なし
再生中の曲を停止する。
使用例:
?!string.Equals(music, "")
music.Stop()
player(プレイヤー)
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
player.ShowScaredFace(num)
戻り値なし
プレイヤーがビッグヘッドを有効にしている場合、指定された時間の間、表情が怖がったものに変わる。
使用例:
?key = primaryBegin
player.ShowScaredFace(1)
screen(画面)
‾‾‾‾‾‾‾‾‾‾‾
screen.FromWorldX(int)
戻り値:integer
ワールド座標のX軸の値を、スクリーン座標に変換する。
screen.FromWorldZ(int)
戻り値:integer
ワールド座標のZ軸の値を、スクリーン座標のY軸の値に変換する。
使用例:
var x
var y
x = screen.FromWorldX(pos.x)
y = screen.FromWorldZ(pos.z - pos.y)
>`0,1,画面上でのプレイヤーの位置: @x@,@y@
screen.ToWorldX(int)
戻り値:integer
スクリーン座標のX軸の値を、ワールド座標に変換する。
screen.ToWorldZ(int)
戻り値:integer
スクリーン座標のY軸の値を、ワールド座標のZ軸の値に変換する。
使用例:
var x
var y
var z
x = input.x
y = input.y
>`0,1,画面上でのカーソル位置: @x@,@y@

x = screen.ToWorldX(input.x)
z = screen.ToWorldZ(input.y)
>`0,2,ワールド上でのカーソル位置: @x@,@z@
screen.Next()
戻り値なし
スクリーンが複数あるエリアの場合、プレイヤーに対してカメラを1画面分前方に移動する。
使用例:
?key = rightBegin
screen.Next()
screen.Previous()
戻り値なし
スクリーンが複数あるエリアの場合、プレイヤーに対してカメラを1画面分後方に移動する。
使用例:
?key = leftBegin
screen.Previous()
screen.ResetOffset()
戻り値なし
screen.Next()やscreen.Previous()によって行われたカメラ位置の変更をリセットし、プレイヤーに追従する状態に戻す。
使用例:
var lastScreenI = -1
?lastScreenI ! screen.i
screen.ResetOffset()
lastScreenI = screen.i
storage(ストレージ)
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
永続ストレージに保存された値は、エリアを離れたりゲームを終了した際にも保持されます。これらはprimary_saveの一部ではなく、Stonescriptフォルダ内の一連の別ファイルに存在します。インポートされたスクリプトは、互いに独立してストレージにアクセスするため、異なるモジュールが同じキーを使用しても、互いのデータに影響を与えることはありません。
storage.Delete(string)
戻り値なし
指定されたキーに存在する可能性のある値を削除する。
使用例:
storage.Delete("highscore")
storage.Get(string)
戻り値:value
指定されたキーに保存されている永続的な値を取得する。
使用例:
var value = storage.Get("highscore")
?value
>ハイスコア = @value@
:
>ハイスコアなし
storage.Get(string, value)
戻り値:value
指定されたキーに保存されている永続的な値を取得する。存在しない場合は、2つ目のパラメータをデフォルト値として返す。
使用例:
var value = storage.Get("highscore", 0)
>ハイスコア = @value@
storage.Has(string)
戻り値:boolean
指定されたキーが永続ストレージに存在する場合はtrue、存在しなければfalseを返す。
使用例:
?storage.Has("highscore")
var value = storage.Get("highscore")
>High Score = @value@
:
>No High Score found.
storage.Incr(string)
戻り値:integer
指定されたキーに保存されている値を1増やし、その新しい値を返す。
使用例:
?gameOver
storage.Incr("stat_TimesPlayed")
storage.Keys()
戻り値:array
現在のコンテキストで利用可能なストレージキーを含む文字列の配列を取得する。
使用例:
var a
?time % 30 = 0
a = storage.Keys()
for i = 0 .. a.Count()-1
>Key @i@ = @a[i]@
storage.Incr(string, integer)
戻り値:integer
指定されたキーに保存されている値を指定された値分だけ増やし、その新しい値を返す。
使用例:
var amount
?foundCoins
amount = rng%5 + 5
storage.Incr("coins", amount)
storage.Set(string, value)
戻り値なし
指定されたキーに値を永続ストレージに保存する。
使用例:
var score = 1000
storage.Set("highscore", score)
string(文字列)
‾‾‾‾‾‾‾‾‾‾‾‾‾
string.Break(string, integer)
戻り値:array
指定された最大幅に基づいて、1つの文字列を複数の文字列に分割する。
使用例:
var s = "The brown fox jumps over the lazy dog"
var a = string.Break(s, 14)
for i = 0 .. a.Count()-1
>`0,@i@,@a[i]@
string.Capitalize(str)
戻り値:string
文字列の先頭の文字を大文字に変換する。
使用例:
var a = "foo"
a = string.Capitalize(a)
>@a@
(Prints "Foo")
string.Equals(str1, str2)
戻り値:boolean
2つの文字列を比較し、完全に一致していれば真、一致しなければ偽を返す。大文字と小文字は区別される。
使用例:
var a = "foo"
?string.Equals(a, "foo")
>完全一致
:
>完全不一致
// この場合、文字列は一致するのでstring.Equals()はtrueを返す
string.Format(str1, ...)
戻り値:string
フォーマットテンプレートを後続の引数の値に置き換え、最終的に構成された文字列を返す。多くのフォーマットオプションに対応している。
使用例:
var str = "私の名前は{0}です。{1}のパワーを持っています!"
var result = string.Format(
^ str,
^ player.name,
^ totalgp
^)
>@result@
string.IndexOf(str, criteria)
戻り値:integer
文字列変数strの中から、検索文字列criteriaの位置を探す。見つからなければ-1を返す。
使用例:
var a = Hello World!
var index = string.IndexOf(a, llo)
// indexの値は2になる
string.IndexOf(str, criteria, startAt)
戻り値:integer
文字列変数strの中から、検索文字列criteriaを、開始位置startAtから探す。見つからなければ-1を返す。
使用例:
var a = Hello World!
var index = string.IndexOf(a, llo, 4)
// indexの値は-1となる。検索開始位置が4であるため、'llo'は見つからなかった。
string.Join(s, [])
string.Join(s, [], int)
string.Join(s, [], int,int)
戻り値:string
文字列の配列[]を、区切り文字sで1つの文字列に結合する。任意で、結合を開始するインデックス結合する要素数を指定する整数パラメータを渡すことができる。これらのパラメータを省略した場合は、配列全体が結合される。
使用例:
var a = ["Hello", "World", "!"]
var b = string.Join(";", a)
>`0,0,@b@
// "Hello;World;!"と表示される

使用例2:
var a = ["Hello", "World", "!"]
var b = string.Join(";", a, 1)
>`0,0,@b@
// "World;!"と表示される

使用例3:
var a = ["Hello", "World", "!"]
var b = string.Join(";", a, 0, 2)
>`0,0,@b@
// "Hello;World"と表示される
string.Size(str)
戻り値:integer
文字列変数をパラメータとして受け取り、その文字列の長さ(文字数)を計算する。
使用例:
var a = Hello World!
var size = string.Size(a)
>size = @size@
string.Split(str)
string.Split(str, s…)
string.Split(str, s…, bool)
string.Split(str, bool)
戻り値:array
文字列を受け取り、区切り文字s…に従って文字列の配列に分割する。区切り文字が指定されていない場合は、空白があるところで分割される。任意の真偽値パラメータは、空のエントリを破棄するかどうかを指定する。
使用例:
var a = string.Split("Hello World !")
for i = 0 .. a.Count()-1
>`0,@i@,[@i@] = @a[i]@
// 分割された文字列: "Hello", "World", "!"

使用例2:
var a = string.Split("Hello World !", " ", "l")
for i = 0 .. a.Count()-1
>`0,@i@,[@i@] = @a[i]@
// 分割された文字列: "He", " ", "o", "Wor", "d", "!"

使用例3:
var a
a = string.Split("Hello World !","l","r",true)
for i = 0 .. a.Count()-1
>`0,@i@,[@i@] = @a[i]@
// 分割された文字列: "He", "o Wo", "d !"
string.Sub(str, startAt)
戻り値:string
文字列変数から、開始位置以降の文字列を抽出する。
使用例:
var a = Hello World!
var subString = string.Sub(a, 6)
>substring = @subString@
// subStringは"World!"になる
string.Sub(str, startAt, length)
戻り値:string
文字列変数から、開始位置以降の文字列から指定された文字数分のみを抽出する。
使用例:
var a = Hello World!
var subString = string.Sub(a, 6, 3)
>substring = @subString@
// subStringは"Wor"になる
string.ToLower(str)
戻り値:string
文字列内のすべての文字を小文字に変換する。
使用例:
var a = "Foo"
a = string.ToLower(a)
>@a@
// 画面に"foo"が表示される
string.ToUpper(str)
戻り値:string
文字列内のすべての文字を大文字に変換する。
使用例:
var a = "Foo"
a = string.ToUpper(a)
>@a@
// 画面に"FOO"が表示される
sys
‾‾‾
(sys名前空間は現在、意図した通りに機能していません)
sys.cacheRemoteFiles
boolean
リモートからインポートされたファイルを、実行時にキャッシュするかどうかを示す。デフォルトはtrue。falseに設定すると、エリア画面からプレイ開始する際にリモートスクリプトが再ダウンロードされる。リモートで展開される新しいスクリプトの開発や反復作業中にこれを変更すると便利。このグローバルプロパティは実行間で保持される。
使用例:
// 上キーを押してリモートキャッシュをオン/オフにする
?key = upBegin
sys.cacheRemoteFiles = !sys.cacheRemoteFiles
?sys.cacheRemoteFiles
>リモートキャッシュ 有効
:
>リモートキャッシュ 無効
sys.fileUrl
string (取得専用)
スクリプトのインポート時に使用される現在のファイルパスを取得するためのゲッター。デフォルト値はデバイスによって異なり、PCではlocal、モバイルではhttps://StonestoryRPG.com/stonescript/となる。
使用例:
>`0,1,fileUrl = @sys.fileUrl@
sys.SetFileUrl(str)
戻り値なし
importまたはnewコマンドでインポートする際の、元のファイルパスを変更する。明瞭の石でのみ呼び出すことができ、インポートされたスクリプトに書かれている場合はエラーになる。任意のURLをリモート場所として受け付けるが、ローカルドライブを指す"local"および公式Stone Story RPGリポジトリを指す"remote"という値もショートカットとして対応している。パラメータにnullが渡されると、ファイルURLはデバイスのデフォルト値にリセットされる。このグローバルプロパティは実行間で保持される。
使用例:
sys.SetFileUrl(
^"https://MyCoolDomain.com/scripts/")
import MyCombatScript
sys.MindConnect()
戻り値なし
(実験的機能) 明瞭の石にsys.MindConnect()だけが記述されている場合にのみ動作する。他のプログラム(Pythonスクリプトなど)からの接続を待つインターフェイスを有効にする。接続されると、外部プログラムがStonescriptコマンドを実行したり、ゲーム状態の変数を評価することができるようになる。
詳細はこちら:
https://github.com/artificial-potato/SSRPGInterface
sys.isMobile
戻り値:bool
ユーザーがAndroidまたはiOSを使用している場合にtrueを返す。
sys.isPC
戻り値:bool
ユーザーがWin/Mac/Linuxを使用している場合にtrueを返す。
sys.os
戻り値:string
ユーザーのオペレーティングシステムを返す。例えば"Android"、"iOS"、"Linux"、"OSX"、"Windows"などがある。
テキストのローカライズ
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Stonescriptは、現時点で12言語に対応しています。いくつかの操作により、カスタムスクリプトがプレイヤーの選択した言語に適応させることができます。
te.language
string
プレイヤーが設定で選択した言語のコード。
使用可能値:EN PT-BR ZH-CN ZH-TW FR DE RU ES-LA ES-EU JP KR TK
使用例:
var lang = te.language
>言語 = @lang@
te.xt(str)
戻り値:string
指定された英語のテキストを、プレイヤーの選択した言語に翻訳する。翻訳版が見つからない場合は、入力されたテキストがそのまま返される。また、テキスト識別子(TID)を入力として使うこともできるが、TIDの詳細なリストはマニュアルの範囲外である。
使用例:
var button = ui.AddButton()
button.text = te.xt(Play)
// 設定で言語を変更すると、この例の動作を確認できる
te.GetTID(str)
戻り値:string
指定されたテキストのテキスト識別子(TID)を返す。入力テキストは、プレイヤーが選択した言語であることが前提である。
使用例:
var tid = te.GetTID("Play")
>`0,1,@tid@
// tid_button_playが画面に表示される
te.ToEnglish(str)
戻り値:string
プレイヤーが選択した言語のテキストを、元の英語のテキストに翻訳する。翻訳版が見つからない場合は、入力されたテキストがそのまま返される。
使用例:
>`0,1,@te.ToEnglish("Jogar")@
// 言語設定がポルトガル語の場合は"Play"と表示され、
// そうでなければ"Jogar"と表示される。
time(時間)
‾‾‾‾‾‾‾‾‾
time.FormatCasual(int)
time.FormatCasual(int,bool)
戻り値:string
フレーム数を、"1分 23秒"のような人間が読みやすい時間表現に変換する。第2パラメータは任意であり、trueを指定すると結果の制度が最大化される。
使用例:
>`0,0,現在の時間 =
^ @time.FormatCasual(totaltime, true)@
time.FormatDigital(int)
time.FormatDigital(int,bool)
戻り値:string
フレーム数を、"1:23"のような人間が読みやすいデジタル時計風の時間表現に変換する。第2パラメータは任意であり、trueを指定すると結果の制度が最大化される。
使用例:
>`0,0,現在の時間 =
^ @time.FormatDigital(totaltime, true)@
UI
‾‾

ここはui名前空間のその他の関数についての説明です。Stonescriptの高度なUIシステムに関する詳細はユーザーインターフェイスセクションを参照してください。
ui.OpenInv()
戻り値なし
インベントリ画面を開く。
ui.OpenMind()
戻り値なし
明瞭の石を開く。
ui.ShowBanner(str)
ui.ShowBanner(str,str)
戻り値なし
最大2つのメッセージを含むアニメーションバナーを表示する。ui.ShowBanner()が呼び出されるたびにバナーのアニメーションは再起動される。
使用例:
?time = 120
ui.ShowBanner("Hello World!")
その他
‾‾‾‾‾
Type(var)
戻り値:string
変数の型を評価し、その型を文字列表現として返す。使用可能な型には、'string' 'int' 'bool' 'function' 'object' 'null'が含まれる。
使用例:
var a = 0
?Type(a) = int
>変数'a'は整数型です。
トップへ戻る
·:·:· 外部スクリプトのインポート ·:·:· スクリプトをすべて明瞭の石に記述する必要はありません。Stonescriptでは、'import'と'new'キーワードを使用して外部ファイルの読み込むことが可能です。外部スクリプトを機能させるには、セーブファイルのフォルダ内にある/Stonescriptフォルダ内に配置され、'.txt'形式で終わる必要があります。 最も基本的な例では、外部スクリプトをインポートして実行すると、それが明瞭の石に直接記述されているかのように動作します。これはスクリプトを整理する便利な方法です。 import Rocky import Deadwood import Caves import Forest スクリプトがインポートされると、独自のコンテナにコピーされ、参照として返されます。外部スクリプトで宣言された変数は分離されており、他のスクリプト内の変数とは干渉しません。次の例では、実用的な表示スクリプトを簡略化したものを提供します。 // PrintUtil.txt func LowerLeft(x, y, color, message) y = y + screen.h >`@x@,@y@,@color@,@message@ func LowerRight(x, y, color, message) x = x + screen.w y = y + screen.h >`@x@,@y@,@color@,@message@ // 明瞭の石のメインスクリプト var print = import PrintUtil disable hud print.LowerLeft(0,-1,#ffffff,"Health: " + hp) 高度な使い方として、'new'コマンドを使用すると同じスクリプトを複数回インポートできます。これにより、コンポーネント化やオブジェクト指向の設計を取り入れることも可能です。 // Vector.txt var x = 0 var y = 0 func init(_x, _y) x = _x y = _y func subtract(otherVect) x = x - otherVect.x y = y - otherVect.y // 明瞭の石のメインスクリプト var vectFrom = new Components/Vector var vectTo = new Components/Vector vectFrom.init(5, 4) vectTo.init(8, 2) vectTo.subtract(vectFrom) >x = @vectTo.x@, y = @vectTo.y@ 外部スクリプトに'ToString()'関数を実装することで、高度な表示コマンドで直接利用できるようになります。 // Vector.txt var x = 0 var y = 0 func init(_x, _y) x = _x y = _y func ToString() return "(" + x + ", " + y + ")" // 明瞭の石のメインスクリプト var v = import Components/Vector v.init(3,5) >Vector = @v@ 外部スクリプトは、サブフォルダからでもインポートできます。 import Games/Blackjack import Cosmetics/PetFrog import Cosmetics/Hats 'import'と'new'は似ていますが、2つの重要な違いがあります。'import'では、毎回同じオブジェクトが返されます。同じスクリプトを複数の場所からインポートすると、すべて同じオブジェクトを使用することになります。一方で、'new'でインポートされたスクリプトは一意のコピーになりますが、そのスクリプトは毎フレームではなく、1回だけ実行されます。 トップへ戻る
·:·:· アスキーアート ·:·:· Stonescriptでは、アスキーアートを自作してスクリプト内に組み込み、高度な表示で画面に描画することができます。これにはいくつかの方法があり、一部の文字は特別な動作を持っています。 # - 空白。透明。描画しない。 \n - 改行。描画を次の行に続ける。注意:これはコストのかかる演算子であり、大規模な線画には使用しないでください。代わりに、ascii/asciiend で線画を囲んでください。 メソッド 1 - 高度な表示 次の例では、画面の左上に緑の円を描画しています。 >`1,0,#green,ascii #.-. ( ) #`-´ asciiend メソッド 2 - 変数 次の例では、不気味な魚の絵を変数に格納し、画面左上に赤い色で描画しています。 var fishSprite fishSprite = ascii ###(°_## #_/_ o\# #´ `'"# asciiend >`0,3,#red,@fishSprite@ トップへ戻る
·:·:· ループ ·:·:· ループは、特定のコードを繰り返し実行するために使用されます。ループを作成するには、'for'を使用します。基本形式は次の通りです。 for v = a..b 変数'v'は値'a'からループを開始し、'b'に達するまで値を増やし、ループが終了します。 for i = 1..5 >`0,@i@,i = @i@ ループ変数'v'は'for'の前に宣言してはならず、ループのスコープに含まれています。ただし、開始値'a'と終了値'b'はループの前に宣言できます。 var min = 1 var max = 4 var sum sum = 0 for j = min..max sum = sum + j >sum = @sum@ ループは、逆方向に進むことも、負の数を使用することもできます。 var g g = "" for k = 5..-2 g = g + k >g = @g@ ループは互いに入れ子にすることも、複雑なアルゴリズムを形成するために数式とインライン化することもできます。 for x = 1..9 for y = x/2 .. x/2 + 6 >`@x@,@y@,* ループを早期に抜け出すには、ループ変数を範囲外にするように変更します。 var n n = "" for i = 1..5 ?i = 3 i = -1 n = n + i >n = @n@ 同様に、breakコマンドを使用してループから抜け出すこともできます。 for i = 1..5 ?i = 3 break ループはcontinueもサポートしています。呼び出されると、continue以下の命令は無視され、ループが続行します。 var n n = "" for i = 1..5 ?i = 3 continue n = n + i >n = @n@ 次の形式を使用して、配列の要素をループすることができます。 var a = [1, 2, 3] var n n = "" for value : a n = n + value >n = @n@ トップへ戻る
·:·:· 配列 ·:·:· 配列は、特別な変数です。値やオブジェクトを1つの変数に代入し、順次に整理する手段を提供します。
操作
----
説明
----
a = [] 配列を新たに作成し、初期化する。詳細は以下を参照。
a[integer] 指定した位置の値を読み取る。
使用例:
var myArray = [10, 3]
?myArray[1] = 3
>はい、[1]の位置の値は3です
a.Add(value) 新しい値/オブジェクトを配列の末尾に追加する。
使用例:
var myArray = []
myArray.Add(10)
a.Clear() 配列からすべての要素を削除し、空にする。配列を[]で再宣言するよりも効率的。
使用例:
var myArray = [10, 3]
myArray.Clear()
a.Contains(value) 指定された値が配列内に存在するかどうかを判断する。見つかれば真を、見つからなければ偽を返す。
使用例:
var myArray = [10, 3]
?myArray.Contains(3)
>存在します
a.Count() 配列の要素の数を返す。
使用例:
var myArray = ["apple","banana"]
var size = myArray.Count()
>配列のサイズ = @size@
a.Emplace(integer, value) 指定された位置の値を新しい値に置き換える。
使用例:
var myArray = [10, 3]
myArray.Emplace(0, 4)
var value = myArray[0]
>[0]位置の値は@value@になりました
a.IndexOf(value) 配列内で指定された値を検索する。値が最初に出現した位置を示す整数を返す。値が見つからない場合は-1を返す。
使用例:
var myArray = [10, 3]
var index = myArray.IndexOf(3)
>@index@番目の位置に存在します
a.Insert(integer, value) 新しい値/オブジェクトを配列の指定された位置に追加する。右側の要素は次の位置に移動します。
使用例:
var myArray = [10, 3]
myArray.Insert(1, "apple")
// 配列は[10, "apple", 3]になります
a.RemoveAt(integer) 指定された位置の配列の要素を削除する。削除された値を返す。
myArray.RemoveAt(0)は最初の要素を削除する。
右側の要素は前の位置に移動する。
使用例:
var myArray = [1, 2, 3]
myArray.RemoveAt(1)
// 配列は[1, 3]になります
a.Sort() 配列の要素を昇順に整理する。配列に異なる型のオブジェクトが含まれていてもソートされるが、期待される結果が定義されず、要素が型ごとにグループ化される保証はされない。
使用例:
var myArray = ["Cherry", 2, "Apple", 1, true, false, "Banana", 3]
var value

myArray.Sort()

for i = 0 .. myArray.Count() - 1
value = myArray[i]
>`0,@i@,@value@
以下は、配列を初期化して使用するさまざまな方法を紹介します。 var emptyCollection = [] var magicNumbers = [10, 3, 0, 15, -7] var someStrings = ["apple", "banana", "cherry"] var sameButMultiLine = [ "apple", "banana", "cherry", ] var redeclaredEachFrame redeclaredEachFrame = [] // PCに適していない var clearedEachFrame = [] clearedEachFrame.Clear() // CPUとメモリにやさしい var clearedEachLoop = [] ?loc.begin | loc.loop clearedEachLoop.Clear() var multiDimensional = [[], [], []] var objectCollection = [ new Components/Float, new Components/Float, new Components/Vector, ] var animationFrames = [ascii ───┼ O/ /| / \ asciiend ^,ascii ---. O \ /|\┼─── / \ asciiend ^] 配列のループ処理 var myArray = ["Apple", "Banana", "Cherry"] var count var value count = myArray.Count() ?count > 0 for i = 0 .. count - 1 value = myArray[i] >`0,@i@,@value@ // 上記の例では、フルーツの名前を画面の左側に表示します 多次元配列のアクセス var a = [[1,2], [3,4]] var value value = a[1][0] >(1, 0)の位置で値@value@を見つけました
トップへ戻る
·:·:· 入力のカスタマイズ ·:·:· Stonescriptは、ゲームの状態?keyを使用してプレイヤーの入力を読み取ることができます。これはAIの異なるモードなど、高度な動作を制御するのに使用できますが、入力をカスタマイズするとStone Storyの上のレイヤーにまったく新しい体験を作成することができます。 次の例では、@記号を古き良きローグライクゲームの主人公のように画面上を移動できます。キーコード(leftBeginなど)は、キーの押し始めを意味します。 var x = 0 var y = 0 ?key = leftBegin x-- ?x < 0 x = 0 ?key = rightBegin x++ ?key = upBegin y-- ?y < 0 y = 0 ?key = downBegin y++ >`@x@,@y@,#ffffff,@ 利用可能なキーコード表
ホールド
-------
キーを押す
---------
キーを離す
---------
デフォルトキー
------------
left leftBegin leftEnd A または ←
right rightBegin rightEnd D または →
up upBegin upEnd W または ↑
down downBegin downEnd S または ↓
primary primaryBegin primaryEnd 左クリックまたはEnter
back backBegin backEnd X
ability1 ability1Begin ability1End Shift
ability2 ability2Begin ability2End Ctrl
bumpL bumpLBegin bumpLEnd Z
bumpR bumpRBegin bumpREnd C
トップへ戻る
·:·:· ユーザーインターフェース ·:·:· ボタン、テキスト、アニメーションなどなど、Stonescriptは複雑なレイアウトと高性能なユーザーインターフェイスを構築するシステムを提供します。デフォルトでは、システムの基盤に見えない"root(ルート)"パネルが存在します。このルートパネルに、他のパネルやUI要素を追加することでツリー構造を形成します。すべての要素は、追加された順序ですべての要素が1度に描画されます。 root │ ├─ Panel │ ├─ Text │ ├─ ASCII-art │ └─ Button │ ├─ Panel │ ├─ Panel | | └─ Text ...
UI
‾‾
ui名前空間の関数を呼び出してインターフェイスを構築します。
ui.root
Panel
UIツリー全体を構築する基盤となるUIオブジェクト。
使用例:
disable hud
ui.root.visible = true
ui.AddAnim(string)
戻り値:Anim
ルートパネルにアニメーション(Anim)オブジェクトを追加する。
使用例:
?loc.begin
ui.AddAnim(ascii
\o)
%%
(o/
asciiend)
ui.AddButton()
戻り値:Button
ルートパネルにボタン(Button)オブジェクトを追加する。
使用例:
func OnPressed()
> Hello World!

?loc.begin
var button = ui.AddButton()
button.y = 1
button.text = Press me
button.SetPressed(OnPressed)
ui.AddPanel()
戻り値:Panel
ルートパネルにパネル(Panel)オブジェクトを追加する。パネルはほかの要素を格納するための重要なコンテナ型オブジェクト。
使用例:
?loc.begin
var p = ui.AddPanel()
p.color = #red
ui.AddStyle()
戻り値:int
四角形の要素(パネルやボタンなど)の描画に使用できる新しいスタイルを追加する。新しいスタイルID番号を返す。同じスタイルが複数回追加されないように保護されており、その場合は何も変更されず、同じIDが返される。異なるスクリプトが ui.AddStyle() を呼び出す可能性があるため、スクリプトにスタイル番号をハードコーディングする代わりに、IDを変数として保存することを推奨する。
使用例:
var customStyle = ui.AddStyle("
^123
^456
^789")
?loc.begin
var p = ui.AddPanel()
p.style = customStyle
ui.AddText()
ui.AddText(string)
戻り値:Text
ルートパネルにテキスト(Text)オブジェクトを追加する。
使用例:
?loc.begin
var t = ui.AddText()
t.text = "Hello World!"
ui.Clear()
戻り値なし
メインコンテナからすべてのUI要素を削除する。
使用例:
?key = backBegin
ui.Clear()

Component
‾‾‾‾‾‾‾‾‾

コンポーネントはすべてのUIタイプの基本型です。他の要素(パネル、テキスト、ボタン、アニメーション)はすべて以下のプロパティを持っています。
component.x
integer
コンポーネントのX座標。親要素の位置を基準とした相対位置。
component.y
integer
コンポーネントのY座標。親要素の位置を基準とした相対位置。
component.w
integer
コンポーネントの幅。デフォルト値はオブジェクトの種類によって異なる。
使用例:
button.w = string.Size(button.text) + 4
// ボタンを現在のテキストに合わせた幅に設定 (両側に+2)
component.h
integer
コンポーネントの高さ。デフォルト値は5。
使用例:
panel.h = panel.parent.h
// パネルの高さを親パネルの高さに設定
component.absoluteX
component.absoluteY
integer
読み取り専用
スクリーン全体を基準にしたコンポーネントの相対位置。
使用例:
var t
?loc.begin
var p = ui.AddPanel()
p.anchor = bottom_right
p.dock = bottom_right
t = ui.AddText("Foo")
p.Add(t)
`0,1,相対位置 = @t.x@,@t.y@
>`0,2,絶対位置 = @t.absoluteX@,@t.absoluteY@
component.anchor
string
コンポーネントの内部の配置基準を表す自動レイアウトプロパティ。これは、自身に対してどのように配置するかをUIシステムに指示する。デフォルト値は"center_center"。使用可能値:'top_left' 'top_center' 'top_right' 'center_left' 'center_center' 'center_right' 'bottom_left' 'bottom_center' 'bottom_right'
component.dock
string
anchorに似た自動レイアウトプロパティ。ただし、dockは外部の配置基準、親コンテナ内でどのように配置するかを表す。よくわからない場合は、anchordockに同じ値を使用すること。
使用例:
?loc.begin
var p = ui.AddPanel()
p.anchor = top_right
p.dock = top_right
p.w = 20
p.h = 9
var t = ui.AddText("HelloWorld!")
t.anchor = left_bottom
t.dock = bottom_left
t.x = 2
t.h = t.lines.Count() + 1
p.Add(t)
component.ax
string
anchorのX部分。使用可能値:'left' 'center' 'right'
component.ay
string
anchorのY部分。使用可能値:'top' 'center' 'bottom'
component.dx
string
dockのX部分。使用可能値:'left' 'center' 'right'
component.dy
string
dockのY部分。使用可能値:'top' 'center' 'bottom'
使用例:
var p
?loc.begin
p = ui.AddPanel()
p.ax = right
p.ay = top
p.dx = right
p.dy = top
component.parent
Panel
読み取り専用
コンポーネントの親パネルの参照。コンポーネントがパネルに追加されなかった場合、ルートパネルを参照する。panel.Add(component)が呼び出されると、親が変更される。
component.visible
multi type
bool/string
コンポーネントの表示状態。デフォルト値は"inherit"。使用可能値:'true' 'false' 'inherit' 'true'に設定すると、親の状態に関係なく表示する。'false'に設定すると、親の状態に関係なく非表示になる。'inherit'に設定すると、親の表示状態と連動する。
component.Recycle()
戻り値なし
親パネルからコンポーネントを削除する。ui.Add_()の呼び出しで再利用される。バグを避けるために、リサイクルされた要素への変数参照はすべてnullにするか、再割り当てする必要がある。

Panel > Component
‾‾‾‾‾

パネルは四角形のコンポーネントで、他のコンポーネントを格納するコンテナとして機能します。複数のパネルを親子関係で連鎖することで、ツリー構造を形成します。
panel.children
Component[]
panel.Add()でそのパネルに追加された子コンポーネントが格納された配列。
panel.clip
bool
パネルの範囲外で、子コンポーネントの描画を制限するかどうかを示す。真の場合、子コンポーネントが範囲外にはみ出した部分は描画されない。
使用例:
var p
?loc.begin
p = ui.AddPanel()
p.w = 4
p.h = 3
var t = ui.AddText("The quick brown fox jumps
^ over the lazy dog.")
p.Add(t)

?time%30 < 15
p.clip = true
:
p.clip = false
panel.color
string
パネルの枠の色を設定する。色はRGB16進数で指定する。
panel.style
int
パネルの現在のスタイルID。デフォルト値は1で、-8から8までの値を指定することができる。スタイルはui.AddStyle()で新たに追加することができる。
panel.Add(Component)
panel.Add(Component, int)
戻り値なし
パネルにコンポーネントを追加する。追加されたコンポーネントはパネルの子になり、パネルはその親になる。コンポーネントは追加された順に描画する。任意の整数パラメータを指定することで、特定の順序に挿入することもできる。指定されていない場合、パネルの最後の子要素として追加される。すでにパネルの子であるコンポーネントの描画順序を変更するためにも使用できる。
panel.Clear()
戻り値なし
パネルに追加されたすべてのUI要素を削除する。削除された要素はUIシステムに戻され、ui.Add_()の呼び出しで再利用される。バグを避けるために、削除された要素への変数参照はすべてnullにするか、再割り当てする必要がある。
panel.Remove(Component)
panel.Remove(int)
戻り値なし
パネルから指定したコンポーネントを削除する。また、インデックス番号を指定することで削除することもできる。削除された要素はUIシステムに戻され、ui.Add_()の呼び出しで再利用される。バグを避けるために、削除された要素への変数参照はすべてnullにするか、再割り当てする必要がある。

Text > Component
‾‾‾‾

複数行のテキストボックスを作成します。カラーメタデータをサポートしています。
text.align
string
ボックス内のテキストの配置/整列を設定する。デフォルト値は"left"。使用可能値:'left' 'center' 'right'
text.color
string
テキストの色を設定する。色はRGB16進数で指定する。
text.lines
string[]
テキストボックスの内容が行ごとに分解された配列。カラーメタデータは除外される。
text.text
string
テキストボックスの全内容。一部のテキストをメタデータ[color=#rrggbb][/color]で色付けすることができる。
使用例:
?loc.begin
var t = ui.AddText()
t.text = "Hello [color=#red]World[/color]!"

Button > Component
‾‾‾‾‾‾
button.text
string
ボタン内に表示されるテキストを設定する。
使用例:
button.text = player.name
// プレイヤー名をボタンに表示!
button.tcolor
string
ボタン内のテキストの色を設定する。色はRGB16進数で指定する。
使用例:
button.tcolor = #ff0000
// ボタンテキストを赤に設定
button.bcolor
string
ボタンの枠の色を設定する。色はRGB16進数で指定する。
使用例:
>@button.bcolor@
button.bcolor = #880000
// ボタンの枠の現在の色を表示し、暗めの赤に設定する
button.hcolor
string
ボタンが押された時のハイライト色を設定する。色はRGB16進数で指定する
使用例:
?loc.begin
var b = ui.AddButton()
b.hcolor = #yellow
button.sound
string
ボタンが押された時に再生される効果音を設定する。デフォルトは"confirm"。
使用例:
button.sound = buy
// ボタンが押された時に購入時の効果音が再生されるように変更する
button.style
int
ボタンの現在のスタイルID。デフォルト値は1で、-8から8までの値を指定することができる。スタイルはui.AddStyle()で新たに追加することができる。
button.SetPressed(f)
function callaback
ボタンが押されたときに実行される関数を指定する。関数は任意の数のパラメータを持つことができる(パラメータがない場合も含む)。関数が呼ばれると、最初のパラメータはボタンへの参照になる。
使用例:
var button1
var button2
func OnPressed(btn)
?btn = button1
>Button1が押されました
:
>Button2が押されました

?loc.begin
button1 = ui.AddButton()
button1.y = 1
button1.SetPressed(OnPressed)

button2 = ui.AddButton()
button2.y = 6
button2.SetPressed(OnPressed)
button.SetDown(f)
function callaback
ボタンを押し始めたとき(最初に接触した瞬間)に実行される関数を指定する。
button.SetUp(f)
function callaback
ボタンを押し終わったとき(最後の接触が終わった瞬間)に実行される関数を指定する。
使用例:
func OnDown()
> ボタンが押された!

func OnUp()
> ボタンが離れた!

?loc.begin
var button = ui.AddButton()
button.y = 1
button.text = ボタンを押してくれ
button.SetDown(OnDown)
button.SetUp(OnUp)

Anim > Component
‾‾‾‾

アスキーアートのスプライトシートアニメーションをUIに追加します。
anim.color
string
アニメーションの色を設定する。色はRGB16進数で指定する。
anim.duration
int
アニメーションの長さをフレーム単位で指定する。
anim.flipX
bool
真の場合、アニメーションが水平方向に反転する。
anim.flipY
bool
真の場合、アニメーションが垂直方向に反転する。
anim.frame
int
現在表示されているアニメーションフレーム。指定したフレームを表示することもできる。
anim.gamePause
bool
真の場合、ゲームが一時停止したときにアニメーションも自動的に停止し、ゲームを再開するとアニメーションも再生する。
anim.loop
bool
真の場合、アニメーションの再生時間が終了した直後に最初から再スタートする。
anim.playing
bool
読み取り専用
アニメーションが再生中であれば真となる。
anim.paused
bool
読み取り専用
アニメーションが再生中で、anim.Pause()の呼び出しで一時停止されている場合に真となる。
anim.pivotX
anim.pivotY
int
アスキーアートの描画位置の中心点を微調整できる、追加のオフセット。
anim.playOnStart
bool
真の場合、アニメーションはできるだけ早く再生を開始する。
anim.AddLayer(string)
戻り値:Anim
現在のアニメーションの上に、新しいアスキーアートのレイヤーを追加する。アニメーションが再生する(またはanim.frameでフレームが変更する)と、全てのレイヤーが同期される。各レイヤーには色や中心点の調整などのプロパティがある。アニメーションレイヤーには、複雑なアスキーアートのパフォーマンスやコードの品質の向上という利点がある。アニメーションがリサイクルされると、すべてのレイヤーが同時にクリーンアップされる。
使用例:
var a = ui.AddAnim(asciiArtA)
var layer2 = a.AddLayer(asciiArtB)
layer2.color = #bbbbbb
anim.Load(string)
戻り値なし
新しいアスキーアートのスプライトシートを割り当てる。
anim.Pause()
戻り値なし
再生中のアニメーションを一時停止する。anim.Play()を呼び出すと再開できる。
anim.Play()
戻り値なし
アニメーションの再生を開始する。一時停止の場合は再生を再開する。
使用例:
var dance
?loc.begin
dance = ui.AddAnim(ascii
(O/
%%
\O)
asciiend)
dance.duration = 20
dance.loop = true
dance.Play()
anim.Stop()
戻り値なし
アニメーションの再生を停止し、最初のフレームに戻す。

Canvas > Component
‾‾‾‾‾‾

任意の文字や記号と、色を描画するために最適化されたコンテナ。
canvas.blend
string
キャンバスのブレンドモード。前景と背景の要素の合成方法を設定する。デフォルトは"opaque"。使用可能値:'Opaque'(不透明) 'Multiply'(乗算) 'Divide'(除算) 'Add'(加算) 'Subtract'(減算)
使用例:
var filter1 = ui.AddCanvas()
var filter2 = ui.AddCanvas()
filter1.w = screen.w
filter1.h = screen.h
filter2.w = screen.w
filter2.h = screen.h

filter1.blend = multiply
filter1.SetFG(#aa5555)
filter1.SetBG(#dddddd)

filter2.blend = add
filter2.SetFG(#aa6600)
filter2.SetBG(#662200)
canvas.Get(int,int)
戻り値:string
キャンバス上の指定した位置(x,y)にある文字を返す。
canvas.Set(str)
戻り値なし
キャンバス全体を指定した文字で塗りつぶす。
使用例:
?loc.begin
var canvas = ui.AddCanvas()
canvas.Set("X")
canvas.Set(int,int,str)
戻り値なし
キャンバス上の指定した位置(x,y)を指定された文字に変更する。
使用例:
?loc.begin
var canvas = ui.AddCanvas()
canvas.Set(0, 0, "A")
canvas.Set(int,int, fg,str)
canvas.Set(int,int, fg,bg,str)
戻り値なし
指定した位置のキャンバスや文字を変更し、同時に前景色と背景色を設定するためのオーバーロード。
使用例:
?loc.begin
var canvas = ui.AddCanvas()
for x = 0..canvas.w
for y = 0..canvas.h
var fg = color.Random()
var bg = color.Random()
canvas.Set(x, y, fg, bg, ▄)
canvas.SetFG(color)
戻り値なし
キャンバス全体の前景色を設定する。
使用例:
?loc.begin
var canvas = ui.AddCanvas()
canvas.Set("R")
canvas.SetFG(#red)
canvas.SetFG(int,int, color)
戻り値なし
キャンバス上の指定した位置(x,y)の前景色を設定する。
使用例:
?loc.begin
var canvas = ui.AddCanvas()
canvas.Set("X")
canvas.SetFG(2, 1, #ff00ff)
canvas.SetBG(color)
戻り値なし
キャンバス全体の背景色を設定する。
使用例:
?loc.begin
var canvas = ui.AddCanvas()
canvas.Set("g")
canvas.SetBG(#00aa00)
canvas.SetBG(int,int, color)
戻り値なし
キャンバス上の指定した位置(x,y)の背景を設定する。
使用例:
?loc.begin
var canvas = ui.AddCanvas()
canvas.Set("X")
canvas.SetBG(2, 1, #yellow)
トップへ戻る
·:·:· ヒント ·:·:· スペース(インデント)は重要です。'?'比較の結果として実行される処理を定義する際、インデントがスコープ(範囲)を決定します。 実行中のスクリプトは、キーボードの'M'キーを押すと編集することができます。 明瞭の石の右上には電源ボタンがあり、スクリプトのオンオフを切り替えることができます。 複数のequipコマンドが呼び出された場合、最後に記述されたものが実行されます。 スクリプトは1秒あたり30回(1フレームごとに1回)実行されます。 異なるスクリプトを試す際は、メモ帳などの外部テキストエディタにコピーすることをおすすめします。 Ctrl+A(全選択)、Ctrl+C(コピー)、Ctrl+V(ペースト)といった一般的なショートカットが役に立ちます。 ゲーム内でTabキーを押し続けると、ゲームの状態に関する多くの情報が表示され、直近のStonescriptのエラーの一覧も確認できます。 表示コマンドでテキストを複数行に分割するには、テキスト内で'\n'を使用します。 トップへ戻る
·:·:· デフォルトスクリプト ·:·:· import UI/MindstoneButton ?hp < 7 activate potion ?loc = caves equipL sword equipR shield ?foe = boss equip crossbow トップへ戻る
·:·:· おまけ - アイテム能力のクールダウンID ·:·:·
アイテム
-------
クールダウンID
------------

エーテルのお守り "talisman_aether"
バルディッシュ "bardiche"
ツッコミシールド "bash"
堕神の剣 "blade"
燃えカス "cinderwisp"
カルト団員のマスク "mask"
ダッシュの盾 "dash"
火のお守り "talisman_fire"
手斧 "hatchet"
ヘビーハンマー "heavy_hammer"
明瞭の石 "mind"
六尺棒 "quarterstaff"
ガイコツの腕 "skeleton_arm"
虚無織り "voidweaver"
災いの杖 "wand_aether"
爆発の杖 "wand_fire"
氷結の杖 "wand_ice"
疫病の杖 "wand_poison"
リセットの杖 "wand_vigor"
重力の杖 "wand_stone"
強欲の杖 "staff_aether"
地獄の杖 "staff_fire"
とこしえの杖 "staff_ice"
狂戦士の杖 "staff_poison"
防護の杖 "staff_vigor"
曲芸の杖 "staff_stone"
シャベル "shovel"
トップへ戻る
·:·:· おまけ - 効果音 ·:·:· Stonescriptは、カスタムロジックに基づいて、ゲーム内の効果音を再生することができます。 次の例では、プレイヤーが体力を失うたびに'unequip'という効果音が再生されます。 var lasthp = hp ?hp < lasthp play unequip lasthp = hp ほとんどの効果音には、ランダムまたは連続的に再生するバリエーションがあります。同じ効果音が、1フレーム内に再生された場合は無視されます。1秒間に5回以上再生された場合は効果音の再生が制限されます。 Stone Story RPGで利用できる効果音のフルリストは次の通りです。 acronian_cultist_power_up air_hiss ant_attack ant_death ant_hill ant_walk auggie_voice bang_go_forward bardiche_cast bat_attack bat_attack_small bat_death bat_death_small bat_wing bat_wing_small bearer3_talk bearer4_talk bearer4_talk_evolving bearer5_talk bearer_attack bearer_attack_hit bearer_death bearer_evolving bearer_scream bearer_stealing bearer_super_attack bell_ringer_attack bell_ringer_attack_hit blade_drag blade_glow blade_pallas_attack blade_raise bomb_cart_explosion bomb_cart_fuse bomb_cart_move boo_voice booklet_close booklet_open booklet_turn_page bronze_gate_close bronze_gate_locked bronze_gate_open bronze_guardian_attack1 bronze_guardian_attack2 bronze_guardian_attack3 bronze_guardian_attack4 bronze_guardian_death bronze_guardian_ears_ring bronze_guardian_fuse bronze_guardian_helmet bronze_guardian_power_up bronze_guardian_pulling_hammer bronze_guardian_removing_hammer bronze_guardian_steps bronze_guardian_turbine buy click confirm controller_death controller_whip_attack controller_whip_hit cross_deadwood_bump cross_deadwood_row cross_deadwood_splash crossbow_cast crossbow_hit cult_guard_attack cult_guard_attack_hit cult_marksman_attack cult_marksman_attack_hit cult_sorcerer_attack cult_sorcerer_attack_hit cultist_death devolved_talk dog_bark dominotaur_awake dominotaur_death dominotaur_whip_attack dominotaur_whip_hit dysangelos_guidance dysangelos_guidance_1 dysangelos_guidance_2 dysangelos_guidance_3 dysangelos_intro_talk elementalist_aether_attack elementalist_aether_attack_hit elementalist_aether_blink elementalist_death elementalist_evolving elementalist_fire_attack elementalist_fire_attack_hit elementalist_fire_blink elementalist_ice_attack elementalist_ice_attack_hit elementalist_ice_blink elementalist_poison_attack elementalist_poison_attack_hit elementalist_poison_blink elementalist_vigor_attack elementalist_vigor_attack_hit elementalist_vigor_blink epilogue_devolving epilogue_talk epliogue_player_evolves equip error falling_stonefolk fire_beast_1 fire_beast_2 fire_elemental_attack fire_elemental_attack_hit fire_elemental_awake fire_elemental_death fire_geyser fire_orbs first_controller fissure_break_apart fissure_unmake flying_serpent_loop frog ghost_attack ghost_attack_small ghost_death ghost_death_small ghost_loop ghost_loop_small ghost_tomb_death giant_ice_elemental_attack grappling_cast grappling_hit grappling_idle hammer_cast hammer_hit hans_scream hans_talk_intro hans_talk_reward hatchet_cast hatchet_hit haunted_gate_key_bounce_1 haunted_gate_key_bounce_2 haunted_gate_key_bounce_3 haunted_gate_key_into_gate haunted_gate_npc_voice haunted_gate_opening haunted_gate_point_lost haunted_gate_shuffle haunted_gate_shuffle_fast haunted_gate_torch_off haunted_gate_torch_on haunted_gate_try_to_open ice_elemental_attack ice_elemental_attack_hit ice_elemental_awake ice_elemental_death ice_pillar insta_kill key_drop ki_eater_attack ki_eater_attack_hit ki_eater_awake ki_eater_death ki_gobbler_attack ki_gobbler_attack_hit ki_gobbler_awake ki_gobbler_death ki_slerper_attack ki_slerper_attack_hit ki_slerper_awake ki_slerper_death ki_slerper_walk level_up life_gain logo_full logo_short lost_item_boost mask_summon_1 mask_summon_2 metal_drop mindstone_found mindstone_off mindstone_on mine_walker_attack_a mine_walker_attack_b mine_walker_attack_hit mine_walker_awake mine_walker_death mine_walker_helmet_break mine_walker_step morel_punch mosquito_attack mosquito_death mosquito_loop mushroom_boss_awake mushroom_boss_death mushroom_boss_fat_slam mushroom_boss_punch mushroom_boss_shoot mushroom_boss_split nagaraja_attack_eat nagaraja_attack_lick nagaraja_attack_swallow nagaraja_awake_roar nagaraja_awake_swallow nagaraja_awake_tongue_1 nagaraja_awake_tongue_2 nagaraja_choir nagaraja_dead nagaraja_poison_attack nagaraja_poison_attack_hit nagaraja_tongue_damaged nagaraja_tongue_lift nagaraja_tongue_smell nagaraja_tongue_wrap nagaraja_wail nagaraja_wail_brick open_note paint_splat pallas_voice perfected_attack perfected_attack_hit perfected_death perfected_defense perfected_energy_ball perfected_energy_ball_hit perfected_fly_end perfected_fly_loop perfected_fly_start perfected_summon perfected_talk pickup_bronze pickup_stone pickup_success pickup_tar pickup_wood player_death player_hit player_kick player_punch poison_adept_attack poison_adept_attack_hit poison_powerup potion_berserk potion_cleansing potion_defensive potion_experience potion_healing potion_invisibility potion_lightning potion_lucky potion_strength potion_vampiric progress_1 progress_2 progress_3 progress_4 progress_5 progress_6 progress_7 progress_8 progress_9 prompt_choice quarterstaff_cast quest_stone_jump quest_stone_unlock ranting_tree_halt ranting_tree_talk_again ranting_tree_talk_avenge ranting_tree_talk_extra ranting_tree_talk_get_out ranting_tree_talk_halt ranting_tree_talk_how_dare ranting_tree_talk_impressive ranting_tree_talk_very_well scarab_awake scarab_bite scarab_death scarab_horn scarab_wings scorpion_death scotty_a_pleasure scotty_a_worthy_opponent scotty_deuced scotty_failte_back scotty_getting_good scotty_grr scotty_guess_which scotty_hell_be_back scotty_intro scotty_lets_harden scotty_make_ye_guess scotty_noo_jist scotty_out_of_treasure scotty_perhaps_the_rules scotty_pick_some_treasure scotty_shall_we_up scotty_there_he_is scotty_we_have_wee_use scotty_well_met scotty_well_then scotty_wizard scotty_wrong_choice scout_arrives scout_dialog scout_focus scout_leaves scout_wing serpent_attack serpent_death serpent_handler_release serpent_hiss serpent_slither shield_dash shop_door_enter shop_door_open shovel_cast sightstone_cast skeletimmy_attack skeletimmy_death skeleton_boss_arm1 skeleton_boss_arm2 skeleton_boss_arm_reconnect skeleton_boss_arm_woosh skeleton_boss_attack skeleton_boss_awake skeleton_boss_bone_bounce skeleton_boss_death skeleton_boss_hand_slam skeleton_boss_idle skeleton_boss_legs_die skeleton_boss_summon_minions skeletony_attack skeletony_awake_a skeletony_awake_b skeletony_death skeletony_walk slave_npc slave_outro_chatter slave_outro_transition slave_outro_voice smithy_hammer smithy_hammer_fail snail_attack snail_attack_small snail_death snail_death_small snail_walk soul_stone soul_stone_drop spider_attack spider_boss_attack spider_boss_awake spider_boss_death spider_death spider_death_small spider_eggs_spawn spider_walk stone_throw_cast stone_throw_hit sword_cast sword_hit talisman_reveal temple_npc_chant temple_npc_clear_throat temple_npc_talk torch_cast torch_hit torch_idle treasure_close treasure_drop treasure_drop_common treasure_drop_epic treasure_drop_giant treasure_drop_humble treasure_drop_rare treasure_item_blue treasure_item_cyan treasure_item_green treasure_item_lost treasure_item_pop treasure_item_rainbow treasure_item_red treasure_item_show treasure_item_yellow treasure_open tree_boss_attack tree_boss_awake tree_boss_death tree_boss_idle tree_boss_spike triskelion_fuse ui_starfirst ui_starnew ui_starold1 ui_starold2 ui_starold3 ui_starold4 unequip uulaa_voice wand_aether_cast wand_aether_hit wand_air_cast wand_air_hit wand_cast wand_drop wand_fire_cast wand_fire_hit wand_hit wand_ice_cast wand_ice_hit wand_poison_cast wand_poison_hit wand_vigor_cast wand_vigor_hit waterfall_hook_hit waterfall_land waterfall_rope_grab waterfall_rope_swing waterfall_splash worm_rider_hop xp_tick yeti_attack yeti_attack_flick yeti_attack_hit yeti_awake_blow yeti_awake_explosion yeti_awake_inhale yeti_awake_lick yeti_blow yeti_blow_ice_wall yeti_death yeti_inhale yeti_inhale_lick トップへ戻る
·:·:· おまけ - 楽曲 ·:·:· Stonescriptは、カスタムロジックに基づいて、ゲーム内楽曲を再生することができます。利用可能な楽曲はプラットフォームによって異なります。 ?loc.begin | loc.loop music.Play(temple_0) Stone Story RPGで利用できる楽曲のフルリストは次の通りです。 Boiling Mine bronze_guardian_3 bronze_guardian_4 bronze_guardian_5 bronze_guardian_cyan bronze_mine_0 bronze_mine_1 bronze_mine_2 bronze_mine_3 bronze_mine_4 bronze_mine_5 bronze_mine_cyan slave_outro_climb slave_outro_loop Caves of Fear caustic_caves spider_boss Deadwood cross_deadwood_river cross_deadwood_wind deadwood_0 deadwood_1 deadwood_2 deadwood_3 deadwood_4 deadwood_5 deadwood_cyan tree_boss waterfall_descent poena Haunted Halls skeleton_boss undead_crypt_0 undead_crypt_1 undead_crypt_2 undead_crypt_3 undead_crypt_4 undead_crypt_5 undead_crypt_cyan undead_crypt_intro Icy Ridge bridge_broken bridge_crossing icy_ridge_0 icy_ridge_1 icy_ridge_2 icy_ridge_3 icy_ridge_4 icy_ridge_5 icy_ridge_cyan yeti Mushroom Forest fire_loop fungus_forest_0 fungus_forest_1 fungus_forest_2 fungus_forest_3 fungus_forest_4 fungus_forest_5 fungus_forest_cyan mushroom_boss mushroom_boss_cyan shop Rocky Plateau rocky_plateau_0 rocky_plateau_1 rocky_plateau_2 rocky_plateau_3 rocky_plateau_4 rocky_plateau_5 rocky_plateau_epilogue rocky_plateau_fight rocky_plateau_talk Temple nagaraja temple_0 temple_1 temple_2 temple_3 temple_4 temple_5 temple_cyan Events event_fall event_hamartia event_spring event_stonejam event_summer event_winter Other credits main_menu bone_factory osteophone uulaa トップへ戻る
·:·:· おまけ - 環境音 ·:·:· Stonescriptは、カスタムロジックに基づいて、バッググラウンドの環境音を何層にも再生することができます。 ?loc.begin ambient.Stop() ambient.Add(ambient_crypt) Stone Story RPGで利用できる環境音のフルリストは次の通りです。 ambient_mines ambient_caves ambient_bronze_gate ambient_deadwood ambient_mushroom ambient_bridge ambient_icy ambient_cave ambient_rocky ambient_temple ambient_crypt ambient_haunted_gate ambient_pallas waterfall_a waterfall_b waterfall_c ^トップへ戻る
·:·:· おまけ - インポート可能なすべてのスクリプト ·:·:· import Chisel import CozyCave import Fishing import TrainAdventure import Cosmetics/Acrocorn import Cosmetics/AcronianGuardian import Cosmetics/AuroraBorealis import Cosmetics/BadApple import Cosmetics/Beach import Cosmetics/Bolesh import Cosmetics/CaveParty import Cosmetics/ChristmasTree import Cosmetics/ChrWings import Cosmetics/ConfettiHead import Cosmetics/CultGroup import Cosmetics/DragonWorm import Cosmetics/Drill import Cosmetics/Explosion import Cosmetics/FireFly import Cosmetics/Fireworks import Cosmetics/FrogInvasion import Cosmetics/Giftbag import Cosmetics/Infected import Cosmetics/Knight import Cosmetics/Mech import Cosmetics/MineManager import Cosmetics/MushroomAnt import Cosmetics/MushroomHead import Cosmetics/Party import Cosmetics/PartyNoisemaker import Cosmetics/Portobello import Cosmetics/PumpkinCarving import Cosmetics/Pumpkins import Cosmetics/quips import Cosmetics/SantaFlyingSleigh import Cosmetics/SillyGoose import Cosmetics/SleepyStonehead import Cosmetics/SpookyScarySkeletons import Cosmetics/SpringBloom import Cosmetics/StoneClause import Cosmetics/StoneheadFall import Cosmetics/StoneHeadless import Cosmetics/StonePhone import Cosmetics/SuperStoneHead import Cosmetics/TheSun import Cosmetics/Turret import Cosmetics/TwinSuns import Cosmetics/WavyScarf import Cosmetics/WitchBroom import Foes/FlowerFoes import Foes/PallasCrown import Foes/PumpkinWraith import Foes/SurferGuardian import Games/2048 import Games/Arena import Games/Asteroids import Games/Blackjack import Games/BurgerRush import Games/cColorTetris import Games/cGomoku import Games/cTetris import Games/DigitsPuzzle import Games/FeedABat import Games/FlyupText import Games/FrogBog import Games/FrogJump import Games/GetawayDriver import Games/GrowPlants import Games/KillerRPG import Games/Metallophone import Games/Minesweeper import Games/PlayingCards import Games/Simon import Games/Snake import Games/SpearThrowing import Games/SSRPGIdle import Games/StoneasaurGame import Games/StoneBoxman import Games/StoneDungeon import Games/Stonemon import Games/Sudoku import Games/SudokuEnchant import Games/SwordGame import Games/TowerDefense import Games/WhackaMole import Hats/CatHat import Hats/ChefHat import Hats/DefectFaceplate import Hats/DiscoVisor import Hats/Enchanthead import Hats/Headphones import Hats/Helmet import Hats/HrimnirHair import Hats/IroncladMask import Hats/JesterHat import Hats/LanternTalisman import Hats/MushroomHat import Hats/PirateHat import Hats/ReindeerHead import Hats/SantaHat import Hats/ShuffleHat import Hats/SilentSkull import Hats/Skully import Hats/StarCloak import Hats/Treeman import Hats/WitchHat import Pets/Bear import Pets/BlackHole import Pets/Boo import Pets/Bunny import Pets/CatBalloon import Pets/CavePets import Pets/Chick import Pets/Crab import Pets/Cranius import Pets/Dog import Pets/Dracula import Pets/Dragon import Pets/Fly import Pets/FoesNoMore import Pets/Frog import Pets/JackOLantern import Pets/LegsTurkey import Pets/Mushroom import Pets/Panda import Pets/Pomeranian import Pets/RoyaltyDeliverer import Pets/Skully import Pets/Snail import Pets/SnowBunny import Pets/Snowman import Pets/Spider import Pets/SpringBuddy import Pets/Stonehead import Pets/Sun import Pets/TarPusher import Pets/Wisp import UI/A2S import UI/BetterInfo2 import UI/BetterText import UI/BorderClock import UI/BossBar import UI/BossHealthBar import UI/BragMeter import UI/Calculator import UI/CDTime import UI/ClickAbilities import UI/damageFlash import UI/DragController import UI/FaceHUD import UI/FoeStateTracker import UI/FreeChestTracker import UI/InfoFloat import UI/LiveSplit import UI/MindstoneButton import UI/MiniMap import UI/MusicBox import UI/OkamiroyUtils import UI/PefWindow import UI/PlayerStateTracker import UI/RecordPlayer import UI/ScrollText import UI/StealMeter import UI/ToolBelt import UI/VisualStatusEffects import UI/ChiselFiles/Additional Documentation import UI/ChiselFiles/SetLayer import UI/FancyUI/colour import UI/FancyUI/fancyui import UI/FancyUI/print import Weapons/ArmorGenerator import Weapons/EmbueDaggers import Weapons/LanternTalisman import Weapons/MajPack import Weapons/MajVines import Weapons/PsyCrusher import Weapons/RecoilKick import Weapons/RootBats import Weapons/Scythe import Weapons/ShockwaveWhip import Weapons/SpellBook ^トップへ戻る
Copyright Martian Rex, Inc. 2020