Stone Story RPG

Stone Story RPG

Not enough ratings
仕様やストーンスクリプト等(仮)
By rusikia
日本語ガイドがないため、ゲームの仕様や簡単なストーンスクリプト例を掲載予定
1
   
Award
Favorite
Favorited
Unfavorite
ガイド主のリファラルコード『VEG2』
ガイドが役に立ったら、呪われた門でリファラルコード入力してもらえると嬉しいです。
ガイド主のリファラルコード『VEG2』
ストーンスクリプト:武器高速持ち替え 及びそれに関する検証内容
最後の保存 9月22日 20時05分
----------------------------------
2023/9/21のアップデートにより、処理が簡単になりました。
最小限に書くなら、下記で動作します。
/////////////
/var eqcnt = 1
/?item.left.state = 3
/ ?eqcnt = 1
/ eqcnt = 2
/ equipL fire sword
/ :?eqcnt = 2
/ eqcnt = 1
/ equipL vigor sword
/////////////



要は敵のHPが減ったら、装備持ち替えようの変数を切り替えていた部分を
 敵のHPが減ったら処理 から ?item.left.state = 3 に変更するだけです。

/?enmhp ! foe.hp + foe.armor ←ここを?item.left.state = 3 に変更でとりあえず動作します。
/ enmhp = foe.hp + foe.armor
/ enmnm = foe.name
/ ?cnt = 1
/ equip sword
/ chktms = " 1:" + (totaltime - chktm) + chktms
/ chktm = totaltime
/ cnt = cnt + 1
/ :?cnt = 2
/ equip quarterstaff
/ chktms = " 2:" + (totaltime - chktm) + chktms
/ chktm = totaltime
/ cnt = cnt + 1

/?cnt >= 3
/ cnt = 1

-----------------------------
武器の高速持ち替え
組み合わせによっては、そのまま振るよりDPSが出せる模様。
同じ種類の武器で切り替える場合は、装備保存またはネームタグで判別
氷状態異常時は特に効果が大きい

現状、敵のHPが減ったタイミングで次の装備に切り替えの為、
遠距離武器で遠くから攻撃した場合に、切り替えが最速にならない。


------------------------------------------------------------
・片手武器での効率的な使い方。
片手武器の場合、下記のように持ち替えるだけで高速持ち替えが可能。
 右手 → 左手
 左手 → 右手

/ ?cnt = 1
/ equipR 剣1
/ equipL 剣2
/ cnt = cnt + 1
/ :?cnt = 2
/ equipR 剣2
/ equipL 剣1

その為、両手武器・片手武器共に2個用意すればOKです。

両手の武器を交互に持ち替えながら戦う石頭君。強い。

-----------------------------------------------------------
連射クロスボウ交互撃ちを色々試している際、
2f : 2f : 2f : 2fではなく1f : 3f : 1f : 3fといった状態になることが発生した。
 撃ちっぱなしの場合、3f毎にダメージが発生。
 交互撃ちの場合、通常2f毎にダメージが発生。または1f:3f毎にダメージが発生
検証を重ねた結果、
連射クロスボウは装備したフレームで矢を射出していることが判明。
だが、実際は2f毎や1f:3f毎となってしまう。
そこで、6本の☆10連射クロスボウをエンチャレベル0~5で用意、
スクリプトで1f毎に装備持ち替えで検証したところ、下記のようになった
 1f : 1f : 1f : 1f : 1f : 1f : 7f : 1f : 1f : 1f : 1f : 1f : 7f
結果より、1巡するのに12fがかかっている。
交互撃ちの場合1巡に4f 6本だと12fの為、2本以上の場合、本数×2fかかると判明。
上記より、連射クロスボウの動作を分解すると
 矢の射出に1f 攻撃後の後隙に2f
 攻撃のクールタイムは1f だが、攻撃を行った装備を持った状態で1f待機が必要
そのため、打ちっぱなしだと3f毎、交互撃ちだと攻撃+クールタイムで2f毎となる。
理論上で言えば、
☆10連射クロスボウを大量に準備することで毎フレームごとに矢を撃つことができる。
(例 30本の☆10連射クロスボウがあれば1秒間(30f)に30発の矢を撃つことができる)
が、連射クロスボウはエンチャントでクリティカル率と倍率を上げないと強さを発揮できない為、
活用するのは難しい。

