多くの皆様、返信いただきありがとうございます。
下の図のプラグインBが自分のプラグインだとすると、
他の人のプラグインAの処理を含んで、
元の「関数2」を上書きすることができます。
退避した関数には退避した処理が全て含まれますので、
自分のやりたい処理と見比べて、
処理の順序や重複などを気にする必要があります。
図までいただきありがとうございます。上乗せして拡張できるわけですね。
だからこそ順序が大事なのがなんとなくわかった気がします。
変数名は任意ですが、先頭に「_」アンダースコアを付ける習慣らしいです。
ちなみに、「const」でなくても構いませんが、「Var ...
検索結果 11 件
- 2022年2月27日(日) 13:26
- フォーラム: MV:質問
- トピック: 【解決済】競合させないプラグインの基本とは
- 返信数: 5
- 閲覧数: 2234
- 2022年2月26日(土) 15:13
- フォーラム: MV:質問
- トピック: 【解決済】競合させないプラグインの基本とは
- 返信数: 5
- 閲覧数: 2234
【解決済】競合させないプラグインの基本とは
こんにちは。
自分用のプラグインですが
せっかくなので競合しないようにしたいと思い
無名関数だとか、関数を退避させるとかの話を聞いたので
やってみようとしましたが良くわかりませんでした。
根本的な勘違いをしているはずなので、それを指摘していただければ。
(() => {
Var _SBS_DisplayDamage = Window_BattleLog.prototype.displayDamage
Window_BattleLog.prototype.displayDamage = function(target) {
if (target.result().missed ...
自分用のプラグインですが
せっかくなので競合しないようにしたいと思い
無名関数だとか、関数を退避させるとかの話を聞いたので
やってみようとしましたが良くわかりませんでした。
根本的な勘違いをしているはずなので、それを指摘していただければ。
(() => {
Var _SBS_DisplayDamage = Window_BattleLog.prototype.displayDamage
Window_BattleLog.prototype.displayDamage = function(target) {
if (target.result().missed ...
- 2021年8月20日(金) 08:59
- フォーラム: MV:質問
- トピック: 【解決済】アクター間のステートを交換させるには?
- 返信数: 2
- 閲覧数: 1299
Re: アクター間のステートを交換させるには?
addState や、removeState メソッドを実行すると、アクターの result オブジェクトに、
付与されたステート、解除されたステートの ID が追加されていくのですが、
この情報は初期化(削除)するメソッドを通らないと、残り続けます。
addState でステートを付与する際、 解除されたステートのID に自身のID番号がある場合、
ステートを付与できるか判定するメソッドが false を返すので、ステートが付与できません。
その結果、何にもステートが付与されていない、すべてのステートが解除されてしまっている状況が出来上がります。
ステートの交換が終わったタイミングで ...
付与されたステート、解除されたステートの ID が追加されていくのですが、
この情報は初期化(削除)するメソッドを通らないと、残り続けます。
addState でステートを付与する際、 解除されたステートのID に自身のID番号がある場合、
ステートを付与できるか判定するメソッドが false を返すので、ステートが付与できません。
その結果、何にもステートが付与されていない、すべてのステートが解除されてしまっている状況が出来上がります。
ステートの交換が終わったタイミングで ...
- 2021年8月18日(水) 16:19
- フォーラム: MV:質問
- トピック: 【解決済】アクター間のステートを交換させるには?
- 返信数: 2
- 閲覧数: 1299
【解決済】アクター間のステートを交換させるには?
アクター1と2のステートを交換するとします。
アクター1にはステート4と6 アクター2にはステート7が既に付与されています。
var p = []
$gameActors.actor(1).states().forEach(function(state) {
p.unshift(state.id)
$gameActors.actor(1).removeState(state.id)
})
if(!p.length == 0 )
{$gameVariables.setValue(1,p)}
else{$gameVariables.setValue(1,0 ...
アクター1にはステート4と6 アクター2にはステート7が既に付与されています。
var p = []
$gameActors.actor(1).states().forEach(function(state) {
p.unshift(state.id)
$gameActors.actor(1).removeState(state.id)
})
if(!p.length == 0 )
{$gameVariables.setValue(1,p)}
else{$gameVariables.setValue(1,0 ...
- 2021年5月29日(土) 16:11
- フォーラム: MV:質問
- トピック: 【解決済】配列の文字列を数値に
- 返信数: 2
- 閲覧数: 1490
Re: 配列の文字列を数値に
解決しました。ありがとうございました。奏ねこま さんが書きました:「javascript 文字列 数値 変換」とかで検索してみたら良いです。
答えを書くと
Number($dataItems[1].meta['atk'])
とか
+$dataItems[1].meta['atk']
とかで数値になります。
後者は短くて使いやすいですが「数値に変換している」というのが分かりづらいのと
前後のつながり次第で意図しない挙動になることもあるので注意が必要です。
すみません。調べはしましたが理解できなかったので。
- 2021年5月28日(金) 15:52
- フォーラム: MV:質問
- トピック: 【解決済】配列の文字列を数値に
- 返信数: 2
- 閲覧数: 1490
【解決済】配列の文字列を数値に
変数1がアイテムIDの名前、メタデータのatkとdefを含める配列だったとします。
[$dataItems[1].name,$dataItems[1].meta['atk'],$dataItems[1].meta['def']]
この場合、ゴブリン,3,7と出力されるのですが、
<atk:3><def:7>と記入したメタデータは文字列扱いになってるようで
$gameParty.gainGold($gameVariables.value(1)[1])
こうでもしようもんならエラーで落ちます。
このメタデータを扱う二つの要素を数値に変換することはできますか ...
[$dataItems[1].name,$dataItems[1].meta['atk'],$dataItems[1].meta['def']]
この場合、ゴブリン,3,7と出力されるのですが、
<atk:3><def:7>と記入したメタデータは文字列扱いになってるようで
$gameParty.gainGold($gameVariables.value(1)[1])
こうでもしようもんならエラーで落ちます。
このメタデータを扱う二つの要素を数値に変換することはできますか ...
- 2021年2月07日(日) 18:54
- フォーラム: VX / Ace:質問
- トピック: 【解決済】二回行動出来る場合、行動前に通知できないか
- 返信数: 8
- 閲覧数: 7879
Re: 二回行動出来る場合、行動前に通知できないか
これは素晴らしいスクリプトを!DEDEN さんが書きました:ブラインド様、お待たせしました
修正が完了しました
かなりのクソコードだったので全て刷新したところ時間が掛かってしまいました
申し訳ありません
不具合修正に加えてウインドウを開いたり閉じたりのアニメーションに対応しました
他にも競合対策としてグローバル変数を全て廃止してインスタンス変数化、
定数をクラス内定義に変更しました
またScene_Battleをほとんど読まずに適当に作ってしまっていたので
しっかり読んでプリセットスクリプトに合わせた作りに変更しました
宜しければお使いください
ありがたく使わせて頂きます!
- 2021年2月06日(土) 07:31
- フォーラム: VX / Ace:質問
- トピック: 【解決済】二回行動出来る場合、行動前に通知できないか
- 返信数: 8
- 閲覧数: 7879
Re: 二回行動出来る場合、行動前に通知できないか
行動回数追加100%でも試した所、一回目の表示以降はおかしくなってしまいますね...DEDEN さんが書きました:申し訳ありません
やはり不具合がありました
不確定で行動回数増加する場合は表示がおかしくなってしまいます
修正しますので少々お待ちください
こちらの場合、行動決定毎に残り行動回数を表示をfalseで解決するようでした
その他の挙動は好みなので、待たせていただきます!感謝

- 2021年2月05日(金) 00:06
- フォーラム: VX / Ace:質問
- トピック: 【解決済】二回行動出来る場合、行動前に通知できないか
- 返信数: 8
- 閲覧数: 7879
【解決済】二回行動出来る場合、行動前に通知できないか
行動回数追加によって二回行動するかどうかは
コマンドを選択し終えた後に判明しますよね
一回だと思って決定したのに、二回行動なら…と直前のコマンドをキャンセルし
最適な行動を選びなおす必要もあります
そのような煩わしい事が無いよう、行動回数追加が適用されるかどうか
ターン開始時に分かるように出来ませんか?
自分で試した所Game_Battlerの行動回数の決定が怪しいと思いましたので
2回行動以上と判断できれば、ここで効果音を鳴らせばいいのでは…と
コマンドを選択し終えた後に判明しますよね
一回だと思って決定したのに、二回行動なら…と直前のコマンドをキャンセルし
最適な行動を選びなおす必要もあります
そのような煩わしい事が無いよう、行動回数追加が適用されるかどうか
ターン開始時に分かるように出来ませんか?
自分で試した所Game_Battlerの行動回数の決定が怪しいと思いましたので
2回行動以上と判断できれば、ここで効果音を鳴らせばいいのでは…と
- 2019年3月09日(土) 09:48
- フォーラム: VX / Ace:質問
- トピック: 【解決済み】自動戦闘で意図した行動をさせる
- 返信数: 2
- 閲覧数: 3682
Re: 自動戦闘で意図した行動をさせる
返信ありがとうございます。
自分のスクリプト、何かおかしいと思っていましたが、
まさか記述がVXAce_SP1にあるとは。
ともあれ、頂いたスクリプトは無事動作しているようで、
改変も楽にできそうで助かります。ありがとうございました。
自分のスクリプト、何かおかしいと思っていましたが、
まさか記述がVXAce_SP1にあるとは。
ともあれ、頂いたスクリプトは無事動作しているようで、
改変も楽にできそうで助かります。ありがとうございました。