·:·:· ネイティブfunction(関数) ·:·:·
スクリプトは独自の関数を定義できますがStonescriptには予め定義されたネイティブ関数が付属しており、コマンドのように振る舞います。
主題ごとに明確にグループ化され、パラメータを受け入れ時には値を返す点が異なります。
- ·:·:· ネイティブfunction(関数) ·:·:·
- ambient(環境音)
- color(色)
- draw(描画)
- int(整数)
- item(アイテム)
- key(キー)
- loc(場所)
- math(数学)
- math.Abs(num)
- math.Sign(num)
- math.Min(num1, num2)
- math.Max(num1, num2)
- math.Clamp(num, min, max)
- math.Round(num)
- math.RoundToInt(num)
- math.Floor(num)
- math.FloorToInt(num)
- math.Ceil(num)
- math.CeilToInt(num)
- math.Lerp(a, b, t)
- math.Log(num, base)
- math.Pow(num, p)
- math.Sqrt(num)
- math.pi
- math.ToDeg(num)
- math.ToRad(num)
- math.Acos(num)
- math.Asin(num)
- math.Atan(num)
- math.Cos(num)
- math.Sin(num)
- math.Tan(num)
- music(音楽)
- player(プレイヤー)
- screen(画面)
- storage(記憶域)
- string(文字列)
- string.Break(string, integer)
- string.Capitalize(string)
- string.Equals(string1, string2)
- string.Format(string1, ...)
- string.IndexOf(string, criteria)
- string.IndexOf(string, criteria, startAt)
- string.Join(separator, []) / string.Join(separator, [], int) / string.Join(separator, [], int, int)
- string.Size(string)
- string.Split(string) / string.Split(string, separators...) / string.Split(string, separators..., discardEmpty) / string.Split(string, discardEmpty)
- string.Sub(string, startAt) / string.Sub(string, startAt, length)
- string.ToLower(string)
- string.ToUpper(string)
- sys(システム)
- Text Localization(テキストのローカリゼーション(地域化))
- time(時間)
- UI(ユーザーインターフェース)
- Other(その他)
ambient
(環境音)
?ambient
文字列型を返します
すべてのアクティブな環境音の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)
color
(色)
Stonescriptでは、カラーが16進数表記の文字列(Hex color codes)で表現されます。
例えば、#ff0000
のような表記や、#red
のような簡略化されたプリセットを使用します。
色見本(#FFFFFF = 白)
█#000000
█#FF0000
█#7F7F7F
█#00FF00
█#FFFF00
█#0000FF
Picker(外部リンク)で様々なHex color codesを確認できます。
color.FromRGB(r, g, b)
文字列型を返します
三つの整数(0から255)からカラーを文字列に変換します。
// 例: var c = color.FromRGB(255, 0, 128) >`0,0,@c@, @c@
color.ToRGB(string)
整数型を返します[3]
カラーを文字列から三つの整数(0から255)に変換します。
// 例: 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)
文字列型を返します
時間(パーセンテージ)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()
文字列型を返します
ランダムなカラーを返します。
// 例: 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,Press Left/Right\nto change style
draw.Clear()
戻り値:なし
画面全体をクリアします。
draw.GetSymbol(x, y)
戻り値:文字列
画面位置(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()
戻り値:なし
プレイヤーキャラクターを、スクリプト内の特定のポイントに装備とアドオンを一緒に描画します。
int
(整数)
int.Parse(str)
整数を返します
数値の文字列を整数値に変換します。
指定された文字列が数値でない場合、エラーが発生します。
// 例: var s = "999" var i = int.Parse(s) i++
item
(アイテム)
クールダウン IDリスト
すべての利用可能なアビリティ文字列に関する詳細については、以下の表を参照してください。
注意:
無効なアビリティ文字列は-1を返します。
まだ使用されていない武器の一部のアビリティは-1を返すことがあります。
Item | Cooldown ID |
---|---|
Æther Talisman |
"aether_talisman" |
Bardiche |
"bardiche" |
Bashing Shield |
"bash" |
Blade of the Fallen God |
"blade" |
Cinderwisp Devour |
"cinderwisp" |
Cultist Mask |
"mask" |
Dashing Shield |
"dash" |
Fire Talisman |
"fire_talisman" |
Hatchet |
"hatchet" |
Heavy Hammer |
"hammer" |
Mind Stone |
"mind" |
Quarterstaff |
"quarterstaff" |
Skeleton Arm |
"skeleton_arm" |
Voidweaver Devour |
"voidweaver" |
item.CanActivate()
ブール値(真偽)を返します*1
アイテムのアビリティをアクティベートできる場合はtrueを返し、それ以外の場合はfalseを返します。
ボス戦前やシネマティック中など、一部のゲームプレイ状況ではアビリティのアクティベーションが無効になることがあります(クールダウン中でなくても)。
// 例: ?item.CanActivate() equip Bardiche activate R
item.CanActivate(str)
ブール値(真偽)を返します
特定のアイテムをアクティベートできる場合はtrueを返します。
この条件はアイテムが装備されている場合にのみtrueになります。一部のアイテムは、特定の条件を満たさない限りアクティベートできない場合があります。
これはitem.GetCooldown()
の一部であり、アイテムのクールダウンがゼロであってもアクティベートできないことがあります。
ただし、クールダウン中のアイテムは常にアクティベート不可能です。
// 例: equip bardiche ?item.GetCooldown("skeleton_arm") <= 0 equip skeleton arm ?item.CanActivate("skeleton_arm") activate R
item.GetCooldown(str)
整数を返します
指定されたアビリティの残りのクールダウン時間(フレーム単位)を返します。
// 例: ?foe = boss & item.GetCooldown("bardiche") <= 0 equip bardiche activate R
item.GetCount(str)
整数を返します
インベントリ内のアイテムのコピー数を返します。
アイテムが見つからない場合は0を返します。
// 例: var searchCriteria = "sword *0 -big -socket" var swordCount = item.GetCount(searchCriteria) >私は@swordCount@本の基本的な剣を持っています
item.GetLoadoutL(int)
/
item.GetLoadoutR(int)
戻り値:文字列
特定の装備セット内のアイテムを返します。
整数パラメータは質問する装備セット番号です。そのスロット内にアイテムがない場合、空白の文字列を返します。
// 例: >`0,1,左: @item.GetLoadoutL(1)@ >`0,2,右: @item.GetLoadoutR(1)@
key
(キー)
key(key namespace)は、標準のゲーム入力とショートカットのカスタマイズを可能にします。
このシステムはアクション(略して "act" と表記)とキーに基づいており、各アクションは入力またはショートカットの種類を表し、各キーは物理的なキー押下に対応します。
アクションに割り当てることができるすべての可能なキーのリストはこちらで確認できます。
アクションのバインディングを変更すると、実行間で変更が維持されます(現在はストレージに保存されません)。
最適化の観点から、バインディングをフレームごとに変更しないことをお勧めします。
keyリスト
Action | Default Key | Default Key 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)
戻り値:なし
特定のアクションに新しいキーのセットを割り当てます。
他のアクションがすでにこれらのキーのいずれかを持っている場合、既に使用されているキーは元のアクションに対して放棄されます。
アクションには最大で2つのキーが割り当てられます。
// 例: ?loc.begin key.Bind("Potion", "P")
この例では、元々一時停止に割り当てられていた "P
" キーはもはやゲームを一時停止させず、代わりにポーションをアクティブにします。
また、ポーションの元の "Q
" キーはもはや機能しません。 "Q
" はアクションにはバインドされていません。
key.Bind(act, key1, key2)
戻り値:なし
特定のアクションに新しいキーのセットを割り当てます。
他のアクションがすでにこれらのキーのいずれかを持っている場合、既に使用されているキーは元のアクションに対して放棄されます。
アクションには最大で2つのキーが割り当てられます。
key.GetKeyAct(key)
戻り値:文字列
指定されたキーにバインドされているアクションを返します。
指定されたキーがアクションにバインドされていない場合は "None" を返します。
key.GetActKey(act)
戻り値:文字列
指定されたアクションにバインドされている最初のキーを返します。
指定されたアクションにキーがバインドされていない場合は "None" を返します。
key.GetActKey2(act)
戻り値:文字列
指定されたアクションにバインドされている2番目のキーを返します。
指定されたアクションに2番目のキーがバインドされていない場合は "None" を返します。
key.GetActLabel(act)
戻り値:文字列
指定されたアクションにバインドされている最初のキーを表すユーザー向けのラベルを返します。
現在の実装では、バインドされたキーの最初の文字を返します。これは "LeftShift" などの場合に混乱の原因となる可能性があります。
key.ResetBinds()
戻り値:なし
すべてのアクションをデフォルトのキー割り当てにリセットします。
loc
(場所)
loc.Leave()
戻り値:なし
プレイヤーが手動で離れるボタンを押したかのように、退出を実行します。
loc.Pause()
戻り値:なし
プレイヤーが手動で一時停止ボタンを押したかのように、一時停止を実行します。
math
(数学)
数学APIは整数と浮動小数点数(float)の両方で動作します。
数値が小数点を持つ形で宣言される場合、それは浮動小数点数とみなされます(例:var a = 0.5)。
小数部分が存在しない場合、それは整数として扱われます(例:var a = 2)。
math.Abs(num)
戻り値:数値
指定された数値の絶対値を返します。
// 例: var number = -2 number = math.Abs(number) // 数値は 2 になります
math.Sign(num)
戻り値:数値
指定された数値が負数の場合、-1 を返します。それ以外の場合は 1 を返します。
// 例: var sign = math.Sign(-21) var n = 10 * sign // n は -10 になります
math.Min(num1, num2)
戻り値:数値
2つの数値のうち小さい方を返します。
// 例: var number = math.Min(3, 10) // number は 3 になります
math.Max(num1, num2)
戻り値:数値
2つの数値のうち大きい方を返します。
// 例: var number = math.Max(3, 10) // number は 10 になります
math.Clamp(num, min, max)
戻り値:数値
数値を 'min' から 'max' の範囲内に制約します。数値がすでに範囲内にある場合、変更せずにそのまま返されます。
// 例: var number = 50 number = math.Clamp(number, 0, 10) // number は制約され、10 になります
math.Round(num)
戻り値:数値
数値を最も近い整数に丸めます。
// 例: var number = math.Round(2.7) // number は 3.0 になります
math.RoundToInt(num)
戻り値:整数
数値を最も近い整数に丸めます。
// 例: var number = math.RoundToInt(2.7) // number は 3 になります
math.Floor(num)
戻り値:数値
数値を切り捨て、それより小さい最初の整数に丸めます。
// 例: var number = math.Floor(2.7) // number は 2.0 になります
math.FloorToInt(num)
戻り値:整数
数値を切り捨て、それより小さい最初の整数に丸めます。
// 例: var number = math.FloorToInt(2.7) // number は 2 になります
math.Ceil(num)
戻り値:数値
数値を切り上げ、それより大きい最初の整数に丸めます。
// 例: var number = math.Ceil(4.2) // number は 5.0 になります
math.CeilToInt(num)
戻り値:整数
数値を切り上げ、それより大きい最初の整数に丸めます。
// 例: var number = math.CeilToInt(4.2) // number は 5 になります
math.Lerp(a, b, t)
戻り値:数値
指定した時間(割合)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 に向かって緩和し、1フレームごとに2%ずつ変化します。キーが押されるとリセットされます
math.Log(num, base)
戻り値:数値
指定された基数での数値の対数を返します。
// 例: var number = math.Log(5, 2) // number は 2.321928 になります
math.Pow(num, p)
戻り値:数値
数値を指定されたべき乗で返します。
// 例: var number = math.Pow(3, 2) // number は 9 になります
math.Sqrt(num)
戻り値:数値
数値の平方根を返します。
// 例: var number = math.Sqrt(9) // number は 3 になります
math.pi
戻り値:浮動小数点数
定数 π、約 3.1415926
// 例: >PI = @math.pi@ // π の値を画面に表示します
math.ToDeg(num)
戻り値:数値
ラジアン単位の数値を度に変換します。
// 例: var number = math.ToDeg(2 * math.pi) // number は 360 になります
math.ToRad(num)
戻り値:数値
度数の数値をラジアンに変換します。
// 例: var number = math.ToRad(360) // number は 2π になります
math.Acos(num)
戻り値:数値
数値の逆余弦(アークコサイン)をラジアン単位で返します。入力の範囲は -1 から 1 です。入力値が範囲外の場合、"NaN" が返されます。
// 例: var number = math.Acos(-1) // number は π になります
math.Asin(num)
戻り値:数値
数値の逆正弦(アークサイン)をラジアン単位で返します。入力の範囲は -1 から 1 です。入力値が範囲外の場合、"NaN" が返されます。
// 例: var number = math.Asin(1) // number は π/2 になります
math.Atan(num)
戻り値:数値
数値の逆正接(アークタンジェント)をラジアン単位で返します。
// 例: var number = math.Atan(2) // number は 1.107149 になります
math.Cos(num)
戻り値:数値
指定されたラジアン単位の角度の余弦を返します。
// 例: var number = math.Cos(0) // number は 1 になります
math.Sin(num)
戻り値:数値
指定されたラジアン単位の角度の正弦を返します。
// 例: var number = math.Sin(math.pi / 2) // number は 1 になります
math.Tan(num)
戻り値:数値
指定されたラジアン単位の角度の正接を返します。
// 例: var number = math.Tan(2) // number は -2.18504 になります
music
(音楽)
?music
戻り値:文字列
現在再生中の音楽のIDを返します。
// 例: >`0,0,現在の音楽 = @music@
music.Play(str)
戻り値:なし
指定された音声IDで音楽を再生します。同時に再生できる音楽は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)
戻り値:整数
X軸上の値をワールド空間からスクリーン空間に変換します。
screen.FromWorldZ(int)
戻り値:整数
ワールド空間の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)
戻り値:整数
X軸上の値をスクリーン空間からワールド空間に変換します。
screen.ToWorldZ(int)
戻り値:整数
スクリーン空間の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)
戻り値:値
指定されたキーに格納された永続的な値を取得します。
// 例: var value = storage.Get("highscore") ?value >最高得点 = @value@ : >最高得点は見つかりませんでした。
storage.Get(string, value)
戻り値:値
指定されたキーに格納された永続的な値を取得します。 見つからない場合、デフォルト値として第二パラメーターが返されます。
// 例: var value = storage.Get("highscore", 0) >最高得点 = @value@
storage.Has(string)
戻り値:真偽値
永続ストレージに指定されたキーが存在する場合は true を返し、それ以外の場合は false を返します。
// 例: ?storage.Has("highscore") var value = storage.Get("highscore") >最高得点 = @value@ : >最高得点は見つかりませんでした。
storage.Incr(string)
戻り値:整数
指定されたキーに格納された値を1増やし、新しい値を返します。
// 例: ?gameOver storage.Incr("stat_TimesPlayed")
storage.Keys()
戻り値:配列
現在のコンテキストで利用可能なすべてのストレージキーを含む文字列の配列を取得します。
// 例: var a ?time % 30 = 0 a = storage.Keys() for i = 0 .. a.Count()-1 >キー @i@ = @a[i]@
storage.Incr(string, 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)
戻り値:配列
最大幅を指定して文字列を複数の文字列に分割します。
// 例: 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(string)
戻り値:文字列
文字列の最初の文字を大文字に変更します。
// 例: var a = "foo" a = string.Capitalize(a) >@a@
string.Equals(string1, string2)
戻り値:真偽値
2つの文字列パラメータを受け取り、それらが完全に同じ場合にtrueを返します。
そうでない場合はfalseを返します。大文字と小文字を区別します。
// 例: var a = "foo" ?string.Equals(a, "foo") >文字列は等しいです : >等しくありません // この場合、文字列は等しいため、string.Equals() はtrueを評価します
string.Format(string1, ...)
戻り値:文字列
文字列を修正し、フォーマットテンプレートを他のパラメータの値で置き換えてから、最終的な構成済み文字列を返します。
多くのフォーマットオプションをサポートする強力な関数です。
// 例: var str = "My name is {0} and I have {1} power!" var result = string.Format( ^ str, ^ player.name, ^ totalgp ^) >@result@
string.IndexOf(string, criteria)
戻り値:整数
文字列変数と文字列基準をパラメータとして受け取り、基準の位置を文字列内で見つけます。
見つからない場合は-1を返します。
// 例: var a = "Hello World!" var index = string.IndexOf(a, "llo") // index は 2 です
string.IndexOf(string, criteria, startAt)
戻り値:整数
文字列変数、文字列基準、開始インデックスをパラメータとして受け取ります。
基準を文字列内で検索しますが、検索を開始する位置は 'startAt' です。見つからない場合は-1を返します。
// 例: var a = "Hello World!" var index = string.IndexOf(a, "llo", 4) // index は -1 です。検索は位置4から始まったため、'llo'は見つかりませんでした。
string.Join(separator, [])
/
string.Join(separator, [], int)
/
string.Join(separator, [], int, int)
戻り値:文字列
文字列配列[]を受け取り、セパレータで単一の文字列に結合します。オプションの整数パラメータを渡すと、開始インデックスと結合する要素の数を指定できます。インデックスパラメータが提供されない場合、配列全体が結合されます。
// 例: 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(string)
戻り値:整数
文字列変数をパラメータとして受け取り、グリフの数で長さを計算します。
// 例: var a = "Hello World!" var size = string.Size(a) >size = @size@
string.Split(string)
/
string.Split(string, separators...)
/
string.Split(string, separators..., discardEmpty)
/
string.Split(string, discardEmpty)
戻り値:配列
文字列を取得し、文字列セパレータ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(string, startAt)
/
string.Sub(string, startAt, length)
戻り値:文字列
文字列変数と開始インデックスをパラメータとして受け取り、その点から文字列を分割します。
// 例: var a = "Hello World!" var subString = string.Sub(a, 6) >substring = @subString@ // subString は "World!" に等しいです。 // 例2: var a = "Hello World!" var subString = string.Sub(a, 6, 3) >substring = @subString@ // subString は "Wor" に等しいです。
string.ToLower(string)
戻り値:文字列
文字列内のすべての文字を小文字に変更します。
// 例: var a = "Foo" a = string.ToLower(a) >@a@ // 画面に "foo" が表示されます。
string.ToUpper(string)
戻り値:文字列
文字列内のすべての文字を大文字に変更します。
// 例: var a = "Foo" a = string.ToUpper(a) >@a@ // 画面に "FOO" が表示されます。
sys
(システム)
"sys" ネームスペースは現在意図通りに機能していないようです。
このネームスペースは通常、システムやゲームエンジンとのやり取りに使用され、ゲームの実行環境に関連する情報や機能を提供します。
しかし、現在は正しく動作していないようですので、修正や更新が必要かもしれません。
ゲーム開発者やゲームの管理者によって、将来的にこの問題が解決され、"sys" ネームスペースが正しく機能するようになることを期待しましょう。
このネームスペースが正しく動作すると、ゲームの実行時にさまざまな情報や設定を取得したり、調整したりするのに役立つでしょう。
sys.cacheRemoteFiles
真偽値
リモートでインポートされたファイルを実行の間にキャッシュするかどうかを示します。
デフォルトは true です。
false に設定すると、ロケーション画面からプレイを開始する際にリモートスクリプトが再ダウンロードされます。
開発中や新しいスクリプトの反復中にこれを変更すると便利です。このグローバルプロパティは実行間で保持されます。
// 例: // "up" キーを入力として切り替え // リモートキャッシュをオン/オフにする ?key = upBegin sys.cacheRemoteFiles = !sys.cacheRemoteFiles ?sys.cacheRemoteFiles >リモートキャッシング 有効 : >リモートキャッシング 無効
sys.fileUrl
文字列型 (読み取り専用)
スクリプトをインポートする際に使用される現在のファイルパスのゲッターです。
デフォルト値はデバイスによって異なります。
PCの場合、デフォルト値はlocalです。
モバイルの場合、デフォルトはhttps://StonestoryRPG.com/stonescript/
です。
>`0,1,ファイルurl = @sys.fileUrl@
sys.SetFileUrl(string)
戻り値なし
"import" または "new" コマンドを使用してスクリプトをインポートする際の元の場所を変更します。
Mind Stone でのみ呼び出すことができ、インポートされたスクリプトに書かれている場合はエラーになります。
任意のURLをリモート場所として受け入れますが、ローカルドライブを指す "local" および公式 Stone Story RPG リポジトリを指す "remote" の値も受け入れます。
パラメータとして null が渡されると、ファイルURLはデバイスに応じたデフォルト値にリセットされます。このグローバルプロパティは実行間で保持されます。
// 例: sys.SetFileUrl( ^"https://MyCoolDomain.com/scripts/") import MyCombatScript
sys.os
戻り値:文字列
ユーザーのオペレーティングシステムを取得します。例:"Android"、"iOS"、"Linux"、"OSX"、または"Windows"などがあります。
sys.isMobile
戻り値:真偽値
ユーザーがAndroidまたはiOS上にいる場合、trueを返します。
sys.isPC
戻り値:真偽値
ユーザーがWin/Mac/Linux上にいる場合、trueを返します。
sys.isConsole
戻り値:真偽値
(マニュアルにまだ掲載されていません。)
〜の場合、trueを返します。
Text Localization
(テキストのローカリゼーション(地域化))
この文書執筆時点では、Stonescriptは12の言語をサポートしています。
いくつかの操作を使用して、カスタムスクリプトをプレイヤーが選択した言語に適応させることができます。
これは、Stonescriptが異なる言語に対応し、ゲーム内のテキストやメッセージをプレイヤーの言語設定に合わせて変更できることを示しています。
プレイヤーが好みの言語でゲームを楽しめるように、この機能は非常に重要です。
te.language
文字列型
プレイヤーが設定で選択した言語のコードです。可能な値:
Language Code | Language Name |
---|---|
EN |
English |
PT-BR |
Portuguese (Brazil) |
ZH-CN |
Chinese (Simplified) |
ZH-TW |
Chinese (Traditional) |
FR |
French |
DE |
German |
RU |
Russian |
ES-LA |
Spanish (Latin America) |
ES-EU |
Spanish (Spain) |
JP |
Japanese |
KR |
Korean |
TK |
Turkish |
// 例: var lang = te.language >言語 = @lang@
te.xt(string)
文字列型を返します
指定された英語のテキストをプレイヤーが選択した言語に翻訳します。
翻訳バージョンが見つからない場合、代わりに入力テキストが返されます。
代わりにテキスト識別子(TID)を使用できる場合がありますが、TIDの網羅的なリストはこのマニュアルの範囲外です。
// 例: var button = ui.AddButton() button.text = te.xt(Play) // この例を機能させるには設定で言語を変更します
te.GetTID(string)
文字列型を返します
指定されたテキストのテキスト識別子(TID)を返します。
入力テキストは、プレイヤーが選択した言語で提供されることを想定しています。
// 例: var tid = te.GetTID("Play") >`0,1,@tid@ // tid_button_play が画面に表示されます
te.ToEnglish(string)
文字列型を返します
指定されたテキストをプレイヤーが選択した言語から元の英語のテキストに翻訳します。
翻訳バージョンが見つからない場合、代わりに入力テキストが返されます。
>`0,1,@te.ToEnglish("Jogar")@ // 設定でポルトガル語が選択されている場合、"Play" が表示されます // それ以外の場合、"Jogar" が表示されます
time
(時間)
time.FormatCasual(int)
戻り値:文字列
フレーム数を人間に読みやすい文字列(時間)に変換。
例: "1m 23s"。第2パラメータ(bool)はオプションです。'true' の場合、結果の精度が最大化されます。
// 例: >`0,0,現在の時間 = ^ @time.FormatCasual(totaltime, true)@
time.FormatDigital(int)
戻り値:文字列
フレーム数を人間に読みやすい文字列(時間)に変換。
例: "1:23"。第2パラメータ(bool)はオプションです。'true' の場合、結果の精度が最大化されます。
// 例: >`0,0,現在の時間 = ^ @time.FormatDigital(totaltime, true)@
UI
(ユーザーインターフェース)
Stonescriptの高度なUIシステムに関する詳細は、ユーザーインターフェースセクションを参照してください。
ui namespaceのその他の機能には、以下が含まれます。
ui.ShowBanner(str)
/
ui.ShowBanner(str, str)
戻り値:なし
最大2つのメッセージを持つアニメーションバナーを表示します。
ui.ShowBanner()
が呼び出されるたびにバナーアニメーションが再起動します。
// 例: ?key = timeBegin ui.ShowBanner("Hello World!")
Other
(その他)
Type(var)
戻り値:文字列
変数の型を評価し、文字列表現を返します。
可能な型には 'string'、'int'、'bool'、'function'、'object'、および 'null' が含まれます。
// 例: var a = 0 ?Type(a) = int >変数 'a' は整数型です。
*1:boolean = 真偽値(TrueまたはFalse)を表すデータ型