☆5の弱いボスを倒せるだけの本数を準備するぐらいが現実的だと思われる。
(クリティカルエンチャントのバルディッシュのスキル発動が22fの為、21本以下が効率上限)
(仮に1発20ダメージ与える場合、20×21=420ダメージ)
(☆10バルディッシュ +11クリティカルエンチャントの場合スキルで621ダメージ)
(遠距離弱点のギハカツヤ等であれば、ダメージ倍の為運用できそう)
-----------------------------------------------------------------

☆10のソード 秒間42.5
☆10の六尺棒 秒間34.29
DPSチェッカーでの単体測定はほぼ↑と同じ。
☆10のソードと☆10の六尺棒を高速持ち替えした場合のDPS約50

最短装備持ち替え速度(☆10 エンチャントが速度ではない場合)
ソード:10f
属性剣:12f
ロングソード:17f
ハンマー:17f
六尺棒:10f
クロスボウ:17f
ワンド:16f
バルディッシュ:20f
ヘビーハンマー:19f
リピートクロスボウ:2f (うちっぱ3f)

☆1 
クロスボウ dI
クロスボウ dL
片方うちっぱなし 27f
交互持ち替え 21f

☆10
ソード うちっぱ12f 交互持ち替え 10f
六尺棒 うちっぱ14f 交互持ち替え 10f

ソード  うちっぱ12f 交互持ち替え 10f
ソードdi うちっぱ14f 交互持ち替え 12f

氷異常時
バルディッシュ 通常
バルディッシュ 氷異常1 うちっぱ44f 交互持ち替え27f
バルディッシュ 氷異常2 うちっぱ57f 交互持ち替え34f

ハンマー(☆10) 
うちっぱ22f
 氷1:42f 氷2:f62 氷3:f82 氷4:
交互持ち替え 17f
 氷1:f30 氷2:f44 氷3:f57 氷4:


ソード(☆10)
うちっぱ12f
 氷1:32f 氷2:52f 氷追加f 氷4:
交互持ち替え 10f
 氷1:24f 氷2:37f 氷3:50f 氷4:

六尺棒(☆10)
うちっぱ14f
 氷1:28f 氷2:41f 氷3:
交互持ち替え 10f
 氷1:17f 氷2:24f 氷3:30

クロスボウ(☆10)
うちっぱ20f
 氷1:42f 氷2:f62 氷3:
交互持ち替え 10f
 氷1:f 氷2:f 氷3:

連射クロスボウ(☆10 +15(クリ系) )
うちっぱなし:3f dps 240~250
交互持ち替え:2f dps 340~350
 氷1:9f 氷2:16f 氷3:23f 氷4:29f

/////////////////////////////////////////////////
/var cnt = 1
/var enmhp = 999999
/var enmnm = ""
/var chktm = 0
/var chktms = ""

/?!ai.idle
/ enmhp = foe.hp + foe.armor
/ enmnm = foe.name

/?enmhp ! foe.hp + foe.armor
/ enmhp = foe.hp + foe.armor
/ enmnm = foe.name
/ ?cnt = 1
/ equip sword
/ chktms = " 1:" + (totaltime - chktm) + chktms
/ chktm = totaltime
/ cnt = cnt + 1
/ :?cnt = 2
/ equip quarterstaff
/ chktms = " 2:" + (totaltime - chktm) + chktms
/ chktm = totaltime
/ cnt = cnt + 1

/?cnt >= 3
/ cnt = 1

/?string.size(chktms) > 60
/ chktms = string.sub(chktms,0,60)

/?foe.distance > 9
/ equipR dash shield
/ equipL sword

/>HP @enmhp@ \n
/^name @enmnm@ \n
/^idle @ai.idle@ \n
/^dps @dps@ \n
/^cnt @cnt@ \n
/^切替時間 @totaltime - chktm@ \n
/^りれき @chktms@
/////////////////////////////////////////////////





メモ
最後の保存 8月27日 23時33分

スキルは待機時間と与ダメ発生時間に差がある(与ダメが早い)
武器の攻撃速度で上記時間は変わるため、攻撃開始時の敵HPを取得してからHPが減ったら次の行動と処理するのがよさそう。
ai.idleの解除を待っていると数フレームだが無駄な時間になる。

・移動系(3fぐらいかかってるかも)
ダッシュシールド:foe.distance = 16で発動 17で未動作 アプデで15に変わったみたい?
バッシュシールド:foe.distance = 16で発動 17で未動作 アプデで15に変わったみたい?

