【StoneStoryRPG/Stonescript】3-1.ゲーム情報の取得1(ステージ/敵)
ゲーム内から取得できる情報です。
loc(ステージ)に関する情報
loc (ステージ)
今いるステージの基本情報を取得します。
内部的には、loc.id・loc.name(英語)・loc.starsなどをまとめて取得していると思われます。
?loc = caves
loadout 1
もしlocがcavesなら? ※
┗ loadoutの1番目にする
loc.id (ステージのID)
今いるステージのID名(例:caustic_caves)を取得します。locにも同じ情報が含まれるので、基本的にはlocの方が使われます。
var id
id = loc.id
>@id@を探索中
変数idを宣言する
idにlocのIDを格納する
画面左上に「[id]を探索中」と表示する ※
loc.name (ステージの名前)
今いるステージの名前(例:恐怖の洞窟)を取得します。使用している言語に翻訳された状態で取得します。
>@loc.name@を探索中
画面左上に「[ステージの名前]を探索中」と表示する
loc.stars (ステージの星の数)
今いるステージの星の数を取得します。
(補足:loc.stars = 6 は青☆1を表します。)
?loc = caves
?loc.stars=4
loadout 1
?loc.stars=5
loadout 2
もしlocがcavesなら?
┣ もしlocのstarsが白☆4なら?
┗ loadoutの1番目にする
┗ もしlocのstarsが白☆5なら?
┗ loadoutの2番目にする
loc.begin (ステージスタート検知)
ステージの最初に1度だけ実行されます。ウロボロスの石の効果でループした場合は実行しません。定義した変数の値をリセットしたい時などに使えます。
var i
?loc.begin
i = 0
?loc = caves
i = -100
変数iを宣言する
もしlocがbeginしたら?
┗ iに0を格納する
もしlocがcavesなら?
┗ iに-100した値を格納する
loc.loop (ステージループ検知)
ループした後のステージの最初に1度だけ実行されます。初回のステージ開始時には実行されません。
var loopCount = 0
?loc.loop
loopCount++
>`0,1,@loopCount + 1@周目
変数loopCountを宣言し、0を格納する
もしlocがloopしたら?
┗ loopCountに+1した値を格納する
画面上の座標(0,1)に「[loopCount + 1]周目」と表示する
loc.isQuest (特殊ステージ検知)
伝説クエストやカスタムクエストなどの特別なステージではtrueを、それ以外ではfalseを取得できます。
?loc.isQuest
>`0,1,ここは特殊ステージです。
もしlocがisQuestなら?
┗ 画面上での座標(0,1)に「ここは特殊ステージです。」と表示する
loc.averageTime (平均クリアタイム)
今いるステージの平均クリアタイムを取得します。平均クリアタイムは、直近のクリアタイムほど強く反映されやすいように計算されています。
補足:ゲーム内では1秒に約30フレーム進行します。
>`0,2,平均タイム =
^ @loc.averageTime@ フレーム
画面上での座標(0,2)に「平均タイム =
[locのaverageTime] フレーム」と表示する
loc.bestTime (ベストクリアタイム)
今いるステージの最短クリアタイムを取得します。
>>`0,1,最短タイム =
^ @loc.bestTime@ フレーム
画面上での座標(0,1)に「最短タイム =
[locのbestTime] フレーム」と表示する
foe(敵)に関する情報
foe (敵)
敵の基本情報を取得します。(内部的には、foe.id・foe.name(英語)・属性・特殊効果などをまとめて取得していると思われます。)
?foe = boo
equip vigor staff
もしfoeがboo(ブー)なら? ※
┗ vigor(活力属性)のstaff(杖)をequip(装備)する
foe.id (敵のid)
敵のidを取得します。loc.idの時と同じく、基本的にはfoeを使います。
foe.name (敵の名前)
敵の名前を取得します。使用している言語に翻訳された状態で取得します。
foe.damage (敵のダメージ)
敵のダメージ(攻撃力)を取得します。
>`0,1,敵のダメージ = @foe.damage@
画面上での座標(0,1)に「敵のダメージ = [foeのdamage]」を表示する
foe.distance (敵までの距離)
プレーヤーから敵までの距離を取得します。
foe.count (周囲の敵の数)
プレーヤーから46ユニット以内にいる敵の数を取得します。
foe.hp (敵の現在HP)
敵の現在のHPを取得します。
foe.maxhp (敵の最大HP)
敵の最大HPを取得します。
foe.armor (敵の防具)
敵の現在の防具(防御シールド値)を取得します。
foe.maxarmor (敵の最大防具)
敵の最大の防具(防御シールド値)を取得します。
foe.buffs.count (敵のバフ数)
敵のバフの数を取得します。
foe.buffs.string (敵のバフ一覧)
敵のバフ一覧を取得します。
?foe.buffs.count > 0
>`0,3,敵のバフ = @foe.buffs.string@
もしfoeのbuffsのcountが0より多いなら?
┗ 画面上での座標(0,3)に「敵のバフ = [foeのbuffsのstring]」と表示する※
foe.debuffs.count (敵のデバフ数)
敵のデバフの数を取得します。
foe.debuffs.string (敵のデバフ一覧)
敵のデバフ一覧を取得します。
?foe.debuffs.count > 0
>`0,4,Foe debuffs = @foe.debuffs.string@
もしfoeのdebuffsのcountが0より多いなら?
┗ 画面上での座標(0,4)に「敵のデバフ = [foeのdebuffsのstring]」と表示する。
foe.state (敵の状態値)
敵の状態値を取得します。状態値は、敵がどのような行動をしているかによって変化する値です。
?foe.state
>`0,0,敵は眠っています。
もしfoeのstateが0なら?
┗ 画面上での座標(0,0)に「敵は眠っています。」と表示する
foe.time (敵の状態値変化からの経過時間)
敵が現在の状態値に変化してから経過したフレーム数を取得します。
>`0,0,敵 = @foe.name@:@foe.state@,@foe.time@
画面上での座標(0,0)に「敵 = [foeのname]:[foeのstate]:[foeのtime]」と表示する
foe.level (敵のレベル)
敵のレベル値を取得します。
>`0,0,Foe = @foe.name@ はレベル @foe.level@ です。
画面上での座標(0,0)に「敵 = [foeのname]はレベル[foeのlevel]です。」と表示する