六尺棒
スキル:発動後1フレームでdistance6移動


・攻撃系
バルディッシュの攻撃距離:foe.distance = 10で攻撃 → 武器の攻撃範囲+1が届く範囲?
スキル:foe.distance = 12 でヒット 13でスカ
武器持ち替えから即スキル発動後、ダメージ発生まで 22f

ヘヴィーハンマー
スキル:foe.distance = 21でヒット 22でスカ
    だが、ヒットした際は21より2~3程遠くまでダメージが入るぽい


・スプラッシュダメージについて
スプラッシュダメージは敵の耐性を無視すると思われる。
(物理無効にバルディッシュやヘヴィーハンマーのスプラッシュダメージが通り、
 遠距離無効に石ころ弓のスプラッシュダメージが通った為)



枯木の渓谷☆5の巨大な宝箱からはエンチャント装備はでないっぽい?

・恐怖の洞窟☆5のボスを戦闘開始からループまでの時間
 バルディッシュスキルで一撃で倒した場合:126f
 連射クロスボウ☆10 クリ+15 接射高速持ち替え:121~131fぐらい
 ・・・連射クロスボウのクリティカル率を上げればさらなる短縮が見込める。
ストーンスクリプト:攻撃スキルを無駄なく発動する処理
最後の保存 8月26日 10時29分

例として今回はバルディッシュのスキルで記述します。
//////////////////////////////////////////////////////////
/var bardichesw = 0 //バルディッシュ用のスイッチ
/var enmhp = 0 //敵のHP管理用
/var eqcnt = 0 //敵にダメージを与えた時用のスイッチ
/var eqcnt2 = 0 //1f前のeqcntの値の保存用
/
/?!ai.idle
/ enmhp = foe.hp + foe.armor
/
/eqcnt2 = eqcnt
/
/?enmhp > foe.hp + foe.armor
/ enmhp = foe.hp + foe.armor
/ eqcnt = (eqcnt + 1) % 2
/
/?foe = boss &
/^bardichesw = 0
/ equipR vigor shield
/ equipL vigor sword
/
/?foe = boss &
/^item.GetCooldown("bardiche") <= 0 |
/^
/^bardichesw = 1
/ bardichesw = 1
/ ?!ai.idle
/ bardichesw = 0
/ :?foe.distance > 9
/ equipR dashing shield
/ equipL triskel stone
/ :?foe.distance <= 9
/ ?eqcnt2 = eqcnt
/ equip bardiche
/ activate bardiche
/ :?eqcnt2 ! eqcnt
/ bardichesw = 0
/////////////////////////////////////////////

解説
/var bardichesw = 0 //バルディッシュ用のスイッチ
/var enmhp = 0 //敵のHP管理用
/var eqcnt = 0 //敵にダメージを与えた時用のスイッチ
/var eqcnt2 = 0 //1f前のeqcntの値の保存用
/
/?!ai.idle ・・・ai.idleは攻撃等の動作中=trueとなるため、!をつけて動作していない時に処理
/ enmhp = foe.hp + foe.armor ・・・敵のhp+armorを取得
/
/eqcnt2 = eqcnt ・・・1f前のeqcntの値を保存
/
/?enmhp > foe.hp + foe.armor ・・・攻撃前の敵hpと攻撃中の敵hpを比較し、減ったら処理
/ enmhp = foe.hp + foe.armor ・・・敵のhp+armorを取得
/ eqcnt = (eqcnt + 1) % 2 ・・・敵にダメージを与えたのでスイッチを切り替え
            ・・・(eqcnt + 1) を 2 で割った時の余りをeqcntに格納
            ・・・%は左の数値を右の数値で割った時の余りを取得する
/
/?foe = boss & ・・・敵がボスで
/^bardichesw = 0 ・・・バルディッシュスキルのスイッチが0の場合
/ equipR vigor shield ・・・右手に活力盾を装備
/ equipL vigor sword ・・・左手に活力盾を装備
/
/?foe = boss & ・・・敵がボスで
/^item.GetCooldown("bardiche") <= 0 | ・・・バルディッシュスキルのクールタイムが0の場合
/^
/^bardichesw = 1 ・・・または、バルディッシュスキルのスイッチが1の場合
/ bardichesw = 1 ・・・バルディッシュスキルのスイッチを1にする
/ ?!ai.idle ・・・攻撃動作が終了したら(ダメージが入らなかった時の解除用)
/ bardichesw = 0 ・・・バルディッシュスキルのスイッチを0にする
/ :?foe.distance > 9 ・・・敵がdistance9より遠い場合
/ equipR dashing shield ・・・右手にダッシュ盾を装備
/ equipL triskel stone ・・・左手にトリスケルストーンを装備
/ :?foe.distance <= 9 ・・・敵がdistance9より近い場合
/ ?eqcnt2 = eqcnt ・・・1f前に敵にダメージを与えていない場合
/ equip bardiche ・・・バルディッシュを装備
/ activate bardiche ・・・バルディッシュのスキルを発動 activate R でもok
/ :?eqcnt2 ! eqcnt ・・・1f前に敵にダメージを与えた場合
/ bardichesw = 0 ・・・バルディッシュスキルのスイッチを0にする。

上記の『?!ai.idle・・・攻撃動作が終了したら(ダメージが入らなかった時の解除用)』の部分に
色々条件を付けることによってバルディッシュスキルの発動を調整できます。
ストーンスクリプト:バフ関連まとめ
最後の保存 8月18日 18時00分

バフの残り時間取得(バフが1種類の場合)
//////////////////////////////////////////
/var bftm = 0
/var bfary
/?buffs.count > 0 &
/^buffs.string ! quarterstaff
/ bfary = string.split(buffs.string,":")
/ bftm = int.parse(bfary[bfary.Count()-1])
/:?buffs.count = 0
/ bftm = 0
////////////////////////////////////////////

/var bftm = 0 ・・・ バフの時間を入れる変数
/var bfary ・・・ バフ取得用配列
/?buffs.count > 0 & ・・・バフが1個以上ある時 &
/^buffs.string ! quarterstaff ・・・バフが六尺棒のものでない時
/ bfary = string.split(buffs.string,":") ・・・buffs.stringで取得した値を:で分割しbfaryに格納
/ bftm = int.parse(bfary[bfary.Count()-1]) ・・・bfaryの配列数-1をbftmに格納
                       格納時に文字から整数に変換(int.parse)
/:?buffs.count = 0 ・・・バフがないとき
/ bftm = 0 ・・・時間を0にする

buffs.string
ラッキーポーションを使った場合、
!:lucky_crit:1:180,×:lucky_mult:1:180
が開始時の状態になる。(180という部分が残り時間。 180f = 6秒)
:ごとに分割し、最後の180を取得する。

『!』:『lucky_crit』:『1』:『180,×』:『lucky_mult』:『1』:『180』・・・配列が7個
配列の中身の何番目かの指定は0から始まるため、配列の中身の個数 - 1 をしてすることで
最後の『180』を取得できる。

この方法の場合、バフが複数種類には対応できない。
(ポーションバフ、堕神の剣のバフ、毒盾のバフで最大3種?)
(スクリプトはバフの判別が必要になったら考えます)

--------------------------------------
・特定の条件下でポーションバフを取得した際の挙動(おそらくバグ)
 ※ループで引き継げるのはロッキー☆11~15のみ?
ポーションバフが残った状態で更にポーションを使用するとバフの残り時間が異常に伸びる。
カルトマスク+21エンチャで維持していると簡単に引き起こせるのでみんなもやってみよう。

カルトマスクなしでやる場合、ボス撃破後のポーション補充タイミング前にポーション使用、
その後ポーション使用ボタンを連打(またはスクリプトでポーションを使う)でおそらく可能。

バフをかけたタイミング~次のバフをかけたタイミングまでの時間がおそらく鍵になっているようで、カルトマスク+21エンチャで維持しないと時間の延長はできないと思われる。

2023/8/24のアプデより、カルトマスクでバフ時間延長が一番古いバフのみになった。
だが、↑の長時間化はまだ使える。
ラッキーポーションの場合、lucky_crit(クリティカル率100%)だけ残る感じになるので
バーサークポーションも視野に入ってくるかもしれない。
仕様等(仮)
最後の保存 8月14日 18時27分

・属性関係
 毒 → 活性 → エーテル → 火 → 氷 → 毒
 対象の属性は左側に弱く、右側に強い
 (強い弱いといっても、弱点を突いたときに追加ダメージが入るだけだが・・・)
 (例:活性の場合、毒に対して弱く、火に対して強い)

 インベントリの並びは毒が先頭で同じ並び。

 月時計の石の『変化』で魔法石を変化した際の変化先も同じ並び。
 (例:毒属性の魔法石を変化させると活性属性の魔法石に変化する)
 (活用例:氷山で氷属性石集めるより、
      鉱山で火属性石を集めて氷属性石に変化させるほうが効率がいい)

・属性の追加効果
 属性武器の効果は月時計の石の『変化』で切り替え可能
 費用はどの装備でもエンチャントレベルでも☆でも気275で固定

 ・ダメージ系
  属性追加ダメージがDまたはd(基本的には武器)
  属性ダメージ減少がAまたはa(基本的には盾)
  ダメージ系単体で効果が発現している場合は大文字
     :Dー Aー(ダメージ系効果が大きい)
  ダメージ系+属性追加効果で発現している場合は小文字
     :dF afなど(ダメージ系効果が小さい)

 ・追加効果系
  攻撃系の追加効果で発現している場合は大文字
     :dF dPなど(基本的には武器)
  防御系の追加効果で発現している場合は小文字
     :df dpなど(基本的には盾)

 ・例外な組み合わせ
  棒系属性武器は、ダメージ系、追加効果系共に攻撃系と防御系の両方は発現可能。
  ウォーハンマー系属性武器は、ダメージ系は攻撃系と防御系の両方発現するが、
  属性追加効果系は攻撃系のみと思われる。



・分解関係
 エンチャントレベルが+9以下の場合、再確認するより分解して再付与したほうが安い。
 分解費用:エンチャントレベル × 気200
 (※ただし、装備の☆が0の場合は気を消費しない)
 (検証の結果、エンチャ合成時のレベルで付与されるエンチャ効果が固定の為、
  再確認費用を抑える場合は、
  +1,+2、+3と色々なエンチャントアイテムを用意して合成分解を試そう)

・再確認の費用(エンチャントの再抽選)
 (エンチャントレベル × 気100) + 気1000
氷の状態異常について
最後の保存 8月11日 23時31分

・氷の状態異常の効果(プレイヤー側)
 片手武器の場合、氷1つにつき20f遅くなる
  1=20 2=40 3=60 
 片手武器の高速持ち替えの場合、氷1つにつき14f遅くなる(たまに13f)
  1=13 2=27 3=40

 両手武器の場合、氷1つにつき14f遅くなる(たまに13f)
  1=14f 2=27f 3=41f
 両手武器の高速持ち替えの場合、氷1つにつき7f遅くなる(たまに6f)
  1=7f 2=14f 3=21f 4=27f


・予想
基準は20f
片手武器の場合、1/1追加
 1=20 2=40 3=60

両手武器の場合、2/3(小数点2位以下切り上げ)が追加、
処理はフレーム毎の為、そこから小数点1位切り上げ。
 1=13.4=14 2=26.8=27 3=40.2=41

高速持ち替えの場合、そこから -1/3(小数点2位以下切り上げ)される。
処理はフレーム毎の為、そこから小数点1位切り上げ。
 片手:1=13.4=14 2=26.8=27 3=40.2=41
 両手:1=6.7=7 2=13.4=14 3=20.1=21 4=26.8=27
ボスへのエーテル効果
最後の保存 8月11日 23時43分

ボスにエーテル効果発動させると、部位破壊的なものが発生する模様。(要確認)
 ハイハイ1段階目:大剣?腕?を壊せる(壊すと攻撃してこない)
  全てを受け入れたもの :火属性の腕を壊せる(壊すと火属性行動をしなくなる)
ストーンスクリプトの可読性を高めるコツ
・1つの処理ごとに大量の / で区切ろう。最後に処理内容を書くとさらにわかりやすい。
(特に大量にスクリプトを書いている場合にスクロール中でも見分けがつきやすくなる)
//////////////////////////////処理1
/?foe.distance > 20
/ equipR dash shield
/ equipL triskel stone
///////////////////////////////////////

////////////////////////////////処理2
/?foe.armor > 0
/ equipR shield
/ equipL hammer
/////////////////////////////////////////



・条件式で[『~または | 』を使用する際は ^ で1行開けよう。
( ^ は前の行から続く場合に使う)
(条件ごとに分けられるため、条件内容の確認がしやすくなる)
///////////////////////////////////処理1
/?foe = boss &
/^foe.distance > 20 |
/^
/^foe ! boss &
/^foe.maxhp < 20
/ equipR crossbow
/ equipL wand dP
////////////////////////////////////////////
ストーンスクリプト:ボス前の行動不可時の装備切り替え
・ボス前の行動不可時の装備切り替え(推奨記載位置:スクリプトの一番下)
//////////////////////////////////////////////
/?!item.canactivate()
/ equipR compound_shield
/ ?ai.walking
/ equipL triskel stone
/ :?ai.idle
/ ?maxhp > hp
/ equipL ouroboros stone
/ :?maxhp = hp
/ equipL quest stone
//////////////////////////////////////////////
?!item.canactivate()
 ・・・ スキル発動ができない状態の場合に処理を行う。
     item.canactivate()はスキルが発動可能な状態か確認できる。(true or false)
     ?item.canactivate()とすることで、スキル発動できる場合に処理を行う。
     先頭に否定処理の!を入れることで、スキル発動できない状態場合に処理を行う。
     ボス前はスキルが発動できない区域となるため、この処理で装備の持ち替えが可能。

equipR compound_shield
 ・・・ compound_shieldは丈夫な盾のこと。ない場合は一番性能がいい盾にしよう。

?ai.walking
 ・・・ プレイヤーが歩いている場合に処理を行う

equipL triskel stone
 ・・・ 移動速度+1の石(移動時間短縮用)

:?ai.idle
 ・・・ プレイヤーが待機状態の場合に処理を行う。※攻撃モーション中もtrue
     (条件をわかりやすくするために記載。『 :』『 :?!ai.walking』でも可)

?maxhp > hp
 ・・・ hpが減っている場合に処理

equipL ouroboros stone
 ・・・ hp回復する石

:?maxhp = hp
 ・・・ hpが減っていない場合に処理
     (条件をわかりやすくするために記載。『 :』でも可)

equipL quest stone
 ・・・ アーマー付与できる石(アーマー値2の為、ほぼ意味ないが・・・)
ストーンスクリプト:六尺棒スキル
六尺棒の突進スキルを使用しての道中時間短縮

六尺棒のスキルは発動後1fかけてdistance6移動

/////////////////////////////////////////////六尺棒
/?foe ! boss &
/^loc ! boss &
/^time > 0 &
/^foe.distance > 9 &
/^item.GetCooldown("quarterstaff") <= 0 |
/^
/^foe = boss &
/^foe.distance > 20 &
/^item.GetCooldown("quarterstaff") <= 0 |
/^
/^item.GetCooldown("quarterstaff") >= 194
/ equip quarterstaff
/ activate R
//////////////////////////////////////////////////

 ↓条件1:道中用
/?foe ! boss & ・・・敵がボスではない
/^loc ! boss & ・・・ボスマップじゃない
/^time > 0 & ・・・ステージ開始から1秒以上経過(0だと開始即発動できない)
/^foe.distance > 9 & ・・・敵が近い場合は発動しない(距離は要検討)
/^item.GetCooldown("quarterstaff") <= 0 | ・・・六尺棒のクールタイムが0
/^ ↓条件2:ボス戦時距離が遠いときの接近用
/^foe = boss & ・・・敵がボス
/^foe.distance > 20 & ・・・ボスとの距離がdistance 21以上
/^item.GetCooldown("quarterstaff") <= 0 | ・・・六尺棒のクールタイムが0
/^ ↓条件3:スキル発動後の装備固定用(時間が長いとその分だけ無駄になる)
/^item.GetCooldown("quarterstaff") >= 194 ・・・六尺棒のクールタイム開始から1f
/ equip quarterstaff  ・・・六尺棒装備
/ activate R ・・・スキル使用



ストーンスクリプト:DPSチェッカー(仮)
DPSチェッカー(仮)
敵撃破または敵が切り替わるとリセット(敵の名前が連続で同じ場合でも問題ないはず)
アーマー値の回復への対処が思いついていない為、
純粋な与ダメージを見る場合はアーマーがない敵で使用してください。
(ロッキー高原の1形態目がおすすめ)
(アーマー値が『回復』してるんだから、そのままでもいいか・・・?)

//////////////////////////DPSチェッカー
/var enmname = "a"
/var enmmaxhp = 999999
/var enmmaxhpsw = 0
/var dpstime = -1
/var dps = 0
/?enmmaxhpsw = 0 & foe.distance ! 999999
/ enmname = foe.name
/ enmmaxhp = foe.hp + foe.armor
/ enmmaxhpsw = 1

/?enmmaxhp ! 999999 &
/^enmmaxhp > (foe.hp + foe.armor)
/ dpstime = dpstime + 1
/ ?dpstime >= 30.0
/ dps = (enmmaxhp - (foe.hp + foe.armor))
/ ^/ (dpstime / 30.0)
/ :?dpstime < 30
/ dps = (enmmaxhp - (foe.hp + foe.armor))

/?foe.hp <= 0 |
/^enmname ! foe.name
/ enmmaxhp = 999999
/ enmmaxhpsw = 0
/ dpstime = -1
////////////////////////////////////

////////////////////////////////////表示
/>dps @dps@ \n
/^計測フレ @dpstime@ \n
/^秒換算 @dpstime / 30.0@ \n
/^開始HP @enmmaxhp@ \n
/^現在HP @foe.hp + foe.armor@ \n
/^スイッチ @enmmaxhpsw@ \n
/^敵の名前 @enmname@ \n
/////////////////////////////////////

ストーンスクリプト:毎フレームごとのtrue or false判定確認用
xxxxはtrueまたはfalseで中身を下記のように変える処理を入れる。
true = 1
false = 0

先頭の空白は『#』で表記

例:プレイヤーが待機状態かどうか
///////////////プレイヤーが待機状態ならxxxx = 1 そうじゃないなら xxxx = 0
/var xxxx
/?ai.idle
/ xxxx = 1
/:?!ai.idle
/ xxxx = 0
/////////////////

/////////////// 表示用の変数check1にxxxxとcheck1の中身を格納 60f(2秒)を超えた分は削除
/var check1 = ””
/check1 = xxxx + check1
/?string.size(check1) > 60
/ check1 = string.sub(check1,0,60)
//////////////

///////////////左上基準でx0 y25の位置にcheck1を表示
/>`0,25,#white,@check1@
///////////////
スクリプト関係メモ
氷状態異常の耐性『chill』
?foe = chill ・・・ 氷状態異常耐性ありの場合
?foe ! chill ・・・ 氷状態異常耐性なしの場合

ロッキー山脈のボスの♡バフ判別(おそらく全状態異常無効化?)
?foe.buffs.string ! protection ・・・ プロテクションがかかってない場合に処理

スキル中判定として、?ai.idleを使う場合
クールダウンが0~上限-10ぐらいで処理にしないと、うまくいかない。
敵のHPみてダメージ入ったかどうかでの確認も入れたほうがよさそう?

マップごとに装備持ち替え判定するよりかは、
敵の耐性を見て変えたほうが汎用性が高く、コードも短くてすみそう。

ボスまとめ(仮)
最後の保存 8月14日 20時03分
・ワルアンジェロ
第1形態(foe.id = dysangelos_bearer) 属性:氷|弱点:火
第2形態(foe.id = dysangelos_elementalist) 属性:目で変化|弱点:目で変化
第3形態(foe.id = dysangelos_perfected) 属性:氷|弱点:火

・怒木(foe.id = tree_boss_harder)
属性:なし|弱点:なし

・ペンペン(foe.id = poena)
属性:なし|弱点:なし ※状態異常反射(クリティカルも含む)

・ギハカツヤ(foe.id = spider_boss_harder)
属性:毒|弱点:氷 遠距離

・怒りキノコ(foe.id = mushroom_boss_harder)
属性:活力|弱点:毒 ※アーマー有

・ジメジメしめじ(foe.id = mushroom_boss_fat)
属性:活力|弱点:毒 ※アーマー有

・DJエノキ(foe.id = mushroom_boss_skinny)
属性:活力|弱点:毒

・皮なしの「ハイハイ」(foe.id = skeleton_boss_harder)
属性:エーテル|弱点:活力 ※エーテル属性効果で剣破壊可能

・足なしの「ハイハイ」(foe.id = skeleton_boss_stage_2_harder)
属性:エーテル|弱点:活力

・銅のガーディアン(foe.id = bronze_guardian)
属性:火|弱点:エーテル|ダメージ無効:ヒヤヒヤ(氷状態異常が効かないということ?)

・霜の巨人(foe.id = yeti)
属性:氷|弱点:火|ダメージ無効:ペナルティダメージ(毒状態異常が効かないということ?)

・浸食のナーガラージャ(foe.id = nagaraja)
属性:毒|弱点:氷



2 Comments
Aug 26, 2023 @ 2:06am 
わかりやすーい
Aug 10, 2023 @ 3:16pm 
すごく有り難いです!月時計の石の活用方法など早速参考になりました:steamthumbsup: